(function() { (function(t, e, i) { function n(i, r) { var s = e[i]; if (!s) { var o = t[i]; if (!o) return; var a = {}; s = e[i] = { exports: a }; o[0]((function(t) { return n(o[1][t] || t); }), s, a); } return s.exports; } for (var r = 0; r < i.length; r++) n(i[r]); })({ 1: [ (function(t, e, i) { "use strict"; t("../core/platform/CCClass"); var n = t("../core/utils/misc"); cc.Action = cc.Class({ name: "cc.Action", ctor: function() { this.originalTarget = null; this.target = null; this.tag = cc.Action.TAG_INVALID; }, clone: function() { var t = new cc.Action(); t.originalTarget = null; t.target = null; t.tag = this.tag; return t; }, isDone: function() { return !0; }, startWithTarget: function(t) { this.originalTarget = t; this.target = t; }, stop: function() { this.target = null; }, step: function(t) { cc.logID(1006); }, update: function(t) { cc.logID(1007); }, getTarget: function() { return this.target; }, setTarget: function(t) { this.target = t; }, getOriginalTarget: function() { return this.originalTarget; }, setOriginalTarget: function(t) { this.originalTarget = t; }, getTag: function() { return this.tag; }, setTag: function(t) { this.tag = t; }, retain: function() {}, release: function() {} }); cc.Action.TAG_INVALID = -1; cc.FiniteTimeAction = cc.Class({ name: "cc.FiniteTimeAction", extends: cc.Action, ctor: function() { this._duration = 0; }, getDuration: function() { return this._duration * (this._timesForRepeat || 1); }, setDuration: function(t) { this._duration = t; }, reverse: function() { cc.logID(1008); return null; }, clone: function() { return new cc.FiniteTimeAction(); } }); cc.Speed = cc.Class({ name: "cc.Speed", extends: cc.Action, ctor: function(t, e) { this._speed = 0; this._innerAction = null; t && this.initWithAction(t, e); }, getSpeed: function() { return this._speed; }, setSpeed: function(t) { this._speed = t; }, initWithAction: function(t, e) { if (!t) { cc.errorID(1021); return !1; } this._innerAction = t; this._speed = e; return !0; }, clone: function() { var t = new cc.Speed(); t.initWithAction(this._innerAction.clone(), this._speed); return t; }, startWithTarget: function(t) { cc.Action.prototype.startWithTarget.call(this, t); this._innerAction.startWithTarget(t); }, stop: function() { this._innerAction.stop(); cc.Action.prototype.stop.call(this); }, step: function(t) { this._innerAction.step(t * this._speed); }, isDone: function() { return this._innerAction.isDone(); }, reverse: function() { return new cc.Speed(this._innerAction.reverse(), this._speed); }, setInnerAction: function(t) { this._innerAction !== t && (this._innerAction = t); }, getInnerAction: function() { return this._innerAction; } }); cc.speed = function(t, e) { return new cc.Speed(t, e); }; cc.Follow = cc.Class({ name: "cc.Follow", extends: cc.Action, ctor: function(t, e) { this._followedNode = null; this._boundarySet = !1; this._boundaryFullyCovered = !1; this._halfScreenSize = null; this._fullScreenSize = null; this.leftBoundary = 0; this.rightBoundary = 0; this.topBoundary = 0; this.bottomBoundary = 0; this._worldRect = cc.rect(0, 0, 0, 0); t && (e ? this.initWithTarget(t, e) : this.initWithTarget(t)); }, clone: function() { var t = new cc.Follow(), e = this._worldRect, i = new cc.Rect(e.x, e.y, e.width, e.height); t.initWithTarget(this._followedNode, i); return t; }, isBoundarySet: function() { return this._boundarySet; }, setBoudarySet: function(t) { this._boundarySet = t; }, initWithTarget: function(t, e) { if (!t) { cc.errorID(1022); return !1; } e = e || cc.rect(0, 0, 0, 0); this._followedNode = t; this._worldRect = e; this._boundarySet = !(0 === e.width && 0 === e.height); this._boundaryFullyCovered = !1; var i = cc.winSize; this._fullScreenSize = cc.v2(i.width, i.height); this._halfScreenSize = this._fullScreenSize.mul(.5); if (this._boundarySet) { this.leftBoundary = -(e.x + e.width - this._fullScreenSize.x); this.rightBoundary = -e.x; this.topBoundary = -e.y; this.bottomBoundary = -(e.y + e.height - this._fullScreenSize.y); this.rightBoundary < this.leftBoundary && (this.rightBoundary = this.leftBoundary = (this.leftBoundary + this.rightBoundary) / 2); this.topBoundary < this.bottomBoundary && (this.topBoundary = this.bottomBoundary = (this.topBoundary + this.bottomBoundary) / 2); this.topBoundary === this.bottomBoundary && this.leftBoundary === this.rightBoundary && (this._boundaryFullyCovered = !0); } return !0; }, step: function(t) { var e = this.target.convertToWorldSpaceAR(cc.Vec2.ZERO), i = this._followedNode.convertToWorldSpaceAR(cc.Vec2.ZERO), r = e.sub(i), s = this.target.parent.convertToNodeSpaceAR(r.add(this._halfScreenSize)); if (this._boundarySet) { if (this._boundaryFullyCovered) return; this.target.setPosition(n.clampf(s.x, this.leftBoundary, this.rightBoundary), n.clampf(s.y, this.bottomBoundary, this.topBoundary)); } else this.target.setPosition(s.x, s.y); }, isDone: function() { return !this._followedNode.activeInHierarchy; }, stop: function() { this.target = null; cc.Action.prototype.stop.call(this); } }); cc.follow = function(t, e) { return new cc.Follow(t, e); }; }), { "../core/platform/CCClass": 201, "../core/utils/misc": 297 } ], 2: [ (function(t, e, i) { "use strict"; function n(t, e, i, n, r, s) { var o = s * s, a = o * s, c = (1 - r) / 2, l = c * (2 * o - a - s), h = c * (-a + o) + (2 * a - 3 * o + 1), u = c * (a - 2 * o + s) + (-2 * a + 3 * o), _ = c * (a - o), f = t.x * l + e.x * h + i.x * u + n.x * _, d = t.y * l + e.y * h + i.y * u + n.y * _; return cc.v2(f, d); } function r(t, e) { return t[Math.min(t.length - 1, Math.max(e, 0))]; } function s(t) { for (var e = [], i = t.length - 1; i >= 0; i--) e.push(cc.v2(t[i].x, t[i].y)); return e; } function o(t) { for (var e = [], i = 0; i < t.length; i++) e.push(cc.v2(t[i].x, t[i].y)); return e; } cc.CardinalSplineTo = cc.Class({ name: "cc.CardinalSplineTo", extends: cc.ActionInterval, ctor: function(t, e, i) { this._points = []; this._deltaT = 0; this._tension = 0; this._previousPosition = null; this._accumulatedDiff = null; void 0 !== i && cc.CardinalSplineTo.prototype.initWithDuration.call(this, t, e, i); }, initWithDuration: function(t, e, i) { if (!e || 0 === e.length) { cc.errorID(1024); return !1; } if (cc.ActionInterval.prototype.initWithDuration.call(this, t)) { this.setPoints(e); this._tension = i; return !0; } return !1; }, clone: function() { var t = new cc.CardinalSplineTo(); t.initWithDuration(this._duration, o(this._points), this._tension); return t; }, startWithTarget: function(t) { cc.ActionInterval.prototype.startWithTarget.call(this, t); this._deltaT = 1 / (this._points.length - 1); this._previousPosition = cc.v2(this.target.x, this.target.y); this._accumulatedDiff = cc.v2(0, 0); }, update: function(t) { t = this._computeEaseTime(t); var e, i, s = this._points; if (1 === t) { e = s.length - 1; i = 1; } else { var o = this._deltaT; i = (t - o * (e = 0 | t / o)) / o; } var a = n(r(s, e - 1), r(s, e - 0), r(s, e + 1), r(s, e + 2), this._tension, i); if (cc.macro.ENABLE_STACKABLE_ACTIONS) { var c, l; c = this.target.x - this._previousPosition.x; l = this.target.y - this._previousPosition.y; if (0 !== c || 0 !== l) { var h = this._accumulatedDiff; c = h.x + c; l = h.y + l; h.x = c; h.y = l; a.x += c; a.y += l; } } this.updatePosition(a); }, reverse: function() { var t = s(this._points); return cc.cardinalSplineTo(this._duration, t, this._tension); }, updatePosition: function(t) { this.target.setPosition(t); this._previousPosition = t; }, getPoints: function() { return this._points; }, setPoints: function(t) { this._points = t; } }); cc.cardinalSplineTo = function(t, e, i) { return new cc.CardinalSplineTo(t, e, i); }; cc.CardinalSplineBy = cc.Class({ name: "cc.CardinalSplineBy", extends: cc.CardinalSplineTo, ctor: function(t, e, i) { this._startPosition = cc.v2(0, 0); void 0 !== i && this.initWithDuration(t, e, i); }, startWithTarget: function(t) { cc.CardinalSplineTo.prototype.startWithTarget.call(this, t); this._startPosition.x = t.x; this._startPosition.y = t.y; }, reverse: function() { for (var t, e = this._points.slice(), i = e[0], n = 1; n < e.length; ++n) { t = e[n]; e[n] = t.sub(i); i = t; } var r = s(e); i = r[r.length - 1]; r.pop(); i.x = -i.x; i.y = -i.y; r.unshift(i); for (n = 1; n < r.length; ++n) { (t = r[n]).x = -t.x; t.y = -t.y; t.x += i.x; t.y += i.y; r[n] = t; i = t; } return cc.cardinalSplineBy(this._duration, r, this._tension); }, updatePosition: function(t) { var e = this._startPosition, i = t.x + e.x, n = t.y + e.y; this._previousPosition.x = i; this._previousPosition.y = n; this.target.setPosition(i, n); }, clone: function() { var t = new cc.CardinalSplineBy(); t.initWithDuration(this._duration, o(this._points), this._tension); return t; } }); cc.cardinalSplineBy = function(t, e, i) { return new cc.CardinalSplineBy(t, e, i); }; cc.CatmullRomTo = cc.Class({ name: "cc.CatmullRomTo", extends: cc.CardinalSplineTo, ctor: function(t, e) { e && this.initWithDuration(t, e); }, initWithDuration: function(t, e) { return cc.CardinalSplineTo.prototype.initWithDuration.call(this, t, e, .5); }, clone: function() { var t = new cc.CatmullRomTo(); t.initWithDuration(this._duration, o(this._points)); return t; } }); cc.catmullRomTo = function(t, e) { return new cc.CatmullRomTo(t, e); }; cc.CatmullRomBy = cc.Class({ name: "cc.CatmullRomBy", extends: cc.CardinalSplineBy, ctor: function(t, e) { e && this.initWithDuration(t, e); }, initWithDuration: function(t, e) { return cc.CardinalSplineTo.prototype.initWithDuration.call(this, t, e, .5); }, clone: function() { var t = new cc.CatmullRomBy(); t.initWithDuration(this._duration, o(this._points)); return t; } }); cc.catmullRomBy = function(t, e) { return new cc.CatmullRomBy(t, e); }; }), {} ], 3: [ (function(t, e, i) { "use strict"; cc.easeIn = function(t) { return { _rate: t, easing: function(t) { return Math.pow(t, this._rate); }, reverse: function() { return cc.easeIn(1 / this._rate); } }; }; cc.easeOut = function(t) { return { _rate: t, easing: function(t) { return Math.pow(t, 1 / this._rate); }, reverse: function() { return cc.easeOut(1 / this._rate); } }; }; cc.easeInOut = function(t) { return { _rate: t, easing: function(t) { return (t *= 2) < 1 ? .5 * Math.pow(t, this._rate) : 1 - .5 * Math.pow(2 - t, this._rate); }, reverse: function() { return cc.easeInOut(this._rate); } }; }; var n = { easing: function(t) { return 0 === t ? 0 : Math.pow(2, 10 * (t - 1)); }, reverse: function() { return r; } }; cc.easeExponentialIn = function() { return n; }; var r = { easing: function(t) { return 1 === t ? 1 : 1 - Math.pow(2, -10 * t); }, reverse: function() { return n; } }; cc.easeExponentialOut = function() { return r; }; var s = { easing: function(t) { return 1 !== t && 0 !== t ? (t *= 2) < 1 ? .5 * Math.pow(2, 10 * (t - 1)) : .5 * (2 - Math.pow(2, -10 * (t - 1))) : t; }, reverse: function() { return s; } }; cc.easeExponentialInOut = function() { return s; }; var o = { easing: function(t) { return 0 === t || 1 === t ? t : -1 * Math.cos(t * Math.PI / 2) + 1; }, reverse: function() { return a; } }; cc.easeSineIn = function() { return o; }; var a = { easing: function(t) { return 0 === t || 1 === t ? t : Math.sin(t * Math.PI / 2); }, reverse: function() { return o; } }; cc.easeSineOut = function() { return a; }; var c = { easing: function(t) { return 0 === t || 1 === t ? t : -.5 * (Math.cos(Math.PI * t) - 1); }, reverse: function() { return c; } }; cc.easeSineInOut = function() { return c; }; var l = { easing: function(t) { if (0 === t || 1 === t) return t; t -= 1; return -Math.pow(2, 10 * t) * Math.sin((t - .075) * Math.PI * 2 / .3); }, reverse: function() { return h; } }; cc.easeElasticIn = function(t) { return t && .3 !== t ? { _period: t, easing: function(t) { if (0 === t || 1 === t) return t; t -= 1; return -Math.pow(2, 10 * t) * Math.sin((t - this._period / 4) * Math.PI * 2 / this._period); }, reverse: function() { return cc.easeElasticOut(this._period); } } : l; }; var h = { easing: function(t) { return 0 === t || 1 === t ? t : Math.pow(2, -10 * t) * Math.sin((t - .075) * Math.PI * 2 / .3) + 1; }, reverse: function() { return l; } }; cc.easeElasticOut = function(t) { return t && .3 !== t ? { _period: t, easing: function(t) { return 0 === t || 1 === t ? t : Math.pow(2, -10 * t) * Math.sin((t - this._period / 4) * Math.PI * 2 / this._period) + 1; }, reverse: function() { return cc.easeElasticIn(this._period); } } : h; }; cc.easeElasticInOut = function(t) { return { _period: t = t || .3, easing: function(t) { var e = 0, i = this._period; if (0 === t || 1 === t) e = t; else { t *= 2; i || (i = this._period = .3 * 1.5); var n = i / 4; e = (t -= 1) < 0 ? -.5 * Math.pow(2, 10 * t) * Math.sin((t - n) * Math.PI * 2 / i) : Math.pow(2, -10 * t) * Math.sin((t - n) * Math.PI * 2 / i) * .5 + 1; } return e; }, reverse: function() { return cc.easeElasticInOut(this._period); } }; }; function u(t) { return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375; } var _ = { easing: function(t) { return 1 - u(1 - t); }, reverse: function() { return f; } }; cc.easeBounceIn = function() { return _; }; var f = { easing: function(t) { return u(t); }, reverse: function() { return _; } }; cc.easeBounceOut = function() { return f; }; var d = { easing: function(t) { return t < .5 ? .5 * (1 - u(1 - (t *= 2))) : .5 * u(2 * t - 1) + .5; }, reverse: function() { return d; } }; cc.easeBounceInOut = function() { return d; }; var m = { easing: function(t) { return 0 === t || 1 === t ? t : t * t * (2.70158 * t - 1.70158); }, reverse: function() { return p; } }; cc.easeBackIn = function() { return m; }; var p = { easing: function(t) { return (t -= 1) * t * (2.70158 * t + 1.70158) + 1; }, reverse: function() { return m; } }; cc.easeBackOut = function() { return p; }; var v = { easing: function(t) { return (t *= 2) < 1 ? t * t * (3.5949095 * t - 2.5949095) / 2 : (t -= 2) * t * (3.5949095 * t + 2.5949095) / 2 + 1; }, reverse: function() { return v; } }; cc.easeBackInOut = function() { return v; }; cc.easeBezierAction = function(t, e, i, n) { return { easing: function(r) { return Math.pow(1 - r, 3) * t + 3 * r * Math.pow(1 - r, 2) * e + 3 * Math.pow(r, 2) * (1 - r) * i + Math.pow(r, 3) * n; }, reverse: function() { return cc.easeBezierAction(n, i, e, t); } }; }; var y = { easing: function(t) { return Math.pow(t, 2); }, reverse: function() { return y; } }; cc.easeQuadraticActionIn = function() { return y; }; var g = { easing: function(t) { return -t * (t - 2); }, reverse: function() { return g; } }; cc.easeQuadraticActionOut = function() { return g; }; var x = { easing: function(t) { return (t *= 2) < 1 ? t * t * .5 : -.5 * (--t * (t - 2) - 1); }, reverse: function() { return x; } }; cc.easeQuadraticActionInOut = function() { return x; }; var C = { easing: function(t) { return t * t * t * t; }, reverse: function() { return C; } }; cc.easeQuarticActionIn = function() { return C; }; var b = { easing: function(t) { return -((t -= 1) * t * t * t - 1); }, reverse: function() { return b; } }; cc.easeQuarticActionOut = function() { return b; }; var A = { easing: function(t) { return (t *= 2) < 1 ? .5 * t * t * t * t : -.5 * ((t -= 2) * t * t * t - 2); }, reverse: function() { return A; } }; cc.easeQuarticActionInOut = function() { return A; }; var S = { easing: function(t) { return t * t * t * t * t; }, reverse: function() { return S; } }; cc.easeQuinticActionIn = function() { return S; }; var w = { easing: function(t) { return (t -= 1) * t * t * t * t + 1; }, reverse: function() { return w; } }; cc.easeQuinticActionOut = function() { return w; }; var T = { easing: function(t) { return (t *= 2) < 1 ? .5 * t * t * t * t * t : .5 * ((t -= 2) * t * t * t * t + 2); }, reverse: function() { return T; } }; cc.easeQuinticActionInOut = function() { return T; }; var E = { easing: function(t) { return -1 * (Math.sqrt(1 - t * t) - 1); }, reverse: function() { return E; } }; cc.easeCircleActionIn = function() { return E; }; var M = { easing: function(t) { t -= 1; return Math.sqrt(1 - t * t); }, reverse: function() { return M; } }; cc.easeCircleActionOut = function() { return M; }; var B = { easing: function(t) { if ((t *= 2) < 1) return -.5 * (Math.sqrt(1 - t * t) - 1); t -= 2; return .5 * (Math.sqrt(1 - t * t) + 1); }, reverse: function() { return B; } }; cc.easeCircleActionInOut = function() { return B; }; var D = { easing: function(t) { return t * t * t; }, reverse: function() { return D; } }; cc.easeCubicActionIn = function() { return D; }; var I = { easing: function(t) { return (t -= 1) * t * t + 1; }, reverse: function() { return I; } }; cc.easeCubicActionOut = function() { return I; }; var P = { easing: function(t) { return (t *= 2) < 1 ? .5 * t * t * t : .5 * ((t -= 2) * t * t + 2); }, reverse: function() { return P; } }; cc.easeCubicActionInOut = function() { return P; }; }), {} ], 4: [ (function(t, e, i) { "use strict"; cc.ActionInstant = cc.Class({ name: "cc.ActionInstant", extends: cc.FiniteTimeAction, isDone: function() { return !0; }, step: function(t) { this.update(1); }, update: function(t) {}, reverse: function() { return this.clone(); }, clone: function() { return new cc.ActionInstant(); } }); cc.Show = cc.Class({ name: "cc.Show", extends: cc.ActionInstant, update: function(t) { for (var e = this.target.getComponentsInChildren(cc.RenderComponent), i = 0; i < e.length; ++i) { e[i].enabled = !0; } }, reverse: function() { return new cc.Hide(); }, clone: function() { return new cc.Show(); } }); cc.show = function() { return new cc.Show(); }; cc.Hide = cc.Class({ name: "cc.Hide", extends: cc.ActionInstant, update: function(t) { for (var e = this.target.getComponentsInChildren(cc.RenderComponent), i = 0; i < e.length; ++i) { e[i].enabled = !1; } }, reverse: function() { return new cc.Show(); }, clone: function() { return new cc.Hide(); } }); cc.hide = function() { return new cc.Hide(); }; cc.ToggleVisibility = cc.Class({ name: "cc.ToggleVisibility", extends: cc.ActionInstant, update: function(t) { for (var e = this.target.getComponentsInChildren(cc.RenderComponent), i = 0; i < e.length; ++i) { var n = e[i]; n.enabled = !n.enabled; } }, reverse: function() { return new cc.ToggleVisibility(); }, clone: function() { return new cc.ToggleVisibility(); } }); cc.toggleVisibility = function() { return new cc.ToggleVisibility(); }; cc.RemoveSelf = cc.Class({ name: "cc.RemoveSelf", extends: cc.ActionInstant, ctor: function(t) { this._isNeedCleanUp = !0; void 0 !== t && this.init(t); }, update: function(t) { this.target.removeFromParent(this._isNeedCleanUp); }, init: function(t) { this._isNeedCleanUp = t; return !0; }, reverse: function() { return new cc.RemoveSelf(this._isNeedCleanUp); }, clone: function() { return new cc.RemoveSelf(this._isNeedCleanUp); } }); cc.removeSelf = function(t) { return new cc.RemoveSelf(t); }; cc.FlipX = cc.Class({ name: "cc.FlipX", extends: cc.ActionInstant, ctor: function(t) { this._flippedX = !1; void 0 !== t && this.initWithFlipX(t); }, initWithFlipX: function(t) { this._flippedX = t; return !0; }, update: function(t) { this.target.scaleX = Math.abs(this.target.scaleX) * (this._flippedX ? -1 : 1); }, reverse: function() { return new cc.FlipX(!this._flippedX); }, clone: function() { var t = new cc.FlipX(); t.initWithFlipX(this._flippedX); return t; } }); cc.flipX = function(t) { return new cc.FlipX(t); }; cc.FlipY = cc.Class({ name: "cc.FlipY", extends: cc.ActionInstant, ctor: function(t) { this._flippedY = !1; void 0 !== t && this.initWithFlipY(t); }, initWithFlipY: function(t) { this._flippedY = t; return !0; }, update: function(t) { this.target.scaleY = Math.abs(this.target.scaleY) * (this._flippedY ? -1 : 1); }, reverse: function() { return new cc.FlipY(!this._flippedY); }, clone: function() { var t = new cc.FlipY(); t.initWithFlipY(this._flippedY); return t; } }); cc.flipY = function(t) { return new cc.FlipY(t); }; cc.Place = cc.Class({ name: "cc.Place", extends: cc.ActionInstant, ctor: function(t, e) { this._x = 0; this._y = 0; if (void 0 !== t) { if (void 0 !== t.x) { e = t.y; t = t.x; } this.initWithPosition(t, e); } }, initWithPosition: function(t, e) { this._x = t; this._y = e; return !0; }, update: function(t) { this.target.setPosition(this._x, this._y); }, clone: function() { var t = new cc.Place(); t.initWithPosition(this._x, this._y); return t; } }); cc.place = function(t, e) { return new cc.Place(t, e); }; cc.CallFunc = cc.Class({ name: "cc.CallFunc", extends: cc.ActionInstant, ctor: function(t, e, i) { this._selectorTarget = null; this._function = null; this._data = null; this.initWithFunction(t, e, i); }, initWithFunction: function(t, e, i) { t && (this._function = t); e && (this._selectorTarget = e); void 0 !== i && (this._data = i); return !0; }, execute: function() { this._function && this._function.call(this._selectorTarget, this.target, this._data); }, update: function(t) { this.execute(); }, getTargetCallback: function() { return this._selectorTarget; }, setTargetCallback: function(t) { if (t !== this._selectorTarget) { this._selectorTarget && (this._selectorTarget = null); this._selectorTarget = t; } }, clone: function() { var t = new cc.CallFunc(); t.initWithFunction(this._function, this._selectorTarget, this._data); return t; } }); cc.callFunc = function(t, e, i) { return new cc.CallFunc(t, e, i); }; }), {} ], 5: [ (function(t, e, i) { "use strict"; cc.ActionInterval = cc.Class({ name: "cc.ActionInterval", extends: cc.FiniteTimeAction, ctor: function(t) { this.MAX_VALUE = 2; this._elapsed = 0; this._firstTick = !1; this._easeList = null; this._speed = 1; this._timesForRepeat = 1; this._repeatForever = !1; this._repeatMethod = !1; this._speedMethod = !1; void 0 !== t && cc.ActionInterval.prototype.initWithDuration.call(this, t); }, getElapsed: function() { return this._elapsed; }, initWithDuration: function(t) { this._duration = 0 === t ? cc.macro.FLT_EPSILON : t; this._elapsed = 0; this._firstTick = !0; return !0; }, isDone: function() { return this._elapsed >= this._duration; }, _cloneDecoration: function(t) { t._repeatForever = this._repeatForever; t._speed = this._speed; t._timesForRepeat = this._timesForRepeat; t._easeList = this._easeList; t._speedMethod = this._speedMethod; t._repeatMethod = this._repeatMethod; }, _reverseEaseList: function(t) { if (this._easeList) { t._easeList = []; for (var e = 0; e < this._easeList.length; e++) t._easeList.push(this._easeList[e].reverse()); } }, clone: function() { var t = new cc.ActionInterval(this._duration); this._cloneDecoration(t); return t; }, easing: function(t) { this._easeList ? this._easeList.length = 0 : this._easeList = []; for (var e = 0; e < arguments.length; e++) this._easeList.push(arguments[e]); return this; }, _computeEaseTime: function(t) { var e = this._easeList; if (!e || 0 === e.length) return t; for (var i = 0, n = e.length; i < n; i++) t = e[i].easing(t); return t; }, step: function(t) { if (this._firstTick) { this._firstTick = !1; this._elapsed = 0; } else this._elapsed += t; var e = this._elapsed / (this._duration > 1.192092896e-7 ? this._duration : 1.192092896e-7); e = 1 > e ? e : 1; this.update(e > 0 ? e : 0); if (this._repeatMethod && this._timesForRepeat > 1 && this.isDone()) { this._repeatForever || this._timesForRepeat--; this.startWithTarget(this.target); this.step(this._elapsed - this._duration); } }, startWithTarget: function(t) { cc.Action.prototype.startWithTarget.call(this, t); this._elapsed = 0; this._firstTick = !0; }, reverse: function() { cc.logID(1010); return null; }, setAmplitudeRate: function(t) { cc.logID(1011); }, getAmplitudeRate: function() { cc.logID(1012); return 0; }, speed: function(t) { if (t <= 0) { cc.logID(1013); return this; } this._speedMethod = !0; this._speed *= t; return this; }, getSpeed: function() { return this._speed; }, setSpeed: function(t) { this._speed = t; return this; }, repeat: function(t) { t = Math.round(t); if (isNaN(t) || t < 1) { cc.logID(1014); return this; } this._repeatMethod = !0; this._timesForRepeat *= t; return this; }, repeatForever: function() { this._repeatMethod = !0; this._timesForRepeat = this.MAX_VALUE; this._repeatForever = !0; return this; } }); cc.actionInterval = function(t) { return new cc.ActionInterval(t); }; cc.Sequence = cc.Class({ name: "cc.Sequence", extends: cc.ActionInterval, ctor: function(t) { this._actions = []; this._split = null; this._last = 0; this._reversed = !1; var e = t instanceof Array ? t : arguments; if (1 !== e.length) { var i = e.length - 1; i >= 0 && null == e[i] && cc.logID(1015); if (i >= 0) { for (var n, r = e[0], s = 1; s < i; s++) if (e[s]) { n = r; r = cc.Sequence._actionOneTwo(n, e[s]); } this.initWithTwoActions(r, e[i]); } } else cc.errorID(1019); }, initWithTwoActions: function(t, e) { if (!t || !e) { cc.errorID(1025); return !1; } var i = t._duration, n = e._duration, r = (i *= t._repeatMethod ? t._timesForRepeat : 1) + (n *= e._repeatMethod ? e._timesForRepeat : 1); this.initWithDuration(r); this._actions[0] = t; this._actions[1] = e; return !0; }, clone: function() { var t = new cc.Sequence(); this._cloneDecoration(t); t.initWithTwoActions(this._actions[0].clone(), this._actions[1].clone()); return t; }, startWithTarget: function(t) { cc.ActionInterval.prototype.startWithTarget.call(this, t); this._split = this._actions[0]._duration / this._duration; this._split *= this._actions[0]._repeatMethod ? this._actions[0]._timesForRepeat : 1; this._last = -1; }, stop: function() { -1 !== this._last && this._actions[this._last].stop(); cc.Action.prototype.stop.call(this); }, update: function(t) { var e, i, n = 0, r = this._split, s = this._actions, o = this._last; if ((t = this._computeEaseTime(t)) < r) { e = 0 !== r ? t / r : 1; if (0 === n && 1 === o && this._reversed) { s[1].update(0); s[1].stop(); } } else { n = 1; e = 1 === r ? 1 : (t - r) / (1 - r); if (-1 === o) { s[0].startWithTarget(this.target); s[0].update(1); s[0].stop(); } if (0 === o) { s[0].update(1); s[0].stop(); } } i = s[n]; if (o !== n || !i.isDone()) { o !== n && i.startWithTarget(this.target); e *= i._timesForRepeat; i.update(e > 1 ? e % 1 : e); this._last = n; } }, reverse: function() { var t = cc.Sequence._actionOneTwo(this._actions[1].reverse(), this._actions[0].reverse()); this._cloneDecoration(t); this._reverseEaseList(t); t._reversed = !0; return t; } }); cc.sequence = function(t) { var e = t instanceof Array ? t : arguments; if (1 === e.length) { cc.errorID(1019); return null; } var i = e.length - 1; i >= 0 && null == e[i] && cc.logID(1015); var n = null; if (i >= 0) { n = e[0]; for (var r = 1; r <= i; r++) e[r] && (n = cc.Sequence._actionOneTwo(n, e[r])); } return n; }; cc.Sequence._actionOneTwo = function(t, e) { var i = new cc.Sequence(); i.initWithTwoActions(t, e); return i; }; cc.Repeat = cc.Class({ name: "cc.Repeat", extends: cc.ActionInterval, ctor: function(t, e) { this._times = 0; this._total = 0; this._nextDt = 0; this._actionInstant = !1; this._innerAction = null; void 0 !== e && this.initWithAction(t, e); }, initWithAction: function(t, e) { var i = t._duration * e; if (this.initWithDuration(i)) { this._times = e; this._innerAction = t; if (t instanceof cc.ActionInstant) { this._actionInstant = !0; this._times -= 1; } this._total = 0; return !0; } return !1; }, clone: function() { var t = new cc.Repeat(); this._cloneDecoration(t); t.initWithAction(this._innerAction.clone(), this._times); return t; }, startWithTarget: function(t) { this._total = 0; this._nextDt = this._innerAction._duration / this._duration; cc.ActionInterval.prototype.startWithTarget.call(this, t); this._innerAction.startWithTarget(t); }, stop: function() { this._innerAction.stop(); cc.Action.prototype.stop.call(this); }, update: function(t) { t = this._computeEaseTime(t); var e = this._innerAction, i = this._duration, n = this._times, r = this._nextDt; if (t >= r) { for (;t > r && this._total < n; ) { e.update(1); this._total++; e.stop(); e.startWithTarget(this.target); r += e._duration / i; this._nextDt = r > 1 ? 1 : r; } if (t >= 1 && this._total < n) { e.update(1); this._total++; } this._actionInstant || (this._total === n ? e.stop() : e.update(t - (r - e._duration / i))); } else e.update(t * n % 1); }, isDone: function() { return this._total === this._times; }, reverse: function() { var t = new cc.Repeat(this._innerAction.reverse(), this._times); this._cloneDecoration(t); this._reverseEaseList(t); return t; }, setInnerAction: function(t) { this._innerAction !== t && (this._innerAction = t); }, getInnerAction: function() { return this._innerAction; } }); cc.repeat = function(t, e) { return new cc.Repeat(t, e); }; cc.RepeatForever = cc.Class({ name: "cc.RepeatForever", extends: cc.ActionInterval, ctor: function(t) { this._innerAction = null; t && this.initWithAction(t); }, initWithAction: function(t) { if (!t) { cc.errorID(1026); return !1; } this._innerAction = t; return !0; }, clone: function() { var t = new cc.RepeatForever(); this._cloneDecoration(t); t.initWithAction(this._innerAction.clone()); return t; }, startWithTarget: function(t) { cc.ActionInterval.prototype.startWithTarget.call(this, t); this._innerAction.startWithTarget(t); }, step: function(t) { var e = this._innerAction; e.step(t); if (e.isDone()) { e.startWithTarget(this.target); e.step(e.getElapsed() - e._duration); } }, isDone: function() { return !1; }, reverse: function() { var t = new cc.RepeatForever(this._innerAction.reverse()); this._cloneDecoration(t); this._reverseEaseList(t); return t; }, setInnerAction: function(t) { this._innerAction !== t && (this._innerAction = t); }, getInnerAction: function() { return this._innerAction; } }); cc.repeatForever = function(t) { return new cc.RepeatForever(t); }; cc.Spawn = cc.Class({ name: "cc.Spawn", extends: cc.ActionInterval, ctor: function(t) { this._one = null; this._two = null; var e = t instanceof Array ? t : arguments; if (1 !== e.length) { var i = e.length - 1; i >= 0 && null == e[i] && cc.logID(1015); if (i >= 0) { for (var n, r = e[0], s = 1; s < i; s++) if (e[s]) { n = r; r = cc.Spawn._actionOneTwo(n, e[s]); } this.initWithTwoActions(r, e[i]); } } else cc.errorID(1020); }, initWithTwoActions: function(t, e) { if (!t || !e) { cc.errorID(1027); return !1; } var i = !1, n = t._duration, r = e._duration; if (this.initWithDuration(Math.max(n, r))) { this._one = t; this._two = e; n > r ? this._two = cc.Sequence._actionOneTwo(e, cc.delayTime(n - r)) : n < r && (this._one = cc.Sequence._actionOneTwo(t, cc.delayTime(r - n))); i = !0; } return i; }, clone: function() { var t = new cc.Spawn(); this._cloneDecoration(t); t.initWithTwoActions(this._one.clone(), this._two.clone()); return t; }, startWithTarget: function(t) { cc.ActionInterval.prototype.startWithTarget.call(this, t); this._one.startWithTarget(t); this._two.startWithTarget(t); }, stop: function() { this._one.stop(); this._two.stop(); cc.Action.prototype.stop.call(this); }, update: function(t) { t = this._computeEaseTime(t); this._one && this._one.update(t); this._two && this._two.update(t); }, reverse: function() { var t = cc.Spawn._actionOneTwo(this._one.reverse(), this._two.reverse()); this._cloneDecoration(t); this._reverseEaseList(t); return t; } }); cc.spawn = function(t) { var e = t instanceof Array ? t : arguments; if (1 === e.length) { cc.errorID(1020); return null; } e.length > 0 && null == e[e.length - 1] && cc.logID(1015); for (var i = e[0], n = 1; n < e.length; n++) null != e[n] && (i = cc.Spawn._actionOneTwo(i, e[n])); return i; }; cc.Spawn._actionOneTwo = function(t, e) { var i = new cc.Spawn(); i.initWithTwoActions(t, e); return i; }; cc.RotateTo = cc.Class({ name: "cc.RotateTo", extends: cc.ActionInterval, ctor: function(t, e) { this._startAngle = 0; this._dstAngle = 0; this._angle = 0; void 0 !== e && this.initWithDuration(t, e); }, initWithDuration: function(t, e) { if (cc.ActionInterval.prototype.initWithDuration.call(this, t)) { this._dstAngle = e; return !0; } return !1; }, clone: function() { var t = new cc.RotateTo(); this._cloneDecoration(t); t.initWithDuration(this._duration, this._dstAngle); return t; }, startWithTarget: function(t) { cc.ActionInterval.prototype.startWithTarget.call(this, t); var e = t.angle % 360, i = cc.macro.ROTATE_ACTION_CCW ? this._dstAngle - e : this._dstAngle + e; i > 180 && (i -= 360); i < -180 && (i += 360); this._startAngle = e; this._angle = cc.macro.ROTATE_ACTION_CCW ? i : -i; }, reverse: function() { cc.logID(1016); }, update: function(t) { t = this._computeEaseTime(t); this.target && (this.target.angle = this._startAngle + this._angle * t); } }); cc.rotateTo = function(t, e) { return new cc.RotateTo(t, e); }; cc.RotateBy = cc.Class({ name: "cc.RotateBy", extends: cc.ActionInterval, ctor: function(t, e) { e *= cc.macro.ROTATE_ACTION_CCW ? 1 : -1; this._deltaAngle = 0; this._startAngle = 0; void 0 !== e && this.initWithDuration(t, e); }, initWithDuration: function(t, e) { if (cc.ActionInterval.prototype.initWithDuration.call(this, t)) { this._deltaAngle = e; return !0; } return !1; }, clone: function() { var t = new cc.RotateBy(); this._cloneDecoration(t); t.initWithDuration(this._duration, this._deltaAngle); return t; }, startWithTarget: function(t) { cc.ActionInterval.prototype.startWithTarget.call(this, t); this._startAngle = t.angle; }, update: function(t) { t = this._computeEaseTime(t); this.target && (this.target.angle = this._startAngle + this._deltaAngle * t); }, reverse: function() { var t = new cc.RotateBy(this._duration, -this._deltaAngle); this._cloneDecoration(t); this._reverseEaseList(t); return t; } }); cc.rotateBy = function(t, e) { return new cc.RotateBy(t, e); }; cc.MoveBy = cc.Class({ name: "cc.MoveBy", extends: cc.ActionInterval, ctor: function(t, e, i) { this._positionDelta = cc.v2(0, 0); this._startPosition = cc.v2(0, 0); this._previousPosition = cc.v2(0, 0); void 0 !== e && cc.MoveBy.prototype.initWithDuration.call(this, t, e, i); }, initWithDuration: function(t, e, i) { if (cc.ActionInterval.prototype.initWithDuration.call(this, t)) { if (void 0 !== e.x) { i = e.y; e = e.x; } this._positionDelta.x = e; this._positionDelta.y = i; return !0; } return !1; }, clone: function() { var t = new cc.MoveBy(); this._cloneDecoration(t); t.initWithDuration(this._duration, this._positionDelta); return t; }, startWithTarget: function(t) { cc.ActionInterval.prototype.startWithTarget.call(this, t); var e = t.x, i = t.y; this._previousPosition.x = e; this._previousPosition.y = i; this._startPosition.x = e; this._startPosition.y = i; }, update: function(t) { t = this._computeEaseTime(t); if (this.target) { var e = this._positionDelta.x * t, i = this._positionDelta.y * t, n = this._startPosition; if (cc.macro.ENABLE_STACKABLE_ACTIONS) { var r = this.target.x, s = this.target.y, o = this._previousPosition; n.x = n.x + r - o.x; n.y = n.y + s - o.y; e += n.x; i += n.y; o.x = e; o.y = i; this.target.setPosition(e, i); } else this.target.setPosition(n.x + e, n.y + i); } }, reverse: function() { var t = new cc.MoveBy(this._duration, cc.v2(-this._positionDelta.x, -this._positionDelta.y)); this._cloneDecoration(t); this._reverseEaseList(t); return t; } }); cc.moveBy = function(t, e, i) { return new cc.MoveBy(t, e, i); }; cc.MoveTo = cc.Class({ name: "cc.MoveTo", extends: cc.MoveBy, ctor: function(t, e, i) { this._endPosition = cc.v2(0, 0); void 0 !== e && this.initWithDuration(t, e, i); }, initWithDuration: function(t, e, i) { if (cc.MoveBy.prototype.initWithDuration.call(this, t, e, i)) { if (void 0 !== e.x) { i = e.y; e = e.x; } this._endPosition.x = e; this._endPosition.y = i; return !0; } return !1; }, clone: function() { var t = new cc.MoveTo(); this._cloneDecoration(t); t.initWithDuration(this._duration, this._endPosition); return t; }, startWithTarget: function(t) { cc.MoveBy.prototype.startWithTarget.call(this, t); this._positionDelta.x = this._endPosition.x - t.x; this._positionDelta.y = this._endPosition.y - t.y; } }); cc.moveTo = function(t, e, i) { return new cc.MoveTo(t, e, i); }; cc.SkewTo = cc.Class({ name: "cc.SkewTo", extends: cc.ActionInterval, ctor: function(t, e, i) { this._skewX = 0; this._skewY = 0; this._startSkewX = 0; this._startSkewY = 0; this._endSkewX = 0; this._endSkewY = 0; this._deltaX = 0; this._deltaY = 0; void 0 !== i && cc.SkewTo.prototype.initWithDuration.call(this, t, e, i); }, initWithDuration: function(t, e, i) { var n = !1; if (cc.ActionInterval.prototype.initWithDuration.call(this, t)) { this._endSkewX = e; this._endSkewY = i; n = !0; } return n; }, clone: function() { var t = new cc.SkewTo(); this._cloneDecoration(t); t.initWithDuration(this._duration, this._endSkewX, this._endSkewY); return t; }, startWithTarget: function(t) { cc.ActionInterval.prototype.startWithTarget.call(this, t); this._startSkewX = t.skewX % 180; this._deltaX = this._endSkewX - this._startSkewX; this._deltaX > 180 && (this._deltaX -= 360); this._deltaX < -180 && (this._deltaX += 360); this._startSkewY = t.skewY % 360; this._deltaY = this._endSkewY - this._startSkewY; this._deltaY > 180 && (this._deltaY -= 360); this._deltaY < -180 && (this._deltaY += 360); }, update: function(t) { t = this._computeEaseTime(t); this.target.skewX = this._startSkewX + this._deltaX * t; this.target.skewY = this._startSkewY + this._deltaY * t; } }); cc.skewTo = function(t, e, i) { return new cc.SkewTo(t, e, i); }; cc.SkewBy = cc.Class({ name: "cc.SkewBy", extends: cc.SkewTo, ctor: function(t, e, i) { void 0 !== i && this.initWithDuration(t, e, i); }, initWithDuration: function(t, e, i) { var n = !1; if (cc.SkewTo.prototype.initWithDuration.call(this, t, e, i)) { this._skewX = e; this._skewY = i; n = !0; } return n; }, clone: function() { var t = new cc.SkewBy(); this._cloneDecoration(t); t.initWithDuration(this._duration, this._skewX, this._skewY); return t; }, startWithTarget: function(t) { cc.SkewTo.prototype.startWithTarget.call(this, t); this._deltaX = this._skewX; this._deltaY = this._skewY; this._endSkewX = this._startSkewX + this._deltaX; this._endSkewY = this._startSkewY + this._deltaY; }, reverse: function() { var t = new cc.SkewBy(this._duration, -this._skewX, -this._skewY); this._cloneDecoration(t); this._reverseEaseList(t); return t; } }); cc.skewBy = function(t, e, i) { return new cc.SkewBy(t, e, i); }; cc.JumpBy = cc.Class({ name: "cc.JumpBy", extends: cc.ActionInterval, ctor: function(t, e, i, n, r) { this._startPosition = cc.v2(0, 0); this._previousPosition = cc.v2(0, 0); this._delta = cc.v2(0, 0); this._height = 0; this._jumps = 0; void 0 !== n && cc.JumpBy.prototype.initWithDuration.call(this, t, e, i, n, r); }, initWithDuration: function(t, e, i, n, r) { if (cc.ActionInterval.prototype.initWithDuration.call(this, t)) { if (void 0 === r) { r = n; n = i; i = e.y; e = e.x; } this._delta.x = e; this._delta.y = i; this._height = n; this._jumps = r; return !0; } return !1; }, clone: function() { var t = new cc.JumpBy(); this._cloneDecoration(t); t.initWithDuration(this._duration, this._delta, this._height, this._jumps); return t; }, startWithTarget: function(t) { cc.ActionInterval.prototype.startWithTarget.call(this, t); var e = t.x, i = t.y; this._previousPosition.x = e; this._previousPosition.y = i; this._startPosition.x = e; this._startPosition.y = i; }, update: function(t) { t = this._computeEaseTime(t); if (this.target) { var e = t * this._jumps % 1, i = 4 * this._height * e * (1 - e); i += this._delta.y * t; var n = this._delta.x * t, r = this._startPosition; if (cc.macro.ENABLE_STACKABLE_ACTIONS) { var s = this.target.x, o = this.target.y, a = this._previousPosition; r.x = r.x + s - a.x; r.y = r.y + o - a.y; n += r.x; i += r.y; a.x = n; a.y = i; this.target.setPosition(n, i); } else this.target.setPosition(r.x + n, r.y + i); } }, reverse: function() { var t = new cc.JumpBy(this._duration, cc.v2(-this._delta.x, -this._delta.y), this._height, this._jumps); this._cloneDecoration(t); this._reverseEaseList(t); return t; } }); cc.jumpBy = function(t, e, i, n, r) { return new cc.JumpBy(t, e, i, n, r); }; cc.JumpTo = cc.Class({ name: "cc.JumpTo", extends: cc.JumpBy, ctor: function(t, e, i, n, r) { this._endPosition = cc.v2(0, 0); void 0 !== n && this.initWithDuration(t, e, i, n, r); }, initWithDuration: function(t, e, i, n, r) { if (cc.JumpBy.prototype.initWithDuration.call(this, t, e, i, n, r)) { if (void 0 === r) { i = e.y; e = e.x; } this._endPosition.x = e; this._endPosition.y = i; return !0; } return !1; }, startWithTarget: function(t) { cc.JumpBy.prototype.startWithTarget.call(this, t); this._delta.x = this._endPosition.x - this._startPosition.x; this._delta.y = this._endPosition.y - this._startPosition.y; }, clone: function() { var t = new cc.JumpTo(); this._cloneDecoration(t); t.initWithDuration(this._duration, this._endPosition, this._height, this._jumps); return t; } }); cc.jumpTo = function(t, e, i, n, r) { return new cc.JumpTo(t, e, i, n, r); }; function n(t, e, i, n, r) { return Math.pow(1 - r, 3) * t + 3 * r * Math.pow(1 - r, 2) * e + 3 * Math.pow(r, 2) * (1 - r) * i + Math.pow(r, 3) * n; } cc.BezierBy = cc.Class({ name: "cc.BezierBy", extends: cc.ActionInterval, ctor: function(t, e) { this._config = []; this._startPosition = cc.v2(0, 0); this._previousPosition = cc.v2(0, 0); e && cc.BezierBy.prototype.initWithDuration.call(this, t, e); }, initWithDuration: function(t, e) { if (cc.ActionInterval.prototype.initWithDuration.call(this, t)) { this._config = e; return !0; } return !1; }, clone: function() { var t = new cc.BezierBy(); this._cloneDecoration(t); for (var e = [], i = 0; i < this._config.length; i++) { var n = this._config[i]; e.push(cc.v2(n.x, n.y)); } t.initWithDuration(this._duration, e); return t; }, startWithTarget: function(t) { cc.ActionInterval.prototype.startWithTarget.call(this, t); var e = t.x, i = t.y; this._previousPosition.x = e; this._previousPosition.y = i; this._startPosition.x = e; this._startPosition.y = i; }, update: function(t) { t = this._computeEaseTime(t); if (this.target) { var e = this._config, i = e[0].x, r = e[1].x, s = e[2].x, o = e[0].y, a = e[1].y, c = e[2].y, l = n(0, i, r, s, t), h = n(0, o, a, c, t), u = this._startPosition; if (cc.macro.ENABLE_STACKABLE_ACTIONS) { var _ = this.target.x, f = this.target.y, d = this._previousPosition; u.x = u.x + _ - d.x; u.y = u.y + f - d.y; l += u.x; h += u.y; d.x = l; d.y = h; this.target.setPosition(l, h); } else this.target.setPosition(u.x + l, u.y + h); } }, reverse: function() { var t = this._config, e = t[0].x, i = t[0].y, n = t[1].x, r = t[1].y, s = t[2].x, o = t[2].y, a = [ cc.v2(n - s, r - o), cc.v2(e - s, i - o), cc.v2(-s, -o) ], c = new cc.BezierBy(this._duration, a); this._cloneDecoration(c); this._reverseEaseList(c); return c; } }); cc.bezierBy = function(t, e) { return new cc.BezierBy(t, e); }; cc.BezierTo = cc.Class({ name: "cc.BezierTo", extends: cc.BezierBy, ctor: function(t, e) { this._toConfig = []; e && this.initWithDuration(t, e); }, initWithDuration: function(t, e) { if (cc.ActionInterval.prototype.initWithDuration.call(this, t)) { this._toConfig = e; return !0; } return !1; }, clone: function() { var t = new cc.BezierTo(); this._cloneDecoration(t); t.initWithDuration(this._duration, this._toConfig); return t; }, startWithTarget: function(t) { cc.BezierBy.prototype.startWithTarget.call(this, t); var e = this._startPosition, i = this._toConfig, n = this._config; n[0] = i[0].sub(e); n[1] = i[1].sub(e); n[2] = i[2].sub(e); } }); cc.bezierTo = function(t, e) { return new cc.BezierTo(t, e); }; cc.ScaleTo = cc.Class({ name: "cc.ScaleTo", extends: cc.ActionInterval, ctor: function(t, e, i) { this._scaleX = 1; this._scaleY = 1; this._startScaleX = 1; this._startScaleY = 1; this._endScaleX = 0; this._endScaleY = 0; this._deltaX = 0; this._deltaY = 0; void 0 !== e && cc.ScaleTo.prototype.initWithDuration.call(this, t, e, i); }, initWithDuration: function(t, e, i) { if (cc.ActionInterval.prototype.initWithDuration.call(this, t)) { this._endScaleX = e; this._endScaleY = null != i ? i : e; return !0; } return !1; }, clone: function() { var t = new cc.ScaleTo(); this._cloneDecoration(t); t.initWithDuration(this._duration, this._endScaleX, this._endScaleY); return t; }, startWithTarget: function(t) { cc.ActionInterval.prototype.startWithTarget.call(this, t); this._startScaleX = t.scaleX; this._startScaleY = t.scaleY; this._deltaX = this._endScaleX - this._startScaleX; this._deltaY = this._endScaleY - this._startScaleY; }, update: function(t) { t = this._computeEaseTime(t); if (this.target) { this.target.scaleX = this._startScaleX + this._deltaX * t; this.target.scaleY = this._startScaleY + this._deltaY * t; } } }); cc.scaleTo = function(t, e, i) { return new cc.ScaleTo(t, e, i); }; cc.ScaleBy = cc.Class({ name: "cc.ScaleBy", extends: cc.ScaleTo, startWithTarget: function(t) { cc.ScaleTo.prototype.startWithTarget.call(this, t); this._deltaX = this._startScaleX * this._endScaleX - this._startScaleX; this._deltaY = this._startScaleY * this._endScaleY - this._startScaleY; }, reverse: function() { var t = new cc.ScaleBy(this._duration, 1 / this._endScaleX, 1 / this._endScaleY); this._cloneDecoration(t); this._reverseEaseList(t); return t; }, clone: function() { var t = new cc.ScaleBy(); this._cloneDecoration(t); t.initWithDuration(this._duration, this._endScaleX, this._endScaleY); return t; } }); cc.scaleBy = function(t, e, i) { return new cc.ScaleBy(t, e, i); }; cc.Blink = cc.Class({ name: "cc.Blink", extends: cc.ActionInterval, ctor: function(t, e) { this._times = 0; this._originalState = !1; void 0 !== e && this.initWithDuration(t, e); }, initWithDuration: function(t, e) { if (cc.ActionInterval.prototype.initWithDuration.call(this, t)) { this._times = e; return !0; } return !1; }, clone: function() { var t = new cc.Blink(); this._cloneDecoration(t); t.initWithDuration(this._duration, this._times); return t; }, update: function(t) { t = this._computeEaseTime(t); if (this.target && !this.isDone()) { var e = 1 / this._times, i = t % e; this.target.opacity = i > e / 2 ? 255 : 0; } }, startWithTarget: function(t) { cc.ActionInterval.prototype.startWithTarget.call(this, t); this._originalState = t.opacity; }, stop: function() { this.target.opacity = this._originalState; cc.ActionInterval.prototype.stop.call(this); }, reverse: function() { var t = new cc.Blink(this._duration, this._times); this._cloneDecoration(t); this._reverseEaseList(t); return t; } }); cc.blink = function(t, e) { return new cc.Blink(t, e); }; cc.FadeTo = cc.Class({ name: "cc.FadeTo", extends: cc.ActionInterval, ctor: function(t, e) { this._toOpacity = 0; this._fromOpacity = 0; void 0 !== e && cc.FadeTo.prototype.initWithDuration.call(this, t, e); }, initWithDuration: function(t, e) { if (cc.ActionInterval.prototype.initWithDuration.call(this, t)) { this._toOpacity = e; return !0; } return !1; }, clone: function() { var t = new cc.FadeTo(); this._cloneDecoration(t); t.initWithDuration(this._duration, this._toOpacity); return t; }, update: function(t) { t = this._computeEaseTime(t); var e = void 0 !== this._fromOpacity ? this._fromOpacity : 255; this.target.opacity = e + (this._toOpacity - e) * t; }, startWithTarget: function(t) { cc.ActionInterval.prototype.startWithTarget.call(this, t); this._fromOpacity = t.opacity; } }); cc.fadeTo = function(t, e) { return new cc.FadeTo(t, e); }; cc.FadeIn = cc.Class({ name: "cc.FadeIn", extends: cc.FadeTo, ctor: function(t) { null == t && (t = 0); this._reverseAction = null; this.initWithDuration(t, 255); }, reverse: function() { var t = new cc.FadeOut(); t.initWithDuration(this._duration, 0); this._cloneDecoration(t); this._reverseEaseList(t); return t; }, clone: function() { var t = new cc.FadeIn(); this._cloneDecoration(t); t.initWithDuration(this._duration, this._toOpacity); return t; }, startWithTarget: function(t) { this._reverseAction && (this._toOpacity = this._reverseAction._fromOpacity); cc.FadeTo.prototype.startWithTarget.call(this, t); } }); cc.fadeIn = function(t) { return new cc.FadeIn(t); }; cc.FadeOut = cc.Class({ name: "cc.FadeOut", extends: cc.FadeTo, ctor: function(t) { null == t && (t = 0); this._reverseAction = null; this.initWithDuration(t, 0); }, reverse: function() { var t = new cc.FadeIn(); t._reverseAction = this; t.initWithDuration(this._duration, 255); this._cloneDecoration(t); this._reverseEaseList(t); return t; }, clone: function() { var t = new cc.FadeOut(); this._cloneDecoration(t); t.initWithDuration(this._duration, this._toOpacity); return t; } }); cc.fadeOut = function(t) { return new cc.FadeOut(t); }; cc.TintTo = cc.Class({ name: "cc.TintTo", extends: cc.ActionInterval, ctor: function(t, e, i, n) { this._to = cc.color(0, 0, 0); this._from = cc.color(0, 0, 0); if (e instanceof cc.Color) { n = e.b; i = e.g; e = e.r; } void 0 !== n && this.initWithDuration(t, e, i, n); }, initWithDuration: function(t, e, i, n) { if (cc.ActionInterval.prototype.initWithDuration.call(this, t)) { this._to = cc.color(e, i, n); return !0; } return !1; }, clone: function() { var t = new cc.TintTo(); this._cloneDecoration(t); var e = this._to; t.initWithDuration(this._duration, e.r, e.g, e.b); return t; }, startWithTarget: function(t) { cc.ActionInterval.prototype.startWithTarget.call(this, t); this._from = this.target.color; }, update: function(t) { t = this._computeEaseTime(t); var e = this._from, i = this._to; e && (this.target.color = cc.color(e.r + (i.r - e.r) * t, e.g + (i.g - e.g) * t, e.b + (i.b - e.b) * t)); } }); cc.tintTo = function(t, e, i, n) { return new cc.TintTo(t, e, i, n); }; cc.TintBy = cc.Class({ name: "cc.TintBy", extends: cc.ActionInterval, ctor: function(t, e, i, n) { this._deltaR = 0; this._deltaG = 0; this._deltaB = 0; this._fromR = 0; this._fromG = 0; this._fromB = 0; void 0 !== n && this.initWithDuration(t, e, i, n); }, initWithDuration: function(t, e, i, n) { if (cc.ActionInterval.prototype.initWithDuration.call(this, t)) { this._deltaR = e; this._deltaG = i; this._deltaB = n; return !0; } return !1; }, clone: function() { var t = new cc.TintBy(); this._cloneDecoration(t); t.initWithDuration(this._duration, this._deltaR, this._deltaG, this._deltaB); return t; }, startWithTarget: function(t) { cc.ActionInterval.prototype.startWithTarget.call(this, t); var e = t.color; this._fromR = e.r; this._fromG = e.g; this._fromB = e.b; }, update: function(t) { t = this._computeEaseTime(t); this.target.color = cc.color(this._fromR + this._deltaR * t, this._fromG + this._deltaG * t, this._fromB + this._deltaB * t); }, reverse: function() { var t = new cc.TintBy(this._duration, -this._deltaR, -this._deltaG, -this._deltaB); this._cloneDecoration(t); this._reverseEaseList(t); return t; } }); cc.tintBy = function(t, e, i, n) { return new cc.TintBy(t, e, i, n); }; cc.DelayTime = cc.Class({ name: "cc.DelayTime", extends: cc.ActionInterval, update: function(t) {}, reverse: function() { var t = new cc.DelayTime(this._duration); this._cloneDecoration(t); this._reverseEaseList(t); return t; }, clone: function() { var t = new cc.DelayTime(); this._cloneDecoration(t); t.initWithDuration(this._duration); return t; } }); cc.delayTime = function(t) { return new cc.DelayTime(t); }; cc.ReverseTime = cc.Class({ name: "cc.ReverseTime", extends: cc.ActionInterval, ctor: function(t) { this._other = null; t && this.initWithAction(t); }, initWithAction: function(t) { if (!t) { cc.errorID(1028); return !1; } if (t === this._other) { cc.errorID(1029); return !1; } if (cc.ActionInterval.prototype.initWithDuration.call(this, t._duration)) { this._other = t; return !0; } return !1; }, clone: function() { var t = new cc.ReverseTime(); this._cloneDecoration(t); t.initWithAction(this._other.clone()); return t; }, startWithTarget: function(t) { cc.ActionInterval.prototype.startWithTarget.call(this, t); this._other.startWithTarget(t); }, update: function(t) { t = this._computeEaseTime(t); this._other && this._other.update(1 - t); }, reverse: function() { return this._other.clone(); }, stop: function() { this._other.stop(); cc.Action.prototype.stop.call(this); } }); cc.reverseTime = function(t) { return new cc.ReverseTime(t); }; cc.TargetedAction = cc.Class({ name: "cc.TargetedAction", extends: cc.ActionInterval, ctor: function(t, e) { this._action = null; this._forcedTarget = null; e && this.initWithTarget(t, e); }, initWithTarget: function(t, e) { if (this.initWithDuration(e._duration)) { this._forcedTarget = t; this._action = e; return !0; } return !1; }, clone: function() { var t = new cc.TargetedAction(); this._cloneDecoration(t); t.initWithTarget(this._forcedTarget, this._action.clone()); return t; }, startWithTarget: function(t) { cc.ActionInterval.prototype.startWithTarget.call(this, t); this._action.startWithTarget(this._forcedTarget); }, stop: function() { this._action.stop(); }, update: function(t) { t = this._computeEaseTime(t); this._action.update(t); }, getForcedTarget: function() { return this._forcedTarget; }, setForcedTarget: function(t) { this._forcedTarget !== t && (this._forcedTarget = t); } }); cc.targetedAction = function(t, e) { return new cc.TargetedAction(t, e); }; }), {} ], 6: [ (function(t, e, i) { "use strict"; t("../core/platform/CCClass"); var n = t("../core/platform/js"), r = function() { this.actions = []; this.target = null; this.actionIndex = 0; this.currentAction = null; this.paused = !1; this.lock = !1; }; cc.ActionManager = function() { this._hashTargets = n.createMap(!0); this._arrayTargets = []; this._currentTarget = null; cc.director._scheduler && cc.director._scheduler.enableForTarget(this); }; cc.ActionManager.prototype = { constructor: cc.ActionManager, _elementPool: [], _searchElementByTarget: function(t, e) { for (var i = 0; i < t.length; i++) if (e === t[i].target) return t[i]; return null; }, _getElement: function(t, e) { var i = this._elementPool.pop(); i || (i = new r()); i.target = t; i.paused = !!e; return i; }, _putElement: function(t) { t.actions.length = 0; t.actionIndex = 0; t.currentAction = null; t.paused = !1; t.target = null; t.lock = !1; this._elementPool.push(t); }, addAction: function(t, e, i) { if (t && e) { var n = this._hashTargets[e._id]; if (n) n.actions || (n.actions = []); else { n = this._getElement(e, i); this._hashTargets[e._id] = n; this._arrayTargets.push(n); } n.actions.push(t); t.startWithTarget(e); } else cc.errorID(1e3); }, removeAllActions: function() { for (var t = this._arrayTargets, e = 0; e < t.length; e++) { var i = t[e]; i && this._putElement(i); } this._arrayTargets.length = 0; this._hashTargets = n.createMap(!0); }, removeAllActionsFromTarget: function(t, e) { if (null != t) { var i = this._hashTargets[t._id]; if (i) { i.actions.length = 0; this._deleteHashElement(i); } } }, removeAction: function(t) { if (null != t) { var e = t.getOriginalTarget(), i = this._hashTargets[e._id]; if (i) { for (var n = 0; n < i.actions.length; n++) if (i.actions[n] === t) { i.actions.splice(n, 1); i.actionIndex >= n && i.actionIndex--; break; } } else cc.logID(1001); } }, removeActionByTag: function(t, e) { t === cc.Action.TAG_INVALID && cc.logID(1002); cc.assertID(e, 1003); var i = this._hashTargets[e._id]; if (i) for (var n = i.actions.length, r = 0; r < n; ++r) { var s = i.actions[r]; if (s && s.getTag() === t && s.getOriginalTarget() === e) { this._removeActionAtIndex(r, i); break; } } }, getActionByTag: function(t, e) { t === cc.Action.TAG_INVALID && cc.logID(1004); var i = this._hashTargets[e._id]; if (i) { if (null != i.actions) for (var n = 0; n < i.actions.length; ++n) { var r = i.actions[n]; if (r && r.getTag() === t) return r; } cc.logID(1005, t); } return null; }, getNumberOfRunningActionsInTarget: function(t) { var e = this._hashTargets[t._id]; return e && e.actions ? e.actions.length : 0; }, pauseTarget: function(t) { var e = this._hashTargets[t._id]; e && (e.paused = !0); }, resumeTarget: function(t) { var e = this._hashTargets[t._id]; e && (e.paused = !1); }, pauseAllRunningActions: function() { for (var t = [], e = this._arrayTargets, i = 0; i < e.length; i++) { var n = e[i]; if (n && !n.paused) { n.paused = !0; t.push(n.target); } } return t; }, resumeTargets: function(t) { if (t) for (var e = 0; e < t.length; e++) t[e] && this.resumeTarget(t[e]); }, pauseTargets: function(t) { if (t) for (var e = 0; e < t.length; e++) t[e] && this.pauseTarget(t[e]); }, purgeSharedManager: function() { cc.director.getScheduler().unscheduleUpdate(this); }, _removeActionAtIndex: function(t, e) { e.actions[t]; e.actions.splice(t, 1); e.actionIndex >= t && e.actionIndex--; 0 === e.actions.length && this._deleteHashElement(e); }, _deleteHashElement: function(t) { var e = !1; if (t && !t.lock && this._hashTargets[t.target._id]) { delete this._hashTargets[t.target._id]; for (var i = this._arrayTargets, n = 0, r = i.length; n < r; n++) if (i[n] === t) { i.splice(n, 1); break; } this._putElement(t); e = !0; } return e; }, update: function(t) { for (var e, i = this._arrayTargets, n = 0; n < i.length; n++) { this._currentTarget = i[n]; if (!(e = this._currentTarget).paused && e.actions) { e.lock = !0; for (e.actionIndex = 0; e.actionIndex < e.actions.length; e.actionIndex++) { e.currentAction = e.actions[e.actionIndex]; if (e.currentAction) { e.currentAction.step(t * (e.currentAction._speedMethod ? e.currentAction._speed : 1)); if (e.currentAction && e.currentAction.isDone()) { e.currentAction.stop(); var r = e.currentAction; e.currentAction = null; this.removeAction(r); } e.currentAction = null; } } e.lock = !1; } 0 === e.actions.length && this._deleteHashElement(e) && n--; } } }; 0; }), { "../core/platform/CCClass": 201, "../core/platform/js": 221 } ], 7: [ (function(t, e, i) { "use strict"; t("./CCActionManager"); t("./CCAction"); t("./CCActionInterval"); t("./CCActionInstant"); t("./CCActionEase"); t("./CCActionCatmullRom"); t("./tween"); }), { "./CCAction": 1, "./CCActionCatmullRom": 2, "./CCActionEase": 3, "./CCActionInstant": 4, "./CCActionInterval": 5, "./CCActionManager": 6, "./tween": 8 } ], 8: [ (function(i, n, r) { "use strict"; var s = cc.Class({ name: "cc.TweenAction", extends: cc.ActionInterval, ctor: function(i, n, r) { this._opts = r = r || Object.create(null); this._props = Object.create(null); r.progress = r.progress || this.progress; if (r.easing && "string" === ("object" === (e = typeof r.easing) ? t(r.easing) : e)) { var s = r.easing; r.easing = cc.easing[s]; !r.easing && cc.warnID(1031, s); } var o = this._opts.relative; for (var a in n) { var c = n[a], l = void 0, h = void 0; if (void 0 !== c.value && (c.easing || c.progress)) { "string" === ("object" === (e = typeof c.easing) ? t(c.easing) : e) ? !(l = cc.easing[c.easing]) && cc.warnID(1031, c.easing) : l = c.easing; h = c.progress; c = c.value; } if ("number" === ("object" === (e = typeof c) ? t(c) : e) || c.lerp && (!o || c.add || c.mul) && c.clone) { var u = Object.create(null); u.value = c; u.easing = l; u.progress = h; this._props[a] = u; } else cc.warn("Can not animate " + a + " property, because it do not have [lerp, (add|mul), clone] function."); } this._originProps = n; this.initWithDuration(i); }, clone: function() { var t = new s(this._duration, this._originProps, this._opts); this._cloneDecoration(t); return t; }, startWithTarget: function(i) { cc.ActionInterval.prototype.startWithTarget.call(this, i); var n = !!this._opts.relative, r = this._props; for (var s in r) { var o = i[s], a = r[s]; if ("number" === ("object" === (e = typeof o) ? t(o) : e)) { a.start = o; a.current = o; a.end = n ? o + a.value : a.value; } else { a.start = o.clone(); a.current = o.clone(); a.end = n ? (o.add || o.mul).call(o, a.value) : a.value; } } }, update: function(t) { var e = this._opts, i = t; e.easing && (i = e.easing(t)); var n = this.target; if (n) { var r = this._props, s = this._opts.progress; for (var o in r) { var a = r[o], c = a.easing ? a.easing(t) : i, l = a.current = (a.progress || s)(a.start, a.end, a.current, c); n[o] = l; } } }, progress: function(i, n, r, s) { "number" === ("object" === (e = typeof i) ? t(i) : e) ? r = i + (n - i) * s : i.lerp(n, s, r); return r; } }), o = cc.Class({ name: "cc.SetAction", extends: cc.ActionInstant, ctor: function(t) { this._props = {}; void 0 !== t && this.init(t); }, init: function(t) { for (var e in t) this._props[e] = t[e]; return !0; }, update: function() { var t = this._props, e = this.target; for (var i in t) e[i] = t[i]; }, clone: function() { var t = new o(); t.init(this._props); return t; } }); function a(t) { this._actions = []; this._finalAction = null; this._target = t; } a.prototype.then = function(t) { t instanceof cc.Action ? this._actions.push(t.clone()) : this._actions.push(t._union()); return this; }; a.prototype.target = function(t) { this._target = t; return this; }; a.prototype.start = function() { if (!this._target) { cc.warn("Please set target to tween first"); return this; } this._finalAction && cc.director.getActionManager().removeAction(this._finalAction); this._finalAction = this._union(); cc.director.getActionManager().addAction(this._finalAction, this._target, !1); return this; }; a.prototype.stop = function() { this._finalAction && cc.director.getActionManager().removeAction(this._finalAction); return this; }; a.prototype.clone = function(t) { var e = this._union(); return cc.tween(t).then(e.clone()); }; a.prototype.union = function() { var t = this._union(); this._actions.length = 0; this._actions.push(t); return this; }; a.prototype._union = function() { var t = this._actions; return t = 1 === t.length ? t[0] : cc.sequence(t); }; var c = []; function l(t) { return function() { c.length = 0; for (var e = arguments.length, i = 0; i < e; i++) { var n = c[i] = arguments[i]; n instanceof a && (c[i] = n._union()); } return t.apply(this, c); }; } for (var h = { to: function(t, e, i) { (i = i || Object.create(null)).relative = !1; return new s(t, e, i); }, by: function(t, e, i) { (i = i || Object.create(null)).relative = !0; return new s(t, e, i); }, set: function(t) { return new o(t); }, delay: cc.delayTime, call: cc.callFunc, hide: cc.hide, show: cc.show, removeSelf: cc.removeSelf, sequence: l(cc.sequence), parallel: l(cc.spawn) }, u = { repeat: cc.repeat, repeatForever: cc.repeatForever, reverseTime: cc.reverseTime }, _ = Object.keys(h), f = function(t) { var e = _[t]; a.prototype[e] = function() { var t = h[e].apply(h, arguments); this._actions.push(t); return this; }; }, d = 0; d < _.length; d++) f(d); _ = Object.keys(u); var m = function(t) { var e = _[t]; a.prototype[e] = function() { var t = this._actions, i = arguments[arguments.length - 1], n = arguments.length - 1; if (i instanceof cc.Tween) i = i._union(); else if (!(i instanceof cc.Action)) { i = t[t.length - 1]; t.length -= 1; n += 1; } for (var r = [ i ], s = 0; s < n; s++) r.push(arguments[s]); i = u[e].apply(this, r); t.push(i); return this; }; }; for (d = 0; d < _.length; d++) m(d); cc.tween = function(t) { return new a(t); }; cc.Tween = a; }), {} ], 9: [ (function(i, n, r) { "use strict"; var s = cc.js, o = i("./playable"), a = i("./animation-curves"), c = a.EventAnimCurve, l = a.EventInfo, h = i("./types").WrapModeMask, u = i("../core/utils/binary-search").binarySearchEpsilon; function _(t, e) { o.call(this); this.target = t; this.animation = e; this._anims = new s.array.MutableForwardIterator([]); } s.extend(_, o); var f = _.prototype; f.playState = function(i, n) { if (i.clip) { i.curveLoaded || d(this.target, i); i.animator = this; i.play(); "number" === ("object" === (e = typeof n) ? t(n) : e) && i.setTime(n); this.play(); } }; f.stopStatesExcept = function(t) { var e = this._anims, i = e.array; for (e.i = 0; e.i < i.length; ++e.i) { var n = i[e.i]; n !== t && this.stopState(n); } }; f.addAnimation = function(t) { -1 === this._anims.array.indexOf(t) && this._anims.push(t); t._setEventTarget(this.animation); }; f.removeAnimation = function(t) { var e = this._anims.array.indexOf(t); if (e >= 0) { this._anims.fastRemoveAt(e); 0 === this._anims.array.length && this.stop(); } else cc.errorID(3908); t.animator = null; }; f.sample = function() { var t = this._anims, e = t.array; for (t.i = 0; t.i < e.length; ++t.i) { e[t.i].sample(); } }; f.stopState = function(t) { t && t.stop(); }; f.pauseState = function(t) { t && t.pause(); }; f.resumeState = function(t) { t && t.resume(); this.isPaused && this.resume(); }; f.setStateTime = function(t, e) { if (void 0 !== e) { if (t) { t.setTime(e); t.sample(); } } else { e = t; for (var i = this._anims.array, n = 0; n < i.length; ++n) { var r = i[n]; r.setTime(e); r.sample(); } } }; f.onStop = function() { var t = this._anims, e = t.array; for (t.i = 0; t.i < e.length; ++t.i) { e[t.i].stop(); } }; f.onPause = function() { for (var t = this._anims.array, e = 0; e < t.length; ++e) { var i = t[e]; i.pause(); i.animator = null; } }; f.onResume = function() { for (var t = this._anims.array, e = 0; e < t.length; ++e) { var i = t[e]; i.animator = this; i.resume(); } }; f._reloadClip = function(t) { d(this.target, t); }; 0; function d(t, e) { var i = e.clip; e.duration = i.duration; e.speed = i.speed; e.wrapMode = i.wrapMode; e.frameRate = i.sample; (e.wrapMode & h.Loop) === h.Loop ? e.repeatCount = Infinity : e.repeatCount = 1; var n = e.curves = i.createCurves(e, t), r = i.events; if (r) for (var s = void 0, o = 0, a = r.length; o < a; o++) { if (!s) { (s = new c()).target = t; n.push(s); } var _ = r[o], f = _.frame / e.duration, d = void 0, m = u(s.ratios, f); if (m >= 0) d = s.events[m]; else { d = new l(); s.ratios.push(f); s.events.push(d); } d.add(_.func, _.params); } } 0; n.exports = _; }), { "../core/utils/binary-search": 288, "./animation-curves": 11, "./playable": 18, "./types": 19 } ], 10: [ (function(i, n, r) { "use strict"; var s = i("./types").WrapMode, o = i("./animation-curves"), a = o.DynamicAnimCurve, c = o.quickFindIndex, l = i("./motion-path-helper").sampleMotionPaths, h = i("../core/utils/binary-search").binarySearchEpsilon, u = cc.Class({ name: "cc.AnimationClip", extends: cc.Asset, properties: { _duration: { default: 0, type: "Float" }, duration: { get: function() { return this._duration; } }, sample: { default: 60 }, speed: { default: 1 }, wrapMode: { default: s.Normal }, curveData: { default: {}, visible: !1 }, events: { default: [], visible: !1 } }, statics: { createWithSpriteFrames: function(t, e) { if (!Array.isArray(t)) { cc.errorID(3905); return null; } var i = new u(); i.sample = e || i.sample; i._duration = t.length / i.sample; for (var n = [], r = 1 / i.sample, s = 0, o = t.length; s < o; s++) n[s] = { frame: s * r, value: t[s] }; i.curveData = { comps: { "cc.Sprite": { spriteFrame: n } } }; return i; } }, onLoad: function() { this._duration = Number.parseFloat(this.duration); this.speed = Number.parseFloat(this.speed); this.wrapMode = Number.parseInt(this.wrapMode); this.frameRate = Number.parseFloat(this.sample); }, createPropCurve: function(i, n, r) { var s = [], o = i instanceof cc.Node && "position" === n, u = new a(); u.target = i; u.prop = n; for (var _ = 0, f = r.length; _ < f; _++) { var d = r[_], m = d.frame / this.duration; u.ratios.push(m); o && s.push(d.motionPath); var p = d.value; u.values.push(p); var v = d.curve; if (v) { if ("string" === ("object" === (e = typeof v) ? t(v) : e)) { u.types.push(v); continue; } if (Array.isArray(v)) { v[0] === v[1] && v[2] === v[3] ? u.types.push(a.Linear) : u.types.push(a.Bezier(v)); continue; } } u.types.push(a.Linear); } o && l(s, u, this.duration, this.sample, i); for (var y = u.ratios, g = void 0, x = void 0, C = !0, b = 1, A = y.length; b < A; b++) { g = y[b] - y[b - 1]; if (1 === b) x = g; else if (Math.abs(g - x) > 1e-6) { C = !1; break; } } u._findFrameIndex = C ? c : h; var S = u.values[0]; void 0 === S || null === S || u._lerp || ("number" === ("object" === (e = typeof S) ? t(S) : e) ? u._lerp = a.prototype._lerpNumber : S instanceof cc.Quat ? u._lerp = a.prototype._lerpQuat : S instanceof cc.Vec2 || S instanceof cc.Vec3 ? u._lerp = a.prototype._lerpVector : S.lerp && (u._lerp = a.prototype._lerpObject)); return u; }, createTargetCurves: function(t, e, i) { var n = e.props, r = e.comps; if (n) for (var s in n) { var o = n[s], a = this.createPropCurve(t, s, o); i.push(a); } if (r) for (var c in r) { var l = t.getComponent(c); if (l) { var h = r[c]; for (var u in h) { var _ = h[u], f = this.createPropCurve(l, u, _); i.push(f); } } } }, createCurves: function(t, e) { var i = this.curveData, n = i.paths, r = []; this.createTargetCurves(e, i, r); for (var s in n) { var o = cc.find(s, e); if (o) { var a = n[s]; this.createTargetCurves(o, a, r); } } return r; } }); cc.AnimationClip = n.exports = u; }), { "../core/utils/binary-search": 288, "./animation-curves": 11, "./motion-path-helper": 17, "./types": 19 } ], 11: [ (function(i, n, r) { "use strict"; var s = i("./bezier").bezierByTime, o = i("../core/utils/binary-search").binarySearchEpsilon, a = i("./types").WrapModeMask, c = i("./types").WrappedInfo; function l(i, n) { if ("string" === ("object" === (e = typeof n) ? t(n) : e)) { var r = cc.easing[n]; r ? i = r(i) : cc.errorID(3906, n); } else Array.isArray(n) && (i = s(n, i)); return i; } var h = cc.Class({ name: "cc.AnimCurve", sample: function(t, e, i) {}, onTimeChangedManually: void 0 }); function u(t, e) { var i = t.length - 1; if (0 === i) return 0; var n = t[0]; if (e < n) return 0; var r = t[i]; if (e > r) return i; var s = (e = (e - n) / (r - n)) / (1 / i), o = 0 | s; return s - o < 1e-6 ? o : o + 1 - s < 1e-6 ? o + 1 : ~(o + 1); } var _ = cc.Class({ name: "cc.DynamicAnimCurve", extends: h, properties: { target: null, prop: "", values: [], ratios: [], types: [] }, _findFrameIndex: o, _lerp: void 0, _lerpNumber: function(t, e, i) { return t + (e - t) * i; }, _lerpObject: function(t, e, i) { return t.lerp(e, i); }, _lerpQuat: (function() { var t = cc.quat(); return function(e, i, n) { return e.lerp(i, n, t); }; })(), _lerpVector: (function() { var t = cc.v3(); return function(e, i, n) { return e.lerp(i, n, t); }; })(), sample: function(t, e, i) { var n = this.values, r = this.ratios, s = r.length; if (0 !== s) { var o, a = this._findFrameIndex(r, e); if (a < 0) if ((a = ~a) <= 0) o = n[0]; else if (a >= s) o = n[s - 1]; else { var c = n[a - 1]; if (this._lerp) { var h = r[a - 1], u = r[a], _ = this.types[a - 1], f = (e - h) / (u - h); _ && (f = l(f, _)); var d = n[a]; o = this._lerp(c, d, f); } else o = c; } else o = n[a]; this.target[this.prop] = o; } } }); _.Linear = null; _.Bezier = function(t) { return t; }; var f = function() { this.events = []; }; f.prototype.add = function(t, e) { this.events.push({ func: t || "", params: e || [] }); }; var d = cc.Class({ name: "cc.EventAnimCurve", extends: h, properties: { target: null, ratios: [], events: [], _wrappedInfo: { default: function() { return new c(); } }, _lastWrappedInfo: null, _ignoreIndex: NaN }, _wrapIterations: function(t) { t - (0 | t) == 0 && (t -= 1); return 0 | t; }, sample: function(t, e, i) { var n = this.ratios.length, r = i.getWrappedInfo(i.time, this._wrappedInfo), s = r.direction, l = o(this.ratios, r.ratio); if (l < 0) { l = ~l - 1; s < 0 && (l += 1); } this._ignoreIndex !== l && (this._ignoreIndex = NaN); r.frameIndex = l; if (this._lastWrappedInfo) { var h = i.wrapMode, u = this._wrapIterations(r.iterations), _ = this._lastWrappedInfo, f = this._wrapIterations(_.iterations), d = _.frameIndex, m = _.direction, p = -1 !== f && u !== f; if (d === l && p && 1 === n) this._fireEvent(0); else if (d !== l || p) { s = m; do { if (d !== l) { if (-1 === s && 0 === d && l > 0) { (h & a.PingPong) === a.PingPong ? s *= -1 : d = n; f++; } else if (1 === s && d === n - 1 && l < n - 1) { (h & a.PingPong) === a.PingPong ? s *= -1 : d = -1; f++; } if (d === l) break; if (f > u) break; } d += s; cc.director.getAnimationManager().pushDelayEvent(this, "_fireEvent", [ d ]); } while (d !== l && d > -1 && d < n); } this._lastWrappedInfo.set(r); } else { this._fireEvent(l); this._lastWrappedInfo = new c(r); } }, _fireEvent: function(t) { if (!(t < 0 || t >= this.events.length || this._ignoreIndex === t)) { var e = this.events[t].events; if (this.target.isValid) for (var i = this.target._components, n = 0; n < e.length; n++) for (var r = e[n], s = r.func, o = 0; o < i.length; o++) { var a = i[o], c = a[s]; c && c.apply(a, r.params); } } }, onTimeChangedManually: function(t, e) { this._lastWrappedInfo = null; this._ignoreIndex = NaN; var i = e.getWrappedInfo(t, this._wrappedInfo), n = i.direction, r = o(this.ratios, i.ratio); if (r < 0) { r = ~r - 1; n < 0 && (r += 1); this._ignoreIndex = r; } } }); 0; n.exports = { AnimCurve: h, DynamicAnimCurve: _, EventAnimCurve: d, EventInfo: f, computeRatioByType: l, quickFindIndex: u }; }), { "../core/utils/binary-search": 288, "./bezier": 14, "./types": 19 } ], 12: [ (function(t, e, i) { "use strict"; var n = cc.js, r = cc.Class({ ctor: function() { this._anims = new n.array.MutableForwardIterator([]); this._delayEvents = []; cc.director._scheduler && cc.director._scheduler.enableForTarget(this); }, update: function(t) { var e = this._anims, i = e.array; for (e.i = 0; e.i < i.length; ++e.i) { var n = i[e.i]; n._isPlaying && !n._isPaused && n.update(t); } for (var r = this._delayEvents, s = 0; s < r.length; s++) { var o = r[s]; o.target[o.func].apply(o.target, o.args); } r.length = 0; }, destruct: function() {}, addAnimation: function(t) { -1 === this._anims.array.indexOf(t) && this._anims.push(t); }, removeAnimation: function(t) { var e = this._anims.array.indexOf(t); e >= 0 ? this._anims.fastRemoveAt(e) : cc.errorID(3907); }, pushDelayEvent: function(t, e, i) { this._delayEvents.push({ target: t, func: e, args: i }); } }); cc.AnimationManager = e.exports = r; }), {} ], 13: [ (function(t, e, i) { "use strict"; var n = cc.js, r = t("./playable"), s = t("./types"), o = s.WrappedInfo, a = s.WrapMode, c = s.WrapModeMask; function l(t, e) { r.call(this); this._currentFramePlayed = !1; this._delay = 0; this._delayTime = 0; this._wrappedInfo = new o(); this._lastWrappedInfo = null; this._process = u; this._clip = t; this._name = e || t && t.name; this.animator = null; this.curves = []; this.delay = 0; this.repeatCount = 1; this.duration = 1; this.speed = 1; this.wrapMode = a.Normal; this.time = 0; this._target = null; this._lastframeEventOn = !1; this.emit = function() { for (var t = new Array(arguments.length), e = 0, i = t.length; e < i; e++) t[e] = arguments[e]; cc.director.getAnimationManager().pushDelayEvent(this, "_emit", t); }; } n.extend(l, r); var h = l.prototype; h._emit = function(t, e) { this._target && this._target.isValid && this._target.emit(t, t, e); }; h.on = function(t, e, i) { if (this._target && this._target.isValid) { "lastframe" === t && (this._lastframeEventOn = !0); return this._target.on(t, e, i); } return null; }; h.once = function(t, e, i) { if (this._target && this._target.isValid) { "lastframe" === t && (this._lastframeEventOn = !0); var n = this; return this._target.once(t, (function(t) { e.call(i, t); n._lastframeEventOn = !1; })); } return null; }; h.off = function(t, e, i) { if (this._target && this._target.isValid) { "lastframe" === t && (this._target.hasEventListener(t) || (this._lastframeEventOn = !1)); this._target.off(t, e, i); } }; h._setEventTarget = function(t) { this._target = t; }; h.onPlay = function() { this.setTime(0); this._delayTime = this._delay; cc.director.getAnimationManager().addAnimation(this); this.animator && this.animator.addAnimation(this); this.emit("play", this); }; h.onStop = function() { this.isPaused || cc.director.getAnimationManager().removeAnimation(this); this.animator && this.animator.removeAnimation(this); this.emit("stop", this); }; h.onResume = function() { cc.director.getAnimationManager().addAnimation(this); this.emit("resume", this); }; h.onPause = function() { cc.director.getAnimationManager().removeAnimation(this); this.emit("pause", this); }; h.setTime = function(t) { this._currentFramePlayed = !1; this.time = t || 0; for (var e = this.curves, i = 0, n = e.length; i < n; i++) { var r = e[i]; r.onTimeChangedManually && r.onTimeChangedManually(t, this); } }; function u() { var t = this.sample(); if (this._lastframeEventOn) { var e; e = this._lastWrappedInfo ? this._lastWrappedInfo : this._lastWrappedInfo = new o(t); this.repeatCount > 1 && (0 | t.iterations) > (0 | e.iterations) && this.emit("lastframe", this); e.set(t); } if (t.stopped) { this.stop(); this.emit("finished", this); } } function _() { var t = this.time, e = this.duration; t > e ? 0 === (t %= e) && (t = e) : t < 0 && 0 !== (t %= e) && (t += e); for (var i = t / e, n = this.curves, r = 0, s = n.length; r < s; r++) { n[r].sample(t, i, this); } if (this._lastframeEventOn) { void 0 === this._lastIterations && (this._lastIterations = i); (this.time > 0 && this._lastIterations > i || this.time < 0 && this._lastIterations < i) && this.emit("lastframe", this); this._lastIterations = i; } } h.update = function(t) { if (this._delayTime > 0) { this._delayTime -= t; if (this._delayTime > 0) return; } this._currentFramePlayed ? this.time += t * this.speed : this._currentFramePlayed = !0; this._process(); }; h._needRevers = function(t) { var e = this.wrapMode, i = !1; if ((e & c.PingPong) === c.PingPong) { t - (0 | t) == 0 && t > 0 && (t -= 1); 1 & t && (i = !i); } (e & c.Reverse) === c.Reverse && (i = !i); return i; }; h.getWrappedInfo = function(t, e) { e = e || new o(); var i = !1, n = this.duration, r = this.repeatCount, s = t > 0 ? t / n : -t / n; if (s >= r) { s = r; i = !0; var a = r - (0 | r); 0 === a && (a = 1); t = a * n * (t > 0 ? 1 : -1); } if (t > n) { var l = t % n; t = 0 === l ? n : l; } else t < 0 && 0 !== (t %= n) && (t += n); var h = !1, u = this._wrapMode & c.ShouldWrap; u && (h = this._needRevers(s)); var _ = h ? -1 : 1; this.speed < 0 && (_ *= -1); u && h && (t = n - t); e.ratio = t / n; e.time = t; e.direction = _; e.stopped = i; e.iterations = s; return e; }; h.sample = function() { for (var t = this.getWrappedInfo(this.time, this._wrappedInfo), e = this.curves, i = 0, n = e.length; i < n; i++) { e[i].sample(t.time, t.ratio, this); } return t; }; n.get(h, "clip", (function() { return this._clip; })); n.get(h, "name", (function() { return this._name; })); n.obsolete(h, "AnimationState.length", "duration"); n.getset(h, "curveLoaded", (function() { return this.curves.length > 0; }), (function() { this.curves.length = 0; })); n.getset(h, "wrapMode", (function() { return this._wrapMode; }), (function(t) { this._wrapMode = t; 0; this.time = 0; t & c.Loop ? this.repeatCount = Infinity : this.repeatCount = 1; })); n.getset(h, "repeatCount", (function() { return this._repeatCount; }), (function(t) { this._repeatCount = t; var e = this._wrapMode & c.ShouldWrap, i = (this.wrapMode & c.Reverse) === c.Reverse; this._process = Infinity !== t || e || i ? u : _; })); n.getset(h, "delay", (function() { return this._delay; }), (function(t) { this._delayTime = this._delay = t; })); cc.AnimationState = e.exports = l; }), { "./playable": 18, "./types": 19 } ], 14: [ (function(t, e, i) { "use strict"; function n(t, e, i, n, r) { var s = 1 - r; return s * (s * (t + (3 * e - t) * r) + 3 * i * r * r) + n * r * r * r; } var r = Math.cos, s = Math.acos, o = Math.max, a = 2 * Math.PI, c = Math.sqrt; function l(t) { return t < 0 ? -Math.pow(-t, 1 / 3) : Math.pow(t, 1 / 3); } function h(t, e) { var i, n, h, u, _ = e - 0, f = e - t[0], d = 3 * _, m = 3 * f, p = 3 * (e - t[2]), v = 1 / (-_ + m - p + (e - 1)), y = (d - 6 * f + p) * v, g = y * (1 / 3), x = (-d + m) * v, C = 1 / 3 * (3 * x - y * y), b = C * (1 / 3), A = (2 * y * y * y - 9 * y * x + 27 * (_ * v)) / 27, S = A / 2, w = S * S + b * b * b; if (w < 0) { var T = 1 / 3 * -C, E = c(T * T * T), M = -A / (2 * E), B = s(M < -1 ? -1 : M > 1 ? 1 : M), D = 2 * l(E); n = D * r(B * (1 / 3)) - g; h = D * r((B + a) * (1 / 3)) - g; u = D * r((B + 2 * a) * (1 / 3)) - g; return 0 <= n && n <= 1 ? 0 <= h && h <= 1 ? 0 <= u && u <= 1 ? o(n, h, u) : o(n, h) : 0 <= u && u <= 1 ? o(n, u) : n : 0 <= h && h <= 1 ? 0 <= u && u <= 1 ? o(h, u) : h : u; } if (0 === w) { h = -(i = S < 0 ? l(-S) : -l(S)) - g; return 0 <= (n = 2 * i - g) && n <= 1 ? 0 <= h && h <= 1 ? o(n, h) : n : h; } var I = c(w); return n = (i = l(-S + I)) - l(S + I) - g; } function u(t, e) { var i = h(t, e), n = t[1]; return ((1 - i) * (n + (t[3] - n) * i) * 3 + i * i) * i; } 0; e.exports = { bezier: n, bezierByTime: u }; }), {} ], 15: [ (function(t, e, i) { "use strict"; var n = { constant: function() { return 0; }, linear: function(t) { return t; }, quadIn: function(t) { return t * t; }, quadOut: function(t) { return t * (2 - t); }, quadInOut: function(t) { return (t *= 2) < 1 ? .5 * t * t : -.5 * (--t * (t - 2) - 1); }, cubicIn: function(t) { return t * t * t; }, cubicOut: function(t) { return --t * t * t + 1; }, cubicInOut: function(t) { return (t *= 2) < 1 ? .5 * t * t * t : .5 * ((t -= 2) * t * t + 2); }, quartIn: function(t) { return t * t * t * t; }, quartOut: function(t) { return 1 - --t * t * t * t; }, quartInOut: function(t) { return (t *= 2) < 1 ? .5 * t * t * t * t : -.5 * ((t -= 2) * t * t * t - 2); }, quintIn: function(t) { return t * t * t * t * t; }, quintOut: function(t) { return --t * t * t * t * t + 1; }, quintInOut: function(t) { return (t *= 2) < 1 ? .5 * t * t * t * t * t : .5 * ((t -= 2) * t * t * t * t + 2); }, sineIn: function(t) { return 1 - Math.cos(t * Math.PI / 2); }, sineOut: function(t) { return Math.sin(t * Math.PI / 2); }, sineInOut: function(t) { return .5 * (1 - Math.cos(Math.PI * t)); }, expoIn: function(t) { return 0 === t ? 0 : Math.pow(1024, t - 1); }, expoOut: function(t) { return 1 === t ? 1 : 1 - Math.pow(2, -10 * t); }, expoInOut: function(t) { return 0 === t ? 0 : 1 === t ? 1 : (t *= 2) < 1 ? .5 * Math.pow(1024, t - 1) : .5 * (2 - Math.pow(2, -10 * (t - 1))); }, circIn: function(t) { return 1 - Math.sqrt(1 - t * t); }, circOut: function(t) { return Math.sqrt(1 - --t * t); }, circInOut: function(t) { return (t *= 2) < 1 ? -.5 * (Math.sqrt(1 - t * t) - 1) : .5 * (Math.sqrt(1 - (t -= 2) * t) + 1); }, elasticIn: function(t) { var e, i = .1; if (0 === t) return 0; if (1 === t) return 1; if (!i || i < 1) { i = 1; e = .1; } else e = .4 * Math.asin(1 / i) / (2 * Math.PI); return -i * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - e) * (2 * Math.PI) / .4); }, elasticOut: function(t) { var e, i = .1; if (0 === t) return 0; if (1 === t) return 1; if (!i || i < 1) { i = 1; e = .1; } else e = .4 * Math.asin(1 / i) / (2 * Math.PI); return i * Math.pow(2, -10 * t) * Math.sin((t - e) * (2 * Math.PI) / .4) + 1; }, elasticInOut: function(t) { var e, i = .1; if (0 === t) return 0; if (1 === t) return 1; if (!i || i < 1) { i = 1; e = .1; } else e = .4 * Math.asin(1 / i) / (2 * Math.PI); return (t *= 2) < 1 ? i * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - e) * (2 * Math.PI) / .4) * -.5 : i * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - e) * (2 * Math.PI) / .4) * .5 + 1; }, backIn: function(t) { var e = 1.70158; return t * t * ((e + 1) * t - e); }, backOut: function(t) { var e = 1.70158; return --t * t * ((e + 1) * t + e) + 1; }, backInOut: function(t) { var e = 2.5949095; return (t *= 2) < 1 ? t * t * ((e + 1) * t - e) * .5 : .5 * ((t -= 2) * t * ((e + 1) * t + e) + 2); }, bounceIn: function(t) { return 1 - n.bounceOut(1 - t); }, bounceOut: function(t) { return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375; }, bounceInOut: function(t) { return t < .5 ? .5 * n.bounceIn(2 * t) : .5 * n.bounceOut(2 * t - 1) + .5; }, smooth: function(t) { return t <= 0 ? 0 : t >= 1 ? 1 : t * t * (3 - 2 * t); }, fade: function(t) { return t <= 0 ? 0 : t >= 1 ? 1 : t * t * t * (t * (6 * t - 15) + 10); } }; function r(t, e) { return function(i) { return i < .5 ? e(2 * i) / 2 : t(2 * i - 1) / 2 + .5; }; } n.quadOutIn = r(n.quadIn, n.quadOut); n.cubicOutIn = r(n.cubicIn, n.cubicOut); n.quartOutIn = r(n.quartIn, n.quartOut); n.quintOutIn = r(n.quintIn, n.quintOut); n.sineOutIn = r(n.sineIn, n.sineOut); n.expoOutIn = r(n.expoIn, n.expoOut); n.circOutIn = r(n.circIn, n.circOut); n.backOutIn = r(n.backIn, n.backOut); n.bounceIn = function(t) { return 1 - n.bounceOut(1 - t); }; n.bounceInOut = function(t) { return t < .5 ? .5 * n.bounceIn(2 * t) : .5 * n.bounceOut(2 * t - 1) + .5; }; n.bounceOutIn = r(n.bounceIn, n.bounceOut); cc.easing = e.exports = n; }), {} ], 16: [ (function(t, e, i) { "use strict"; t("./bezier"); t("./easing"); t("./types"); t("./motion-path-helper"); t("./animation-curves"); t("./animation-clip"); t("./animation-manager"); t("./animation-state"); t("./animation-animator"); }), { "./animation-animator": 9, "./animation-clip": 10, "./animation-curves": 11, "./animation-manager": 12, "./animation-state": 13, "./bezier": 14, "./easing": 15, "./motion-path-helper": 17, "./types": 19 } ], 17: [ (function(t, e, i) { "use strict"; var n = t("./animation-curves").DynamicAnimCurve, r = t("./animation-curves").computeRatioByType, s = t("./bezier").bezier, o = t("../core/utils/binary-search").binarySearchEpsilon, a = cc.v2; function c(t) { this.points = t || []; this.beziers = []; this.ratios = []; this.progresses = []; this.length = 0; this.computeBeziers(); } c.prototype.computeBeziers = function() { this.beziers.length = 0; this.ratios.length = 0; this.progresses.length = 0; this.length = 0; for (var t, e = 1; e < this.points.length; e++) { var i = this.points[e - 1], n = this.points[e]; (t = new l()).start = i.pos; t.startCtrlPoint = i.out; t.end = n.pos; t.endCtrlPoint = n.in; this.beziers.push(t); this.length += t.getLength(); } var r = 0; for (e = 0; e < this.beziers.length; e++) { t = this.beziers[e]; this.ratios[e] = t.getLength() / this.length; this.progresses[e] = r += this.ratios[e]; } return this.beziers; }; function l() { this.start = a(); this.end = a(); this.startCtrlPoint = a(); this.endCtrlPoint = a(); } l.prototype.getPointAt = function(t) { var e = this.getUtoTmapping(t); return this.getPoint(e); }; l.prototype.getPoint = function(t) { var e = s(this.start.x, this.startCtrlPoint.x, this.endCtrlPoint.x, this.end.x, t), i = s(this.start.y, this.startCtrlPoint.y, this.endCtrlPoint.y, this.end.y, t); return new a(e, i); }; l.prototype.getLength = function() { var t = this.getLengths(); return t[t.length - 1]; }; l.prototype.getLengths = function(t) { t || (t = this.__arcLengthDivisions ? this.__arcLengthDivisions : 200); if (this.cacheArcLengths && this.cacheArcLengths.length === t + 1) return this.cacheArcLengths; var e, i, n = [], r = this.getPoint(0), s = a(), o = 0; n.push(0); for (i = 1; i <= t; i++) { e = this.getPoint(i / t); s.x = r.x - e.x; s.y = r.y - e.y; o += s.mag(); n.push(o); r = e; } this.cacheArcLengths = n; return n; }; l.prototype.getUtoTmapping = function(t, e) { var i, n = this.getLengths(), r = 0, s = n.length; i = e || t * n[s - 1]; for (var o, a = 0, c = s - 1; a <= c; ) if ((o = n[r = Math.floor(a + (c - a) / 2)] - i) < 0) a = r + 1; else { if (!(o > 0)) { c = r; break; } c = r - 1; } if (n[r = c] === i) { return r / (s - 1); } var l = n[r]; return (r + (i - l) / (n[r + 1] - l)) / (s - 1); }; function h(t) { if (!Array.isArray(t)) return !1; for (var e = 0, i = t.length; e < i; e++) { var n = t[e]; if (!Array.isArray(n) || 6 !== n.length) return !1; } return !0; } function u(t, e, i, s, l) { function u(t) { return t instanceof cc.Vec2 ? { in: t, pos: t, out: t } : Array.isArray(t) && 6 === t.length ? { in: a(t[2], t[3]), pos: a(t[0], t[1]), out: a(t[4], t[5]) } : { in: cc.Vec2.ZERO, pos: cc.Vec2.ZERO, out: cc.Vec2.ZERO }; } var _ = e.values = e.values.map((function(t) { Array.isArray(t) && (t = 2 === t.length ? cc.v2(t[0], t[1]) : cc.v3(t[0], t[1], t[2])); return t; })); if (0 !== t.length && 0 !== _.length) { for (var f = !1, d = 0; d < t.length; d++) { var m = t[d]; if (m && !h(m)) { cc.errorID(3904, l ? l.name : "", "position", d); m = null; } if (m && m.length > 0) { f = !0; break; } } if (f && 1 !== _.length) { for (var p = e.types, v = e.ratios, y = e.values = [], g = e.types = [], x = e.ratios = [], C = 0, b = n.Linear, A = 0, S = t.length; A < S - 1; A++) { var w, T = t[A], E = v[A], M = v[A + 1] - E, B = _[A], D = _[A + 1], I = p[A], P = [], R = C / M, L = 1 / (M * i * s); if (T && T.length > 0) { var F = []; F.push(u(B)); for (var O = 0, V = T.length; O < V; O++) { var N = u(T[O]); F.push(N); } F.push(u(D)); var k = new c(F); k.computeBeziers(); for (var z = k.progresses; 1 - R > 1e-6; ) { var G, U, j, W; if ((w = r(w = R, I)) < 0) { W = (0 - w) * (U = k.beziers[0]).getLength(); j = U.start.sub(U.endCtrlPoint).normalize(); G = U.start.add(j.mul(W)); } else if (w > 1) { W = (w - 1) * (U = k.beziers[k.beziers.length - 1]).getLength(); j = U.end.sub(U.startCtrlPoint).normalize(); G = U.end.add(j.mul(W)); } else { var H = o(z, w); H < 0 && (H = ~H); w -= H > 0 ? z[H - 1] : 0; w /= k.ratios[H]; G = k.beziers[H].getPointAt(w); } P.push(G); R += L; } } else for (;1 - R > 1e-6; ) { w = r(w = R, I); P.push(B.lerp(D, w)); R += L; } b = "constant" === I ? I : n.Linear; for (O = 0, V = P.length; O < V; O++) { var q = E + C + L * O * M; X(P[O], b, q); } C = Math.abs(R - 1) > 1e-6 ? (R - 1) * M : 0; } v[v.length - 1] !== x[x.length - 1] && X(_[_.length - 1], b, v[v.length - 1]); } } function X(t, e, i) { y.push(t); g.push(e); x.push(i); } } 0; e.exports = { sampleMotionPaths: u, Curve: c, Bezier: l }; }), { "../core/utils/binary-search": 288, "./animation-curves": 11, "./bezier": 14 } ], 18: [ (function(t, e, i) { "use strict"; var n = cc.js, r = t("../core/CCDebug"); function s() { this._isPlaying = !1; this._isPaused = !1; this._stepOnce = !1; } var o = s.prototype; n.get(o, "isPlaying", (function() { return this._isPlaying; }), !0); n.get(o, "isPaused", (function() { return this._isPaused; }), !0); var a = function() {}; o.onPlay = a; o.onPause = a; o.onResume = a; o.onStop = a; o.onError = a; o.play = function() { if (this._isPlaying) if (this._isPaused) { this._isPaused = !1; this.onResume(); } else this.onError(r.getError(3912)); else { this._isPlaying = !0; this.onPlay(); } }; o.stop = function() { if (this._isPlaying) { this._isPlaying = !1; this.onStop(); this._isPaused = !1; } }; o.pause = function() { if (this._isPlaying && !this._isPaused) { this._isPaused = !0; this.onPause(); } }; o.resume = function() { if (this._isPlaying && this._isPaused) { this._isPaused = !1; this.onResume(); } }; o.step = function() { this.pause(); this._stepOnce = !0; this._isPlaying || this.play(); }; e.exports = s; }), { "../core/CCDebug": 49 } ], 19: [ (function(t, e, i) { "use strict"; var n = { Loop: 2, ShouldWrap: 4, PingPong: 22, Reverse: 36 }, r = cc.Enum({ Default: 0, Normal: 1, Reverse: n.Reverse, Loop: n.Loop, LoopReverse: n.Loop | n.Reverse, PingPong: n.PingPong, PingPongReverse: n.PingPong | n.Reverse }); cc.WrapMode = r; function s(t) { if (t) this.set(t); else { this.ratio = 0; this.time = 0; this.direction = 1; this.stopped = !0; this.iterations = 0; this.frameIndex = void 0; } } s.prototype.set = function(t) { this.ratio = t.ratio; this.time = t.time; this.direction = t.direction; this.stopped = t.stopped; this.iterations = t.iterations; this.frameIndex = t.frameIndex; }; e.exports = { WrapModeMask: n, WrapMode: r, WrappedInfo: s }; }), {} ], 20: [ (function(t, e, i) { "use strict"; var n = t("../core/event/event-target"), r = t("../core/platform/CCSys"), s = t("../core/assets/CCAudioClip").LoadMode, o = !1, a = [], c = function t(e) { n.call(this); this._src = e; this._element = null; this.id = 0; this._volume = 1; this._loop = !1; this._nextTime = 0; this._state = t.State.INITIALZING; this._onended = function() { this._state = t.State.STOPPED; this.emit("ended"); }.bind(this); }; cc.js.extend(c, n); c.State = { ERROR: -1, INITIALZING: 0, PLAYING: 1, PAUSED: 2, STOPPED: 3 }; (function(t) { t._bindEnded = function(t) { t = t || this._onended; var e = this._element; this._src && e instanceof HTMLAudioElement ? e.addEventListener("ended", t) : e.onended = t; }; t._unbindEnded = function() { var t = this._element; t instanceof HTMLAudioElement ? t.removeEventListener("ended", this._onended) : t && (t.onended = null); }; t._onLoaded = function() { var t = this._src._nativeAsset; if (t instanceof HTMLAudioElement) { this._element || (this._element = document.createElement("audio")); this._element.src = t.src; } else this._element = new h(t, this); this.setVolume(this._volume); this.setLoop(this._loop); 0 !== this._nextTime && this.setCurrentTime(this._nextTime); this.getState() === c.State.PLAYING ? this.play() : this._state = c.State.INITIALZING; }; t.play = function() { this._state = c.State.PLAYING; if (this._element) { this._bindEnded(); this._element.play(); this._src && this._src.loadMode === s.DOM_AUDIO && this._element.paused && a.push({ instance: this, offset: 0, audio: this._element }); if (!o) { o = !0; var t = "ontouchend" in window ? "touchend" : "mousedown"; cc.game.canvas.addEventListener(t, (function() { for (var t = void 0; t = a.pop(); ) t.audio.play(t.offset); })); } } }; t.destroy = function() { 0; this._element = null; }; t.pause = function() { if (this._element && this.getState() === c.State.PLAYING) { this._unbindEnded(); this._element.pause(); this._state = c.State.PAUSED; } }; t.resume = function() { if (this._element && this.getState() === c.State.PAUSED) { this._bindEnded(); this._element.play(); this._state = c.State.PLAYING; } }; t.stop = function() { if (this._element) { this._element.pause(); try { this._element.currentTime = 0; } catch (t) {} for (var t = 0; t < a.length; t++) if (a[t].instance === this) { a.splice(t, 1); break; } this._unbindEnded(); this.emit("stop"); this._state = c.State.STOPPED; } }; t.setLoop = function(t) { this._loop = t; this._element && (this._element.loop = t); }; t.getLoop = function() { return this._loop; }; t.setVolume = function(t) { this._volume = t; this._element && (this._element.volume = t); }; t.getVolume = function() { return this._volume; }; t.setCurrentTime = function(t) { if (this._element) { this._nextTime = 0; this._unbindEnded(); this._bindEnded(function() { this._bindEnded(); }.bind(this)); try { this._element.currentTime = t; } catch (i) { var e = this._element; if (e.addEventListener) { e.addEventListener("loadedmetadata", (function i() { e.removeEventListener("loadedmetadata", i); e.currentTime = t; })); } } } else this._nextTime = t; }; t.getCurrentTime = function() { return this._element ? this._element.currentTime : 0; }; t.getDuration = function() { return this._element ? this._element.duration : 0; }; t.getState = function() { var t = this._element; t && (c.State.PLAYING === this._state && t.paused ? this._state = c.State.STOPPED : c.State.STOPPED !== this._state || t.paused || (this._state = c.State.PLAYING)); return this._state; }; Object.defineProperty(t, "src", { get: function() { return this._src; }, set: function(t) { this._unbindEnded(); if (t) { this._src = t; if (t.loaded) this._onLoaded(); else { var e = this; t.once("load", (function() { t === e._src && e._onLoaded(); })); cc.loader.load({ url: t.nativeUrl, skips: [ "Loader" ] }, (function(e, i) { e ? cc.error(e) : t.loaded || (t._nativeAsset = i); })); } } else { this._src = null; this._element instanceof HTMLAudioElement ? this._element.src = "" : this._element = null; this._state = c.State.INITIALZING; } return t; }, enumerable: !0, configurable: !0 }); Object.defineProperty(t, "paused", { get: function() { return !this._element || this._element.paused; }, enumerable: !0, configurable: !0 }); })(c.prototype); var l = void 0; l = cc.sys.browserType === cc.sys.BROWSER_TYPE_EDGE || cc.sys.browserType === cc.sys.BROWSER_TYPE_BAIDU || cc.sys.browserType === cc.sys.BROWSER_TYPE_UC ? .01 : 0; var h = function(t, e) { this._audio = e; this._context = r.__audioSupport.context; this._buffer = t; this._gainObj = this._context.createGain(); this.volume = 1; this._gainObj.connect(this._context.destination); this._loop = !1; this._startTime = -1; this._currentSource = null; this.playedLength = 0; this._currentTimer = null; this._endCallback = function() { this.onended && this.onended(this); }.bind(this); }; (function(t) { t.play = function(t) { if (this._currentSource && !this.paused) { this._currentSource.onended = null; this._currentSource.stop(0); this.playedLength = 0; } var e = this._context.createBufferSource(); e.buffer = this._buffer; e.connect(this._gainObj); e.loop = this._loop; this._startTime = this._context.currentTime; (t = t || this.playedLength) && (this._startTime -= t); var i = this._buffer.duration, n = t, r = void 0; if (this._loop) e.start ? e.start(0, n) : e.notoGrainOn ? e.noteGrainOn(0, n) : e.noteOn(0, n); else { r = i - t; e.start ? e.start(0, n, r) : e.noteGrainOn ? e.noteGrainOn(0, n, r) : e.noteOn(0, n, r); } this._currentSource = e; e.onended = this._endCallback; if ((!e.context.state || "suspended" === e.context.state) && 0 === this._context.currentTime) { var s = this; clearTimeout(this._currentTimer); this._currentTimer = setTimeout((function() { 0 === s._context.currentTime && a.push({ instance: s._audio, offset: t, audio: s }); }), 10); } }; t.pause = function() { clearTimeout(this._currentTimer); if (!this.paused) { this.playedLength = this._context.currentTime - this._startTime; this.playedLength %= this._buffer.duration; var t = this._currentSource; this._currentSource = null; this._startTime = -1; t && t.stop(0); } }; Object.defineProperty(t, "paused", { get: function() { return (!this._currentSource || !this._currentSource.loop) && (-1 === this._startTime || this._context.currentTime - this._startTime > this._buffer.duration); }, enumerable: !0, configurable: !0 }); Object.defineProperty(t, "loop", { get: function() { return this._loop; }, set: function(t) { this._currentSource && (this._currentSource.loop = t); return this._loop = t; }, enumerable: !0, configurable: !0 }); Object.defineProperty(t, "volume", { get: function() { return this._volume; }, set: function(t) { this._volume = t; if (this._gainObj.gain.setTargetAtTime) try { this._gainObj.gain.setTargetAtTime(t, this._context.currentTime, l); } catch (e) { this._gainObj.gain.setTargetAtTime(t, this._context.currentTime, .01); } else this._gainObj.gain.value = t; if (r.os === r.OS_IOS && !this.paused && this._currentSource) { this._currentSource.onended = null; this.pause(); this.play(); } }, enumerable: !0, configurable: !0 }); Object.defineProperty(t, "currentTime", { get: function() { if (this.paused) return this.playedLength; this.playedLength = this._context.currentTime - this._startTime; this.playedLength %= this._buffer.duration; return this.playedLength; }, set: function(t) { if (this.paused) this.playedLength = t; else { this.pause(); this.playedLength = t; this.play(); } return t; }, enumerable: !0, configurable: !0 }); Object.defineProperty(t, "duration", { get: function() { return this._buffer.duration; }, enumerable: !0, configurable: !0 }); })(h.prototype); e.exports = cc.Audio = c; }), { "../core/assets/CCAudioClip": 57, "../core/event/event-target": 133, "../core/platform/CCSys": 210 } ], 21: [ (function(i, n, r) { "use strict"; var s = i("./CCAudio"), o = i("../core/assets/CCAudioClip"), a = cc.js, c = 0, l = a.createMap(!0), h = {}, u = [], _ = function(t) { t._finishCallback = null; t.off("ended"); t.off("stop"); t.src = null; u.includes(t) || (u.length < 32 ? u.push(t) : t.destroy()); }, f = function(t) { var e = c++, i = h[t]; i || (i = h[t] = []); if (p._maxAudioInstance <= i.length) { var n = i.shift(); d(n).stop(); } var r = u.pop() || new s(), o = function() { if (d(this.id)) { delete l[this.id]; var t = i.indexOf(this.id); cc.js.array.fastRemoveAt(i, t); } _(this); }; r.on("ended", (function() { this._finishCallback && this._finishCallback(); o.call(this); }), r); r.on("stop", o, r); r.id = e; l[e] = r; i.push(e); return r; }, d = function(t) { return l[t]; }, m = function(i) { void 0 === i ? i = 1 : "string" === ("object" === (e = typeof i) ? t(i) : e) && (i = Number.parseFloat(i)); return i; }, p = { AudioState: s.State, _maxWebAudioSize: 2097152, _maxAudioInstance: 24, _id2audio: l, play: function(i, n, r) { var s, a = i; if ("string" === ("object" === (e = typeof i) ? t(i) : e)) { cc.warnID(8401, "cc.audioEngine", "cc.AudioClip", "AudioClip", "cc.AudioClip", "audio"); s = f(a = i); o._loadByUrl(a, (function(t, e) { e && (s.src = e); })); } else { if (!i) return; a = i.nativeUrl; (s = f(a)).src = i; } s.setLoop(n || !1); r = m(r); s.setVolume(r); s.play(); return s.id; }, setLoop: function(t, e) { var i = d(t); i && i.setLoop && i.setLoop(e); }, isLoop: function(t) { var e = d(t); return !(!e || !e.getLoop) && e.getLoop(); }, setVolume: function(t, e) { var i = d(t); i && i.setVolume(e); }, getVolume: function(t) { var e = d(t); return e ? e.getVolume() : 1; }, setCurrentTime: function(t, e) { var i = d(t); if (i) { i.setCurrentTime(e); return !0; } return !1; }, getCurrentTime: function(t) { var e = d(t); return e ? e.getCurrentTime() : 0; }, getDuration: function(t) { var e = d(t); return e ? e.getDuration() : 0; }, getState: function(t) { var e = d(t); return e ? e.getState() : this.AudioState.ERROR; }, setFinishCallback: function(t, e) { var i = d(t); i && (i._finishCallback = e); }, pause: function(t) { var e = d(t); if (e) { e.pause(); return !0; } return !1; }, _pauseIDCache: [], pauseAll: function() { for (var t in l) { var e = l[t]; if (e.getState() === s.State.PLAYING) { this._pauseIDCache.push(t); e.pause(); } } }, resume: function(t) { var e = d(t); e && e.resume(); }, resumeAll: function() { for (var t = 0; t < this._pauseIDCache.length; ++t) { var e = this._pauseIDCache[t], i = d(e); i && i.resume(); } this._pauseIDCache.length = 0; }, stop: function(t) { var e = d(t); if (e) { e.stop(); return !0; } return !1; }, stopAll: function() { for (var t in l) { var e = l[t]; e && e.stop(); } }, setMaxAudioInstance: function(t) { this._maxAudioInstance = t; }, getMaxAudioInstance: function() { return this._maxAudioInstance; }, uncache: function(i) { var n = i; if ("string" === ("object" === (e = typeof i) ? t(i) : e)) { cc.warnID(8401, "cc.audioEngine", "cc.AudioClip", "AudioClip", "cc.AudioClip", "audio"); n = i; } else { if (!i) return; n = i.nativeUrl; } var r = h[n]; if (r) for (;r.length > 0; ) { var s = r.pop(), o = l[s]; if (o) { o.stop(); delete l[s]; } } }, uncacheAll: function() { this.stopAll(); var t = void 0; for (var e in l) (t = l[e]) && t.destroy(); for (;t = u.pop(); ) t.destroy(); l = a.createMap(!0); h = {}; }, getProfile: function(t) {}, preload: function(t, e) { 0; cc.loader.load(t, e && function(t) { t || e(); }); }, setMaxWebAudioSize: function(t) { this._maxWebAudioSize = 1024 * t; }, _breakCache: null, _break: function() { this._breakCache = []; for (var t in l) { var e = l[t]; if (e.getState() === s.State.PLAYING) { this._breakCache.push(t); e.pause(); } } }, _restore: function() { if (this._breakCache) { for (;this._breakCache.length > 0; ) { var t = this._breakCache.pop(), e = d(t); e && e.resume && e.resume(); } this._breakCache = null; } }, _music: { id: -1, loop: !1, volume: 1 }, _effect: { volume: 1, pauseCache: [] }, playMusic: function(t, e) { var i = this._music; this.stop(i.id); i.id = this.play(t, e, i.volume); i.loop = e; return i.id; }, stopMusic: function() { this.stop(this._music.id); }, pauseMusic: function() { this.pause(this._music.id); return this._music.id; }, resumeMusic: function() { this.resume(this._music.id); return this._music.id; }, getMusicVolume: function() { return this._music.volume; }, setMusicVolume: function(t) { t = m(t); var e = this._music; e.volume = t; this.setVolume(e.id, e.volume); return e.volume; }, isMusicPlaying: function() { return this.getState(this._music.id) === this.AudioState.PLAYING; }, playEffect: function(t, e) { return this.play(t, e || !1, this._effect.volume); }, setEffectsVolume: function(t) { t = m(t); var e = this._music.id; this._effect.volume = t; for (var i in l) { var n = l[i]; n && n.id !== e && p.setVolume(i, t); } }, getEffectsVolume: function() { return this._effect.volume; }, pauseEffect: function(t) { return this.pause(t); }, pauseAllEffects: function() { var t = this._music.id, e = this._effect; e.pauseCache.length = 0; for (var i in l) { var n = l[i]; if (n && n.id !== t) { if (n.getState() === this.AudioState.PLAYING) { e.pauseCache.push(i); n.pause(); } } } }, resumeEffect: function(t) { this.resume(t); }, resumeAllEffects: function() { for (var t = this._effect.pauseCache, e = 0; e < t.length; ++e) { var i = t[e], n = l[i]; n && n.resume(); } }, stopEffect: function(t) { return this.stop(t); }, stopAllEffects: function() { var t = this._music.id; for (var e in l) { var i = l[e]; if (i && i.id !== t) { i.getState() === p.AudioState.PLAYING && i.stop(); } } } }; n.exports = cc.audioEngine = p; }), { "../core/assets/CCAudioClip": 57, "./CCAudio": 20 } ], 22: [ (function(t, e, i) { "use strict"; var n = { name: "Jacob__Codec" }; n.Base64 = t("./base64"); n.GZip = t("./gzip"); n.unzip = function() { return n.GZip.gunzip.apply(n.GZip, arguments); }; n.unzipBase64 = function() { var t = n.Base64.decode.apply(n.Base64, arguments); try { return n.GZip.gunzip.call(n.GZip, t); } catch (e) { return t.slice(7); } }; n.unzipBase64AsArray = function(t, e) { e = e || 1; var i, n, r, s = this.unzipBase64(t), o = []; for (i = 0, r = s.length / e; i < r; i++) { o[i] = 0; for (n = e - 1; n >= 0; --n) o[i] += s.charCodeAt(i * e + n) << 8 * n; } return o; }; n.unzipAsArray = function(t, e) { e = e || 1; var i, n, r, s = this.unzip(t), o = []; for (i = 0, r = s.length / e; i < r; i++) { o[i] = 0; for (n = e - 1; n >= 0; --n) o[i] += s.charCodeAt(i * e + n) << 8 * n; } return o; }; cc.codec = e.exports = n; }), { "./base64": 23, "./gzip": 24 } ], 23: [ (function(t, e, i) { "use strict"; var n = t("../core/utils/misc").BASE64_VALUES, r = { name: "Jacob__Codec__Base64", decode: function(t) { var e, i, r, s, o, a, c, l = [], h = 0; t = t.replace(/[^A-Za-z0-9\+\/\=]/g, ""); for (;h < t.length; ) { s = n[t.charCodeAt(h++)]; o = n[t.charCodeAt(h++)]; a = n[t.charCodeAt(h++)]; c = n[t.charCodeAt(h++)]; e = s << 2 | o >> 4; i = (15 & o) << 4 | a >> 2; r = (3 & a) << 6 | c; l.push(String.fromCharCode(e)); 64 !== a && l.push(String.fromCharCode(i)); 64 !== c && l.push(String.fromCharCode(r)); } return l = l.join(""); }, decodeAsArray: function(t, e) { var i, n, r, s = this.decode(t), o = []; for (i = 0, r = s.length / e; i < r; i++) { o[i] = 0; for (n = e - 1; n >= 0; --n) o[i] += s.charCodeAt(i * e + n) << 8 * n; } return o; } }; e.exports = r; }), { "../core/utils/misc": 297 } ], 24: [ (function(t, e, i) { "use strict"; var n = function(t) { this.data = t; this.debug = !1; this.gpflags = void 0; this.files = 0; this.unzipped = []; this.buf32k = new Array(32768); this.bIdx = 0; this.modeZIP = !1; this.bytepos = 0; this.bb = 1; this.bits = 0; this.nameBuf = []; this.fileout = void 0; this.literalTree = new Array(n.LITERALS); this.distanceTree = new Array(32); this.treepos = 0; this.Places = null; this.len = 0; this.fpos = new Array(17); this.fpos[0] = 0; this.flens = void 0; this.fmax = void 0; }; n.gunzip = function(t) { t.constructor === Array || (t.constructor, String); return new n(t).gunzip()[0][0]; }; n.HufNode = function() { this.b0 = 0; this.b1 = 0; this.jump = null; this.jumppos = -1; }; n.LITERALS = 288; n.NAMEMAX = 256; n.bitReverse = [ 0, 128, 64, 192, 32, 160, 96, 224, 16, 144, 80, 208, 48, 176, 112, 240, 8, 136, 72, 200, 40, 168, 104, 232, 24, 152, 88, 216, 56, 184, 120, 248, 4, 132, 68, 196, 36, 164, 100, 228, 20, 148, 84, 212, 52, 180, 116, 244, 12, 140, 76, 204, 44, 172, 108, 236, 28, 156, 92, 220, 60, 188, 124, 252, 2, 130, 66, 194, 34, 162, 98, 226, 18, 146, 82, 210, 50, 178, 114, 242, 10, 138, 74, 202, 42, 170, 106, 234, 26, 154, 90, 218, 58, 186, 122, 250, 6, 134, 70, 198, 38, 166, 102, 230, 22, 150, 86, 214, 54, 182, 118, 246, 14, 142, 78, 206, 46, 174, 110, 238, 30, 158, 94, 222, 62, 190, 126, 254, 1, 129, 65, 193, 33, 161, 97, 225, 17, 145, 81, 209, 49, 177, 113, 241, 9, 137, 73, 201, 41, 169, 105, 233, 25, 153, 89, 217, 57, 185, 121, 249, 5, 133, 69, 197, 37, 165, 101, 229, 21, 149, 85, 213, 53, 181, 117, 245, 13, 141, 77, 205, 45, 173, 109, 237, 29, 157, 93, 221, 61, 189, 125, 253, 3, 131, 67, 195, 35, 163, 99, 227, 19, 147, 83, 211, 51, 179, 115, 243, 11, 139, 75, 203, 43, 171, 107, 235, 27, 155, 91, 219, 59, 187, 123, 251, 7, 135, 71, 199, 39, 167, 103, 231, 23, 151, 87, 215, 55, 183, 119, 247, 15, 143, 79, 207, 47, 175, 111, 239, 31, 159, 95, 223, 63, 191, 127, 255 ]; n.cplens = [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0 ]; n.cplext = [ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 99, 99 ]; n.cpdist = [ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 ]; n.cpdext = [ 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13 ]; n.border = [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]; n.prototype.gunzip = function() { this.outputArr = []; this.nextFile(); return this.unzipped; }; n.prototype.readByte = function() { this.bits += 8; return this.bytepos < this.data.length ? this.data.charCodeAt(this.bytepos++) : -1; }; n.prototype.byteAlign = function() { this.bb = 1; }; n.prototype.readBit = function() { var t; this.bits++; t = 1 & this.bb; this.bb >>= 1; if (0 === this.bb) { this.bb = this.readByte(); t = 1 & this.bb; this.bb = this.bb >> 1 | 128; } return t; }; n.prototype.readBits = function(t) { for (var e = 0, i = t; i--; ) e = e << 1 | this.readBit(); t && (e = n.bitReverse[e] >> 8 - t); return e; }; n.prototype.flushBuffer = function() { this.bIdx = 0; }; n.prototype.addBuffer = function(t) { this.buf32k[this.bIdx++] = t; this.outputArr.push(String.fromCharCode(t)); 32768 === this.bIdx && (this.bIdx = 0); }; n.prototype.IsPat = function() { for (;;) { if (this.fpos[this.len] >= this.fmax) return -1; if (this.flens[this.fpos[this.len]] === this.len) return this.fpos[this.len]++; this.fpos[this.len]++; } }; n.prototype.Rec = function() { var t, e = this.Places[this.treepos]; if (17 === this.len) return -1; this.treepos++; this.len++; if ((t = this.IsPat()) >= 0) e.b0 = t; else { e.b0 = 32768; if (this.Rec()) return -1; } if ((t = this.IsPat()) >= 0) { e.b1 = t; e.jump = null; } else { e.b1 = 32768; e.jump = this.Places[this.treepos]; e.jumppos = this.treepos; if (this.Rec()) return -1; } this.len--; return 0; }; n.prototype.CreateTree = function(t, e, i, n) { var r; this.Places = t; this.treepos = 0; this.flens = i; this.fmax = e; for (r = 0; r < 17; r++) this.fpos[r] = 0; this.len = 0; return this.Rec() ? -1 : 0; }; n.prototype.DecodeValue = function(t) { for (var e, i, n = 0, r = t[n]; ;) if (this.readBit()) { if (!(32768 & r.b1)) return r.b1; r = r.jump; e = t.length; for (i = 0; i < e; i++) if (t[i] === r) { n = i; break; } } else { if (!(32768 & r.b0)) return r.b0; r = t[++n]; } return -1; }; n.prototype.DeflateLoop = function() { var t, e, i; do { t = this.readBit(); if (0 === (e = this.readBits(2))) { var r, s; this.byteAlign(); r = this.readByte(); r |= this.readByte() << 8; s = this.readByte(); 65535 & (r ^ ~(s |= this.readByte() << 8)) && document.write("BlockLen checksum mismatch\n"); for (;r--; ) { o = this.readByte(); this.addBuffer(o); } } else if (1 === e) for (;;) { (a = n.bitReverse[this.readBits(7)] >> 1) > 23 ? (a = a << 1 | this.readBit()) > 199 ? a = (a -= 128) << 1 | this.readBit() : (a -= 48) > 143 && (a += 136) : a += 256; if (a < 256) this.addBuffer(a); else { if (256 === a) break; a -= 257; m = this.readBits(n.cplext[a]) + n.cplens[a]; a = n.bitReverse[this.readBits(5)] >> 3; if (n.cpdext[a] > 8) { p = this.readBits(8); p |= this.readBits(n.cpdext[a] - 8) << 8; } else p = this.readBits(n.cpdext[a]); p += n.cpdist[a]; for (a = 0; a < m; a++) { var o = this.buf32k[this.bIdx - p & 32767]; this.addBuffer(o); } } } else if (2 === e) { var a, c, l, h, u, _ = new Array(320); l = 257 + this.readBits(5); h = 1 + this.readBits(5); u = 4 + this.readBits(4); for (a = 0; a < 19; a++) _[a] = 0; for (a = 0; a < u; a++) _[n.border[a]] = this.readBits(3); m = this.distanceTree.length; for (i = 0; i < m; i++) this.distanceTree[i] = new n.HufNode(); if (this.CreateTree(this.distanceTree, 19, _, 0)) { this.flushBuffer(); return 1; } c = l + h; i = 0; for (;i < c; ) { 0; if ((a = this.DecodeValue(this.distanceTree)) < 16) _[i++] = a; else if (16 === a) { var f; if (i + (a = 3 + this.readBits(2)) > c) { this.flushBuffer(); return 1; } f = i ? _[i - 1] : 0; for (;a--; ) _[i++] = f; } else { if (i + (a = 17 === a ? 3 + this.readBits(3) : 11 + this.readBits(7)) > c) { this.flushBuffer(); return 1; } for (;a--; ) _[i++] = 0; } } m = this.literalTree.length; for (i = 0; i < m; i++) this.literalTree[i] = new n.HufNode(); if (this.CreateTree(this.literalTree, l, _, 0)) { this.flushBuffer(); return 1; } m = this.literalTree.length; for (i = 0; i < m; i++) this.distanceTree[i] = new n.HufNode(); var d = new Array(); for (i = l; i < _.length; i++) d[i - l] = _[i]; if (this.CreateTree(this.distanceTree, h, d, 0)) { this.flushBuffer(); return 1; } for (;;) if ((a = this.DecodeValue(this.literalTree)) >= 256) { var m, p; if (0 === (a -= 256)) break; a--; m = this.readBits(n.cplext[a]) + n.cplens[a]; a = this.DecodeValue(this.distanceTree); if (n.cpdext[a] > 8) { p = this.readBits(8); p |= this.readBits(n.cpdext[a] - 8) << 8; } else p = this.readBits(n.cpdext[a]); p += n.cpdist[a]; for (;m--; ) { o = this.buf32k[this.bIdx - p & 32767]; this.addBuffer(o); } } else this.addBuffer(a); } } while (!t); this.flushBuffer(); this.byteAlign(); return 0; }; n.prototype.unzipFile = function(t) { var e; this.gunzip(); for (e = 0; e < this.unzipped.length; e++) if (this.unzipped[e][1] === t) return this.unzipped[e][0]; }; n.prototype.nextFile = function() { this.outputArr = []; this.modeZIP = !1; var t = []; t[0] = this.readByte(); t[1] = this.readByte(); if (120 === t[0] && 218 === t[1]) { this.DeflateLoop(); this.unzipped[this.files] = [ this.outputArr.join(""), "geonext.gxt" ]; this.files++; } if (31 === t[0] && 139 === t[1]) { this.skipdir(); this.unzipped[this.files] = [ this.outputArr.join(""), "file" ]; this.files++; } if (80 === t[0] && 75 === t[1]) { this.modeZIP = !0; t[2] = this.readByte(); t[3] = this.readByte(); if (3 === t[2] && 4 === t[3]) { t[0] = this.readByte(); t[1] = this.readByte(); this.gpflags = this.readByte(); this.gpflags |= this.readByte() << 8; var e = this.readByte(); e |= this.readByte() << 8; this.readByte(); this.readByte(); this.readByte(); this.readByte(); this.readByte(); this.readByte() << 8; this.readByte() << 16; this.readByte() << 24; this.readByte(); this.readByte() << 8; this.readByte() << 16; this.readByte() << 24; var i = this.readByte(); i |= this.readByte() << 8; var r = this.readByte(); r |= this.readByte() << 8; o = 0; this.nameBuf = []; for (;i--; ) { var s = this.readByte(); "/" === s | ":" === s ? o = 0 : o < n.NAMEMAX - 1 && (this.nameBuf[o++] = String.fromCharCode(s)); } this.fileout || (this.fileout = this.nameBuf); for (var o = 0; o < r; ) { s = this.readByte(); o++; } if (8 === e) { this.DeflateLoop(); this.unzipped[this.files] = [ this.outputArr.join(""), this.nameBuf.join("") ]; this.files++; } this.skipdir(); } } }; n.prototype.skipdir = function() { var t, e, i = []; if (8 & this.gpflags) { i[0] = this.readByte(); i[1] = this.readByte(); i[2] = this.readByte(); i[3] = this.readByte(); this.readByte(); this.readByte() << 8; this.readByte() << 16; this.readByte() << 24; this.readByte(); this.readByte() << 8; this.readByte() << 16; this.readByte() << 24; } this.modeZIP && this.nextFile(); i[0] = this.readByte(); if (8 !== i[0]) return 0; this.gpflags = this.readByte(); this.readByte(); this.readByte(); this.readByte(); this.readByte(); this.readByte(); this.readByte(); if (4 & this.gpflags) { i[0] = this.readByte(); i[2] = this.readByte(); this.len = i[0] + 256 * i[1]; for (t = 0; t < this.len; t++) this.readByte(); } if (8 & this.gpflags) { t = 0; this.nameBuf = []; for (;e = this.readByte(); ) { "7" !== e && ":" !== e || (t = 0); t < n.NAMEMAX - 1 && (this.nameBuf[t++] = e); } } if (16 & this.gpflags) for (;e = this.readByte(); ) ; if (2 & this.gpflags) { this.readByte(); this.readByte(); } this.DeflateLoop(); this.readByte(); this.readByte() << 8; this.readByte() << 16; this.readByte() << 24; this.modeZIP && this.nextFile(); }; e.exports = n; }), {} ], 25: [ (function(i, n, r) { "use strict"; (function() { function i(t) { throw t; } var n = void 0, r = !0, s = this; function o(t, e) { var i, r = t.split("."), o = s; !(r[0] in o) && o.execScript && o.execScript("var " + r[0]); for (;r.length && (i = r.shift()); ) r.length || e === n ? o = o[i] ? o[i] : o[i] = {} : o[i] = e; } var a = "undefined" !== ("object" === (e = typeof Uint8Array) ? t(Uint8Array) : e) && "undefined" !== ("object" === (e = typeof Uint16Array) ? t(Uint16Array) : e) && "undefined" !== ("object" === (e = typeof Uint32Array) ? t(Uint32Array) : e); function c(i) { if ("string" === ("object" === (e = typeof i) ? t(i) : e)) { var n, r, s = i.split(""); n = 0; for (r = s.length; n < r; n++) s[n] = (255 & s[n].charCodeAt(0)) >>> 0; i = s; } for (var o, a = 1, c = 0, l = i.length, h = 0; 0 < l; ) { l -= o = 1024 < l ? 1024 : l; do { c += a += i[h++]; } while (--o); a %= 65521; c %= 65521; } return (c << 16 | a) >>> 0; } function l(n, r) { this.index = "number" === ("object" === (e = typeof r) ? t(r) : e) ? r : 0; this.i = 0; this.buffer = n instanceof (a ? Uint8Array : Array) ? n : new (a ? Uint8Array : Array)(32768); 2 * this.buffer.length <= this.index && i(Error("invalid index")); this.buffer.length <= this.index && this.f(); } l.prototype.f = function() { var t, e = this.buffer, i = e.length, n = new (a ? Uint8Array : Array)(i << 1); if (a) n.set(e); else for (t = 0; t < i; ++t) n[t] = e[t]; return this.buffer = n; }; l.prototype.d = function(t, e, i) { var n, r = this.buffer, s = this.index, o = this.i, a = r[s]; i && 1 < e && (t = 8 < e ? (m[255 & t] << 24 | m[t >>> 8 & 255] << 16 | m[t >>> 16 & 255] << 8 | m[t >>> 24 & 255]) >> 32 - e : m[t] >> 8 - e); if (8 > e + o) a = a << e | t, o += e; else for (n = 0; n < e; ++n) a = a << 1 | t >> e - n - 1 & 1, 8 == ++o && (o = 0, r[s++] = m[a], a = 0, s === r.length && (r = this.f())); r[s] = a; this.buffer = r; this.i = o; this.index = s; }; l.prototype.finish = function() { var t, e = this.buffer, i = this.index; 0 < this.i && (e[i] <<= 8 - this.i, e[i] = m[e[i]], i++); a ? t = e.subarray(0, i) : (e.length = i, t = e); return t; }; var h, u = new (a ? Uint8Array : Array)(256); for (h = 0; 256 > h; ++h) { for (var _ = d = h, f = 7, d = d >>> 1; d; d >>>= 1) _ <<= 1, _ |= 1 & d, --f; u[h] = (_ << f & 255) >>> 0; } var m = u; a && new Uint32Array([ 0, 1996959894, 3993919788, 2567524794, 124634137, 1886057615, 3915621685, 2657392035, 249268274, 2044508324, 3772115230, 2547177864, 162941995, 2125561021, 3887607047, 2428444049, 498536548, 1789927666, 4089016648, 2227061214, 450548861, 1843258603, 4107580753, 2211677639, 325883990, 1684777152, 4251122042, 2321926636, 335633487, 1661365465, 4195302755, 2366115317, 997073096, 1281953886, 3579855332, 2724688242, 1006888145, 1258607687, 3524101629, 2768942443, 901097722, 1119000684, 3686517206, 2898065728, 853044451, 1172266101, 3705015759, 2882616665, 651767980, 1373503546, 3369554304, 3218104598, 565507253, 1454621731, 3485111705, 3099436303, 671266974, 1594198024, 3322730930, 2970347812, 795835527, 1483230225, 3244367275, 3060149565, 1994146192, 31158534, 2563907772, 4023717930, 1907459465, 112637215, 2680153253, 3904427059, 2013776290, 251722036, 2517215374, 3775830040, 2137656763, 141376813, 2439277719, 3865271297, 1802195444, 476864866, 2238001368, 4066508878, 1812370925, 453092731, 2181625025, 4111451223, 1706088902, 314042704, 2344532202, 4240017532, 1658658271, 366619977, 2362670323, 4224994405, 1303535960, 984961486, 2747007092, 3569037538, 1256170817, 1037604311, 2765210733, 3554079995, 1131014506, 879679996, 2909243462, 3663771856, 1141124467, 855842277, 2852801631, 3708648649, 1342533948, 654459306, 3188396048, 3373015174, 1466479909, 544179635, 3110523913, 3462522015, 1591671054, 702138776, 2966460450, 3352799412, 1504918807, 783551873, 3082640443, 3233442989, 3988292384, 2596254646, 62317068, 1957810842, 3939845945, 2647816111, 81470997, 1943803523, 3814918930, 2489596804, 225274430, 2053790376, 3826175755, 2466906013, 167816743, 2097651377, 4027552580, 2265490386, 503444072, 1762050814, 4150417245, 2154129355, 426522225, 1852507879, 4275313526, 2312317920, 282753626, 1742555852, 4189708143, 2394877945, 397917763, 1622183637, 3604390888, 2714866558, 953729732, 1340076626, 3518719985, 2797360999, 1068828381, 1219638859, 3624741850, 2936675148, 906185462, 1090812512, 3747672003, 2825379669, 829329135, 1181335161, 3412177804, 3160834842, 628085408, 1382605366, 3423369109, 3138078467, 570562233, 1426400815, 3317316542, 2998733608, 733239954, 1555261956, 3268935591, 3050360625, 752459403, 1541320221, 2607071920, 3965973030, 1969922972, 40735498, 2617837225, 3943577151, 1913087877, 83908371, 2512341634, 3803740692, 2075208622, 213261112, 2463272603, 3855990285, 2094854071, 198958881, 2262029012, 4057260610, 1759359992, 534414190, 2176718541, 4139329115, 1873836001, 414664567, 2282248934, 4279200368, 1711684554, 285281116, 2405801727, 4167216745, 1634467795, 376229701, 2685067896, 3608007406, 1308918612, 956543938, 2808555105, 3495958263, 1231636301, 1047427035, 2932959818, 3654703836, 1088359270, 936918e3, 2847714899, 3736837829, 1202900863, 817233897, 3183342108, 3401237130, 1404277552, 615818150, 3134207493, 3453421203, 1423857449, 601450431, 3009837614, 3294710456, 1567103746, 711928724, 3020668471, 3272380065, 1510334235, 755167117 ]); function p(t) { this.buffer = new (a ? Uint16Array : Array)(2 * t); this.length = 0; } p.prototype.getParent = function(t) { return 2 * ((t - 2) / 4 | 0); }; p.prototype.push = function(t, e) { var i, n, r, s = this.buffer; i = this.length; s[this.length++] = e; for (s[this.length++] = t; 0 < i && (n = this.getParent(i), s[i] > s[n]); ) r = s[i], s[i] = s[n], s[n] = r, r = s[i + 1], s[i + 1] = s[n + 1], s[n + 1] = r, i = n; return this.length; }; p.prototype.pop = function() { var t, e, i, n, r, s = this.buffer; e = s[0]; t = s[1]; this.length -= 2; s[0] = s[this.length]; s[1] = s[this.length + 1]; for (r = 0; !((n = 2 * r + 2) >= this.length); ) { n + 2 < this.length && s[n + 2] > s[n] && (n += 2); if (!(s[n] > s[r])) break; i = s[r], s[r] = s[n], s[n] = i, i = s[r + 1], s[r + 1] = s[n + 1], s[n + 1] = i; r = n; } return { index: t, value: e, length: this.length }; }; function v(t) { var e, i, n, r, s, o, c, l, h, u = t.length, _ = 0, f = Number.POSITIVE_INFINITY; for (l = 0; l < u; ++l) t[l] > _ && (_ = t[l]), t[l] < f && (f = t[l]); e = 1 << _; i = new (a ? Uint32Array : Array)(e); n = 1; r = 0; for (s = 2; n <= _; ) { for (l = 0; l < u; ++l) if (t[l] === n) { o = 0; c = r; for (h = 0; h < n; ++h) o = o << 1 | 1 & c, c >>= 1; for (h = o; h < e; h += s) i[h] = n << 16 | l; ++r; } ++n; r <<= 1; s <<= 1; } return [ i, _, f ]; } function y(i, n) { this.h = x; this.w = 0; this.input = i; this.b = 0; n && (n.lazy && (this.w = n.lazy), "number" === ("object" === (e = typeof n.compressionType) ? t(n.compressionType) : e) && (this.h = n.compressionType), n.outputBuffer && (this.a = a && n.outputBuffer instanceof Array ? new Uint8Array(n.outputBuffer) : n.outputBuffer), "number" === ("object" === (e = typeof n.outputIndex) ? t(n.outputIndex) : e) && (this.b = n.outputIndex)); this.a || (this.a = new (a ? Uint8Array : Array)(32768)); } var g, x = 2, C = { NONE: 0, r: 1, j: x, N: 3 }, b = []; for (g = 0; 288 > g; g++) switch (r) { case 143 >= g: b.push([ g + 48, 8 ]); break; case 255 >= g: b.push([ g - 144 + 400, 9 ]); break; case 279 >= g: b.push([ g - 256 + 0, 7 ]); break; case 287 >= g: b.push([ g - 280 + 192, 8 ]); break; default: i("invalid literal: " + g); } y.prototype.n = function() { var t, e, s, o, c = this.input; switch (this.h) { case 0: s = 0; for (o = c.length; s < o; ) { var h, u, _, f = e = a ? c.subarray(s, s + 65535) : c.slice(s, s + 65535), d = (s += e.length) === o, m = n, p = n, v = this.a, y = this.b; if (a) { for (v = new Uint8Array(this.a.buffer); v.length <= y + f.length + 5; ) v = new Uint8Array(v.length << 1); v.set(this.a); } h = d ? 1 : 0; v[y++] = 0 | h; _ = 65536 + ~(u = f.length) & 65535; v[y++] = 255 & u; v[y++] = u >>> 8 & 255; v[y++] = 255 & _; v[y++] = _ >>> 8 & 255; if (a) v.set(f, y), y += f.length, v = v.subarray(0, y); else { m = 0; for (p = f.length; m < p; ++m) v[y++] = f[m]; v.length = y; } this.b = y; this.a = v; } break; case 1: var g = new l(new Uint8Array(this.a.buffer), this.b); g.d(1, 1, r); g.d(1, 2, r); var C, A, S, w = B(this, c); C = 0; for (A = w.length; C < A; C++) if (S = w[C], l.prototype.d.apply(g, b[S]), 256 < S) g.d(w[++C], w[++C], r), g.d(w[++C], 5), g.d(w[++C], w[++C], r); else if (256 === S) break; this.a = g.finish(); this.b = this.a.length; break; case x: var T, E, M, P, R, L, F, O, V, N, k, z, G, U, j, W = new l(new Uint8Array(this.a), this.b), H = [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ], q = Array(19); T = x; W.d(1, 1, r); W.d(T, 2, r); E = B(this, c); F = I(L = D(this.L, 15)); V = I(O = D(this.K, 7)); for (M = 286; 257 < M && 0 === L[M - 1]; M--) ; for (P = 30; 1 < P && 0 === O[P - 1]; P--) ; var X, Y, J, Z, K, Q, $ = M, tt = P, et = new (a ? Uint32Array : Array)($ + tt), it = new (a ? Uint32Array : Array)(316), nt = new (a ? Uint8Array : Array)(19); for (X = Y = 0; X < $; X++) et[Y++] = L[X]; for (X = 0; X < tt; X++) et[Y++] = O[X]; if (!a) { X = 0; for (Z = nt.length; X < Z; ++X) nt[X] = 0; } X = K = 0; for (Z = et.length; X < Z; X += Y) { for (Y = 1; X + Y < Z && et[X + Y] === et[X]; ++Y) ; J = Y; if (0 === et[X]) if (3 > J) for (;0 < J--; ) it[K++] = 0, nt[0]++; else for (;0 < J; ) (Q = 138 > J ? J : 138) > J - 3 && Q < J && (Q = J - 3), 10 >= Q ? (it[K++] = 17, it[K++] = Q - 3, nt[17]++) : (it[K++] = 18, it[K++] = Q - 11, nt[18]++), J -= Q; else if (it[K++] = et[X], nt[et[X]]++, 3 > --J) for (;0 < J--; ) it[K++] = et[X], nt[et[X]]++; else for (;0 < J; ) (Q = 6 > J ? J : 6) > J - 3 && Q < J && (Q = J - 3), it[K++] = 16, it[K++] = Q - 3, nt[16]++, J -= Q; } t = a ? it.subarray(0, K) : it.slice(0, K); N = D(nt, 7); for (U = 0; 19 > U; U++) q[U] = N[H[U]]; for (R = 19; 4 < R && 0 === q[R - 1]; R--) ; k = I(N); W.d(M - 257, 5, r); W.d(P - 1, 5, r); W.d(R - 4, 4, r); for (U = 0; U < R; U++) W.d(q[U], 3, r); U = 0; for (j = t.length; U < j; U++) if (z = t[U], W.d(k[z], N[z], r), 16 <= z) { U++; switch (z) { case 16: G = 2; break; case 17: G = 3; break; case 18: G = 7; break; default: i("invalid code: " + z); } W.d(t[U], G, r); } var rt, st, ot, at, ct, lt, ht, ut, _t = [ F, L ], ft = [ V, O ]; ct = _t[0]; lt = _t[1]; ht = ft[0]; ut = ft[1]; rt = 0; for (st = E.length; rt < st; ++rt) if (ot = E[rt], W.d(ct[ot], lt[ot], r), 256 < ot) W.d(E[++rt], E[++rt], r), at = E[++rt], W.d(ht[at], ut[at], r), W.d(E[++rt], E[++rt], r); else if (256 === ot) break; this.a = W.finish(); this.b = this.a.length; break; default: i("invalid compression type"); } return this.a; }; function A(t, e) { this.length = t; this.G = e; } function S() { var t = w; switch (r) { case 3 === t: return [ 257, t - 3, 0 ]; case 4 === t: return [ 258, t - 4, 0 ]; case 5 === t: return [ 259, t - 5, 0 ]; case 6 === t: return [ 260, t - 6, 0 ]; case 7 === t: return [ 261, t - 7, 0 ]; case 8 === t: return [ 262, t - 8, 0 ]; case 9 === t: return [ 263, t - 9, 0 ]; case 10 === t: return [ 264, t - 10, 0 ]; case 12 >= t: return [ 265, t - 11, 1 ]; case 14 >= t: return [ 266, t - 13, 1 ]; case 16 >= t: return [ 267, t - 15, 1 ]; case 18 >= t: return [ 268, t - 17, 1 ]; case 22 >= t: return [ 269, t - 19, 2 ]; case 26 >= t: return [ 270, t - 23, 2 ]; case 30 >= t: return [ 271, t - 27, 2 ]; case 34 >= t: return [ 272, t - 31, 2 ]; case 42 >= t: return [ 273, t - 35, 3 ]; case 50 >= t: return [ 274, t - 43, 3 ]; case 58 >= t: return [ 275, t - 51, 3 ]; case 66 >= t: return [ 276, t - 59, 3 ]; case 82 >= t: return [ 277, t - 67, 4 ]; case 98 >= t: return [ 278, t - 83, 4 ]; case 114 >= t: return [ 279, t - 99, 4 ]; case 130 >= t: return [ 280, t - 115, 4 ]; case 162 >= t: return [ 281, t - 131, 5 ]; case 194 >= t: return [ 282, t - 163, 5 ]; case 226 >= t: return [ 283, t - 195, 5 ]; case 257 >= t: return [ 284, t - 227, 5 ]; case 258 === t: return [ 285, t - 258, 0 ]; default: i("invalid length: " + t); } } var w, T, E = []; for (w = 3; 258 >= w; w++) T = S(), E[w] = T[2] << 24 | T[1] << 16 | T[0]; var M = a ? new Uint32Array(E) : E; function B(t, e) { function s(t, e) { var n, s, o, a, c = t.G, l = [], h = 0; n = M[t.length]; l[h++] = 65535 & n; l[h++] = n >> 16 & 255; l[h++] = n >> 24; switch (r) { case 1 === c: s = [ 0, c - 1, 0 ]; break; case 2 === c: s = [ 1, c - 2, 0 ]; break; case 3 === c: s = [ 2, c - 3, 0 ]; break; case 4 === c: s = [ 3, c - 4, 0 ]; break; case 6 >= c: s = [ 4, c - 5, 1 ]; break; case 8 >= c: s = [ 5, c - 7, 1 ]; break; case 12 >= c: s = [ 6, c - 9, 2 ]; break; case 16 >= c: s = [ 7, c - 13, 2 ]; break; case 24 >= c: s = [ 8, c - 17, 3 ]; break; case 32 >= c: s = [ 9, c - 25, 3 ]; break; case 48 >= c: s = [ 10, c - 33, 4 ]; break; case 64 >= c: s = [ 11, c - 49, 4 ]; break; case 96 >= c: s = [ 12, c - 65, 5 ]; break; case 128 >= c: s = [ 13, c - 97, 5 ]; break; case 192 >= c: s = [ 14, c - 129, 6 ]; break; case 256 >= c: s = [ 15, c - 193, 6 ]; break; case 384 >= c: s = [ 16, c - 257, 7 ]; break; case 512 >= c: s = [ 17, c - 385, 7 ]; break; case 768 >= c: s = [ 18, c - 513, 8 ]; break; case 1024 >= c: s = [ 19, c - 769, 8 ]; break; case 1536 >= c: s = [ 20, c - 1025, 9 ]; break; case 2048 >= c: s = [ 21, c - 1537, 9 ]; break; case 3072 >= c: s = [ 22, c - 2049, 10 ]; break; case 4096 >= c: s = [ 23, c - 3073, 10 ]; break; case 6144 >= c: s = [ 24, c - 4097, 11 ]; break; case 8192 >= c: s = [ 25, c - 6145, 11 ]; break; case 12288 >= c: s = [ 26, c - 8193, 12 ]; break; case 16384 >= c: s = [ 27, c - 12289, 12 ]; break; case 24576 >= c: s = [ 28, c - 16385, 13 ]; break; case 32768 >= c: s = [ 29, c - 24577, 13 ]; break; default: i("invalid distance"); } n = s; l[h++] = n[0]; l[h++] = n[1]; l[h++] = n[2]; o = 0; for (a = l.length; o < a; ++o) v[y++] = l[o]; x[l[0]]++; C[l[3]]++; g = t.length + e - 1; d = null; } var o, c, l, h, u, _, f, d, m, p = {}, v = a ? new Uint16Array(2 * e.length) : [], y = 0, g = 0, x = new (a ? Uint32Array : Array)(286), C = new (a ? Uint32Array : Array)(30), b = t.w; if (!a) { for (l = 0; 285 >= l; ) x[l++] = 0; for (l = 0; 29 >= l; ) C[l++] = 0; } x[256] = 1; o = 0; for (c = e.length; o < c; ++o) { l = u = 0; for (h = 3; l < h && o + l !== c; ++l) u = u << 8 | e[o + l]; p[u] === n && (p[u] = []); _ = p[u]; if (!(0 < g--)) { for (;0 < _.length && 32768 < o - _[0]; ) _.shift(); if (o + 3 >= c) { d && s(d, -1); l = 0; for (h = c - o; l < h; ++l) m = e[o + l], v[y++] = m, ++x[m]; break; } if (0 < _.length) { var S = n, w = n, T = 0, E = n, B = n, D = n, I = e.length, P = (B = 0, _.length); t: for (;B < P; B++) { S = _[P - B - 1]; E = 3; if (3 < T) { for (D = T; 3 < D; D--) if (e[S + D - 1] !== e[o + D - 1]) continue t; E = T; } for (;258 > E && o + E < I && e[S + E] === e[o + E]; ) ++E; E > T && (w = S, T = E); if (258 === E) break; } f = new A(T, o - w); d ? d.length < f.length ? (m = e[o - 1], v[y++] = m, ++x[m], s(f, 0)) : s(d, -1) : f.length < b ? d = f : s(f, 0); } else d ? s(d, -1) : (m = e[o], v[y++] = m, ++x[m]); } _.push(o); } v[y++] = 256; x[256]++; t.L = x; t.K = C; return a ? v.subarray(0, y) : v; } function D(t, e) { function i(t) { var e = A[t][S[t]]; e === y ? (i(t + 1), i(t + 1)) : --C[e]; ++S[t]; } var n, r, s, o, c, l = t.length, h = new p(572), u = new (a ? Uint8Array : Array)(l); if (!a) for (o = 0; o < l; o++) u[o] = 0; for (o = 0; o < l; ++o) 0 < t[o] && h.push(o, t[o]); n = Array(h.length / 2); r = new (a ? Uint32Array : Array)(h.length / 2); if (1 === n.length) return u[h.pop().index] = 1, u; o = 0; for (c = h.length / 2; o < c; ++o) n[o] = h.pop(), r[o] = n[o].value; var _, f, d, m, v, y = r.length, g = new (a ? Uint16Array : Array)(e), x = new (a ? Uint8Array : Array)(e), C = new (a ? Uint8Array : Array)(y), b = Array(e), A = Array(e), S = Array(e), w = (1 << e) - y, T = 1 << e - 1; g[e - 1] = y; for (f = 0; f < e; ++f) w < T ? x[f] = 0 : (x[f] = 1, w -= T), w <<= 1, g[e - 2 - f] = (g[e - 1 - f] / 2 | 0) + y; g[0] = x[0]; b[0] = Array(g[0]); A[0] = Array(g[0]); for (f = 1; f < e; ++f) g[f] > 2 * g[f - 1] + x[f] && (g[f] = 2 * g[f - 1] + x[f]), b[f] = Array(g[f]), A[f] = Array(g[f]); for (_ = 0; _ < y; ++_) C[_] = e; for (d = 0; d < g[e - 1]; ++d) b[e - 1][d] = r[d], A[e - 1][d] = d; for (_ = 0; _ < e; ++_) S[_] = 0; 1 === x[e - 1] && (--C[0], ++S[e - 1]); for (f = e - 2; 0 <= f; --f) { m = _ = 0; v = S[f + 1]; for (d = 0; d < g[f]; d++) (m = b[f + 1][v] + b[f + 1][v + 1]) > r[_] ? (b[f][d] = m, A[f][d] = y, v += 2) : (b[f][d] = r[_], A[f][d] = _, ++_); S[f] = 0; 1 === x[f] && i(f); } s = C; o = 0; for (c = n.length; o < c; ++o) u[n[o].index] = s[o]; return u; } function I(t) { var e, n, r, s, o = new (a ? Uint16Array : Array)(t.length), c = [], l = [], h = 0; e = 0; for (n = t.length; e < n; e++) c[t[e]] = 1 + (0 | c[t[e]]); e = 1; for (n = 16; e <= n; e++) l[e] = h, (h += 0 | c[e]) > 1 << e && i("overcommitted"), h <<= 1; 65536 > h && i("undercommitted"); e = 0; for (n = t.length; e < n; e++) { h = l[t[e]]; l[t[e]] += 1; r = o[e] = 0; for (s = t[e]; r < s; r++) o[e] = o[e] << 1 | 1 & h, h >>>= 1; } return o; } function P(i, n) { this.input = i; this.a = new (a ? Uint8Array : Array)(32768); this.h = R.j; var r, s = {}; !n && (n = {}) || "number" !== ("object" === (e = typeof n.compressionType) ? t(n.compressionType) : e) || (this.h = n.compressionType); for (r in n) s[r] = n[r]; s.outputBuffer = this.a; this.z = new y(this.input, s); } var R = C; P.prototype.n = function() { var t, e, n, r, s, o, l, h = 0; l = this.a; switch (t = _t) { case _t: e = Math.LOG2E * Math.log(32768) - 8; break; default: i(Error("invalid compression method")); } n = e << 4 | t; l[h++] = n; switch (t) { case _t: switch (this.h) { case R.NONE: s = 0; break; case R.r: s = 1; break; case R.j: s = 2; break; default: i(Error("unsupported compression type")); } break; default: i(Error("invalid compression method")); } r = s << 6 | 0; l[h++] = r | 31 - (256 * n + r) % 31; o = c(this.input); this.z.b = h; h = (l = this.z.n()).length; a && ((l = new Uint8Array(l.buffer)).length <= h + 4 && (this.a = new Uint8Array(l.length + 4), this.a.set(l), l = this.a), l = l.subarray(0, h + 4)); l[h++] = o >> 24 & 255; l[h++] = o >> 16 & 255; l[h++] = o >> 8 & 255; l[h++] = 255 & o; return l; }; o("Zlib.Deflate", P); o("Zlib.Deflate.compress", (function(t, e) { return new P(t, e).n(); })); o("Zlib.Deflate.CompressionType", R); o("Zlib.Deflate.CompressionType.NONE", R.NONE); o("Zlib.Deflate.CompressionType.FIXED", R.r); o("Zlib.Deflate.CompressionType.DYNAMIC", R.j); function L(t, e) { this.k = []; this.l = 32768; this.e = this.g = this.c = this.q = 0; this.input = a ? new Uint8Array(t) : t; this.s = !1; this.m = O; this.B = !1; !e && (e = {}) || (e.index && (this.c = e.index), e.bufferSize && (this.l = e.bufferSize), e.bufferType && (this.m = e.bufferType), e.resize && (this.B = e.resize)); switch (this.m) { case F: this.b = 32768; this.a = new (a ? Uint8Array : Array)(32768 + this.l + 258); break; case O: this.b = 0; this.a = new (a ? Uint8Array : Array)(this.l); this.f = this.J; this.t = this.H; this.o = this.I; break; default: i(Error("invalid inflate mode")); } } var F = 0, O = 1, V = { D: F, C: O }; L.prototype.p = function() { for (;!this.s; ) { var t = it(this, 3); 1 & t && (this.s = r); switch (t >>>= 1) { case 0: var e = this.input, s = this.c, o = this.a, c = this.b, l = n, h = n, u = n, _ = o.length, f = n; this.e = this.g = 0; (l = e[s++]) === n && i(Error("invalid uncompressed block header: LEN (first byte)")); h = l; (l = e[s++]) === n && i(Error("invalid uncompressed block header: LEN (second byte)")); h |= l << 8; (l = e[s++]) === n && i(Error("invalid uncompressed block header: NLEN (first byte)")); u = l; (l = e[s++]) === n && i(Error("invalid uncompressed block header: NLEN (second byte)")); h === ~(u |= l << 8) && i(Error("invalid uncompressed block header: length verify")); s + h > e.length && i(Error("input buffer is broken")); switch (this.m) { case F: for (;c + h > o.length; ) { h -= f = _ - c; if (a) o.set(e.subarray(s, s + f), c), c += f, s += f; else for (;f--; ) o[c++] = e[s++]; this.b = c; o = this.f(); c = this.b; } break; case O: for (;c + h > o.length; ) o = this.f({ v: 2 }); break; default: i(Error("invalid inflate mode")); } if (a) o.set(e.subarray(s, s + h), c), c += h, s += h; else for (;h--; ) o[c++] = e[s++]; this.c = s; this.b = c; this.a = o; break; case 1: this.o($, et); break; case 2: rt(this); break; default: i(Error("unknown BTYPE: " + t)); } } return this.t(); }; var N, k, z = [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ], G = a ? new Uint16Array(z) : z, U = [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 258, 258 ], j = a ? new Uint16Array(U) : U, W = [ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 0, 0 ], H = a ? new Uint8Array(W) : W, q = [ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 ], X = a ? new Uint16Array(q) : q, Y = [ 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13 ], J = a ? new Uint8Array(Y) : Y, Z = new (a ? Uint8Array : Array)(288); N = 0; for (k = Z.length; N < k; ++N) Z[N] = 143 >= N ? 8 : 255 >= N ? 9 : 279 >= N ? 7 : 8; var K, Q, $ = v(Z), tt = new (a ? Uint8Array : Array)(30); K = 0; for (Q = tt.length; K < Q; ++K) tt[K] = 5; var et = v(tt); function it(t, e) { for (var r, s = t.g, o = t.e, a = t.input, c = t.c; o < e; ) (r = a[c++]) === n && i(Error("input buffer is broken")), s |= r << o, o += 8; r = s & (1 << e) - 1; t.g = s >>> e; t.e = o - e; t.c = c; return r; } function nt(t, e) { for (var r, s, o, a = t.g, c = t.e, l = t.input, h = t.c, u = e[0], _ = e[1]; c < _; ) (r = l[h++]) === n && i(Error("input buffer is broken")), a |= r << c, c += 8; o = (s = u[a & (1 << _) - 1]) >>> 16; t.g = a >> o; t.e = c - o; t.c = h; return 65535 & s; } function rt(t) { function e(t, e, i) { var n, r, s, o; for (o = 0; o < t; ) switch (n = nt(this, e)) { case 16: for (s = 3 + it(this, 2); s--; ) i[o++] = r; break; case 17: for (s = 3 + it(this, 3); s--; ) i[o++] = 0; r = 0; break; case 18: for (s = 11 + it(this, 7); s--; ) i[o++] = 0; r = 0; break; default: r = i[o++] = n; } return i; } var i, n, r, s, o = it(t, 5) + 257, c = it(t, 5) + 1, l = it(t, 4) + 4, h = new (a ? Uint8Array : Array)(G.length); for (s = 0; s < l; ++s) h[G[s]] = it(t, 3); i = v(h); n = new (a ? Uint8Array : Array)(o); r = new (a ? Uint8Array : Array)(c); t.o(v(e.call(t, o, i, n)), v(e.call(t, c, i, r))); } L.prototype.o = function(t, e) { var i = this.a, n = this.b; this.u = t; for (var r, s, o, a, c = i.length - 258; 256 !== (r = nt(this, t)); ) if (256 > r) n >= c && (this.b = n, i = this.f(), n = this.b), i[n++] = r; else { a = j[s = r - 257]; 0 < H[s] && (a += it(this, H[s])); r = nt(this, e); o = X[r]; 0 < J[r] && (o += it(this, J[r])); n >= c && (this.b = n, i = this.f(), n = this.b); for (;a--; ) i[n] = i[n++ - o]; } for (;8 <= this.e; ) this.e -= 8, this.c--; this.b = n; }; L.prototype.I = function(t, e) { var i = this.a, n = this.b; this.u = t; for (var r, s, o, a, c = i.length; 256 !== (r = nt(this, t)); ) if (256 > r) n >= c && (c = (i = this.f()).length), i[n++] = r; else { a = j[s = r - 257]; 0 < H[s] && (a += it(this, H[s])); r = nt(this, e); o = X[r]; 0 < J[r] && (o += it(this, J[r])); n + a > c && (c = (i = this.f()).length); for (;a--; ) i[n] = i[n++ - o]; } for (;8 <= this.e; ) this.e -= 8, this.c--; this.b = n; }; L.prototype.f = function() { var t, e, i = new (a ? Uint8Array : Array)(this.b - 32768), n = this.b - 32768, r = this.a; if (a) i.set(r.subarray(32768, i.length)); else { t = 0; for (e = i.length; t < e; ++t) i[t] = r[t + 32768]; } this.k.push(i); this.q += i.length; if (a) r.set(r.subarray(n, n + 32768)); else for (t = 0; 32768 > t; ++t) r[t] = r[n + t]; this.b = 32768; return r; }; L.prototype.J = function(i) { var n, r, s, o = this.input.length / this.c + 1 | 0, c = this.input, l = this.a; i && ("number" === ("object" === (e = typeof i.v) ? t(i.v) : e) && (o = i.v), "number" === ("object" === (e = typeof i.F) ? t(i.F) : e) && (o += i.F)); 2 > o ? r = (s = (c.length - this.c) / this.u[2] / 2 * 258 | 0) < l.length ? l.length + s : l.length << 1 : r = l.length * o; a ? (n = new Uint8Array(r)).set(l) : n = l; return this.a = n; }; L.prototype.t = function() { var t, e, i, n, r, s = 0, o = this.a, c = this.k, l = new (a ? Uint8Array : Array)(this.q + (this.b - 32768)); if (0 === c.length) return a ? this.a.subarray(32768, this.b) : this.a.slice(32768, this.b); e = 0; for (i = c.length; e < i; ++e) { t = c[e]; n = 0; for (r = t.length; n < r; ++n) l[s++] = t[n]; } e = 32768; for (i = this.b; e < i; ++e) l[s++] = o[e]; this.k = []; return this.buffer = l; }; L.prototype.H = function() { var t, e = this.b; a ? this.B ? (t = new Uint8Array(e)).set(this.a.subarray(0, e)) : t = this.a.subarray(0, e) : (this.a.length > e && (this.a.length = e), t = this.a); return this.buffer = t; }; function st(t, e) { var n, r; this.input = t; this.c = 0; !e && (e = {}) || (e.index && (this.c = e.index), e.verify && (this.M = e.verify)); n = t[this.c++]; r = t[this.c++]; switch (15 & n) { case _t: this.method = _t; break; default: i(Error("unsupported compression method")); } 0 != ((n << 8) + r) % 31 && i(Error("invalid fcheck flag:" + ((n << 8) + r) % 31)); 32 & r && i(Error("fdict flag is not supported")); this.A = new L(t, { index: this.c, bufferSize: e.bufferSize, bufferType: e.bufferType, resize: e.resize }); } st.prototype.p = function() { var t, e = this.input; t = this.A.p(); this.c = this.A.c; this.M && ((e[this.c++] << 24 | e[this.c++] << 16 | e[this.c++] << 8 | e[this.c++]) >>> 0 !== c(t) && i(Error("invalid adler-32 checksum"))); return t; }; o("Zlib.Inflate", st); o("Zlib.Inflate.BufferType", V); V.ADAPTIVE = V.C; V.BLOCK = V.D; o("Zlib.Inflate.prototype.decompress", st.prototype.p); a && new Uint16Array([ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]); a && new Uint16Array([ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 258, 258 ]); a && new Uint8Array([ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 0, 0 ]); a && new Uint16Array([ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 ]); a && new Uint8Array([ 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13 ]); var ot, at, ct = new (a ? Uint8Array : Array)(288); ot = 0; for (at = ct.length; ot < at; ++ot) ct[ot] = 143 >= ot ? 8 : 255 >= ot ? 9 : 279 >= ot ? 7 : 8; v(ct); var lt, ht, ut = new (a ? Uint8Array : Array)(30); lt = 0; for (ht = ut.length; lt < ht; ++lt) ut[lt] = 5; v(ut); var _t = 8; }).call(window); var s = window.Zlib; s.Deflate = s.Deflate; s.Deflate.compress = s.Deflate.compress; s.Inflate = s.Inflate; s.Inflate.BufferType = s.Inflate.BufferType; s.Inflate.prototype.decompress = s.Inflate.prototype.decompress; n.exports = s; }), {} ], 26: [ (function(i, n, r) { "use strict"; r.__esModule = !0; r.default = void 0; var s, o, a, c, l, h, u, _, f, d, m, p, v, y, g, x, C, b, A, S, w, T, E, M = (function() { function t(t, e) { for (var i = 0; i < e.length; i++) { var n = e[i]; n.enumerable = n.enumerable || !1; n.configurable = !0; "value" in n && (n.writable = !0); Object.defineProperty(t, n.key, n); } } return function(e, i, n) { i && t(e.prototype, i); n && t(e, n); return e; }; })(), B = R(i("../../renderer/enums")), D = R(i("../../renderer/scene/light")), I = i("../value-types"), P = i("../vmath"); function R(t) { return t && t.__esModule ? t : { default: t }; } function L(t, e, i, n) { i && Object.defineProperty(t, e, { enumerable: i.enumerable, configurable: i.configurable, writable: i.writable, value: i.initializer ? i.initializer.call(n) : void 0 }); } function F(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } function O(i, n) { if (!i) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !n || "object" !== ("object" === (e = typeof n) ? t(n) : e) && "function" !== ("object" === (e = typeof n) ? t(n) : e) ? i : n; } function V(i, n) { if ("function" !== ("object" === (e = typeof n) ? t(n) : e) && null !== n) throw new TypeError("Super expression must either be null or a function, not " + ("object" === (e = typeof n) ? t(n) : e)); i.prototype = Object.create(n && n.prototype, { constructor: { value: i, enumerable: !1, writable: !0, configurable: !0 } }); n && (Object.setPrototypeOf ? Object.setPrototypeOf(i, n) : i.__proto__ = n); } function N(t, e, i, n, r) { var s = {}; Object.keys(n).forEach((function(t) { s[t] = n[t]; })); s.enumerable = !!s.enumerable; s.configurable = !!s.configurable; ("value" in s || s.initializer) && (s.writable = !0); s = i.slice().reverse().reduce((function(i, n) { return n(t, e, i) || i; }), s); if (r && void 0 !== s.initializer) { s.value = s.initializer ? s.initializer.call(r) : void 0; s.initializer = void 0; } if (void 0 === s.initializer) { Object.defineProperty(t, e, s); s = null; } return s; } var k = i("../renderer/index"), z = i("../platform/CCEnum"), G = i("../components/CCComponent"), U = i("../platform/CCClassDecorator"), j = U.ccclass, W = U.menu, H = U.inspector, q = U.property, X = U.executeInEditMode, Y = z({ DIRECTIONAL: 0, POINT: 1, SPOT: 2 }), J = z({ NONE: 0, HARD: 2 }), Z = (s = j("cc.Light"), o = W("i18n:MAIN_MENU.component.renderers/Light"), a = H("packages://inspector/inspectors/comps/light.js"), c = q({ type: Y }), l = q({ type: J }), s(h = o(h = X(h = a(h = (u = (E = T = (function(t) { V(e, t); M(e, [ { key: "type", get: function() { return this._type; }, set: function(t) { this._type = t; var e = B.default.LIGHT_DIRECTIONAL; this._type === Y.POINT ? e = B.default.LIGHT_POINT : this._type === Y.SPOT && (e = B.default.LIGHT_SPOT); this._light.setType(e); } }, { key: "color", get: function() { return this._color; }, set: function(t) { this._color = t; this._light.setColor(t.r / 255, t.g / 255, t.b / 255); } }, { key: "intensity", get: function() { return this._intensity; }, set: function(t) { this._intensity = t; this._light.setIntensity(t); } }, { key: "range", get: function() { return this._range; }, set: function(t) { this._range = t; this._light.setRange(t); } }, { key: "spotAngle", get: function() { return this._spotAngle; }, set: function(t) { this._spotAngle = t; this._light.setSpotAngle((0, P.toRadian)(t)); } }, { key: "spotExp", get: function() { return this._spotExp; }, set: function(t) { this._spotExp = t; this._light.setSpotExp(t); } }, { key: "shadowType", get: function() { return this._shadowType; }, set: function(t) { this._shadowType = t; var e = B.default.SHADOW_NONE; t === J.HARD ? e = B.default.SHADOW_HARD : t === J.SOFT && (e = B.default.SHADOW_SOFT); this._light.setShadowType(e); } }, { key: "shadowResolution", get: function() { return this._shadowResolution; }, set: function(t) { this._shadowResolution = t; this._light.setShadowResolution(t); } }, { key: "shadowDarkness", get: function() { return this._shadowDarkness; }, set: function(t) { this._shadowDarkness = t; this._light.setShadowDarkness(t); } }, { key: "shadowMinDepth", get: function() { return this._shadowMinDepth; }, set: function(t) { this._shadowMinDepth = t; this._light.setShadowMinDepth(t); } }, { key: "shadowMaxDepth", get: function() { return this._shadowMaxDepth; }, set: function(t) { this._shadowMaxDepth = t; this._light.setShadowMaxDepth(t); } }, { key: "shadowDepthScale", get: function() { return this._shadowDepthScale; }, set: function(t) { this._shadowDepthScale = t; this._light.setShadowDepthScale(t); } }, { key: "shadowFrustumSize", get: function() { return this._shadowFrustumSize; }, set: function(t) { this._shadowFrustumSize = t; this._light.setShadowFrustumSize(t); } } ]); function e() { F(this, e); var i = O(this, t.call(this)); L(i, "_type", _, i); L(i, "_color", f, i); L(i, "_intensity", d, i); L(i, "_range", m, i); L(i, "_spotAngle", p, i); L(i, "_spotExp", v, i); L(i, "_shadowType", y, i); L(i, "_shadowResolution", g, i); L(i, "_shadowDarkness", x, i); L(i, "_shadowMinDepth", C, i); L(i, "_shadowMaxDepth", b, i); L(i, "_shadowDepthScale", A, i); L(i, "_shadowFrustumSize", S, i); L(i, "_shadowBias", w, i); i._light = new D.default(); return i; } e.prototype.onLoad = function() { this._light.setNode(this.node); this.type = this._type; this.color = this._color; this.intensity = this._intensity; this.range = this._range; this.spotAngle = this._spotAngle; this.spotExp = this._spotExp; this.shadowType = this._shadowType; this.shadowResolution = this._shadowResolution; this.shadowDarkness = this._shadowDarkness; this.shadowMaxDepth = this._shadowMaxDepth; this.shadowDepthScale = this._shadowDepthScale; this.shadowFrustumSize = this._shadowFrustumSize; this.shadowBias = this._shadowBias; }; e.prototype.onEnable = function() { k.scene.addLight(this._light); }; e.prototype.onDisable = function() { k.scene.removeLight(this._light); }; return e; })(G), T.Type = Y, T.ShadowType = J, E), _ = N(u.prototype, "_type", [ q ], { enumerable: !0, initializer: function() { return Y.DIRECTIONAL; } }), f = N(u.prototype, "_color", [ q ], { enumerable: !0, initializer: function() { return I.Color.WHITE; } }), d = N(u.prototype, "_intensity", [ q ], { enumerable: !0, initializer: function() { return 1; } }), m = N(u.prototype, "_range", [ q ], { enumerable: !0, initializer: function() { return 1; } }), p = N(u.prototype, "_spotAngle", [ q ], { enumerable: !0, initializer: function() { return 60; } }), v = N(u.prototype, "_spotExp", [ q ], { enumerable: !0, initializer: function() { return 1; } }), y = N(u.prototype, "_shadowType", [ q ], { enumerable: !0, initializer: function() { return J.NONE; } }), g = N(u.prototype, "_shadowResolution", [ q ], { enumerable: !0, initializer: function() { return 1024; } }), x = N(u.prototype, "_shadowDarkness", [ q ], { enumerable: !0, initializer: function() { return .5; } }), C = N(u.prototype, "_shadowMinDepth", [ q ], { enumerable: !0, initializer: function() { return 1; } }), b = N(u.prototype, "_shadowMaxDepth", [ q ], { enumerable: !0, initializer: function() { return 4096; } }), A = N(u.prototype, "_shadowDepthScale", [ q ], { enumerable: !0, initializer: function() { return 250; } }), S = N(u.prototype, "_shadowFrustumSize", [ q ], { enumerable: !0, initializer: function() { return 1024; } }), w = N(u.prototype, "_shadowBias", [ q ], { enumerable: !0, initializer: function() { return 5e-4; } }), N(u.prototype, "type", [ c ], Object.getOwnPropertyDescriptor(u.prototype, "type"), u.prototype), N(u.prototype, "color", [ q ], Object.getOwnPropertyDescriptor(u.prototype, "color"), u.prototype), N(u.prototype, "intensity", [ q ], Object.getOwnPropertyDescriptor(u.prototype, "intensity"), u.prototype), N(u.prototype, "range", [ q ], Object.getOwnPropertyDescriptor(u.prototype, "range"), u.prototype), N(u.prototype, "spotAngle", [ q ], Object.getOwnPropertyDescriptor(u.prototype, "spotAngle"), u.prototype), N(u.prototype, "spotExp", [ q ], Object.getOwnPropertyDescriptor(u.prototype, "spotExp"), u.prototype), N(u.prototype, "shadowType", [ l ], Object.getOwnPropertyDescriptor(u.prototype, "shadowType"), u.prototype), N(u.prototype, "shadowResolution", [ q ], Object.getOwnPropertyDescriptor(u.prototype, "shadowResolution"), u.prototype), N(u.prototype, "shadowDarkness", [ q ], Object.getOwnPropertyDescriptor(u.prototype, "shadowDarkness"), u.prototype), N(u.prototype, "shadowMinDepth", [ q ], Object.getOwnPropertyDescriptor(u.prototype, "shadowMinDepth"), u.prototype), N(u.prototype, "shadowMaxDepth", [ q ], Object.getOwnPropertyDescriptor(u.prototype, "shadowMaxDepth"), u.prototype), N(u.prototype, "shadowDepthScale", [ q ], Object.getOwnPropertyDescriptor(u.prototype, "shadowDepthScale"), u.prototype), N(u.prototype, "shadowFrustumSize", [ q ], Object.getOwnPropertyDescriptor(u.prototype, "shadowFrustumSize"), u.prototype), u)) || h) || h) || h) || h); r.default = Z; cc.Light = Z; n.exports = r.default; }), { "../../renderer/enums": 344, "../../renderer/scene/light": 372, "../components/CCComponent": 95, "../platform/CCClassDecorator": 202, "../platform/CCEnum": 203, "../renderer/index": 244, "../value-types": 306, "../vmath": 317 } ], 27: [ (function(t, e, i) { "use strict"; var n = cc.Class({ name: "cc.Model", extends: cc.Asset, ctor: function() { this._rootNode = null; }, properties: { _nodes: { default: [] }, _precomputeJointMatrix: !1, nodes: { get: function() { return this._nodes; } }, rootNode: { get: function() { return this._rootNode; } }, precomputeJointMatrix: { get: function() { return this._precomputeJointMatrix; } } }, onLoad: function() { var t = this._nodes; this._rootNode = t[0]; for (var e = 0; e < t.length; e++) { var i = t[e]; i.position = cc.v3.apply(this, i.position); i.scale = cc.v3.apply(this, i.scale); i.quat = cc.quat.apply(this, i.quat); i.uniqueBindPose && (i.uniqueBindPose = cc.mat4.apply(this, i.uniqueBindPose)); var n = i.bindpose; if (n) for (var r in n) n[r] = cc.mat4.apply(this, n[r]); var s = i.children; if (s) for (var o = 0; o < s.length; o++) s[o] = t[s[o]]; } } }); cc.Model = e.exports = n; }), {} ], 28: [ (function(t, e, i) { "use strict"; var n = cc.vmath.quat, r = cc.quat(), s = cc.v3(); cc.Rotate3DTo = cc.Class({ name: "cc.Rotate3DTo", extends: cc.ActionInterval, ctor: function(t, e, i, n) { this._startQuat = cc.quat(); this._dstQuat = cc.quat(); void 0 !== e && this.initWithDuration(t, e, i, n); }, initWithDuration: function(t, e, i, n) { if (cc.ActionInterval.prototype.initWithDuration.call(this, t)) { var r = this._dstQuat; if (e instanceof cc.Quat) r.set(e); else { if (e instanceof cc.Vec3) { i = e.y; n = e.z; e = e.x; } else { i = i || 0; n = n || 0; } cc.vmath.quat.fromEuler(r, e, i, n); } return !0; } return !1; }, clone: function() { var t = new cc.Rotate3DTo(); this._cloneDecoration(t); t.initWithDuration(this._duration, this._dstQuat); return t; }, startWithTarget: function(t) { cc.ActionInterval.prototype.startWithTarget.call(this, t); this._startQuat.set(t.quat); }, reverse: function() { cc.logID(1016); }, update: function(t) { t = this._computeEaseTime(t); if (this.target) { n.slerp(r, this._startQuat, this._dstQuat, t); this.target.setRotation(r); } } }); cc.rotate3DTo = function(t, e, i, n) { return new cc.Rotate3DTo(t, e, i, n); }; cc.Rotate3DBy = cc.Class({ name: "cc.Rotate3DBy", extends: cc.ActionInterval, ctor: function(t, e, i, n) { this._angle = cc.v3(); this._quat = cc.quat(); this._lastDt = 0; void 0 !== e && this.initWithDuration(t, e, i, n); }, initWithDuration: function(t, e, i, n) { if (cc.ActionInterval.prototype.initWithDuration.call(this, t)) { if (e instanceof cc.Vec3) { i = e.y; n = e.z; e = e.x; } else { i = i || 0; n = n || 0; } cc.vmath.vec3.set(this._angle, e, i, n); return !0; } return !1; }, clone: function() { var t = new cc.Rotate3DBy(); this._cloneDecoration(t); t.initWithDuration(this._duration, this._angle); return t; }, startWithTarget: function(t) { cc.ActionInterval.prototype.startWithTarget.call(this, t); this._quat.set(t.quat); this._lastDt = 0; }, update: (function() { var t = Math.PI / 180; return function(e) { e = this._computeEaseTime(e); if (this.target) { var i = this._angle, r = this._quat, s = e - this._lastDt, o = i.x, a = i.y, c = i.z; o && n.rotateX(r, r, o * t * s); a && n.rotateY(r, r, a * t * s); c && n.rotateZ(r, r, c * t * s); this.target.setRotation(r); this._lastDt = e; } }; })(), reverse: function() { var t = this._angle; s.x = -t.x; s.y = -t.y; s.z = -t.z; var e = new cc.Rotate3DBy(this._duration, s); this._cloneDecoration(e); this._reverseEaseList(e); return e; } }); cc.rotate3DBy = function(t, e, i, n) { return new cc.Rotate3DBy(t, e, i, n); }; }), {} ], 29: [ (function(t, e, i) { "use strict"; t("./polyfill-3d"); t("./primitive"); t("./CCModel"); t("./skeleton/CCSkeleton"); t("./skeleton/CCSkeletonAnimationClip"); t("./actions"); t("./skeleton/CCSkeletonAnimation"); t("./skeleton/CCSkinnedMeshRenderer"); t("./skeleton/skinned-mesh-renderer"); t("./CCLightComponent"); }), { "./CCLightComponent": 26, "./CCModel": 27, "./actions": 28, "./polyfill-3d": 30, "./primitive": 35, "./skeleton/CCSkeleton": 44, "./skeleton/CCSkeletonAnimation": 45, "./skeleton/CCSkeletonAnimationClip": 46, "./skeleton/CCSkinnedMeshRenderer": 47, "./skeleton/skinned-mesh-renderer": 48 } ], 30: [ (function(i, n, r) { "use strict"; var s = i("../vmath"), o = i("../CCNode"), a = o.EventType, c = o._LocalDirtyFlag, l = i("../renderer/render-flow"), h = Math.PI / 180, u = 1, _ = 2; function f() { if (this._localMatDirty) { var t = this._matrix; s.mat4.fromRTS(t, this._quat, this._position, this._scale); if (this._skewX || this._skewY) { var e = t.m00, i = t.m01, n = t.m04, r = t.m05, o = Math.tan(this._skewX * h), a = Math.tan(this._skewY * h); Infinity === o && (o = 99999999); Infinity === a && (a = 99999999); t.m00 = e + n * a; t.m01 = i + r * a; t.m04 = n + e * o; t.m05 = r + i * o; } this._localMatDirty = 0; this._worldMatDirty = !0; } } function d() { this._localMatDirty && this._updateLocalMatrix(); if (this._parent) { var t = this._parent._worldMatrix; s.mat4.mul(this._worldMatrix, t, this._matrix); } else s.mat4.copy(this._worldMatrix, this._matrix); this._worldMatDirty = !1; } function m(t, e, i) { var n = void 0; if (void 0 === e) { n = t.x; e = t.y; i = t.z || 0; } else { n = t; i = i || 0; } var r = this._position; if (r.x !== n || r.y !== e || r.z !== i) { r.x = n; r.y = e; r.z = i; this.setLocalDirty(c.POSITION); this._renderFlag |= l.FLAG_WORLD_TRANSFORM; this._eventMask & u && this.emit(a.POSITION_CHANGED); } } var p = cc.Node.prototype, v = p._updateLocalMatrix, y = p._calculWorldMatrix, g = p._upgrade_1x_to_2x, x = p._mulMat; p.setPosition = m; p.setScale = function(i, n, r) { if (i && "number" !== ("object" == (e = typeof i) ? t(i) : e)) { n = i.y; r = i.z || 1; i = i.x; } else if (void 0 !== i && void 0 === n) { n = i; r = i; } else void 0 === r && (r = 1); if (this._scale.x !== i || this._scale.y !== n || this._scale.z !== r) { this._scale.x = i; this._scale.y = n; this._scale.z = r; this.setLocalDirty(c.SCALE); this._renderFlag |= l.FLAG_TRANSFORM; this._eventMask & _ && this.emit(a.SCALE_CHANGED); } }; p._upgrade_1x_to_2x = function() { this._is3DNode && this._update3DFunction(); g.call(this); }; p._update3DFunction = function() { if (this._is3DNode) { this._updateLocalMatrix = f; this._calculWorldMatrix = d; this._mulMat = s.mat4.mul; } else { this._updateLocalMatrix = v; this._calculWorldMatrix = y; this._mulMat = x; } this._renderComponent && this._renderComponent._on3DNodeChanged && this._renderComponent._on3DNodeChanged(); this._renderFlag |= l.FLAG_TRANSFORM; this._localMatDirty = c.ALL; }; cc.js.getset(p, "position", p.getPosition, m, !1, !0); cc.js.getset(p, "is3DNode", (function() { return this._is3DNode; }), (function(t) { if (this._is3DNode !== t) { this._is3DNode = t; this._update3DFunction(); } })); cc.js.getset(p, "scaleZ", (function() { return this._scale.z; }), (function(t) { if (this._scale.z !== t) { this._scale.z = t; this.setLocalDirty(c.SCALE); this._renderFlag |= l.FLAG_TRANSFORM; this._eventMask & _ && this.emit(a.SCALE_CHANGED); } })); cc.js.getset(p, "z", (function() { return this._position.z; }), (function(t) { var e = this._position; if (t !== e.z) { e.z = t; this.setLocalDirty(c.POSITION); this._renderFlag |= l.FLAG_WORLD_TRANSFORM; this._eventMask & u && this.emit(a.POSITION_CHANGED); } })); cc.js.getset(p, "eulerAngles", (function() { return this._quat.toEuler(this._eulerAngles); }), (function(t) { 0; this._quat.fromEuler(t); this.setLocalDirty(c.ROTATION); this._renderFlag |= l.FLAG_TRANSFORM; })); cc.js.getset(p, "quat", (function() { return this._quat; }), p.setRotation); }), { "../CCNode": 52, "../renderer/render-flow": 245, "../vmath": 317 } ], 31: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.default = function() { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1, e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1, i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1, v = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {}, y = void 0 !== v.widthSegments ? v.widthSegments : 1, g = void 0 !== v.heightSegments ? v.heightSegments : 1, x = void 0 !== v.lengthSegments ? v.lengthSegments : 1, C = void 0 !== v.invWinding && v.invWinding, b = .5 * t, A = .5 * e, S = .5 * i, w = [ n.vec3.set(l, -b, -A, S), n.vec3.set(h, b, -A, S), n.vec3.set(u, b, A, S), n.vec3.set(_, -b, A, S), n.vec3.set(f, b, -A, -S), n.vec3.set(d, -b, -A, -S), n.vec3.set(m, -b, A, -S), n.vec3.set(p, b, A, -S) ], T = [ [ 2, 3, 1 ], [ 4, 5, 7 ], [ 7, 6, 2 ], [ 1, 0, 4 ], [ 1, 4, 2 ], [ 5, 0, 6 ] ], E = [ [ 0, 0, 1 ], [ 0, 0, -1 ], [ 0, 1, 0 ], [ 0, -1, 0 ], [ 1, 0, 0 ], [ -1, 0, 0 ] ], M = [], B = [], D = [], I = [], P = n.vec3.create(-b, -A, -S), R = n.vec3.create(b, A, S), L = Math.sqrt(b * b + A * A + S * S); function F(t, e, i) { var r = void 0, l = void 0, h = void 0, u = void 0, _ = M.length / 3, f = T[t], d = E[t]; for (u = 0; u <= i; u++) for (h = 0; h <= e; h++) { r = h / e; l = u / i; n.vec3.lerp(s, w[f[0]], w[f[1]], r); n.vec3.lerp(o, w[f[0]], w[f[2]], l); n.vec3.sub(a, o, w[f[0]]); n.vec3.add(c, s, a); M.push(c.x, c.y, c.z); B.push(d[0], d[1], d[2]); D.push(r, l); if (h < e && u < i) { var m = e + 1, p = h + u * m, v = h + (u + 1) * m, y = h + 1 + (u + 1) * m, g = h + 1 + u * m; if (C) { I.push(_ + p, _ + v, _ + g); I.push(_ + g, _ + v, _ + y); } else { I.push(_ + p, _ + g, _ + v); I.push(_ + v, _ + g, _ + y); } } } } F(0, y, g); F(4, x, g); F(1, y, g); F(5, x, g); F(3, y, x); F(2, y, x); return new r.default(M, B, D, I, P, R, L); }; var n = t("../../vmath"), r = (function(t) { return t && t.__esModule ? t : { default: t }; })(t("./vertex-data")); var s = n.vec3.create(0, 0, 0), o = n.vec3.create(0, 0, 0), a = n.vec3.create(0, 0, 0), c = n.vec3.create(0, 0, 0), l = n.vec3.create(0, 0, 0), h = n.vec3.create(0, 0, 0), u = n.vec3.create(0, 0, 0), _ = n.vec3.create(0, 0, 0), f = n.vec3.create(0, 0, 0), d = n.vec3.create(0, 0, 0), m = n.vec3.create(0, 0, 0), p = n.vec3.create(0, 0, 0); e.exports = i.default; }), { "../../vmath": 317, "./vertex-data": 42 } ], 32: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.default = function() { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : .5, e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : .5, i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 2, a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {}, c = i - t - e, l = a.sides || 32, h = a.heightSegments || 32, u = e / i, _ = c / i, f = t / i, d = Math.floor(h * u), m = Math.floor(h * f), p = Math.floor(h * _), v = c + e - i / 2, y = e - i / 2, g = e - i / 2, x = a.arc || 2 * Math.PI, C = [], b = [], A = [], S = [], w = Math.max(t, e), T = n.vec3.create(-w, -i / 2, -w), E = n.vec3.create(w, i / 2, w), M = i / 2, B = 0, D = []; (function() { for (var t = 0; t <= d; ++t) for (var i = t * Math.PI / d / 2, n = Math.sin(i), r = -Math.cos(i), s = 0; s <= l; ++s) { var o = 2 * s * Math.PI / l - Math.PI / 2, a = Math.sin(o), c = Math.cos(o), u = a * n, _ = r, f = c * n, m = s / l, p = t / h; C.push(u * e, _ * e + g, f * e); b.push(u, _, f); A.push(m, p); if (t < d && s < l) { var v = l + 1, y = v * t + s, x = v * (t + 1) + s, w = v * (t + 1) + s + 1, T = v * t + s + 1; S.push(y, T, x); S.push(T, w, x); } ++B; } })(); (function() { for (var i = (t - e) / c, r = 0; r <= p; r++) { for (var a = [], h = r / p, f = h * (t - e) + e, d = 0; d <= l; ++d) { var m = d / l, v = h * _ + u, g = m * x - x / 4, w = Math.sin(g), T = Math.cos(g); C.push(f * w); C.push(h * c + y); C.push(f * T); n.vec3.normalize(s, n.vec3.set(o, w, -i, T)); b.push(s.x); b.push(s.y); b.push(s.z); A.push(m, v); a.push(B); ++B; } D.push(a); } for (var E = 0; E < p; ++E) for (var M = 0; M < l; ++M) { var I = D[E][M], P = D[E + 1][M], R = D[E + 1][M + 1], L = D[E][M + 1]; S.push(I); S.push(L); S.push(P); S.push(L); S.push(R); S.push(P); } })(); (function() { for (var e = 0; e <= m; ++e) for (var i = e * Math.PI / m / 2 + Math.PI / 2, n = Math.sin(i), r = -Math.cos(i), s = 0; s <= l; ++s) { var o = 2 * s * Math.PI / l - Math.PI / 2, a = Math.sin(o), c = Math.cos(o), u = a * n, _ = r, d = c * n, y = s / l, g = e / h + (1 - f); C.push(u * t, _ * t + v, d * t); b.push(u, _, d); A.push(y, g); if (e < m && s < l) { var x = l + 1, w = x * e + s + D[p][l] + 1, T = x * (e + 1) + s + D[p][l] + 1, E = x * (e + 1) + s + 1 + D[p][l] + 1, M = x * e + s + 1 + D[p][l] + 1; S.push(w, M, T); S.push(M, E, T); } } })(); return new r.default(C, b, A, S, T, E, M); }; var n = t("../../vmath"), r = (function(t) { return t && t.__esModule ? t : { default: t }; })(t("./vertex-data")); var s = n.vec3.create(0, 0, 0), o = n.vec3.create(0, 0, 0); e.exports = i.default; }), { "../../vmath": 317, "./vertex-data": 42 } ], 33: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.default = function() { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : .5, e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1, i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; return (0, n.default)(0, t, e, i); }; var n = (function(t) { return t && t.__esModule ? t : { default: t }; })(t("./cylinder")); e.exports = i.default; }), { "./cylinder": 34 } ], 34: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.default = function() { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : .5, e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : .5, i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 2, a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {}, c = .5 * i, l = a.radialSegments || 32, h = a.heightSegments || 1, u = void 0 === a.capped || a.capped, _ = a.arc || 2 * Math.PI, f = 0; if (!u) { t > 0 && f++; e > 0 && f++; } var d = (l + 1) * (h + 1); u && (d += (l + 1) * f + l * f); var m = l * h * 2 * 3; u && (m += l * f * 3); var p = new Array(m), v = new Array(3 * d), y = new Array(3 * d), g = new Array(2 * d), x = Math.max(t, e), C = n.vec3.create(-x, -c, -x), b = n.vec3.create(x, c, x), A = Math.sqrt(x * x + c * c), S = 0, w = 0; (function() { for (var r = [], a = t - e, u = a * a / i * Math.sign(a), f = 0; f <= h; f++) { for (var d = [], m = f / h, x = m * a + e, C = 0; C <= l; ++C) { var b = C / l, A = b * _, T = Math.sin(A), E = Math.cos(A); v[3 * S] = x * T; v[3 * S + 1] = m * i - c; v[3 * S + 2] = x * E; n.vec3.normalize(s, n.vec3.set(o, T, -u, E)); y[3 * S] = s.x; y[3 * S + 1] = s.y; y[3 * S + 2] = s.z; g[2 * S] = 2 * (1 - b) % 1; g[2 * S + 1] = m; d.push(S); ++S; } r.push(d); } for (var M = 0; M < h; ++M) for (var B = 0; B < l; ++B) { var D = r[M][B], I = r[M + 1][B], P = r[M + 1][B + 1], R = r[M][B + 1]; p[w] = D; p[++w] = R; p[++w] = I; p[++w] = R; p[++w] = P; p[++w] = I; ++w; } })(); if (u) { e > 0 && T(!1); t > 0 && T(!0); } return new r.default(v, y, g, p, C, b, A); function T(i) { var n, r, s = i ? t : e, o = i ? 1 : -1; n = S; for (var a = 1; a <= l; ++a) { v[3 * S] = 0; v[3 * S + 1] = c * o; v[3 * S + 2] = 0; y[3 * S] = 0; y[3 * S + 1] = o; y[3 * S + 2] = 0; g[2 * S] = .5; g[2 * S + 1] = .5; ++S; } r = S; for (var h = 0; h <= l; ++h) { var u = h / l * _, f = Math.cos(u), d = Math.sin(u); v[3 * S] = s * d; v[3 * S + 1] = c * o; v[3 * S + 2] = s * f; y[3 * S] = 0; y[3 * S + 1] = o; y[3 * S + 2] = 0; g[2 * S] = .5 - .5 * d * o; g[2 * S + 1] = .5 + .5 * f; ++S; } for (var m = 0; m < l; ++m) { var x = n + m, C = r + m; if (i) { p[w] = C + 1; p[++w] = x; p[++w] = C; ++w; } else { p[w] = x; p[++w] = C + 1; p[++w] = C; ++w; } } } }; var n = t("../../vmath"), r = (function(t) { return t && t.__esModule ? t : { default: t }; })(t("./vertex-data")); var s = n.vec3.create(0, 0, 0), o = n.vec3.create(0, 0, 0); e.exports = i.default; }), { "../../vmath": 317, "./vertex-data": 42 } ], 35: [ (function(t, e, i) { "use strict"; var n = d(t("./utils")), r = d(t("./box")), s = d(t("./cone")), o = d(t("./cylinder")), a = d(t("./plane")), c = d(t("./quad")), l = d(t("./sphere")), h = d(t("./torus")), u = d(t("./capsule")), _ = t("./polyhedron"), f = d(t("./vertex-data")); function d(t) { return t && t.__esModule ? t : { default: t }; } cc.primitive = Object.assign({ box: r.default, cone: s.default, cylinder: o.default, plane: a.default, quad: c.default, sphere: l.default, torus: h.default, capsule: u.default, polyhedron: _.polyhedron, PolyhedronType: _.PolyhedronType, VertexData: f.default }, n.default); }), { "./box": 31, "./capsule": 32, "./cone": 33, "./cylinder": 34, "./plane": 36, "./polyhedron": 37, "./quad": 38, "./sphere": 39, "./torus": 40, "./utils": 41, "./vertex-data": 42 } ], 36: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.default = function() { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 10, e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 10, i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, _ = void 0 !== i.widthSegments ? i.widthSegments : 10, f = void 0 !== i.lengthSegments ? i.lengthSegments : 10, d = .5 * t, m = .5 * e, p = [], v = [], y = [], g = [], x = n.vec3.create(-d, 0, -m), C = n.vec3.create(d, 0, m), b = Math.sqrt(t * t + e * e); n.vec3.set(l, -d, 0, m); n.vec3.set(h, d, 0, m); n.vec3.set(u, -d, 0, -m); for (var A = 0; A <= f; A++) for (var S = 0; S <= _; S++) { var w = S / _, T = A / f; n.vec3.lerp(s, l, h, w); n.vec3.lerp(o, l, u, T); n.vec3.sub(a, o, l); n.vec3.add(c, s, a); p.push(c.x, c.y, c.z); v.push(0, 1, 0); y.push(w, T); if (S < _ && A < f) { var E = _ + 1, M = S + A * E, B = S + (A + 1) * E, D = S + 1 + (A + 1) * E, I = S + 1 + A * E; g.push(M, I, B); g.push(I, D, B); } } return new r.default(p, v, y, g, x, C, b); }; var n = t("../../vmath"), r = (function(t) { return t && t.__esModule ? t : { default: t }; })(t("./vertex-data")); var s = n.vec3.create(0, 0, 0), o = n.vec3.create(0, 0, 0), a = n.vec3.create(0, 0, 0), c = n.vec3.create(0, 0, 0), l = n.vec3.create(0, 0, 0), h = n.vec3.create(0, 0, 0), u = n.vec3.create(0, 0, 0); e.exports = i.default; }), { "../../vmath": 317, "./vertex-data": 42 } ], 37: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.polyhedron = i.PolyhedronType = void 0; var n = t("./utils"), r = t("../../vmath"), s = (function(t) { return t && t.__esModule ? t : { default: t }; })(t("./vertex-data")); i.PolyhedronType = cc.Enum({ Tetrahedron: 0, Octahedron: 1, Dodecahedron: 2, Icosahedron: 3, Rhombicuboctahedron: 4, TriangularPrism: 5, PentagonalPrism: 6, HexagonalPrism: 7, SquarePyramid: 8, PentagonalPyramid: 9, TriangularDipyramid: 10, PentagonalDipyramid: 11, ElongatedSquareDipyramid: 12, ElongatedPentagonalDipyramid: 13, ElongatedPentagonalCupola: 14 }); var o = []; o[0] = { vertex: [ [ 0, 0, 1.732051 ], [ 1.632993, 0, -.5773503 ], [ -.8164966, 1.414214, -.5773503 ], [ -.8164966, -1.414214, -.5773503 ] ], face: [ [ 0, 1, 2 ], [ 0, 2, 3 ], [ 0, 3, 1 ], [ 1, 3, 2 ] ] }; o[1] = { vertex: [ [ 0, 0, 1.414214 ], [ 1.414214, 0, 0 ], [ 0, 1.414214, 0 ], [ -1.414214, 0, 0 ], [ 0, -1.414214, 0 ], [ 0, 0, -1.414214 ] ], face: [ [ 0, 1, 2 ], [ 0, 2, 3 ], [ 0, 3, 4 ], [ 0, 4, 1 ], [ 1, 4, 5 ], [ 1, 5, 2 ], [ 2, 5, 3 ], [ 3, 5, 4 ] ] }; o[2] = { vertex: [ [ 0, 0, 1.070466 ], [ .7136442, 0, .7978784 ], [ -.3568221, .618034, .7978784 ], [ -.3568221, -.618034, .7978784 ], [ .7978784, .618034, .3568221 ], [ .7978784, -.618034, .3568221 ], [ -.9341724, .381966, .3568221 ], [ .1362939, 1, .3568221 ], [ .1362939, -1, .3568221 ], [ -.9341724, -.381966, .3568221 ], [ .9341724, .381966, -.3568221 ], [ .9341724, -.381966, -.3568221 ], [ -.7978784, .618034, -.3568221 ], [ -.1362939, 1, -.3568221 ], [ -.1362939, -1, -.3568221 ], [ -.7978784, -.618034, -.3568221 ], [ .3568221, .618034, -.7978784 ], [ .3568221, -.618034, -.7978784 ], [ -.7136442, 0, -.7978784 ], [ 0, 0, -1.070466 ] ], face: [ [ 0, 1, 4, 7, 2 ], [ 0, 2, 6, 9, 3 ], [ 0, 3, 8, 5, 1 ], [ 1, 5, 11, 10, 4 ], [ 2, 7, 13, 12, 6 ], [ 3, 9, 15, 14, 8 ], [ 4, 10, 16, 13, 7 ], [ 5, 8, 14, 17, 11 ], [ 6, 12, 18, 15, 9 ], [ 10, 11, 17, 19, 16 ], [ 12, 13, 16, 19, 18 ], [ 14, 15, 18, 19, 17 ] ] }; o[3] = { vertex: [ [ 0, 0, 1.175571 ], [ 1.051462, 0, .5257311 ], [ .3249197, 1, .5257311 ], [ -.8506508, .618034, .5257311 ], [ -.8506508, -.618034, .5257311 ], [ .3249197, -1, .5257311 ], [ .8506508, .618034, -.5257311 ], [ .8506508, -.618034, -.5257311 ], [ -.3249197, 1, -.5257311 ], [ -1.051462, 0, -.5257311 ], [ -.3249197, -1, -.5257311 ], [ 0, 0, -1.175571 ] ], face: [ [ 0, 1, 2 ], [ 0, 2, 3 ], [ 0, 3, 4 ], [ 0, 4, 5 ], [ 0, 5, 1 ], [ 1, 5, 7 ], [ 1, 7, 6 ], [ 1, 6, 2 ], [ 2, 6, 8 ], [ 2, 8, 3 ], [ 3, 8, 9 ], [ 3, 9, 4 ], [ 4, 9, 10 ], [ 4, 10, 5 ], [ 5, 10, 7 ], [ 6, 7, 11 ], [ 6, 11, 8 ], [ 7, 10, 11 ], [ 8, 11, 9 ], [ 9, 11, 10 ] ] }; o[4] = { vertex: [ [ 0, 0, 1.070722 ], [ .7148135, 0, .7971752 ], [ -.104682, .7071068, .7971752 ], [ -.6841528, .2071068, .7971752 ], [ -.104682, -.7071068, .7971752 ], [ .6101315, .7071068, .5236279 ], [ 1.04156, .2071068, .1367736 ], [ .6101315, -.7071068, .5236279 ], [ -.3574067, 1, .1367736 ], [ -.7888348, -.5, .5236279 ], [ -.9368776, .5, .1367736 ], [ -.3574067, -1, .1367736 ], [ .3574067, 1, -.1367736 ], [ .9368776, -.5, -.1367736 ], [ .7888348, .5, -.5236279 ], [ .3574067, -1, -.1367736 ], [ -.6101315, .7071068, -.5236279 ], [ -1.04156, -.2071068, -.1367736 ], [ -.6101315, -.7071068, -.5236279 ], [ .104682, .7071068, -.7971752 ], [ .6841528, -.2071068, -.7971752 ], [ .104682, -.7071068, -.7971752 ], [ -.7148135, 0, -.7971752 ], [ 0, 0, -1.070722 ] ], face: [ [ 0, 2, 3 ], [ 1, 6, 5 ], [ 4, 9, 11 ], [ 7, 15, 13 ], [ 8, 16, 10 ], [ 12, 14, 19 ], [ 17, 22, 18 ], [ 20, 21, 23 ], [ 0, 1, 5, 2 ], [ 0, 3, 9, 4 ], [ 0, 4, 7, 1 ], [ 1, 7, 13, 6 ], [ 2, 5, 12, 8 ], [ 2, 8, 10, 3 ], [ 3, 10, 17, 9 ], [ 4, 11, 15, 7 ], [ 5, 6, 14, 12 ], [ 6, 13, 20, 14 ], [ 8, 12, 19, 16 ], [ 9, 17, 18, 11 ], [ 10, 16, 22, 17 ], [ 11, 18, 21, 15 ], [ 13, 15, 21, 20 ], [ 14, 20, 23, 19 ], [ 16, 19, 23, 22 ], [ 18, 22, 23, 21 ] ] }; o[5] = { vertex: [ [ 0, 0, 1.322876 ], [ 1.309307, 0, .1889822 ], [ -.9819805, .8660254, .1889822 ], [ .1636634, -1.299038, .1889822 ], [ .3273268, .8660254, -.9449112 ], [ -.8183171, -.4330127, -.9449112 ] ], face: [ [ 0, 3, 1 ], [ 2, 4, 5 ], [ 0, 1, 4, 2 ], [ 0, 2, 5, 3 ], [ 1, 3, 5, 4 ] ] }; o[6] = { vertex: [ [ 0, 0, 1.159953 ], [ 1.013464, 0, .5642542 ], [ -.3501431, .9510565, .5642542 ], [ -.7715208, -.6571639, .5642542 ], [ .6633206, .9510565, -.03144481 ], [ .8682979, -.6571639, -.3996071 ], [ -1.121664, .2938926, -.03144481 ], [ -.2348831, -1.063314, -.3996071 ], [ .5181548, .2938926, -.9953061 ], [ -.5850262, -.112257, -.9953061 ] ], face: [ [ 0, 1, 4, 2 ], [ 0, 2, 6, 3 ], [ 1, 5, 8, 4 ], [ 3, 6, 9, 7 ], [ 5, 7, 9, 8 ], [ 0, 3, 7, 5, 1 ], [ 2, 4, 8, 9, 6 ] ] }; o[7] = { vertex: [ [ 0, 0, 1.118034 ], [ .8944272, 0, .6708204 ], [ -.2236068, .8660254, .6708204 ], [ -.7826238, -.4330127, .6708204 ], [ .6708204, .8660254, .2236068 ], [ 1.006231, -.4330127, -.2236068 ], [ -1.006231, .4330127, .2236068 ], [ -.6708204, -.8660254, -.2236068 ], [ .7826238, .4330127, -.6708204 ], [ .2236068, -.8660254, -.6708204 ], [ -.8944272, 0, -.6708204 ], [ 0, 0, -1.118034 ] ], face: [ [ 0, 1, 4, 2 ], [ 0, 2, 6, 3 ], [ 1, 5, 8, 4 ], [ 3, 6, 10, 7 ], [ 5, 9, 11, 8 ], [ 7, 10, 11, 9 ], [ 0, 3, 7, 9, 5, 1 ], [ 2, 4, 8, 11, 10, 6 ] ] }; o[8] = { vertex: [ [ -.729665, .670121, .319155 ], [ -.655235, -.29213, -.754096 ], [ -.093922, -.607123, .537818 ], [ .702196, .595691, .485187 ], [ .776626, -.36656, -.588064 ] ], face: [ [ 1, 4, 2 ], [ 0, 1, 2 ], [ 3, 0, 2 ], [ 4, 3, 2 ], [ 4, 1, 0, 3 ] ] }; o[9] = { vertex: [ [ -.868849, -.100041, .61257 ], [ -.329458, .976099, .28078 ], [ -.26629, -.013796, -.477654 ], [ -.13392, -1.034115, .229829 ], [ .738834, .707117, -.307018 ], [ .859683, -.535264, -.338508 ] ], face: [ [ 3, 0, 2 ], [ 5, 3, 2 ], [ 4, 5, 2 ], [ 1, 4, 2 ], [ 0, 1, 2 ], [ 0, 3, 5, 4, 1 ] ] }; o[10] = { vertex: [ [ -.610389, .243975, .531213 ], [ -.187812, -.48795, -.664016 ], [ -.187812, .9759, -.664016 ], [ .187812, -.9759, .664016 ], [ .798201, .243975, .132803 ] ], face: [ [ 1, 3, 0 ], [ 3, 4, 0 ], [ 3, 1, 4 ], [ 0, 2, 1 ], [ 0, 4, 2 ], [ 2, 4, 1 ] ] }; o[11] = { vertex: [ [ -1.028778, .392027, -.048786 ], [ -.640503, -.646161, .621837 ], [ -.125162, -.395663, -.540059 ], [ .004683, .888447, -.651988 ], [ .125161, .395663, .540059 ], [ .632925, -.791376, .433102 ], [ 1.031672, .157063, -.354165 ] ], face: [ [ 3, 2, 0 ], [ 2, 1, 0 ], [ 2, 5, 1 ], [ 0, 4, 3 ], [ 0, 1, 4 ], [ 4, 1, 5 ], [ 2, 3, 6 ], [ 3, 4, 6 ], [ 5, 2, 6 ], [ 4, 5, 6 ] ] }; o[12] = { vertex: [ [ -.669867, .334933, -.529576 ], [ -.669867, .334933, .529577 ], [ -.4043, 1.212901, 0 ], [ -.334933, -.669867, -.529576 ], [ -.334933, -.669867, .529577 ], [ .334933, .669867, -.529576 ], [ .334933, .669867, .529577 ], [ .4043, -1.212901, 0 ], [ .669867, -.334933, -.529576 ], [ .669867, -.334933, .529577 ] ], face: [ [ 8, 9, 7 ], [ 6, 5, 2 ], [ 3, 8, 7 ], [ 5, 0, 2 ], [ 4, 3, 7 ], [ 0, 1, 2 ], [ 9, 4, 7 ], [ 1, 6, 2 ], [ 9, 8, 5, 6 ], [ 8, 3, 0, 5 ], [ 3, 4, 1, 0 ], [ 4, 9, 6, 1 ] ] }; o[13] = { vertex: [ [ -.931836, .219976, -.264632 ], [ -.636706, .318353, .692816 ], [ -.613483, -.735083, -.264632 ], [ -.326545, .979634, 0 ], [ -.318353, -.636706, .692816 ], [ -.159176, .477529, -.856368 ], [ .159176, -.477529, -.856368 ], [ .318353, .636706, .692816 ], [ .326545, -.979634, 0 ], [ .613482, .735082, -.264632 ], [ .636706, -.318353, .692816 ], [ .931835, -.219977, -.264632 ] ], face: [ [ 11, 10, 8 ], [ 7, 9, 3 ], [ 6, 11, 8 ], [ 9, 5, 3 ], [ 2, 6, 8 ], [ 5, 0, 3 ], [ 4, 2, 8 ], [ 0, 1, 3 ], [ 10, 4, 8 ], [ 1, 7, 3 ], [ 10, 11, 9, 7 ], [ 11, 6, 5, 9 ], [ 6, 2, 0, 5 ], [ 2, 4, 1, 0 ], [ 4, 10, 7, 1 ] ] }; o[14] = { vertex: [ [ -.93465, .300459, -.271185 ], [ -.838689, -.260219, -.516017 ], [ -.711319, .717591, .128359 ], [ -.710334, -.156922, .080946 ], [ -.599799, .556003, -.725148 ], [ -.503838, -.004675, -.969981 ], [ -.487004, .26021, .48049 ], [ -.460089, -.750282, -.512622 ], [ -.376468, .973135, -.325605 ], [ -.331735, -.646985, .084342 ], [ -.254001, .831847, .530001 ], [ -.125239, -.494738, -.966586 ], [ .029622, .027949, .730817 ], [ .056536, -.982543, -.262295 ], [ .08085, 1.087391, .076037 ], [ .125583, -.532729, .485984 ], [ .262625, .599586, .780328 ], [ .391387, -.726999, -.716259 ], [ .513854, -.868287, .139347 ], [ .597475, .85513, .326364 ], [ .641224, .109523, .783723 ], [ .737185, -.451155, .538891 ], [ .848705, -.612742, -.314616 ], [ .976075, .365067, .32976 ], [ 1.072036, -.19561, .084927 ] ], face: [ [ 15, 18, 21 ], [ 12, 20, 16 ], [ 6, 10, 2 ], [ 3, 0, 1 ], [ 9, 7, 13 ], [ 2, 8, 4, 0 ], [ 0, 4, 5, 1 ], [ 1, 5, 11, 7 ], [ 7, 11, 17, 13 ], [ 13, 17, 22, 18 ], [ 18, 22, 24, 21 ], [ 21, 24, 23, 20 ], [ 20, 23, 19, 16 ], [ 16, 19, 14, 10 ], [ 10, 14, 8, 2 ], [ 15, 9, 13, 18 ], [ 12, 15, 21, 20 ], [ 6, 12, 16, 10 ], [ 3, 6, 2, 0 ], [ 9, 3, 1, 7 ], [ 9, 15, 12, 6, 3 ], [ 22, 17, 11, 5, 4, 8, 14, 19, 23, 24 ] ] }; i.polyhedron = function(t) { var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1, i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; t = t && (t < 0 || t >= o.length) ? 0 : t || 0; for (var a = i.sizeX || e, c = i.sizeY || e, l = i.sizeZ || e, h = o[t], u = h.face.length, _ = [], f = [], d = [], m = [], p = r.vec3.create(Infinity, Infinity, Infinity), v = r.vec3.create(-Infinity, -Infinity, -Infinity), y = 0; y < h.vertex.length; y++) { var g = h.vertex[y][0] * a, x = h.vertex[y][1] * c, C = h.vertex[y][2] * l; p.x = Math.min(p.x, g); p.y = Math.min(p.y, x); p.z = Math.min(p.z, C); v.x = Math.max(v.x, g); v.y = Math.max(v.y, x); v.z = Math.max(v.z, C); _.push(g, x, C); m.push(0, 0); } for (var b = 0; b < u; b++) for (var A = 0; A < h.face[b].length - 2; A++) f.push(h.face[b][0], h.face[b][A + 2], h.face[b][A + 1]); (0, n.calcNormals)(_, f, d); var S = Math.sqrt(Math.pow(v.x - p.x, 2), Math.pow(v.y - p.y, 2), Math.pow(v.z - p.z, 2)); return new s.default(_, d, m, f, p, v, S); }; }), { "../../vmath": 317, "./utils": 41, "./vertex-data": 42 } ], 38: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.default = function() { return new r.default(s, c, o, a, l, h, u); }; var n = t("../../vmath"), r = (function(t) { return t && t.__esModule ? t : { default: t }; })(t("./vertex-data")); var s = [ -.5, -.5, 0, -.5, .5, 0, .5, .5, 0, .5, -.5, 0 ], o = [ 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1 ], a = [ 0, 0, 0, 1, 1, 1, 1, 0 ], c = [ 0, 3, 1, 3, 2, 1 ], l = n.vec3.create(-.5, -.5, 0), h = n.vec3.create(.5, .5, 0), u = Math.sqrt(.5); e.exports = i.default; }), { "../../vmath": 317, "./vertex-data": 42 } ], 39: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.default = function() { for (var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : .5, e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, i = void 0 !== e.segments ? e.segments : 32, s = [], o = [], a = [], c = [], l = n.vec3.create(-t, -t, -t), h = n.vec3.create(t, t, t), u = t, _ = 0; _ <= i; ++_) for (var f = _ * Math.PI / i, d = Math.sin(f), m = -Math.cos(f), p = 0; p <= i; ++p) { var v = 2 * p * Math.PI / i - Math.PI / 2, y = Math.sin(v) * d, g = m, x = Math.cos(v) * d, C = p / i, b = _ / i; s.push(y * t, g * t, x * t); o.push(y, g, x); a.push(C, b); if (_ < i && p < i) { var A = i + 1, S = A * _ + p, w = A * (_ + 1) + p, T = A * (_ + 1) + p + 1, E = A * _ + p + 1; c.push(S, E, w); c.push(E, T, w); } } return new r.default(s, c, o, a, l, h, u); }; var n = t("../../vmath"), r = (function(t) { return t && t.__esModule ? t : { default: t }; })(t("./vertex-data")); e.exports = i.default; }), { "../../vmath": 317, "./vertex-data": 42 } ], 40: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.default = function() { for (var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : .4, e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : .1, i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, s = i.radialSegments || 32, o = i.tubularSegments || 32, a = i.arc || 2 * Math.PI, c = [], l = [], h = [], u = [], _ = n.vec3.create(-t - e, -e, -t - e), f = n.vec3.create(t + e, e, t + e), d = t + e, m = 0; m <= s; m++) for (var p = 0; p <= o; p++) { var v = p / o, y = m / s, g = v * a, x = y * Math.PI * 2, C = (t + e * Math.cos(x)) * Math.sin(g), b = e * Math.sin(x), A = (t + e * Math.cos(x)) * Math.cos(g), S = Math.sin(g) * Math.cos(x), w = Math.sin(x), T = Math.cos(g) * Math.cos(x); c.push(C, b, A); l.push(S, w, T); h.push(v, y); if (p < o && m < s) { var E = o + 1, M = E * m + p, B = E * (m + 1) + p, D = E * (m + 1) + p + 1, I = E * m + p + 1; u.push(M, I, B); u.push(I, D, B); } } return new r.default(c, l, h, u, _, f, d); }; var n = t("../../vmath"), r = (function(t) { return t && t.__esModule ? t : { default: t }; })(t("./vertex-data")); e.exports = i.default; }), { "../../vmath": 317, "./vertex-data": 42 } ], 41: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.wireframe = function(t) { for (var e = [ [ 0, 1 ], [ 1, 2 ], [ 2, 0 ] ], i = [], n = {}, r = 0; r < t.length; r += 3) for (var s = 0; s < 3; ++s) { var o = t[r + e[s][0]], a = t[r + e[s][1]], c = o > a ? a << 16 | o : o << 16 | a; if (void 0 === n[c]) { n[c] = 0; i.push(o, a); } } return i; }; i.invWinding = function(t) { for (var e = [], i = 0; i < t.length; i += 3) e.push(t[i], t[i + 2], t[i + 1]); return e; }; i.toWavefrontOBJ = function(t) { for (var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1, i = t.positions, n = t.uvs, r = t.normals, s = t.indices, o = function(t) { return s[t] + 1 + "/" + (s[t] + 1) + "/" + (s[t] + 1); }, a = "", c = 0; c < i.length; c += 3) a += "v " + i[c] * e + " " + i[c + 1] * e + " " + i[c + 2] * e + "\n"; for (var l = 0; l < n.length; l += 2) a += "vt " + n[l] + " " + n[l + 1] + "\n"; for (var h = 0; h < r.length; h += 3) a += "vn " + r[h] + " " + r[h + 1] + " " + r[h + 2] + "\n"; for (var u = 0; u < s.length; u += 3) a += "f " + o(u) + " " + o(u + 1) + " " + o(u + 2) + "\n"; return a; }; i.normals = function(t, e) { for (var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1, n = new Array(2 * t.length), r = 0; r < t.length / 3; ++r) { var s = 3 * r, o = 6 * r; n[o + 0] = t[s + 0]; n[o + 1] = t[s + 1]; n[o + 2] = t[s + 2]; n[o + 3] = t[s + 0] + e[s + 0] * i; n[o + 4] = t[s + 1] + e[s + 1] * i; n[o + 5] = t[s + 2] + e[s + 2] * i; } return n; }; i.calcNormals = function(t, e, i) { for (var s = 0, o = (i = i || new Array(t.length)).length; s < o; s++) i[s] = 0; for (var a = void 0, c = void 0, l = void 0, h = cc.v3(), u = cc.v3(), _ = cc.v3(), f = cc.v3(), d = cc.v3(), m = 0, p = e.length; m < p; m += 3) { a = 3 * e[m + 0]; c = 3 * e[m + 1]; l = 3 * e[m + 2]; r(h, t, a); r(u, t, c); r(_, t, l); n.vec3.sub(f, _, u); n.vec3.sub(d, h, u); n.vec3.cross(f, f, d); i[a] += f.x; i[a + 1] += f.y; i[a + 2] += f.z; i[c] += f.x; i[c + 1] += f.y; i[c + 2] += f.z; i[l] += f.x; i[l + 1] += f.y; i[l + 2] += f.z; } for (var v = cc.v3(), y = 0, g = i.length; y < g; y += 3) { v.x = i[y]; v.y = i[y + 1]; v.z = i[y + 2]; v.normalizeSelf(); i[y] = v.x; i[y + 1] = v.y; i[y + 2] = v.z; } return i; }; var n = t("../../vmath"); function r(t, e, i) { t.x = e[i]; t.y = e[i + 1]; t.z = e[i + 2]; } }), { "../../vmath": 317 } ], 42: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.default = function(t, e, i, n, r, s, o) { this.positions = t; this.normals = e; this.uvs = i; this.indices = n; this.minPos = r; this.maxPos = s; this.boundingRadius = o; }; e.exports = i.default; }), {} ], 43: [ (function(t, e, i) { "use strict"; var n = t("../../../animation/animation-curves"), r = n.DynamicAnimCurve, s = n.quickFindIndex, o = cc.Class({ name: "cc.JointMatrixCurve", extends: r, _findFrameIndex: s, sample: function(t, e) { var i = this.ratios, n = this._findFrameIndex(i, e); n < -1 && (n = ~n - 1); for (var r = this.pairs, s = 0; s < r.length; s++) { var o = r[s]; o.target._jointMatrix = o.values[n]; } } }); e.exports = o; }), { "../../../animation/animation-curves": 11 } ], 44: [ (function(t, e, i) { "use strict"; var n = cc.Class({ name: "cc.Skeleton", extends: cc.Asset, ctor: function() { this._bindposes = []; this._uniqueBindPoses = []; this._jointPaths = []; }, properties: { _model: cc.Model, _jointIndices: [], _skinIndex: -1, jointPaths: { get: function() { return this._jointPaths; } }, bindposes: { get: function() { return this._bindposes; } }, uniqueBindPoses: { get: function() { return this._uniqueBindPoses; } }, model: { get: function() { return this._model; } } }, onLoad: function() { for (var t = this._model.nodes, e = this._jointIndices, i = this._jointPaths, n = this._bindposes, r = this._uniqueBindPoses, s = 0; s < e.length; s++) { var o = t[e[s]]; i[s] = o.path; o.uniqueBindPose ? n[s] = r[s] = o.uniqueBindPose : n[s] = o.bindpose[this._skinIndex]; } } }); cc.Skeleton = e.exports = n; }), {} ], 45: [ (function(t, e, i) { "use strict"; var n = t("../../components/CCAnimation"), r = t("../CCModel"), s = t("./CCSkeletonAnimationClip"), o = cc.Class({ name: "cc.SkeletonAnimation", extends: n, editor: !1, properties: { _model: { default: null, type: r }, _defaultClip: { override: !0, default: null, type: s }, _clips: { override: !0, default: [], type: [ s ], visible: !0 }, defaultClip: { override: !0, get: function() { return this._defaultClip; }, set: function(t) { this._defaultClip = t; }, type: s }, model: { get: function() { return this._model; }, set: function(t) { this._model = t; this._updateClipModel(); }, type: r } }, __preload: function() { this._updateClipModel(); }, _updateClipModel: function() { this._defaultClip && (this._defaultClip._model = this._model); for (var t = this._clips, e = 0; e < t.length; e++) t[e]._model = this._model; }, addClip: function(t, e) { t._model = this._model; return n.prototype.addClip.call(this, t, e); }, searchClips: !1 }); cc.SkeletonAnimation = e.exports = o; }), { "../../components/CCAnimation": 90, "../CCModel": 27, "./CCSkeletonAnimationClip": 46, "fire-path": void 0 } ], 46: [ (function(t, e, i) { "use strict"; var n = (function(t) { return t && t.__esModule ? t : { default: t }; })(t("../../vmath/mat4")); var r = t("../../../animation/animation-clip"), s = t("./CCJointMatrixCurve"); function o(t) { var e = new Float32Array(16); e[0] = t.m00; e[1] = t.m01; e[2] = t.m02; e[3] = t.m03; e[4] = t.m04; e[5] = t.m05; e[6] = t.m06; e[7] = t.m07; e[8] = t.m08; e[9] = t.m09; e[10] = t.m10; e[11] = t.m11; e[12] = t.m12; e[13] = t.m13; e[14] = t.m14; e[15] = t.m15; return e; } var a = cc.Class({ name: "cc.SkeletonAnimationClip", extends: r, properties: { _nativeAsset: { override: !0, get: function() { return this._buffer; }, set: function(t) { var e = ArrayBuffer.isView(t) ? t.buffer : t; this._buffer = new Float32Array(e || t, 0, e.byteLength / 4); } }, description: { default: null, type: Object }, curveData: { visible: !1, override: !0, get: function() { return this._curveData || {}; }, set: function() {} } }, _init: function() { if (this._curveData) return this._curveData; this._curveData = {}; this._generateCommonCurve(); this._model.precomputeJointMatrix && this._generateJointMatrixCurve(); return this._curveData; }, _generateCommonCurve: function() { var t = this._buffer, e = this.description, i = 0; function n() { return t[i++]; } this._curveData.paths || (this._curveData.paths = {}); var r = this._curveData.paths; for (var s in e) { var o = e[s], a = {}; r[s] = { props: a }; for (var c in o) { var l = [], h = o[c].frameCount; i = o[c].offset; for (var u = 0; u < h; u++) { var _ = n(), f = void 0; "position" === c || "scale" === c ? f = cc.v3(n(), n(), n()) : "quat" === c && (f = cc.quat(n(), n(), n(), n())); l.push({ frame: _, value: f }); } a[c] = l; } } }, _generateJointMatrixCurve: function() { var t = this._model.rootNode, e = this._curveData.paths, i = { ratios: [], jointMatrixMap: {} }, r = i.jointMatrixMap; function s(i, a, c) { var l = void 0, h = e[i.path]; if (i !== t && h) { var u = h.props; for (var _ in u) for (var f = u[_], d = 0; d < f.length; d++) { var m = f[d]; if (Math.abs(m.frame - a) < 1e-4) { i[_].set(m.value); break; } if (m.frame > a) { var p = f[d - 1], v = (a - p.frame) / (m.frame - p.frame); p.value.lerp(m.value, v, i[_]); break; } } l = n.default.create(); n.default.fromRTS(l, i.quat, i.position, i.scale); c && n.default.mul(l, c, l); u._jointMatrix || (u._jointMatrix = []); var y = void 0; if (i.uniqueBindPose) { y = n.default.create(); n.default.mul(y, l, i.uniqueBindPose); } r[i.path] || (r[i.path] = []); y ? r[i.path].push(o(y)) : r[i.path].push(l); } var g = i.children; for (var x in g) { s(g[x], a, l); } } for (var a = 0, c = this.duration, l = 1 / this.sample; a < c; ) { i.ratios.push(a / c); s(t, a); a += l; } this._curveData = i; }, _createJointMatrixCurve: function(t, e) { var i = new s(); i.ratios = this.curveData.ratios; i.pairs = []; var n = this.curveData.jointMatrixMap; for (var r in n) { var o = cc.find(r, e); o && i.pairs.push({ target: o, values: n[r] }); } return [ i ]; }, createCurves: function(t, e) { if (!this._model) { cc.warn("Skeleton Animation Clip [" + this.name + "] Can not find model"); return []; } this._init(); return this._model.precomputeJointMatrix ? this._createJointMatrixCurve(t, e) : r.prototype.createCurves.call(this, t, e); } }); cc.SkeletonAnimationClip = e.exports = a; }), { "../../../animation/animation-clip": 10, "../../vmath/mat4": 321, "./CCJointMatrixCurve": 43 } ], 47: [ (function(t, e, i) { "use strict"; var n = t("./CCSkeleton"), r = t("../../mesh/CCMeshRenderer"), s = t("../../renderer/render-flow"), o = cc.vmath.mat4, a = o.create(), c = o.create(), l = new cc.Node(), h = cc.Class({ name: "cc.SkinnedMeshRenderer", extends: r, editor: !1, ctor: function() { this._jointsData = this._jointsFloat32Data = null; this._jointsTexture = null; this._joints = []; this._usingRGBA8Texture = !1; }, properties: { _skeleton: n, _rootBone: cc.Node, skeleton: { get: function() { return this._skeleton; }, set: function(t) { this._skeleton = t; this._init(); this._activateMaterial(!0); }, type: n }, rootBone: { get: function() { return this._rootBone; }, set: function(t) { this._rootBone = t; this._init(); }, type: cc.Node } }, _activateMaterial: function(t) { this._jointsData ? this._super(t) : this.disableRender(); }, __preload: function() { this._init(); }, _init: function() { this._model = this._skeleton && this._skeleton.model; this._initJoints(); this._initJointsTexture(); }, _calcWorldMatrixToRoot: function(t) { var e = t._worldMatrixToRoot; if (!e) { t._worldMatrixToRoot = e = cc.mat4(); t.getLocalMatrix(e); var i = t.parent; if (i !== this.rootBone) { i._worldMatrixToRoot || this._calcWorldMatrixToRoot(i); o.mul(e, i._worldMatrixToRoot, e); } } }, _initJoints: function() { var t = this._joints; t.length = 0; if (this.skeleton && this.rootBone) { for (var e = this._useJointMatrix(), i = this.skeleton.jointPaths, n = this.rootBone, r = 0; r < i.length; r++) { var c = cc.find(i[r], n); c || cc.warn("Can not find joint in root bone [%s] with path [%s]", n.name, i[r]); if (e) { c._renderFlag &= ~s.FLAG_CHILDREN; this._calcWorldMatrixToRoot(c); } t.push(c); } if (e) for (var l = this.skeleton.uniqueBindPoses, h = 0; h < i.length; h++) { var u = t[h]; if (l[h]) { o.mul(a, u._worldMatrixToRoot, l[h]); u._jointMatrix = o.array([], a); } else u._jointMatrix = u._worldMatrixToRoot; } } }, _initJointsTexture: function() { if (this._skeleton) { var t = this._joints.length, e = this._customProperties, i = !1; if (t <= cc.sys.getMaxJointMatrixSize()) { i = !0; this._jointsData = this._jointsFloat32Data = new Float32Array(16 * t); e.setProperty("_jointMatrices", this._jointsFloat32Data); e.define("_USE_JOINTS_TEXTRUE", !1); } if (!i) { var n = !!cc.sys.glExtension("OES_texture_float"), r = void 0; r = t > 256 ? 64 : t > 64 ? 32 : t > 16 ? 16 : 8; this._jointsData = this._jointsFloat32Data = new Float32Array(r * r * 4); var s = cc.Texture2D.PixelFormat.RGBA32F, o = r, a = r; if (!n) { this._jointsData = new Uint8Array(this._jointsFloat32Data.buffer); s = cc.Texture2D.PixelFormat.RGBA8888; o *= 4; this._usingRGBA8Texture = !0; cc.warn("SkinnedMeshRenderer [" + this.node.name + "] has too many joints [" + t + "] and device do not support float32 texture, fallback to use RGBA8888 texture, which is much slower."); } var c = this._jointsTexture || new cc.Texture2D(), l = cc.Texture2D.Filter.NEAREST; c.setFilters(l, l); c.initWithData(this._jointsData, s, o, a); this._jointsTexture = c; e.setProperty("_jointsTexture", c.getImpl()); e.setProperty("_jointsTextureSize", new Float32Array([ o, a ])); e.define("_JOINTS_TEXTURE_FLOAT32", n); e.define("_USE_JOINTS_TEXTRUE", !0); } e.define("_USE_SKINNING", !0); } }, _setJointsDataWithArray: function(t, e) { this._jointsFloat32Data.set(e, 16 * t); }, _setJointsDataWithMatrix: function(t, e) { var i = this._jointsFloat32Data; i[16 * t + 0] = e.m00; i[16 * t + 1] = e.m01; i[16 * t + 2] = e.m02; i[16 * t + 3] = e.m03; i[16 * t + 4] = e.m04; i[16 * t + 5] = e.m05; i[16 * t + 6] = e.m06; i[16 * t + 7] = e.m07; i[16 * t + 8] = e.m08; i[16 * t + 9] = e.m09; i[16 * t + 10] = e.m10; i[16 * t + 11] = e.m11; i[16 * t + 12] = e.m12; i[16 * t + 13] = e.m13; i[16 * t + 14] = e.m14; i[16 * t + 15] = e.m15; }, _commitJointsData: function() { this._jointsTexture && this._jointsTexture.update({ image: this._jointsData }); }, _useJointMatrix: function() { return this._model && this._model.precomputeJointMatrix; }, getRenderNode: function() { return this._useJointMatrix() || this._usingRGBA8Texture ? this.rootBone : l; }, calcJointMatrix: function() { if (this.skeleton && this.rootBone) { var t = this._joints, e = this.skeleton.bindposes, i = this.skeleton.uniqueBindPoses; if (this._useJointMatrix()) for (var n = 0; n < t.length; ++n) { var r = t[n]._jointMatrix; if (i[n]) this._setJointsDataWithArray(n, r); else { o.multiply(a, r, e[n]); this._setJointsDataWithMatrix(n, a); } } else if (this._usingRGBA8Texture) { this.rootBone._updateWorldMatrix(); for (var s = this.rootBone._worldMatrix, l = o.invert(c, s), h = 0; h < t.length; ++h) { var u = t[h]; u._updateWorldMatrix(); o.multiply(a, l, u._worldMatrix); o.multiply(a, a, e[h]); this._setJointsDataWithMatrix(h, a); } } else for (var _ = 0; _ < t.length; ++_) { var f = t[_]; f._updateWorldMatrix(); o.multiply(a, f._worldMatrix, e[_]); this._setJointsDataWithMatrix(_, a); } this._commitJointsData(); } } }); cc.SkinnedMeshRenderer = e.exports = h; }), { "../../mesh/CCMeshRenderer": 168, "../../renderer/render-flow": 245, "./CCSkeleton": 44 } ], 48: [ (function(t, e, i) { "use strict"; var n = t("./CCSkinnedMeshRenderer"), r = t("../../mesh/mesh-renderer"), s = cc.js.addon({ fillBuffers: function(t, e) { t.calcJointMatrix(); r.fillBuffers(t, e); } }, r); e.exports = n._assembler = s; }), { "../../mesh/mesh-renderer": 171, "./CCSkinnedMeshRenderer": 47 } ], 49: [ (function(t, e, i) { "use strict"; t("../../DebugInfos"); var n = "https://github.com/cocos-creator/engine/blob/master/EngineErrorMap.md", r = void 0; cc.log = cc.warn = cc.error = cc.assert = console.log.bind ? console.log.bind(console) : console.log; cc._throw = function(t) { var e = t.stack; e ? cc.error(t + "\n" + e) : cc.error(t); }; function s(t) { return function() { var e = arguments[0], i = t + " " + e + ", please go to " + n + "#" + e + " to see details."; if (1 === arguments.length) return i; if (2 === arguments.length) return i + " Arguments: " + arguments[1]; var r = cc.js.shiftArguments.apply(null, arguments); return i + " Arguments: " + r.join(", "); }; } var o = s("Log"); cc.logID = function() { cc.log(o.apply(null, arguments)); }; var a = s("Warning"); cc.warnID = function() { cc.warn(a.apply(null, arguments)); }; var c = s("Error"); cc.errorID = function() { cc.error(c.apply(null, arguments)); }; var l = s("Assert"); cc.assertID = function(t) { t || cc.assert(!1, l.apply(null, cc.js.shiftArguments.apply(null, arguments))); }; var h = cc.Enum({ NONE: 0, INFO: 1, WARN: 2, ERROR: 3, INFO_FOR_WEB_PAGE: 4, WARN_FOR_WEB_PAGE: 5, ERROR_FOR_WEB_PAGE: 6 }); e.exports = cc.debug = { DebugMode: h, _resetDebugSetting: function(t) { cc.log = cc.warn = cc.error = cc.assert = function() {}; if (t !== h.NONE) { if (t > h.ERROR) { var e = function(t) { if (cc.game.canvas) { if (!r) { var e = document.createElement("Div"); e.setAttribute("id", "logInfoDiv"); e.setAttribute("width", "200"); e.setAttribute("height", cc.game.canvas.height); var i = e.style; i.zIndex = "99999"; i.position = "absolute"; i.top = i.left = "0"; (r = document.createElement("textarea")).setAttribute("rows", "20"); r.setAttribute("cols", "30"); r.setAttribute("disabled", "true"); var n = r.style; n.backgroundColor = "transparent"; n.borderBottom = "1px solid #cccccc"; n.borderTopWidth = n.borderLeftWidth = n.borderRightWidth = "0px"; n.borderTopStyle = n.borderLeftStyle = n.borderRightStyle = "none"; n.padding = "0px"; n.margin = 0; e.appendChild(r); cc.game.canvas.parentNode.appendChild(e); } r.value = r.value + t + "\r\n"; r.scrollTop = r.scrollHeight; } }; cc.error = function() { e("ERROR : " + cc.js.formatStr.apply(null, arguments)); }; cc.assert = function(t, i) { if (!t && i) { i = cc.js.formatStr.apply(null, cc.js.shiftArguments.apply(null, arguments)); e("ASSERT: " + i); } }; t !== h.ERROR_FOR_WEB_PAGE && (cc.warn = function() { e("WARN : " + cc.js.formatStr.apply(null, arguments)); }); t === h.INFO_FOR_WEB_PAGE && (cc.log = function() { e(cc.js.formatStr.apply(null, arguments)); }); } else if (console && console.log.apply) { console.error || (console.error = console.log); console.warn || (console.warn = console.log); console.error.bind ? cc.error = console.error.bind(console) : cc.error = console.error; cc.assert = function(t, e) { if (!t) { e && (e = cc.js.formatStr.apply(null, cc.js.shiftArguments.apply(null, arguments))); throw new Error(e); } }; } t !== h.ERROR && (console.warn.bind ? cc.warn = console.warn.bind(console) : cc.warn = console.warn); t === h.INFO && ("JavaScriptCore" === scriptEngineType ? cc.log = function() { return console.log.apply(console, arguments); } : cc.log = console.log); } }, getError: s("ERROR"), isDisplayStats: function() { return !!cc.profiler && cc.profiler.isShowingStats(); }, setDisplayStats: function(t) { if (cc.profiler) { t ? cc.profiler.showStats() : cc.profiler.hideStats(); cc.game.config.showFPS = !!t; } } }; }), { "../../DebugInfos": void 0 } ], 50: [ (function(i, n, r) { "use strict"; var s = i("./event/event-target"), o = i("./load-pipeline/auto-release-utils"), a = i("./component-scheduler"), c = i("./node-activator"), l = i("./platform/CCObject"), h = i("./CCGame"), u = i("./renderer"), _ = i("./event-manager"), f = i("./CCScheduler"); cc.Director = function() { s.call(this); this._paused = !1; this._purgeDirectorInNextLoop = !1; this._winSizeInPoints = null; this._loadingScene = ""; this._scene = null; this._totalFrames = 0; this._lastUpdate = 0; this._deltaTime = 0; this._scheduler = null; this._compScheduler = null; this._nodeActivator = null; this._actionManager = null; var t = this; h.on(h.EVENT_SHOW, (function() { t._lastUpdate = performance.now(); })); h.once(h.EVENT_ENGINE_INITED, this.init, this); }; cc.Director.prototype = { constructor: cc.Director, init: function() { this._totalFrames = 0; this._lastUpdate = performance.now(); this._paused = !1; this._purgeDirectorInNextLoop = !1; this._winSizeInPoints = cc.size(0, 0); this._scheduler = new f(); if (cc.ActionManager) { this._actionManager = new cc.ActionManager(); this._scheduler.scheduleUpdate(this._actionManager, f.PRIORITY_SYSTEM, !1); } else this._actionManager = null; this.sharedInit(); return !0; }, sharedInit: function() { this._compScheduler = new a(); this._nodeActivator = new c(); _ && _.setEnabled(!0); if (cc.AnimationManager) { this._animationManager = new cc.AnimationManager(); this._scheduler.scheduleUpdate(this._animationManager, f.PRIORITY_SYSTEM, !1); } else this._animationManager = null; if (cc.CollisionManager) { this._collisionManager = new cc.CollisionManager(); this._scheduler.scheduleUpdate(this._collisionManager, f.PRIORITY_SYSTEM, !1); } else this._collisionManager = null; if (cc.PhysicsManager) { this._physicsManager = new cc.PhysicsManager(); this._scheduler.scheduleUpdate(this._physicsManager, f.PRIORITY_SYSTEM, !1); } else this._physicsManager = null; cc._widgetManager && cc._widgetManager.init(this); cc.loader.init(this); }, calculateDeltaTime: function(t) { t || (t = performance.now()); this._deltaTime = (t - this._lastUpdate) / 1e3; 0; this._lastUpdate = t; }, convertToGL: function(t) { var e = h.container, i = cc.view, n = e.getBoundingClientRect(), r = n.left + window.pageXOffset - e.clientLeft, s = n.top + window.pageYOffset - e.clientTop, o = i._devicePixelRatio * (t.x - r), a = i._devicePixelRatio * (s + n.height - t.y); return i._isRotated ? cc.v2(i._viewportRect.width - a, o) : cc.v2(o, a); }, convertToUI: function(t) { var e = h.container, i = cc.view, n = e.getBoundingClientRect(), r = n.left + window.pageXOffset - e.clientLeft, s = n.top + window.pageYOffset - e.clientTop, o = cc.v2(0, 0); if (i._isRotated) { o.x = r + t.y / i._devicePixelRatio; o.y = s + n.height - (i._viewportRect.width - t.x) / i._devicePixelRatio; } else { o.x = r + t.x * i._devicePixelRatio; o.y = s + n.height - t.y * i._devicePixelRatio; } return o; }, end: function() { this._purgeDirectorInNextLoop = !0; }, getWinSize: function() { return cc.size(cc.winSize); }, getWinSizeInPixels: function() { return cc.size(cc.winSize); }, pause: function() { this._paused || (this._paused = !0); }, purgeCachedData: function() { cc.loader.releaseAll(); }, purgeDirector: function() { this._scheduler.unscheduleAll(); this._compScheduler.unscheduleAll(); this._nodeActivator.reset(); _ && _.setEnabled(!1); cc.isValid(this._scene) && this._scene.destroy(); this._scene = null; cc.renderer.clear(); cc.AssetLibrary.resetBuiltins(); cc.game.pause(); cc.loader.releaseAll(); }, reset: function() { this.purgeDirector(); _ && _.setEnabled(!0); this._actionManager && this._scheduler.scheduleUpdate(this._actionManager, cc.Scheduler.PRIORITY_SYSTEM, !1); this._animationManager && this._scheduler.scheduleUpdate(this._animationManager, cc.Scheduler.PRIORITY_SYSTEM, !1); this._collisionManager && this._scheduler.scheduleUpdate(this._collisionManager, cc.Scheduler.PRIORITY_SYSTEM, !1); this._physicsManager && this._scheduler.scheduleUpdate(this._physicsManager, cc.Scheduler.PRIORITY_SYSTEM, !1); cc.game.resume(); }, runSceneImmediate: function(t, e, i) { cc.assertID(t instanceof cc.Scene, 1216); t._load(); for (var n = Object.keys(h._persistRootNodes).map((function(t) { return h._persistRootNodes[t]; })), r = 0; r < n.length; r++) { var s = n[r], a = t.getChildByUuid(s.uuid); if (a) { var c = a.getSiblingIndex(); a._destroyImmediate(); t.insertChild(s, c); } else s.parent = t; } var u = this._scene, _ = u && u.autoReleaseAssets && u.dependAssets; o.autoRelease(_, t.dependAssets, n); cc.isValid(u) && u.destroy(); this._scene = null; l._deferredDestroy(); e && e(); this.emit(cc.Director.EVENT_BEFORE_SCENE_LAUNCH, t); this._scene = t; t._activate(); cc.game.resume(); i && i(null, t); this.emit(cc.Director.EVENT_AFTER_SCENE_LAUNCH, t); }, runScene: function(t, e, i) { cc.assertID(t, 1205); cc.assertID(t instanceof cc.Scene, 1216); t._load(); this.once(cc.Director.EVENT_AFTER_UPDATE, (function() { this.runSceneImmediate(t, e, i); }), this); }, _getSceneUuid: function(i) { var n = h._sceneInfos; if ("string" === ("object" === (e = typeof i) ? t(i) : e)) { i.endsWith(".fire") || (i += ".fire"); "/" === i[0] || i.startsWith("db://") || (i = "/" + i); for (var r = 0; r < n.length; r++) { var s = n[r]; if (s.url.endsWith(i)) return s; } } else if ("number" === ("object" === (e = typeof i) ? t(i) : e)) { if (0 <= i && i < n.length) return n[i]; cc.errorID(1206, i); } else cc.errorID(1207, i); return null; }, loadScene: function(t, e, i) { if (this._loadingScene) { cc.errorID(1208, t, this._loadingScene); return !1; } var n = this._getSceneUuid(t); if (n) { var r = n.uuid; this.emit(cc.Director.EVENT_BEFORE_SCENE_LOADING, t); this._loadingScene = t; this._loadSceneByUuid(r, e, i); return !0; } cc.errorID(1209, t); return !1; }, preloadScene: function(t, e, i) { if (void 0 === i) { i = e; e = null; } var n = this._getSceneUuid(t); if (n) { this.emit(cc.Director.EVENT_BEFORE_SCENE_LOADING, t); cc.loader.load({ uuid: n.uuid, type: "uuid" }, e, (function(e, n) { if (e) { cc.errorID(1210, t, e.message); i && i(new Error(e)); } i && i(e, n); })); } else { var r = 'Can not preload the scene "' + t + '" because it is not in the build settings.'; i(new Error(r)); cc.error("preloadScene: " + r); } }, _loadSceneByUuid: function(t, e, i, n) { 0; console.time("LoadScene " + t); cc.AssetLibrary.loadAsset(t, (function(n, r) { console.timeEnd("LoadScene " + t); var s = cc.director; s._loadingScene = ""; if (n) { n = "Failed to load scene: " + n; cc.error(n); } else { if (r instanceof cc.SceneAsset) { var o = r.scene; o._id = r._uuid; o._name = r._name; s.runSceneImmediate(o, i, e); return; } n = "The asset " + t + " is not a scene"; cc.error(n); } e && e(n); })); }, resume: function() { if (this._paused) { this._lastUpdate = performance.now(); this._lastUpdate || cc.logID(1200); this._paused = !1; this._deltaTime = 0; } }, setDepthTest: function(t) { cc.Camera.main && (cc.Camera.main.depth = !!t); }, setClearColor: function(t) { cc.Camera.main && (cc.Camera.main.backgroundColor = t); }, getRunningScene: function() { return this._scene; }, getScene: function() { return this._scene; }, getAnimationInterval: function() { return 1e3 / h.getFrameRate(); }, setAnimationInterval: function(t) { h.setFrameRate(Math.round(1e3 / t)); }, getDeltaTime: function() { return this._deltaTime; }, getTotalFrames: function() { return this._totalFrames; }, isPaused: function() { return this._paused; }, getScheduler: function() { return this._scheduler; }, setScheduler: function(t) { this._scheduler !== t && (this._scheduler = t); }, getActionManager: function() { return this._actionManager; }, setActionManager: function(t) { if (this._actionManager !== t) { this._actionManager && this._scheduler.unscheduleUpdate(this._actionManager); this._actionManager = t; this._scheduler.scheduleUpdate(this._actionManager, cc.Scheduler.PRIORITY_SYSTEM, !1); } }, getAnimationManager: function() { return this._animationManager; }, getCollisionManager: function() { return this._collisionManager; }, getPhysicsManager: function() { return this._physicsManager; }, startAnimation: function() { cc.game.resume(); }, stopAnimation: function() { cc.game.pause(); }, _resetDeltaTime: function() { this._lastUpdate = performance.now(); this._deltaTime = 0; }, mainLoop: function(t) { if (this._purgeDirectorInNextLoop) { this._purgeDirectorInNextLoop = !1; this.purgeDirector(); } else { this.calculateDeltaTime(t); if (!this._paused) { this.emit(cc.Director.EVENT_BEFORE_UPDATE); this._compScheduler.startPhase(); this._compScheduler.updatePhase(this._deltaTime); this._scheduler.update(this._deltaTime); this._compScheduler.lateUpdatePhase(this._deltaTime); this.emit(cc.Director.EVENT_AFTER_UPDATE); l._deferredDestroy(); } this.emit(cc.Director.EVENT_BEFORE_DRAW); u.render(this._scene); this.emit(cc.Director.EVENT_AFTER_DRAW); _.frameUpdateListeners(); this._totalFrames++; } }, __fastOn: function(t, e, i) { this.add(t, e, i); }, __fastOff: function(t, e, i) { this.remove(t, e, i); } }; cc.js.addon(cc.Director.prototype, s.prototype); cc.Director.EVENT_PROJECTION_CHANGED = "director_projection_changed"; cc.Director.EVENT_BEFORE_SCENE_LOADING = "director_before_scene_loading"; cc.Director.EVENT_BEFORE_SCENE_LAUNCH = "director_before_scene_launch"; cc.Director.EVENT_AFTER_SCENE_LAUNCH = "director_after_scene_launch"; cc.Director.EVENT_BEFORE_UPDATE = "director_before_update"; cc.Director.EVENT_AFTER_UPDATE = "director_after_update"; cc.Director.EVENT_BEFORE_VISIT = "director_before_draw"; cc.Director.EVENT_AFTER_VISIT = "director_before_draw"; cc.Director.EVENT_BEFORE_DRAW = "director_before_draw"; cc.Director.EVENT_AFTER_DRAW = "director_after_draw"; cc.Director.PROJECTION_2D = 0; cc.Director.PROJECTION_3D = 1; cc.Director.PROJECTION_CUSTOM = 3; cc.Director.PROJECTION_DEFAULT = cc.Director.PROJECTION_2D; cc.director = new cc.Director(); n.exports = cc.director; }), { "./CCGame": 51, "./CCScheduler": 55, "./component-scheduler": 89, "./event-manager": 131, "./event/event-target": 133, "./load-pipeline/auto-release-utils": 151, "./node-activator": 172, "./platform/CCObject": 207, "./renderer": 244 } ], 51: [ (function(i, n, r) { "use strict"; var s = i("./event/event-target"); i("../audio/CCAudioEngine"); var o = i("./CCDebug"), a = i("./renderer/index.js"), c = i("./platform/CCInputManager"), l = i("../core/renderer/utils/dynamic-atlas/manager"), h = { EVENT_HIDE: "game_on_hide", EVENT_SHOW: "game_on_show", EVENT_RESTART: "game_on_restart", EVENT_GAME_INITED: "game_inited", EVENT_ENGINE_INITED: "engine_inited", EVENT_RENDERER_INITED: "engine_inited", RENDER_TYPE_CANVAS: 0, RENDER_TYPE_WEBGL: 1, RENDER_TYPE_OPENGL: 2, _persistRootNodes: {}, _paused: !0, _configLoaded: !1, _isCloning: !1, _prepared: !1, _rendererInitialized: !1, _renderContext: null, _intervalId: null, _lastTime: null, _frameTime: null, _sceneInfos: [], frame: null, container: null, canvas: null, renderType: -1, config: null, onStart: null, setFrameRate: function(t) { this.config.frameRate = t; this._intervalId && window.cancelAnimFrame(this._intervalId); this._intervalId = 0; this._paused = !0; this._setAnimFrame(); this._runMainLoop(); }, getFrameRate: function() { return this.config.frameRate; }, step: function() { cc.director.mainLoop(); }, pause: function() { if (!this._paused) { this._paused = !0; this._intervalId && window.cancelAnimFrame(this._intervalId); this._intervalId = 0; } }, resume: function() { if (this._paused) { this._paused = !1; cc.audioEngine && cc.audioEngine._restore(); cc.director._resetDeltaTime(); this._runMainLoop(); } }, isPaused: function() { return this._paused; }, restart: function() { cc.director.once(cc.Director.EVENT_AFTER_DRAW, (function() { for (var t in h._persistRootNodes) h.removePersistRootNode(h._persistRootNodes[t]); cc.director.getScene().destroy(); cc.Object._deferredDestroy(); cc.audioEngine && cc.audioEngine.uncacheAll(); cc.director.reset(); h.pause(); cc.AssetLibrary._loadBuiltins((function() { h.onStart(); h.emit(h.EVENT_RESTART); })); })); }, end: function() { close(); }, _initEngine: function() { if (!this._rendererInitialized) { this._initRenderer(); this._initEvents(); this.emit(this.EVENT_ENGINE_INITED); } }, _prepareFinished: function(t) { var e = this; 0; this._initEngine(); this._setAnimFrame(); cc.AssetLibrary._loadBuiltins((function() { console.log("Cocos Creator v" + cc.ENGINE_VERSION); e._prepared = !0; e._runMainLoop(); e.emit(e.EVENT_GAME_INITED); t && t(); })); }, eventTargetOn: s.prototype.on, eventTargetOnce: s.prototype.once, on: function(t, e, i) { this._prepared && t === this.EVENT_ENGINE_INITED || !this._paused && t === this.EVENT_GAME_INITED ? e.call(i) : this.eventTargetOn(t, e, i); }, once: function(t, e, i) { this._prepared && t === this.EVENT_ENGINE_INITED || !this._paused && t === this.EVENT_GAME_INITED ? e.call(i) : this.eventTargetOnce(t, e, i); }, prepare: function(t) { if (this._prepared) t && t(); else { var e = this.config.jsList; if (e && e.length > 0) { var i = this; cc.loader.load(e, (function(e) { if (e) throw new Error(JSON.stringify(e)); i._prepareFinished(t); })); } else this._prepareFinished(t); } }, run: function(t, e) { this._initConfig(t); this.onStart = e; this.prepare(h.onStart && h.onStart.bind(h)); }, addPersistRootNode: function(t) { if (cc.Node.isNode(t) && t.uuid) { var e = t.uuid; if (!this._persistRootNodes[e]) { var i = cc.director._scene; if (cc.isValid(i)) if (t.parent) { if (!(t.parent instanceof cc.Scene)) { cc.warnID(3801); return; } if (t.parent !== i) { cc.warnID(3802); return; } } else t.parent = i; this._persistRootNodes[e] = t; t._persistNode = !0; } } else cc.warnID(3800); }, removePersistRootNode: function(t) { var e = t.uuid || ""; if (t === this._persistRootNodes[e]) { delete this._persistRootNodes[e]; t._persistNode = !1; } }, isPersistRootNode: function(t) { return t._persistNode; }, _setAnimFrame: function() { this._lastTime = performance.now(); var t = h.config.frameRate; this._frameTime = 1e3 / t; jsb.setPreferredFramesPerSecond(t); window.requestAnimFrame = window.requestAnimationFrame; window.cancelAnimFrame = window.cancelAnimationFrame; }, _stTime: function(t) { var e = performance.now(), i = Math.max(0, h._frameTime - (e - h._lastTime)), n = window.setTimeout((function() { t(); }), i); h._lastTime = e + i; return n; }, _ctTime: function(t) { window.clearTimeout(t); }, _runMainLoop: function() { 0; if (this._prepared) { var t, e = this, i = e.config, n = cc.director; i.frameRate; o.setDisplayStats(i.showFPS); t = function(i) { if (!e._paused) { e._intervalId = window.requestAnimFrame(t); 0; n.mainLoop(i); } }; e._intervalId = window.requestAnimFrame(t); e._paused = !1; } }, _initConfig: function(i) { "number" !== ("object" === (e = typeof i.debugMode) ? t(i.debugMode) : e) && (i.debugMode = 0); i.exposeClassName = !!i.exposeClassName; "number" !== ("object" === (e = typeof i.frameRate) ? t(i.frameRate) : e) && (i.frameRate = 60); var n = i.renderMode; ("number" !== ("object" === (e = typeof n) ? t(n) : e) || n > 2 || n < 0) && (i.renderMode = 0); "boolean" !== ("object" === (e = typeof i.registerSystemEvent) ? t(i.registerSystemEvent) : e) && (i.registerSystemEvent = !0); i.showFPS = !!i.showFPS; this._sceneInfos = i.scenes || []; this.collisionMatrix = i.collisionMatrix || []; this.groupList = i.groupList || []; o._resetDebugSetting(i.debugMode); this.config = i; this._configLoaded = !0; }, _determineRenderType: function() { var t = this.config, e = parseInt(t.renderMode) || 0; this.renderType = this.RENDER_TYPE_CANVAS; var i = !1; if (0 === e) { if (cc.sys.capabilities.opengl) { this.renderType = this.RENDER_TYPE_WEBGL; i = !0; } else if (cc.sys.capabilities.canvas) { this.renderType = this.RENDER_TYPE_CANVAS; i = !0; } } else if (1 === e && cc.sys.capabilities.canvas) { this.renderType = this.RENDER_TYPE_CANVAS; i = !0; } else if (2 === e && cc.sys.capabilities.opengl) { this.renderType = this.RENDER_TYPE_WEBGL; i = !0; } if (!i) throw new Error(o.getError(3820, e)); }, _initRenderer: function() { if (!this._rendererInitialized) { this.config.id; var t = void 0, e = void 0; this.container = e = document.createElement("DIV"); this.frame = e.parentNode === document.body ? document.documentElement : e.parentNode; if (cc.sys.browserType === cc.sys.BROWSER_TYPE_WECHAT_GAME_SUB) t = window.sharedCanvas || wx.getSharedCanvas(); else { t = window.__canvas; } this.canvas = t; this._determineRenderType(); if (this.renderType === this.RENDER_TYPE_WEBGL) { var i = { stencil: !0, antialias: cc.macro.ENABLE_WEBGL_ANTIALIAS, alpha: cc.macro.ENABLE_TRANSPARENT_CANVAS }; 0; a.initWebGL(t, i); this._renderContext = a.device._gl; !cc.macro.CLEANUP_IMAGE_CACHE && l && (l.enabled = !0); } if (!this._renderContext) { this.renderType = this.RENDER_TYPE_CANVAS; a.initCanvas(t); this._renderContext = a.device._ctx; } this.canvas.oncontextmenu = function() { if (!cc._isContextMenuEnable) return !1; }; this._rendererInitialized = !0; } }, _initEvents: function() { var i, n = window; this.config.registerSystemEvent && c.registerSystemEvent(this.canvas); "undefined" !== ("object" === (e = typeof document.hidden) ? t(document.hidden) : e) ? i = "hidden" : "undefined" !== ("object" === (e = typeof document.mozHidden) ? t(document.mozHidden) : e) ? i = "mozHidden" : "undefined" !== ("object" === (e = typeof document.msHidden) ? t(document.msHidden) : e) ? i = "msHidden" : "undefined" !== ("object" === (e = typeof document.webkitHidden) ? t(document.webkitHidden) : e) && (i = "webkitHidden"); var r = !1; function s() { if (!r) { r = !0; h.emit(h.EVENT_HIDE); } } function o(t, e, i, n, s) { if (r) { r = !1; h.emit(h.EVENT_SHOW, t, e, i, n, s); } } if (i) for (var a = [ "visibilitychange", "mozvisibilitychange", "msvisibilitychange", "webkitvisibilitychange", "qbrowserVisibilityChange" ], l = 0; l < a.length; l++) document.addEventListener(a[l], (function(t) { var e = document[i]; (e = e || t.hidden) ? s() : o(); })); else { n.addEventListener("blur", s); n.addEventListener("focus", o); } navigator.userAgent.indexOf("MicroMessenger") > -1 && (n.onfocus = o); 0; if ("onpageshow" in window && "onpagehide" in window) { n.addEventListener("pagehide", s); n.addEventListener("pageshow", o); document.addEventListener("pagehide", s); document.addEventListener("pageshow", o); } this.on(h.EVENT_HIDE, (function() { cc.audioEngine.pauseMusic(); cc.audioEngine.pauseAllEffects(); cc.audioEngine.setEffectsVolume(0); cc.audioEngine.setMusicVolume(0); })); this.on(h.EVENT_SHOW, (function() { h.resume(); cc.audioEngine.resumeAllEffects(); cc.audioEngine.resumeMusic(); cc.audioEngine.setEffectsVolume(1); cc.audioEngine.setMusicVolume(1); })); } }; s.call(h); cc.js.addon(h, s.prototype); cc.game = n.exports = h; }), { "../audio/CCAudioEngine": 21, "../core/renderer/utils/dynamic-atlas/manager": 247, "./CCDebug": 49, "./event/event-target": 133, "./platform/BKInputManager": 199, "./platform/CCInputManager": 205, "./renderer/index.js": 244 } ], 52: [ (function(i, n, r) { "use strict"; var s = i("./vmath"), o = i("./utils/base-node"), a = i("./utils/prefab-helper"), c = i("./utils/math-pools"), l = i("./utils/affine-transform"), h = i("./event-manager"), u = i("./platform/CCMacro"), _ = i("./platform/js"), f = (i("./event/event"), i("./event/event-target")), d = i("./renderer/render-flow"), m = cc.Object.Flags.Destroying, p = Math.PI / 180, v = !!cc.ActionManager, y = function() {}, g = cc.v2(), x = cc.v2(), C = s.mat4.create(), b = s.vec3.create(), A = s.quat.create(), S = new Array(16); S.length = 0; var w = cc.Enum({ DEBUG: 31 }), T = cc.Enum({ POSITION: 1, SCALE: 2, ROTATION: 4, SKEW: 8, RT: 7, ALL: 65535 }), E = cc.Enum({ TOUCH_START: "touchstart", TOUCH_MOVE: "touchmove", TOUCH_END: "touchend", TOUCH_CANCEL: "touchcancel", MOUSE_DOWN: "mousedown", MOUSE_MOVE: "mousemove", MOUSE_ENTER: "mouseenter", MOUSE_LEAVE: "mouseleave", MOUSE_UP: "mouseup", MOUSE_WHEEL: "mousewheel", POSITION_CHANGED: "position-changed", ROTATION_CHANGED: "rotation-changed", SCALE_CHANGED: "scale-changed", SIZE_CHANGED: "size-changed", ANCHOR_CHANGED: "anchor-changed", COLOR_CHANGED: "color-changed", CHILD_ADDED: "child-added", CHILD_REMOVED: "child-removed", CHILD_REORDER: "child-reorder", GROUP_CHANGED: "group-changed" }), M = [ E.TOUCH_START, E.TOUCH_MOVE, E.TOUCH_END, E.TOUCH_CANCEL ], B = [ E.MOUSE_DOWN, E.MOUSE_ENTER, E.MOUSE_MOVE, E.MOUSE_LEAVE, E.MOUSE_UP, E.MOUSE_WHEEL ], D = null, I = function(t, e) { var i = t.getLocation(), n = this.owner; if (n._hitTest(i, this)) { e.type = E.TOUCH_START; e.touch = t; e.bubbles = !0; n.dispatchEvent(e); return !0; } return !1; }, P = function(t, e) { var i = this.owner; e.type = E.TOUCH_MOVE; e.touch = t; e.bubbles = !0; i.dispatchEvent(e); }, R = function(t, e) { var i = t.getLocation(), n = this.owner; n._hitTest(i, this) ? e.type = E.TOUCH_END : e.type = E.TOUCH_CANCEL; e.touch = t; e.bubbles = !0; n.dispatchEvent(e); }, L = function(t, e) { t.getLocation(); var i = this.owner; e.type = E.TOUCH_CANCEL; e.touch = t; e.bubbles = !0; i.dispatchEvent(e); }, F = function(t) { var e = t.getLocation(), i = this.owner; if (i._hitTest(e, this)) { t.type = E.MOUSE_DOWN; t.bubbles = !0; i.dispatchEvent(t); } }, O = function(t) { var e = t.getLocation(), i = this.owner; if (i._hitTest(e, this)) { if (!this._previousIn) { if (D && D._mouseListener) { t.type = E.MOUSE_LEAVE; D.dispatchEvent(t); D._mouseListener._previousIn = !1; } D = this.owner; t.type = E.MOUSE_ENTER; i.dispatchEvent(t); this._previousIn = !0; } t.type = E.MOUSE_MOVE; t.bubbles = !0; i.dispatchEvent(t); } else { if (!this._previousIn) return; t.type = E.MOUSE_LEAVE; i.dispatchEvent(t); this._previousIn = !1; D = null; } t.stopPropagation(); }, V = function(t) { var e = t.getLocation(), i = this.owner; if (i._hitTest(e, this)) { t.type = E.MOUSE_UP; t.bubbles = !0; i.dispatchEvent(t); t.stopPropagation(); } }, N = function(t) { var e = t.getLocation(), i = this.owner; if (i._hitTest(e, this)) { t.type = E.MOUSE_WHEEL; t.bubbles = !0; i.dispatchEvent(t); t.stopPropagation(); } }; function k(t) { var e = cc.Mask; if (e) for (var i = 0, n = t; n && cc.Node.isNode(n); n = n._parent, ++i) if (n.getComponent(e)) return { index: i, node: n }; return null; } function z(t, e) { if (!(t._objFlags & m)) { var i = 0; if (t._bubblingListeners) for (;i < e.length; ++i) if (t._bubblingListeners.hasEventListener(e[i])) return !0; if (t._capturingListeners) for (;i < e.length; ++i) if (t._capturingListeners.hasEventListener(e[i])) return !0; return !1; } return !0; } function G(t, e) { var i, n; e.target = t; S.length = 0; t._getCapturingTargets(e.type, S); e.eventPhase = 1; for (n = S.length - 1; n >= 0; --n) if ((i = S[n])._capturingListeners) { e.currentTarget = i; i._capturingListeners.emit(e.type, e, S); if (e._propagationStopped) { S.length = 0; return; } } S.length = 0; e.eventPhase = 2; e.currentTarget = t; t._capturingListeners && t._capturingListeners.emit(e.type, e); !e._propagationImmediateStopped && t._bubblingListeners && t._bubblingListeners.emit(e.type, e); if (!e._propagationStopped && e.bubbles) { t._getBubblingTargets(e.type, S); e.eventPhase = 3; for (n = 0; n < S.length; ++n) if ((i = S[n])._bubblingListeners) { e.currentTarget = i; i._bubblingListeners.emit(e.type, e); if (e._propagationStopped) { S.length = 0; return; } } } S.length = 0; } function U(t) { var e = t.groupIndex; 0 === e && t.parent && (e = U(t.parent)); return e; } function j(t) { var e = U(t); t._cullingMask = 1 << e; for (var i = 0; i < t._children.length; i++) j(t._children[i]); } var W = { name: "cc.Node", extends: o, properties: { _opacity: 255, _color: cc.Color.WHITE, _contentSize: cc.Size, _anchorPoint: cc.v2(.5, .5), _position: cc.Vec3, _scale: cc.Vec3.ONE, _eulerAngles: cc.Vec3, _skewX: 0, _skewY: 0, _zIndex: { default: void 0, type: cc.Integer }, _localZOrder: { default: 0, serializable: !1 }, _is3DNode: !1, groupIndex: { default: 0, type: cc.Integer }, group: { get: function() { return cc.game.groupList[this.groupIndex] || ""; }, set: function(t) { this.groupIndex = cc.game.groupList.indexOf(t); j(this); this.emit(E.GROUP_CHANGED, this); } }, x: { get: function() { return this._position.x; }, set: function(t) { var e = this._position; if (t !== e.x) { e.x = t; this.setLocalDirty(T.POSITION); this._renderFlag |= d.FLAG_WORLD_TRANSFORM; 1 & this._eventMask && this.emit(E.POSITION_CHANGED); } } }, y: { get: function() { return this._position.y; }, set: function(t) { var e = this._position; if (t !== e.y) { e.y = t; this.setLocalDirty(T.POSITION); this._renderFlag |= d.FLAG_WORLD_TRANSFORM; 1 & this._eventMask && this.emit(E.POSITION_CHANGED); } } }, rotation: { get: function() { 0; return -this.angle; }, set: function(t) { 0; this.angle = -t; } }, angle: { get: function() { return this._eulerAngles.z; }, set: function(t) { s.vec3.set(this._eulerAngles, 0, 0, t); s.quat.fromAngleZ(this._quat, t); this.setLocalDirty(T.ROTATION); this._renderFlag |= d.FLAG_TRANSFORM; 4 & this._eventMask && this.emit(E.ROTATION_CHANGED); } }, rotationX: { get: function() { 0; return this._eulerAngles.x; }, set: function(t) { 0; if (this._eulerAngles.x !== t) { this._eulerAngles.x = t; this._eulerAngles.x === this._eulerAngles.y ? s.quat.fromAngleZ(this._quat, -t) : s.quat.fromEuler(this._quat, t, this._eulerAngles.y, 0); this.setLocalDirty(T.ROTATION); this._renderFlag |= d.FLAG_TRANSFORM; 4 & this._eventMask && this.emit(E.ROTATION_CHANGED); } } }, rotationY: { get: function() { 0; return this._eulerAngles.y; }, set: function(t) { 0; if (this._eulerAngles.y !== t) { this._eulerAngles.y = t; this._eulerAngles.x === this._eulerAngles.y ? s.quat.fromAngleZ(this._quat, -t) : s.quat.fromEuler(this._quat, this._eulerAngles.x, t, 0); this.setLocalDirty(T.ROTATION); this._renderFlag |= d.FLAG_TRANSFORM; 4 & this._eventMask && this.emit(E.ROTATION_CHANGED); } } }, scale: { get: function() { return this._scale.x; }, set: function(t) { this.setScale(t); } }, scaleX: { get: function() { return this._scale.x; }, set: function(t) { if (this._scale.x !== t) { this._scale.x = t; this.setLocalDirty(T.SCALE); this._renderFlag |= d.FLAG_TRANSFORM; 2 & this._eventMask && this.emit(E.SCALE_CHANGED); } } }, scaleY: { get: function() { return this._scale.y; }, set: function(t) { if (this._scale.y !== t) { this._scale.y = t; this.setLocalDirty(T.SCALE); this._renderFlag |= d.FLAG_TRANSFORM; 2 & this._eventMask && this.emit(E.SCALE_CHANGED); } } }, skewX: { get: function() { return this._skewX; }, set: function(t) { this._skewX = t; this.setLocalDirty(T.SKEW); this._renderFlag |= d.FLAG_TRANSFORM; } }, skewY: { get: function() { return this._skewY; }, set: function(t) { this._skewY = t; this.setLocalDirty(T.SKEW); this._renderFlag |= d.FLAG_TRANSFORM; } }, opacity: { get: function() { return this._opacity; }, set: function(t) { t = cc.misc.clampf(t, 0, 255); if (this._opacity !== t) { this._opacity = t; this._renderFlag |= d.FLAG_OPACITY; } }, range: [ 0, 255 ] }, color: { get: function() { return this._color.clone(); }, set: function(t) { if (!this._color.equals(t)) { this._color.set(t); 0; 32 & this._eventMask && this.emit(E.COLOR_CHANGED, t); } } }, anchorX: { get: function() { return this._anchorPoint.x; }, set: function(t) { var e = this._anchorPoint; if (e.x !== t) { e.x = t; 16 & this._eventMask && this.emit(E.ANCHOR_CHANGED); } } }, anchorY: { get: function() { return this._anchorPoint.y; }, set: function(t) { var e = this._anchorPoint; if (e.y !== t) { e.y = t; 16 & this._eventMask && this.emit(E.ANCHOR_CHANGED); } } }, width: { get: function() { return this._contentSize.width; }, set: function(t) { if (t !== this._contentSize.width) { this._contentSize.width = t; 8 & this._eventMask && this.emit(E.SIZE_CHANGED); } } }, height: { get: function() { return this._contentSize.height; }, set: function(t) { if (t !== this._contentSize.height) { this._contentSize.height = t; 8 & this._eventMask && this.emit(E.SIZE_CHANGED); } } }, zIndex: { get: function() { return this._localZOrder >> 16; }, set: function(t) { if (t > u.MAX_ZINDEX) { cc.warnID(1636); t = u.MAX_ZINDEX; } else if (t < u.MIN_ZINDEX) { cc.warnID(1637); t = u.MIN_ZINDEX; } if (this.zIndex !== t) { this._localZOrder = 65535 & this._localZOrder | t << 16; this._parent && this._onSiblingIndexChanged(); } } } }, ctor: function() { this._reorderChildDirty = !1; this._widget = null; this._renderComponent = null; this._capturingListeners = null; this._bubblingListeners = null; this._touchListener = null; this._mouseListener = null; this._matrix = c.mat4.get(); this._worldMatrix = c.mat4.get(); this._localMatDirty = T.ALL; this._worldMatDirty = !0; this._eventMask = 0; this._cullingMask = 1; this._childArrivalOrder = 1; this._quat = cc.quat(); }, statics: { EventType: E, _LocalDirtyFlag: T, isNode: function(t) { return t instanceof H && (t.constructor === H || !(t instanceof cc.Scene)); }, BuiltinGroupIndex: w }, _onSiblingIndexChanged: function() { for (var t = this._parent, e = t._children, i = 0, n = e.length; i < n; i++) e[i]._updateOrderOfArrival(); t._delaySort(); }, _onPreDestroy: function() { this._onPreDestroyBase(); v && cc.director.getActionManager().removeAllActionsFromTarget(this); D === this && (D = null); if (this._touchListener || this._mouseListener) { h.removeListeners(this); if (this._touchListener) { this._touchListener.owner = null; this._touchListener.mask = null; this._touchListener = null; } if (this._mouseListener) { this._mouseListener.owner = null; this._mouseListener.mask = null; this._mouseListener = null; } } c.mat4.put(this._matrix); c.mat4.put(this._worldMatrix); this._matrix = this._worldMatrix = null; this._reorderChildDirty && cc.director.__fastOff(cc.Director.EVENT_AFTER_UPDATE, this.sortAllChildren, this); }, _onPostActivated: function(t) { var e = v ? cc.director.getActionManager() : null; if (t) { this._renderFlag |= d.FLAG_WORLD_TRANSFORM; e && e.resumeTarget(this); h.resumeTarget(this); if (this._touchListener) { var i = this._touchListener.mask = k(this); this._mouseListener && (this._mouseListener.mask = i); } else this._mouseListener && (this._mouseListener.mask = k(this)); } else { e && e.pauseTarget(this); h.pauseTarget(this); } }, _onHierarchyChanged: function(t) { this._updateOrderOfArrival(); j(this); this._parent && this._parent._delaySort(); this._renderFlag |= d.FLAG_WORLD_TRANSFORM; this._onHierarchyChangedBase(t); cc._widgetManager && (cc._widgetManager._nodesOrderDirty = !0); }, _toEuler: function() { if (this.is3DNode) this._quat.toEuler(this._eulerAngles); else { var t = Math.asin(this._quat.z) / p * 2; s.vec3.set(this._eulerAngles, 0, 0, t); } }, _fromEuler: function() { this.is3DNode ? this._quat.fromEuler(this._eulerAngles) : s.quat.fromAngleZ(this._quat, this._eulerAngles.z); }, _upgrade_1x_to_2x: function() { if (void 0 !== this._scaleX) { this._scale.x = this._scaleX; this._scaleX = void 0; } if (void 0 !== this._scaleY) { this._scale.y = this._scaleY; this._scaleY = void 0; } if (void 0 !== this._zIndex) { this._localZOrder = this._zIndex << 16; this._zIndex = void 0; } this._fromEuler(); if (this._color.a < 255 && 255 === this._opacity) { this._opacity = this._color.a; this._color.a = 255; } }, _onBatchCreated: function() { var t = this._prefab; if (t && t.sync && t.root === this) { 0; a.syncWithPrefab(this); } this._upgrade_1x_to_2x(); this._updateOrderOfArrival(); this._cullingMask = 1 << U(this); if (!this._activeInHierarchy) { v && cc.director.getActionManager().pauseTarget(this); h.pauseTarget(this); } for (var e = this._children, i = 0, n = e.length; i < n; i++) e[i]._onBatchCreated(); e.length > 0 && (this._renderFlag |= d.FLAG_CHILDREN); }, _onBatchRestored: function() { this._upgrade_1x_to_2x(); this._cullingMask = 1 << U(this); if (!this._activeInHierarchy) { var t = cc.director.getActionManager(); t && t.pauseTarget(this); h.pauseTarget(this); } for (var e = this._children, i = 0, n = e.length; i < n; i++) e[i]._onBatchRestored(); e.length > 0 && (this._renderFlag |= d.FLAG_CHILDREN); }, _checknSetupSysEvent: function(t) { var e = !1, i = !1; if (-1 !== M.indexOf(t)) { if (!this._touchListener) { this._touchListener = cc.EventListener.create({ event: cc.EventListener.TOUCH_ONE_BY_ONE, swallowTouches: !0, owner: this, mask: k(this), onTouchBegan: I, onTouchMoved: P, onTouchEnded: R, onTouchCancelled: L }); h.addListener(this._touchListener, this); e = !0; } i = !0; } else if (-1 !== B.indexOf(t)) { if (!this._mouseListener) { this._mouseListener = cc.EventListener.create({ event: cc.EventListener.MOUSE, _previousIn: !1, owner: this, mask: k(this), onMouseDown: F, onMouseMove: O, onMouseUp: V, onMouseScroll: N }); h.addListener(this._mouseListener, this); e = !0; } i = !0; } e && !this._activeInHierarchy && cc.director.getScheduler().schedule((function() { this._activeInHierarchy || h.pauseTarget(this); }), this, 0, 0, 0, !1); return i; }, on: function(t, e, i, n) { if (this._checknSetupSysEvent(t)) return this._onDispatch(t, e, i, n); switch (t) { case E.POSITION_CHANGED: this._eventMask |= 1; break; case E.SCALE_CHANGED: this._eventMask |= 2; break; case E.ROTATION_CHANGED: this._eventMask |= 4; break; case E.SIZE_CHANGED: this._eventMask |= 8; break; case E.ANCHOR_CHANGED: this._eventMask |= 16; break; case E.COLOR_CHANGED: this._eventMask |= 32; } this._bubblingListeners || (this._bubblingListeners = new f()); return this._bubblingListeners.on(t, e, i); }, once: function(t, e, i, n) { var r = this._checknSetupSysEvent(t), s = "__ONCE_FLAG:" + t, o = null; if (!(o = r && n ? this._capturingListeners = this._capturingListeners || new f() : this._bubblingListeners = this._bubblingListeners || new f()).hasEventListener(s, e, i)) { var a = this; this.on(t, (function n(r, c, l, h, u) { a.off(t, n, i); o.remove(s, e, i); e.call(this, r, c, l, h, u); }), i); o.add(s, e, i); } }, _onDispatch: function(i, n, r, s) { if ("boolean" === ("object" === (e = typeof r) ? t(r) : e)) { s = r; r = void 0; } else s = !!s; if (n) { var o = null; if (!(o = s ? this._capturingListeners = this._capturingListeners || new f() : this._bubblingListeners = this._bubblingListeners || new f()).hasEventListener(i, n, r)) { o.add(i, n, r); r && r.__eventTargets && r.__eventTargets.push(this); } return n; } cc.errorID(6800); }, off: function(t, e, i, n) { var r = -1 !== M.indexOf(t), s = !r && -1 !== B.indexOf(t); if (r || s) { this._offDispatch(t, e, i, n); if (r) { if (this._touchListener && !z(this, M)) { h.removeListener(this._touchListener); this._touchListener = null; } } else if (s && this._mouseListener && !z(this, B)) { h.removeListener(this._mouseListener); this._mouseListener = null; } } else if (this._bubblingListeners) { this._bubblingListeners.off(t, e, i); if (!this._bubblingListeners.hasEventListener(t)) switch (t) { case E.POSITION_CHANGED: this._eventMask &= -2; break; case E.SCALE_CHANGED: this._eventMask &= -3; break; case E.ROTATION_CHANGED: this._eventMask &= -5; break; case E.SIZE_CHANGED: this._eventMask &= -9; break; case E.ANCHOR_CHANGED: this._eventMask &= -17; break; case E.COLOR_CHANGED: this._eventMask &= -33; } } }, _offDispatch: function(i, n, r, s) { if ("boolean" === ("object" === (e = typeof r) ? t(r) : e)) { s = r; r = void 0; } else s = !!s; if (n) { var o = s ? this._capturingListeners : this._bubblingListeners; if (o) { o.remove(i, n, r); r && r.__eventTargets && _.array.fastRemove(r.__eventTargets, this); } } else { this._capturingListeners && this._capturingListeners.removeAll(i); this._bubblingListeners && this._bubblingListeners.removeAll(i); } }, targetOff: function(t) { var e = this._bubblingListeners; if (e) { e.targetOff(t); 1 & this._eventMask && !e.hasEventListener(E.POSITION_CHANGED) && (this._eventMask &= -2); 2 & this._eventMask && !e.hasEventListener(E.SCALE_CHANGED) && (this._eventMask &= -3); 4 & this._eventMask && !e.hasEventListener(E.ROTATION_CHANGED) && (this._eventMask &= -5); 8 & this._eventMask && !e.hasEventListener(E.SIZE_CHANGED) && (this._eventMask &= -9); 16 & this._eventMask && !e.hasEventListener(E.ANCHOR_CHANGED) && (this._eventMask &= -17); 32 & this._eventMask && !e.hasEventListener(E.COLOR_CHANGED) && (this._eventMask &= -33); } this._capturingListeners && this._capturingListeners.targetOff(t); t && t.__eventTargets && _.array.fastRemove(t.__eventTargets, this); if (this._touchListener && !z(this, M)) { h.removeListener(this._touchListener); this._touchListener = null; } if (this._mouseListener && !z(this, B)) { h.removeListener(this._mouseListener); this._mouseListener = null; } }, hasEventListener: function(t) { var e = !1; this._bubblingListeners && (e = this._bubblingListeners.hasEventListener(t)); !e && this._capturingListeners && (e = this._capturingListeners.hasEventListener(t)); return e; }, emit: function(t, e, i, n, r, s) { this._bubblingListeners && this._bubblingListeners.emit(t, e, i, n, r, s); }, dispatchEvent: function(t) { G(this, t); S.length = 0; }, pauseSystemEvents: function(t) { h.pauseTarget(this, t); }, resumeSystemEvents: function(t) { h.resumeTarget(this, t); }, _hitTest: function(t, e) { var i = this._contentSize.width, n = this._contentSize.height, r = g, o = x, a = cc.Camera.findCamera(this); a ? a.getScreenToWorldPoint(t, r) : r.set(t); this._updateWorldMatrix(); if (!s.mat4.invert(C, this._worldMatrix)) return !1; s.vec2.transformMat4(o, r, C); o.x += this._anchorPoint.x * i; o.y += this._anchorPoint.y * n; if (o.x >= 0 && o.y >= 0 && o.x <= i && o.y <= n) { if (e && e.mask) { for (var c = e.mask, l = this, h = 0; l && h < c.index; ++h, l = l.parent) ; if (l === c.node) { var u = l.getComponent(cc.Mask); return !u || !u.enabledInHierarchy || u._hitTest(r); } e.mask = null; return !0; } return !0; } return !1; }, _getCapturingTargets: function(t, e) { for (var i = this.parent; i; ) { i._capturingListeners && i._capturingListeners.hasEventListener(t) && e.push(i); i = i.parent; } }, _getBubblingTargets: function(t, e) { for (var i = this.parent; i; ) { i._bubblingListeners && i._bubblingListeners.hasEventListener(t) && e.push(i); i = i.parent; } }, runAction: v ? function(t) { if (this.active) { cc.assertID(t, 1618); cc.director.getActionManager().addAction(t, this, !1); return t; } } : y, pauseAllActions: v ? function() { cc.director.getActionManager().pauseTarget(this); } : y, resumeAllActions: v ? function() { cc.director.getActionManager().resumeTarget(this); } : y, stopAllActions: v ? function() { cc.director.getActionManager().removeAllActionsFromTarget(this); } : y, stopAction: v ? function(t) { cc.director.getActionManager().removeAction(t); } : y, stopActionByTag: v ? function(t) { t !== cc.Action.TAG_INVALID ? cc.director.getActionManager().removeActionByTag(t, this) : cc.logID(1612); } : y, getActionByTag: v ? function(t) { if (t === cc.Action.TAG_INVALID) { cc.logID(1613); return null; } return cc.director.getActionManager().getActionByTag(t, this); } : function() { return null; }, getNumberOfRunningActions: v ? function() { return cc.director.getActionManager().getNumberOfRunningActionsInTarget(this); } : function() { return 0; }, getPosition: function(t) { return (t = t || cc.v3()).set(this._position); }, setPosition: function(t, e) { var i; if (void 0 === e) { i = t.x; e = t.y; } else i = t; var n = this._position; if (n.x !== i || n.y !== e) { n.x = i; n.y = e; this.setLocalDirty(T.POSITION); this._renderFlag |= d.FLAG_WORLD_TRANSFORM; 1 & this._eventMask && this.emit(E.POSITION_CHANGED); } }, getScale: function(t) { if (t) return t.set(this._scale); 0; return this._scale.x; }, setScale: function(i, n) { if (i && "number" !== ("object" === (e = typeof i) ? t(i) : e)) { n = i.y; i = i.x; } else void 0 === n && (n = i); if (this._scale.x !== i || this._scale.y !== n) { this._scale.x = i; this._scale.y = n; this.setLocalDirty(T.SCALE); this._renderFlag |= d.FLAG_TRANSFORM; 2 & this._eventMask && this.emit(E.SCALE_CHANGED); } }, getRotation: function(t) { if (t instanceof cc.Quat) return t.set(this._quat); 0; return -this.angle; }, setRotation: function(i, n, r, s) { if ("number" === ("object" === (e = typeof i) ? t(i) : e) && void 0 === n) { 0; this.angle = -i; } else { var o = i; if (void 0 === n) { o = i.x; n = i.y; r = i.z; s = i.w; } var a = this._quat; if (a.x !== o || a.y !== n || a.z !== r || a.w !== s) { a.x = o; a.y = n; a.z = r; a.w = s; this.setLocalDirty(T.ROTATION); this._renderFlag |= d.FLAG_TRANSFORM; 4 & this._eventMask && this.emit(E.ROTATION_CHANGED); 0; } } }, getContentSize: function() { return cc.size(this._contentSize.width, this._contentSize.height); }, setContentSize: function(t, e) { var i = this._contentSize; if (void 0 === e) { if (t.width === i.width && t.height === i.height) return; 0; i.width = t.width; i.height = t.height; } else { if (t === i.width && e === i.height) return; 0; i.width = t; i.height = e; } 8 & this._eventMask && this.emit(E.SIZE_CHANGED); }, getAnchorPoint: function() { return cc.v2(this._anchorPoint); }, setAnchorPoint: function(t, e) { var i = this._anchorPoint; if (void 0 === e) { if (t.x === i.x && t.y === i.y) return; i.x = t.x; i.y = t.y; } else { if (t === i.x && e === i.y) return; i.x = t; i.y = e; } this.setLocalDirty(T.POSITION); 16 & this._eventMask && this.emit(E.ANCHOR_CHANGED); }, _invTransformPoint: function(t, e) { this._parent ? this._parent._invTransformPoint(t, e) : s.vec3.copy(t, e); s.vec3.sub(t, t, this._position); s.quat.conjugate(A, this._quat); s.vec3.transformQuat(t, t, A); s.vec3.inverseSafe(b, this._scale); s.vec3.mul(t, t, b); return t; }, getWorldPosition: function(t) { s.vec3.copy(t, this._position); for (var e = this._parent; e; ) { s.vec3.mul(t, t, e._scale); s.vec3.transformQuat(t, t, e._quat); s.vec3.add(t, t, e._position); e = e._parent; } return t; }, setWorldPosition: function(t) { this._parent ? this._parent._invTransformPoint(this._position, t) : s.vec3.copy(this._position, t); this.setLocalDirty(T.POSITION); 1 & this._eventMask && this.emit(E.POSITION_CHANGED); }, getWorldRotation: function(t) { s.quat.copy(t, this._quat); for (var e = this._parent; e; ) { s.quat.mul(t, e._quat, t); e = e._parent; } return t; }, setWorldRotation: function(t) { if (this._parent) { this._parent.getWorldRotation(this._quat); s.quat.conjugate(this._quat, this._quat); s.quat.mul(this._quat, this._quat, t); } else s.quat.copy(this._quat, s.quat); this._toEuler(); this.setLocalDirty(T.ROTATION); }, getWorldScale: function(t) { s.vec3.copy(t, this._scale); for (var e = this._parent; e; ) { s.vec3.mul(t, t, e._scale); e = e._parent; } return t; }, setWorldScale: function(t) { if (this._parent) { this._parent.getWorldScale(this._scale); s.vec3.div(this._scale, t, this._scale); } else s.vec3.copy(this._scale, t); this.setLocalDirty(T.SCALE); }, getWorldRT: function(t) { var e = b, i = A; s.vec3.copy(e, this._position); s.quat.copy(i, this._quat); for (var n = this._parent; n; ) { s.vec3.mul(e, e, n._scale); s.vec3.transformQuat(e, e, n._quat); s.vec3.add(e, e, n._position); s.quat.mul(i, n._quat, i); n = n._parent; } s.mat4.fromRT(t, i, e); return t; }, lookAt: function(t, e) { this.getWorldPosition(b); s.vec3.sub(b, b, t); s.vec3.normalize(b, b); s.quat.fromViewUp(A, b, e); this.setWorldRotation(A); }, _updateLocalMatrix: function() { var t = this._localMatDirty; if (t) { var e = this._matrix; if (t & (T.RT | T.SKEW)) { var i = -this._eulerAngles.z, n = this._skewX || this._skewY, r = this._scale.x, s = this._scale.y; if (i || n) { var o = 1, a = 0, c = 0, l = 1; if (i) { var h = i * p; c = Math.sin(h); o = l = Math.cos(h); a = -c; } e.m00 = o *= r; e.m01 = a *= r; e.m04 = c *= s; e.m05 = l *= s; if (n) { var u = e.m00, _ = e.m01, f = e.m04, d = e.m05, m = Math.tan(this._skewX * p), v = Math.tan(this._skewY * p); Infinity === m && (m = 99999999); Infinity === v && (v = 99999999); e.m00 = u + f * v; e.m01 = _ + d * v; e.m04 = f + u * m; e.m05 = d + _ * m; } } else { e.m00 = r; e.m01 = 0; e.m04 = 0; e.m05 = s; } } e.m12 = this._position.x; e.m13 = this._position.y; this._localMatDirty = 0; this._worldMatDirty = !0; } }, _calculWorldMatrix: function() { this._localMatDirty && this._updateLocalMatrix(); var t = this._parent; t ? this._mulMat(this._worldMatrix, t._worldMatrix, this._matrix) : s.mat4.copy(this._worldMatrix, this._matrix); this._worldMatDirty = !1; }, _mulMat: function(t, e, i) { var n = e.m00, r = e.m01, s = e.m04, o = e.m05, a = e.m12, c = e.m13, l = i.m00, h = i.m01, u = i.m04, _ = i.m05, f = i.m12, d = i.m13; if (0 !== r || 0 !== s) { t.m00 = l * n + h * s; t.m01 = l * r + h * o; t.m04 = u * n + _ * s; t.m05 = u * r + _ * o; t.m12 = n * f + s * d + a; t.m13 = r * f + o * d + c; } else { t.m00 = l * n; t.m01 = h * o; t.m04 = u * n; t.m05 = _ * o; t.m12 = n * f + a; t.m13 = o * d + c; } }, _updateWorldMatrix: function() { this._parent && this._parent._updateWorldMatrix(); if (this._worldMatDirty) { this._calculWorldMatrix(); for (var t = this._children, e = 0, i = t.length; e < i; e++) t[e]._worldMatDirty = !0; } }, setLocalDirty: function(t) { this._localMatDirty = this._localMatDirty | t; this._worldMatDirty = !0; }, setWorldDirty: function() { this._worldMatDirty = !0; }, getLocalMatrix: function(t) { this._updateLocalMatrix(); return s.mat4.copy(t, this._matrix); }, getWorldMatrix: function(t) { this._updateWorldMatrix(); return s.mat4.copy(t, this._worldMatrix); }, convertToNodeSpaceAR: function(t, e) { this._updateWorldMatrix(); s.mat4.invert(C, this._worldMatrix); if (t instanceof cc.Vec2) { e = e || new cc.Vec2(); return s.vec2.transformMat4(e, t, C); } e = e || new cc.Vec3(); return s.vec3.transformMat4(e, t, C); }, convertToWorldSpaceAR: function(t, e) { this._updateWorldMatrix(); if (t instanceof cc.Vec2) { e = e || new cc.Vec2(); return s.vec2.transformMat4(e, t, this._worldMatrix); } e = e || new cc.Vec3(); return s.vec3.transformMat4(e, t, this._worldMatrix); }, convertToNodeSpace: function(t) { this._updateWorldMatrix(); s.mat4.invert(C, this._worldMatrix); var e = new cc.Vec2(); s.vec2.transformMat4(e, t, C); e.x += this._anchorPoint.x * this._contentSize.width; e.y += this._anchorPoint.y * this._contentSize.height; return e; }, convertToWorldSpace: function(t) { this._updateWorldMatrix(); var e = new cc.Vec2(t.x - this._anchorPoint.x * this._contentSize.width, t.y - this._anchorPoint.y * this._contentSize.height); return s.vec2.transformMat4(e, e, this._worldMatrix); }, getNodeToParentTransform: function(t) { t || (t = l.identity()); this._updateLocalMatrix(); var e = this._contentSize; b.x = -this._anchorPoint.x * e.width; b.y = -this._anchorPoint.y * e.height; s.mat4.copy(C, this._matrix); s.mat4.translate(C, C, b); return l.fromMat4(t, C); }, getNodeToParentTransformAR: function(t) { t || (t = l.identity()); this._updateLocalMatrix(); return l.fromMat4(t, this._matrix); }, getNodeToWorldTransform: function(t) { t || (t = l.identity()); this._updateWorldMatrix(); var e = this._contentSize; b.x = -this._anchorPoint.x * e.width; b.y = -this._anchorPoint.y * e.height; s.mat4.copy(C, this._worldMatrix); s.mat4.translate(C, C, b); return l.fromMat4(t, C); }, getNodeToWorldTransformAR: function(t) { t || (t = l.identity()); this._updateWorldMatrix(); return l.fromMat4(t, this._worldMatrix); }, getParentToNodeTransform: function(t) { t || (t = l.identity()); this._updateLocalMatrix(); s.mat4.invert(C, this._matrix); return l.fromMat4(t, C); }, getWorldToNodeTransform: function(t) { t || (t = l.identity()); this._updateWorldMatrix(); s.mat4.invert(C, this._worldMatrix); return l.fromMat4(t, C); }, convertTouchToNodeSpace: function(t) { return this.convertToNodeSpace(t.getLocation()); }, convertTouchToNodeSpaceAR: function(t) { return this.convertToNodeSpaceAR(t.getLocation()); }, getBoundingBox: function() { this._updateLocalMatrix(); var t = this._contentSize.width, e = this._contentSize.height, i = cc.rect(-this._anchorPoint.x * t, -this._anchorPoint.y * e, t, e); return i.transformMat4(i, this._matrix); }, getBoundingBoxToWorld: function() { if (this._parent) { this._parent._updateWorldMatrix(); return this._getBoundingBoxTo(this._parent._worldMatrix); } return this.getBoundingBox(); }, _getBoundingBoxTo: function(t) { this._updateLocalMatrix(); var e = this._contentSize.width, i = this._contentSize.height, n = cc.rect(-this._anchorPoint.x * e, -this._anchorPoint.y * i, e, i); t = s.mat4.mul(this._worldMatrix, t, this._matrix); n.transformMat4(n, t); if (!this._children) return n; for (var r = this._children, o = 0; o < r.length; o++) { var a = r[o]; if (a && a.active) { var c = a._getBoundingBoxTo(t); c && n.union(n, c); } } return n; }, _updateOrderOfArrival: function() { var t = this._parent ? ++this._parent._childArrivalOrder : 0; this._localZOrder = 4294901760 & this._localZOrder | t; if (65535 === t) { var e = this._parent._children; e.forEach((function(t, e) { t._localZOrder = 4294901760 & t._localZOrder | e + 1; })); this._parent._childArrivalOrder = e.length; } }, addChild: function(t, e, i) { 0; cc.assertID(t, 1606); cc.assertID(null === t._parent, 1605); t.parent = this; void 0 !== e && (t.zIndex = e); void 0 !== i && (t.name = i); }, cleanup: function() { v && cc.director.getActionManager().removeAllActionsFromTarget(this); h.removeListeners(this); var t, e, i = this._children.length; for (t = 0; t < i; ++t) (e = this._children[t]) && e.cleanup(); }, sortAllChildren: function() { if (this._reorderChildDirty) { h._setDirtyForNode(this); this._reorderChildDirty = !1; var t = this._children; if (t.length > 1) { var e, i, n, r = t.length; for (e = 1; e < r; e++) { n = t[e]; i = e - 1; for (;i >= 0 && n._localZOrder < t[i]._localZOrder; ) { t[i + 1] = t[i]; i--; } t[i + 1] = n; } this.emit(E.CHILD_REORDER, this); } cc.director.__fastOff(cc.Director.EVENT_AFTER_UPDATE, this.sortAllChildren, this); } }, _delaySort: function() { if (!this._reorderChildDirty) { this._reorderChildDirty = !0; cc.director.__fastOn(cc.Director.EVENT_AFTER_UPDATE, this.sortAllChildren, this); } }, _restoreProperties: !1, onRestore: !1 }; 0; var H = cc.Class(W), q = H.prototype; _.getset(q, "position", q.getPosition, q.setPosition, !1, !0); cc.Node = n.exports = H; }), { "./event-manager": 131, "./event/event": 134, "./event/event-target": 133, "./platform/CCMacro": 206, "./platform/js": 221, "./renderer/render-flow": 245, "./utils/affine-transform": 286, "./utils/base-node": 287, "./utils/math-pools": 295, "./utils/prefab-helper": 299, "./vmath": 317 } ], 53: [ (function(t, e, i) { "use strict"; var n = t("./CCNode"), r = t("./renderer/render-flow"), s = (cc.Object.Flags.HideInHierarchy, n._LocalDirtyFlag), o = cc.Class({ name: "cc.PrivateNode", extends: n, properties: { x: { get: function() { return this._originPos.x; }, set: function(t) { var e = this._originPos; if (t !== e.x) { e.x = t; this._posDirty(!0); } }, override: !0 }, y: { get: function() { return this._originPos.y; }, set: function(t) { var e = this._originPos; if (t !== e.y) { e.y = t; this._posDirty(!0); } }, override: !0 }, zIndex: { get: function() { return cc.macro.MIN_ZINDEX; }, set: function() { cc.warnID(1638); }, override: !0 }, showInEditor: { default: !1, editorOnly: !0, override: !0 } }, ctor: function(t) { this._localZOrder = cc.macro.MIN_ZINDEX << 16; this._originPos = cc.v2(); 0; }, _posDirty: function(t) { this.setLocalDirty(s.POSITION); this._renderFlag |= r.FLAG_TRANSFORM; !0 === t && 1 & this._eventMask && this.emit(n.EventType.POSITION_CHANGED); }, _updateLocalMatrix: function() { if (this._localMatDirty) { var t = this.parent; if (t) { this._position.x = this._originPos.x - (t._anchorPoint.x - .5) * t._contentSize.width; this._position.y = this._originPos.y - (t._anchorPoint.y - .5) * t._contentSize.height; } this._super(); } }, getPosition: function() { return new cc.Vec2(this._originPos); }, setPosition: function(t, e) { void 0 === e && (e = (t = t.x).y); var i = this._originPos; if (i.x !== t || i.y !== e) { i.x = t; i.y = e; this._posDirty(!0); } }, setParent: function(t) { var e = this._parent; this._super(t); if (e !== t) { e && e.off(n.EventType.ANCHOR_CHANGED, this._posDirty, this); t && t.on(n.EventType.ANCHOR_CHANGED, this._posDirty, this); } }, _updateOrderOfArrival: function() {} }); cc.js.getset(o.prototype, "parent", o.prototype.getParent, o.prototype.setParent); cc.js.getset(o.prototype, "position", o.prototype.getPosition, o.prototype.setPosition); cc.PrivateNode = e.exports = o; }), { "./CCNode": 52, "./renderer/render-flow": 245 } ], 54: [ (function(t, e, i) { "use strict"; cc.Scene = cc.Class({ name: "cc.Scene", extends: t("./CCNode"), properties: { _is3DNode: { default: !0, override: !0 }, autoReleaseAssets: { default: void 0, type: cc.Boolean } }, ctor: function() { this._anchorPoint.x = 0; this._anchorPoint.y = 0; this._activeInHierarchy = !1; this._inited = !cc.game._isCloning; 0; this.dependAssets = null; }, destroy: function() { if (cc.Object.prototype.destroy.call(this)) for (var t = this._children, e = 0; e < t.length; ++e) t[e].active = !1; this._active = !1; this._activeInHierarchy = !1; }, _onHierarchyChanged: function() {}, _instantiate: null, _load: function() { if (!this._inited) { 0; this._onBatchCreated(); this._inited = !0; } }, _activate: function(t) { t = !1 !== t; 0; cc.director._nodeActivator.activateNode(this, t); } }); e.exports = cc.Scene; }), { "./CCNode": 52 } ], 55: [ (function(i, n, r) { "use strict"; var s = i("./platform/js"), o = new (i("./platform/id-generater"))("Scheduler"), a = function(t, e, i, n) { this.target = t; this.priority = e; this.paused = i; this.markedForDeletion = n; }, c = []; a.get = function(t, e, i, n) { var r = c.pop(); if (r) { r.target = t; r.priority = e; r.paused = i; r.markedForDeletion = n; } else r = new a(t, e, i, n); return r; }; a.put = function(t) { if (c.length < 20) { t.target = null; c.push(t); } }; var l = function(t, e, i, n) { this.list = t; this.entry = e; this.target = i; this.callback = n; }, h = []; l.get = function(t, e, i, n) { var r = h.pop(); if (r) { r.list = t; r.entry = e; r.target = i; r.callback = n; } else r = new l(t, e, i, n); return r; }; l.put = function(t) { if (h.length < 20) { t.list = t.entry = t.target = t.callback = null; h.push(t); } }; var u = function(t, e, i, n, r, s) { var o = this; o.timers = t; o.target = e; o.timerIndex = i; o.currentTimer = n; o.currentTimerSalvaged = r; o.paused = s; }, _ = []; u.get = function(t, e, i, n, r, s) { var o = _.pop(); if (o) { o.timers = t; o.target = e; o.timerIndex = i; o.currentTimer = n; o.currentTimerSalvaged = r; o.paused = s; } else o = new u(t, e, i, n, r, s); return o; }; u.put = function(t) { if (_.length < 20) { t.timers = t.target = t.currentTimer = null; _.push(t); } }; function f() { this._lock = !1; this._scheduler = null; this._elapsed = -1; this._runForever = !1; this._useDelay = !1; this._timesExecuted = 0; this._repeat = 0; this._delay = 0; this._interval = 0; this._target = null; this._callback = null; } var d = f.prototype; d.initWithCallback = function(t, e, i, n, r, s) { this._lock = !1; this._scheduler = t; this._target = i; this._callback = e; this._elapsed = -1; this._interval = n; this._delay = s; this._useDelay = this._delay > 0; this._repeat = r; this._runForever = this._repeat === cc.macro.REPEAT_FOREVER; return !0; }; d.getInterval = function() { return this._interval; }; d.setInterval = function(t) { this._interval = t; }; d.update = function(t) { if (-1 === this._elapsed) { this._elapsed = 0; this._timesExecuted = 0; } else { this._elapsed += t; if (this._runForever && !this._useDelay) { if (this._elapsed >= this._interval) { this.trigger(); this._elapsed = 0; } } else { if (this._useDelay) { if (this._elapsed >= this._delay) { this.trigger(); this._elapsed -= this._delay; this._timesExecuted += 1; this._useDelay = !1; } } else if (this._elapsed >= this._interval) { this.trigger(); this._elapsed = 0; this._timesExecuted += 1; } this._callback && !this._runForever && this._timesExecuted > this._repeat && this.cancel(); } } }; d.getCallback = function() { return this._callback; }; d.trigger = function() { if (this._target && this._callback) { this._lock = !0; this._callback.call(this._target, this._elapsed); this._lock = !1; } }; d.cancel = function() { this._scheduler.unschedule(this._callback, this._target); }; var m = []; f.get = function() { return m.pop() || new f(); }; f.put = function(t) { if (m.length < 20 && !t._lock) { t._scheduler = t._target = t._callback = null; m.push(t); } }; cc.Scheduler = function() { this._timeScale = 1; this._updatesNegList = []; this._updates0List = []; this._updatesPosList = []; this._hashForUpdates = s.createMap(!0); this._hashForTimers = s.createMap(!0); this._currentTarget = null; this._currentTargetSalvaged = !1; this._updateHashLocked = !1; this._arrayForTimers = []; }; cc.Scheduler.prototype = { constructor: cc.Scheduler, _removeHashElement: function(t) { delete this._hashForTimers[t.target._id]; for (var e = this._arrayForTimers, i = 0, n = e.length; i < n; i++) if (e[i] === t) { e.splice(i, 1); break; } u.put(t); }, _removeUpdateFromHash: function(t) { var e = t.target._id, i = this._hashForUpdates[e]; if (i) { for (var n = i.list, r = i.entry, s = 0, o = n.length; s < o; s++) if (n[s] === r) { n.splice(s, 1); break; } delete this._hashForUpdates[e]; a.put(r); l.put(i); } }, _priorityIn: function(t, e, i) { for (var n = 0; n < t.length; n++) if (i < t[n].priority) { t.splice(n, 0, e); return; } t.push(e); }, _appendIn: function(t, e) { t.push(e); }, enableForTarget: function(t) { t._id || (t.__instanceId ? cc.warnID(1513) : t._id = o.getNewId()); }, setTimeScale: function(t) { this._timeScale = t; }, getTimeScale: function() { return this._timeScale; }, update: function(t) { this._updateHashLocked = !0; 1 !== this._timeScale && (t *= this._timeScale); var e, i, n, r; for (e = 0, n = (i = this._updatesNegList).length; e < n; e++) (r = i[e]).paused || r.markedForDeletion || r.target.update(t); for (e = 0, n = (i = this._updates0List).length; e < n; e++) (r = i[e]).paused || r.markedForDeletion || r.target.update(t); for (e = 0, n = (i = this._updatesPosList).length; e < n; e++) (r = i[e]).paused || r.markedForDeletion || r.target.update(t); var s, o = this._arrayForTimers; for (e = 0; e < o.length; e++) { s = o[e]; this._currentTarget = s; this._currentTargetSalvaged = !1; if (!s.paused) for (s.timerIndex = 0; s.timerIndex < s.timers.length; ++s.timerIndex) { s.currentTimer = s.timers[s.timerIndex]; s.currentTimerSalvaged = !1; s.currentTimer.update(t); s.currentTimer = null; } if (this._currentTargetSalvaged && 0 === this._currentTarget.timers.length) { this._removeHashElement(this._currentTarget); --e; } } for (e = 0, i = this._updatesNegList; e < i.length; ) (r = i[e]).markedForDeletion ? this._removeUpdateFromHash(r) : e++; for (e = 0, i = this._updates0List; e < i.length; ) (r = i[e]).markedForDeletion ? this._removeUpdateFromHash(r) : e++; for (e = 0, i = this._updatesPosList; e < i.length; ) (r = i[e]).markedForDeletion ? this._removeUpdateFromHash(r) : e++; this._updateHashLocked = !1; this._currentTarget = null; }, schedule: function(i, n, r, s, o, a) { if ("function" !== ("object" === (e = typeof i) ? t(i) : e)) { var c = i; i = n; n = c; } if (4 === arguments.length || 5 === arguments.length) { a = !!s; s = cc.macro.REPEAT_FOREVER; o = 0; } cc.assertID(n, 1502); var l = n._id; if (!l) if (n.__instanceId) { cc.warnID(1513); l = n._id = n.__instanceId; } else cc.errorID(1510); var h, _, d = this._hashForTimers[l]; if (d) d.paused !== a && cc.warnID(1511); else { d = u.get(null, n, 0, null, null, a); this._arrayForTimers.push(d); this._hashForTimers[l] = d; } if (null == d.timers) d.timers = []; else for (_ = 0; _ < d.timers.length; ++_) if ((h = d.timers[_]) && i === h._callback) { cc.logID(1507, h.getInterval(), r); h._interval = r; return; } (h = f.get()).initWithCallback(this, i, n, r, s, o); d.timers.push(h); this._currentTarget === d && this._currentTargetSalvaged && (this._currentTargetSalvaged = !1); }, scheduleUpdate: function(t, e, i) { var n = t._id; if (!n) if (t.__instanceId) { cc.warnID(1513); n = t._id = t.__instanceId; } else cc.errorID(1510); var r = this._hashForUpdates[n]; if (r && r.entry) { if (r.entry.priority === e) { r.entry.markedForDeletion = !1; r.entry.paused = i; return; } if (this._updateHashLocked) { cc.logID(1506); r.entry.markedForDeletion = !1; r.entry.paused = i; return; } this.unscheduleUpdate(t); } var s, o = a.get(t, e, i, !1); if (0 === e) { s = this._updates0List; this._appendIn(s, o); } else { s = e < 0 ? this._updatesNegList : this._updatesPosList; this._priorityIn(s, o, e); } this._hashForUpdates[n] = l.get(s, o, t, null); }, unschedule: function(t, e) { if (e && t) { var i = e._id; if (!i) if (e.__instanceId) { cc.warnID(1513); i = e._id = e.__instanceId; } else cc.errorID(1510); var n = this._hashForTimers[i]; if (n) for (var r = n.timers, s = 0, o = r.length; s < o; s++) { var a = r[s]; if (t === a._callback) { a !== n.currentTimer || n.currentTimerSalvaged || (n.currentTimerSalvaged = !0); r.splice(s, 1); f.put(a); n.timerIndex >= s && n.timerIndex--; 0 === r.length && (this._currentTarget === n ? this._currentTargetSalvaged = !0 : this._removeHashElement(n)); return; } } } }, unscheduleUpdate: function(t) { if (t) { var e = t._id; if (!e) if (t.__instanceId) { cc.warnID(1513); e = t._id = t.__instanceId; } else cc.errorID(1510); var i = this._hashForUpdates[e]; i && (this._updateHashLocked ? i.entry.markedForDeletion = !0 : this._removeUpdateFromHash(i.entry)); } }, unscheduleAllForTarget: function(t) { if (t) { var e = t._id; if (!e) if (t.__instanceId) { cc.warnID(1513); e = t._id = t.__instanceId; } else cc.errorID(1510); var i = this._hashForTimers[e]; if (i) { var n = i.timers; n.indexOf(i.currentTimer) > -1 && !i.currentTimerSalvaged && (i.currentTimerSalvaged = !0); for (var r = 0, s = n.length; r < s; r++) f.put(n[r]); n.length = 0; this._currentTarget === i ? this._currentTargetSalvaged = !0 : this._removeHashElement(i); } this.unscheduleUpdate(t); } }, unscheduleAll: function() { this.unscheduleAllWithMinPriority(cc.Scheduler.PRIORITY_SYSTEM); }, unscheduleAllWithMinPriority: function(t) { var e, i, n, r = this._arrayForTimers; for (e = r.length - 1; e >= 0; e--) { i = r[e]; this.unscheduleAllForTarget(i.target); } var s = 0; if (t < 0) for (e = 0; e < this._updatesNegList.length; ) { s = this._updatesNegList.length; (n = this._updatesNegList[e]) && n.priority >= t && this.unscheduleUpdate(n.target); s == this._updatesNegList.length && e++; } if (t <= 0) for (e = 0; e < this._updates0List.length; ) { s = this._updates0List.length; (n = this._updates0List[e]) && this.unscheduleUpdate(n.target); s == this._updates0List.length && e++; } for (e = 0; e < this._updatesPosList.length; ) { s = this._updatesPosList.length; (n = this._updatesPosList[e]) && n.priority >= t && this.unscheduleUpdate(n.target); s == this._updatesPosList.length && e++; } }, isScheduled: function(t, e) { cc.assertID(t, 1508); cc.assertID(e, 1509); var i = e._id; if (!i) if (e.__instanceId) { cc.warnID(1513); i = e._id = e.__instanceId; } else cc.errorID(1510); var n = this._hashForTimers[i]; if (!n) return !1; if (null == n.timers) return !1; for (var r = n.timers, s = 0; s < r.length; ++s) { if (t === r[s]._callback) return !0; } return !1; }, pauseAllTargets: function() { return this.pauseAllTargetsWithMinPriority(cc.Scheduler.PRIORITY_SYSTEM); }, pauseAllTargetsWithMinPriority: function(t) { var e, i, n, r, s = [], o = this._arrayForTimers; for (i = 0, n = o.length; i < n; i++) if (e = o[i]) { e.paused = !0; s.push(e.target); } if (t < 0) for (i = 0; i < this._updatesNegList.length; i++) if ((r = this._updatesNegList[i]) && r.priority >= t) { r.paused = !0; s.push(r.target); } if (t <= 0) for (i = 0; i < this._updates0List.length; i++) if (r = this._updates0List[i]) { r.paused = !0; s.push(r.target); } for (i = 0; i < this._updatesPosList.length; i++) if ((r = this._updatesPosList[i]) && r.priority >= t) { r.paused = !0; s.push(r.target); } return s; }, resumeTargets: function(t) { if (t) for (var e = 0; e < t.length; e++) this.resumeTarget(t[e]); }, pauseTarget: function(t) { cc.assertID(t, 1503); var e = t._id; if (!e) if (t.__instanceId) { cc.warnID(1513); e = t._id = t.__instanceId; } else cc.errorID(1510); var i = this._hashForTimers[e]; i && (i.paused = !0); var n = this._hashForUpdates[e]; n && (n.entry.paused = !0); }, resumeTarget: function(t) { cc.assertID(t, 1504); var e = t._id; if (!e) if (t.__instanceId) { cc.warnID(1513); e = t._id = t.__instanceId; } else cc.errorID(1510); var i = this._hashForTimers[e]; i && (i.paused = !1); var n = this._hashForUpdates[e]; n && (n.entry.paused = !1); }, isTargetPaused: function(t) { cc.assertID(t, 1505); var e = t._id; if (!e) if (t.__instanceId) { cc.warnID(1513); e = t._id = t.__instanceId; } else cc.errorID(1510); var i = this._hashForTimers[e]; if (i) return i.paused; var n = this._hashForUpdates[e]; return !!n && n.entry.paused; } }; cc.Scheduler.PRIORITY_SYSTEM = 1 << 31; cc.Scheduler.PRIORITY_NON_SYSTEM = cc.Scheduler.PRIORITY_SYSTEM + 1; n.exports = cc.Scheduler; }), { "./platform/id-generater": 217, "./platform/js": 221 } ], 56: [ (function(t, e, i) { "use strict"; var n = t("./CCRawAsset"); cc.Asset = cc.Class({ name: "cc.Asset", extends: n, ctor: function() { this.loaded = !0; this.url = ""; }, properties: { nativeUrl: { get: function() { if (this._native) { var t = this._native; if (47 === t.charCodeAt(0)) return t.slice(1); if (cc.AssetLibrary) { var e = cc.AssetLibrary.getLibUrlNoExt(this._uuid, !0); return 46 === t.charCodeAt(0) ? e + t : e + "/" + t; } cc.errorID(6400); } return ""; }, visible: !1 }, _native: "", _nativeAsset: { get: function() { return this._$nativeAsset; }, set: function(t) { this._$nativeAsset = t; } } }, statics: { deserialize: !1, preventDeferredLoadDependents: !1, preventPreloadNativeObject: !1 }, toString: function() { return this.nativeUrl; }, serialize: !1, createNode: null, _setRawAsset: function(t, e) { this._native = !1 !== e ? t || void 0 : "/" + t; } }); e.exports = cc.Asset; }), { "./CCRawAsset": 65 } ], 57: [ (function(t, e, i) { "use strict"; var n = t("./CCAsset"), r = t("../event/event-target"), s = cc.Enum({ WEB_AUDIO: 0, DOM_AUDIO: 1 }), o = cc.Class({ name: "cc.AudioClip", extends: n, mixins: [ r ], ctor: function() { this.loaded = !1; this._audio = null; }, properties: { loadMode: { default: s.WEB_AUDIO, type: s }, _nativeAsset: { get: function() { return this._audio; }, set: function(t) { t instanceof cc.AudioClip ? this._audio = t._nativeAsset : this._audio = t; if (this._audio) { this.loaded = !0; this.emit("load"); } }, override: !0 } }, statics: { LoadMode: s, _loadByUrl: function(t, e) { var i = cc.loader.getItem(t) || cc.loader.getItem(t + "?useDom=1"); i && i.complete ? i._owner instanceof o ? e(null, i._owner) : e(null, i.content) : cc.loader.load(t, (function(n, r) { if (n) return e(n); i = cc.loader.getItem(t) || cc.loader.getItem(t + "?useDom=1"); e(null, i.content); })); } }, destroy: function() { cc.audioEngine.uncache(this); this._super(); } }); cc.AudioClip = o; e.exports = o; }), { "../event/event-target": 133, "./CCAsset": 56 } ], 58: [ (function(t, e, i) { "use strict"; var n = function() { this.u = 0; this.v = 0; this.w = 0; this.h = 0; this.offsetX = 0; this.offsetY = 0; this.textureID = 0; this.valid = !1; this.xAdvance = 0; }, r = function(t) { this._letterDefinitions = {}; this._texture = t; }; r.prototype = { constructor: r, addLetterDefinitions: function(t, e) { this._letterDefinitions[t] = e; }, cloneLetterDefinition: function() { var t = {}; for (var e in this._letterDefinitions) { var i = new n(); cc.js.mixin(i, this._letterDefinitions[e]); t[e] = i; } return t; }, getTexture: function() { return this._texture; }, getLetter: function(t) { return this._letterDefinitions[t]; }, getLetterDefinitionForChar: function(t) { var e = t.charCodeAt(0); return this._letterDefinitions.hasOwnProperty(e) ? this._letterDefinitions[e] : null; }, clear: function() { this._letterDefinitions = {}; } }; var s = cc.Class({ name: "cc.BitmapFont", extends: cc.Font, properties: { fntDataStr: { default: "" }, spriteFrame: { default: null, type: cc.SpriteFrame }, fontSize: { default: -1 }, _fntConfig: null, _fontDefDictionary: null }, onLoad: function() { var t = this.spriteFrame; !this._fontDefDictionary && t && (this._fontDefDictionary = new r(t._texture)); var e = this._fntConfig; if (e) { var i = e.fontDefDictionary; for (var s in i) { var o = new n(), a = i[s].rect; o.offsetX = i[s].xOffset; o.offsetY = i[s].yOffset; o.w = a.width; o.h = a.height; o.u = a.x; o.v = a.y; o.textureID = 0; o.valid = !0; o.xAdvance = i[s].xAdvance; this._fontDefDictionary.addLetterDefinitions(s, o); } } }, clearVerticalKeningDict: function() { var t = this._fntConfig; t ? t.kerningVDict = null : cc.warnID(0, "The fnt config is not exists!"); }, setVerticalKerningDict: function(t) { var e = this._fntConfig; if (e) { if (!e.kerningVDict && t) { var i = {}; t.forEach((function(t) { i[t.first << 16 | 65535 & t.second] = t.amount; })); e.kerningVDict = i; } } else cc.warnID(0, "The fnt config is not exists!"); } }); cc.BitmapFont = s; cc.BitmapFont.FontLetterDefinition = n; cc.BitmapFont.FontAtlas = r; e.exports = s; }), {} ], 59: [ (function(t, e, i) { "use strict"; var n = cc.Class({ name: "cc.BufferAsset", extends: cc.Asset, ctor: function() { this._buffer = null; }, properties: { _nativeAsset: { get: function() { return this._buffer; }, set: function(t) { this._buffer = t.buffer || t; }, override: !0 }, buffer: function() { return this._buffer; } } }); cc.BufferAsset = e.exports = n; }), {} ], 60: [ (function(t, e, i) { "use strict"; var n = t("./CCAsset"), r = cc.Class({ name: "cc.EffectAsset", extends: n, properties: { properties: Object, techniques: [], shaders: [] }, onLoad: function() { if (cc.game.renderType !== cc.game.RENDER_TYPE_CANVAS) for (var t = cc.renderer._forward._programLib, e = 0; e < this.shaders.length; e++) t.define(this.shaders[e]); } }); e.exports = cc.EffectAsset = r; }), { "./CCAsset": 56 } ], 61: [ (function(t, e, i) { "use strict"; var n = cc.Class({ name: "cc.Font", extends: cc.Asset }); cc.Font = e.exports = n; }), {} ], 62: [ (function(t, e, i) { "use strict"; var n = cc.Class({ name: "cc.JsonAsset", extends: cc.Asset, properties: { json: null } }); e.exports = cc.JsonAsset = n; }), {} ], 63: [ (function(t, e, i) { "use strict"; var n = cc.Class({ name: "cc.LabelAtlas", extends: cc.BitmapFont, onLoad: function() { this.spriteFrame ? this._fntConfig ? this._super() : cc.warnID(9101, this.name) : cc.warnID(9100, this.name); } }); cc.LabelAtlas = n; e.exports = n; }), {} ], 64: [ (function(t, e, i) { "use strict"; var n = cc.Enum({ AUTO: 0, SINGLE_INSTANCE: 1, MULTI_INSTANCE: 2 }), r = cc.Class({ name: "cc.Prefab", extends: cc.Asset, ctor: function() { this._createFunction = null; this._instantiatedTimes = 0; }, properties: { data: null, optimizationPolicy: n.AUTO, asyncLoadAssets: !1, readonly: { default: !1, editorOnly: !0 } }, statics: { OptimizationPolicy: n, OptimizationPolicyThreshold: 3 }, createNode: !1, compileCreateFunction: function() { var e = t("../platform/instantiate-jit"); this._createFunction = e.compile(this.data); }, _doInstantiate: function(t) { this.data._prefab ? this.data._prefab._synced = !0 : cc.warnID(3700); this._createFunction || this.compileCreateFunction(); return this._createFunction(t); }, _instantiate: function() { var t; if (this.optimizationPolicy !== n.SINGLE_INSTANCE && (this.optimizationPolicy === n.MULTI_INSTANCE || this._instantiatedTimes + 1 >= r.OptimizationPolicyThreshold)) { t = this._doInstantiate(); this.data._instantiate(t); } else { this.data._prefab._synced = !0; t = this.data._instantiate(); } ++this._instantiatedTimes; return t; } }); cc.Prefab = e.exports = r; cc.js.obsolete(cc, "cc._Prefab", "Prefab"); }), { "../platform/instantiate-jit": 219 } ], 65: [ (function(t, e, i) { "use strict"; var n = t("../platform/CCObject"), r = t("../platform/js"); cc.RawAsset = cc.Class({ name: "cc.RawAsset", extends: n, ctor: function() { Object.defineProperty(this, "_uuid", { value: "", writable: !0 }); } }); r.value(cc.RawAsset, "isRawAssetType", (function(t) { return r.isChildClassOf(t, cc.RawAsset) && !r.isChildClassOf(t, cc.Asset); })); r.value(cc.RawAsset, "wasRawAssetType", (function(t) { return t === cc.Texture2D || t === cc.AudioClip || t === cc.ParticleAsset || t === cc.Asset; })); e.exports = cc.RawAsset; }), { "../platform/CCObject": 207, "../platform/js": 221 } ], 66: [ (function(t, e, i) { "use strict"; var n = (function(t) { return t && t.__esModule ? t : { default: t }; })(t("../../renderer/gfx")); var r = t("../renderer"), s = t("./CCTexture2D"), o = cc.Class({ name: "cc.RenderTexture", extends: s, ctor: function() { this._framebuffer = null; }, initWithSize: function(t, e, i) { this.width = Math.floor(t || cc.visibleRect.width); this.height = Math.floor(e || cc.visibleRect.height); this._resetUnderlyingMipmaps(); var s = { colors: [ this._texture ] }; this._depthStencilBuffer && this._depthStencilBuffer.destroy(); var o = void 0; if (i) { o = new n.default.RenderBuffer(r.device, i, t, e); i === n.default.RB_FMT_D24S8 ? s.depthStencil = o : i === n.default.RB_FMT_S8 ? s.stencil = o : i === n.default.RB_FMT_D16 && (s.depth = o); } this._depthStencilBuffer = o; this._framebuffer && this._framebuffer.destroy(); this._framebuffer = new n.default.FrameBuffer(r.device, t, e, s); this._packable = !1; this.loaded = !0; this.emit("load"); }, updateSize: function(t, e) { this.width = Math.floor(t || cc.visibleRect.width); this.height = Math.floor(e || cc.visibleRect.height); this._resetUnderlyingMipmaps(); var i = this._depthStencilBuffer; i && i.update(this.width, this.height); this._framebuffer._width = t; this._framebuffer._height = e; }, drawTextureAt: function(t, e, i) { t._image && this._texture.updateSubImage({ x: e, y: i, image: t._image, width: t.width, height: t.height, level: 0, flipY: !1, premultiplyAlpha: t._premultiplyAlpha }); }, readPixels: function(t, e, i, n, s) { if (!this._framebuffer || !this._texture) return t; e = e || 0; i = i || 0; var o = n || this.width, a = s || this.height; t = t || new Uint8Array(o * a * 4); var c = r._forward._device._gl, l = c.getParameter(c.FRAMEBUFFER_BINDING); c.bindFramebuffer(c.FRAMEBUFFER, this._framebuffer._glID); c.readPixels(e, i, o, a, c.RGBA, c.UNSIGNED_BYTE, t); c.bindFramebuffer(c.FRAMEBUFFER, l); return t; }, destroy: function() { this._super(); this._framebuffer && this._framebuffer.destroy(); } }); cc.RenderTexture = e.exports = o; }), { "../../renderer/gfx": 349, "../renderer": 244, "./CCTexture2D": 73 } ], 67: [ (function(t, e, i) { "use strict"; var n = cc.Class({ name: "cc.SceneAsset", extends: cc.Asset, properties: { scene: null, asyncLoadAssets: void 0 } }); cc.SceneAsset = n; e.exports = n; }), {} ], 68: [ (function(t, e, i) { "use strict"; var n = cc.Class({ name: "cc.Script", extends: cc.Asset }); cc._Script = n; var r = cc.Class({ name: "cc.JavaScript", extends: n }); cc._JavaScript = r; var s = cc.Class({ name: "cc.CoffeeScript", extends: n }); cc._CoffeeScript = s; var o = cc.Class({ name: "cc.TypeScript", extends: n }); cc._TypeScript = o; }), {} ], 69: [ (function(t, e, i) { "use strict"; var n = cc.Class({ name: "cc.SpriteAtlas", extends: cc.Asset, properties: { _spriteFrames: { default: {} } }, getTexture: function() { var t = Object.keys(this._spriteFrames); if (t.length > 0) { var e = this._spriteFrames[t[0]]; return e ? e.getTexture() : null; } return null; }, getSpriteFrame: function(t) { var e = this._spriteFrames[t]; if (!e) return null; e.name || (e.name = t); return e; }, getSpriteFrames: function() { var t = [], e = this._spriteFrames; for (var i in e) t.push(this.getSpriteFrame(i)); return t; } }); cc.SpriteAtlas = n; e.exports = n; }), {} ], 70: [ (function(i, n, r) { "use strict"; var s = i("../event/event-target"), o = i("../utils/texture-util"), a = [ { u: 0, v: 0 }, { u: 0, v: 0 }, { u: 0, v: 0 }, { u: 0, v: 0 } ], c = cc.Class({ name: "cc.SpriteFrame", extends: i("../assets/CCAsset"), mixins: [ s ], properties: { _textureSetter: { set: function(t) { if (t) { 0; this._texture !== t && this._refreshTexture(t); this._textureFilename = t.url; } } }, insetTop: { get: function() { return this._capInsets[1]; }, set: function(t) { this._capInsets[1] = t; this._texture && this._calculateSlicedUV(); } }, insetBottom: { get: function() { return this._capInsets[3]; }, set: function(t) { this._capInsets[3] = t; this._texture && this._calculateSlicedUV(); } }, insetLeft: { get: function() { return this._capInsets[0]; }, set: function(t) { this._capInsets[0] = t; this._texture && this._calculateSlicedUV(); } }, insetRight: { get: function() { return this._capInsets[2]; }, set: function(t) { this._capInsets[2] = t; this._texture && this._calculateSlicedUV(); } } }, ctor: function() { s.call(this); var t = arguments[0], e = arguments[1], i = arguments[2], n = arguments[3], r = arguments[4]; this._rect = null; this.uv = []; this._texture = null; this._original = null; this._offset = null; this._originalSize = null; this._rotated = !1; this.vertices = null; this._capInsets = [ 0, 0, 0, 0 ]; this.uvSliced = []; this._textureFilename = ""; 0; void 0 !== t && this.setTexture(t, e, i, n, r); }, textureLoaded: function() { return this._texture && this._texture.loaded; }, isRotated: function() { return this._rotated; }, setRotated: function(t) { this._rotated = t; this._texture && this._calculateUV(); }, getRect: function() { return cc.rect(this._rect); }, setRect: function(t) { this._rect = t; this._texture && this._calculateUV(); }, getOriginalSize: function() { return cc.size(this._originalSize); }, setOriginalSize: function(t) { if (this._originalSize) { this._originalSize.width = t.width; this._originalSize.height = t.height; } else this._originalSize = cc.size(t); }, getTexture: function() { return this._texture; }, _textureLoadedCallback: function() { var t = this._texture; if (t) { var e = t.width, i = t.height; this._rect ? this._checkRect(this._texture) : this._rect = cc.rect(0, 0, e, i); this._originalSize || this.setOriginalSize(cc.size(e, i)); this._offset || this.setOffset(cc.v2(0, 0)); this._calculateUV(); this.emit("load"); } }, _refreshTexture: function(t) { this._texture = t; t.loaded ? this._textureLoadedCallback() : t.once("load", this._textureLoadedCallback, this); }, getOffset: function() { return cc.v2(this._offset); }, setOffset: function(t) { this._offset = cc.v2(t); }, clone: function() { return new c(this._texture || this._textureFilename, this._rect, this._rotated, this._offset, this._originalSize); }, setTexture: function(i, n, r, s, o) { this._rect = n || null; s ? this.setOffset(s) : this._offset = null; o ? this.setOriginalSize(o) : this._originalSize = null; this._rotated = r || !1; var a = i; if ("string" === ("object" === (e = typeof a) ? t(a) : e) && a) { this._textureFilename = a; this._loadTexture(); } a instanceof cc.Texture2D && this._texture !== a && this._refreshTexture(a); return !0; }, _loadTexture: function() { if (this._textureFilename) { var t = o.loadImage(this._textureFilename); this._refreshTexture(t); } }, ensureLoadTexture: function() { if (this._texture) { if (!this._texture.loaded) { this._refreshTexture(this._texture); o.postLoadTexture(this._texture); } } else this._textureFilename && this._loadTexture(); }, clearTexture: function() { this._texture = null; }, _checkRect: function(t) { var e = this._rect, i = e.x, n = e.y; if (this._rotated) { i += e.height; n += e.width; } else { i += e.width; n += e.height; } i > t.width && cc.errorID(3300, t.url + "/" + this.name, i, t.width); n > t.height && cc.errorID(3400, t.url + "/" + this.name, n, t.height); }, _calculateSlicedUV: function() { var t = this._rect, e = this._texture.width, i = this._texture.height, n = this._capInsets[0], r = this._capInsets[2], s = t.width - n - r, o = this._capInsets[1], c = this._capInsets[3], l = t.height - o - c, h = this.uvSliced; h.length = 0; if (this._rotated) { a[0].u = t.x / e; a[1].u = (t.x + c) / e; a[2].u = (t.x + c + l) / e; a[3].u = (t.x + t.height) / e; a[3].v = t.y / i; a[2].v = (t.y + n) / i; a[1].v = (t.y + n + s) / i; a[0].v = (t.y + t.width) / i; for (var u = 0; u < 4; ++u) for (var _ = a[u], f = 0; f < 4; ++f) { var d = a[3 - f]; h.push({ u: _.u, v: d.v }); } } else { a[0].u = t.x / e; a[1].u = (t.x + n) / e; a[2].u = (t.x + n + s) / e; a[3].u = (t.x + t.width) / e; a[3].v = t.y / i; a[2].v = (t.y + o) / i; a[1].v = (t.y + o + l) / i; a[0].v = (t.y + t.height) / i; for (var m = 0; m < 4; ++m) for (var p = a[m], v = 0; v < 4; ++v) { var y = a[v]; h.push({ u: y.u, v: p.v }); } } }, _setDynamicAtlasFrame: function(t) { if (t) { this._original = { _texture: this._texture, _x: this._rect.x, _y: this._rect.y }; this._texture = t.texture; this._rect.x = t.x; this._rect.y = t.y; this._calculateUV(); } }, _resetDynamicAtlasFrame: function() { if (this._original) { this._rect.x = this._original._x; this._rect.y = this._original._y; this._texture = this._original._texture; this._original = null; this._calculateUV(); } }, _calculateUV: function() { var t = this._rect, e = this._texture, i = this.uv, n = e.width, r = e.height; if (this._rotated) { var s = 0 === n ? 0 : t.x / n, o = 0 === n ? 0 : (t.x + t.height) / n, a = 0 === r ? 0 : (t.y + t.width) / r, c = 0 === r ? 0 : t.y / r; i[0] = s; i[1] = c; i[2] = s; i[3] = a; i[4] = o; i[5] = c; i[6] = o; i[7] = a; } else { var l = 0 === n ? 0 : t.x / n, h = 0 === n ? 0 : (t.x + t.width) / n, u = 0 === r ? 0 : (t.y + t.height) / r, _ = 0 === r ? 0 : t.y / r; i[0] = l; i[1] = u; i[2] = h; i[3] = u; i[4] = l; i[5] = _; i[6] = h; i[7] = _; } var f = this.vertices; if (f) { f.nu.length = 0; f.nv.length = 0; for (var d = 0; d < f.u.length; d++) { f.nu[d] = f.u[d] / n; f.nv[d] = f.v[d] / r; } } this._calculateSlicedUV(); }, _serialize: !1, _deserialize: function(t, e) { var i = t.rect; i && (this._rect = new cc.Rect(i[0], i[1], i[2], i[3])); t.offset && this.setOffset(new cc.Vec2(t.offset[0], t.offset[1])); t.originalSize && this.setOriginalSize(new cc.Size(t.originalSize[0], t.originalSize[1])); this._rotated = 1 === t.rotated; this._name = t.name; var n = t.capInsets; if (n) { this._capInsets[0] = n[0]; this._capInsets[1] = n[1]; this._capInsets[2] = n[2]; this._capInsets[3] = n[3]; } 0; this.vertices = t.vertices; if (this.vertices) { this.vertices.nu = []; this.vertices.nv = []; } var r = t.texture; r && e.result.push(this, "_textureSetter", r); } }), l = c.prototype; l.copyWithZone = l.clone; l.copy = l.clone; l.initWithTexture = l.setTexture; cc.SpriteFrame = c; n.exports = c; }), { "../assets/CCAsset": 56, "../event/event-target": 133, "../utils/texture-util": 304 } ], 71: [ (function(t, e, i) { "use strict"; var n = t("./CCFont"), r = cc.Class({ name: "cc.TTFFont", extends: n, properties: { _fontFamily: null, _nativeAsset: { type: cc.String, get: function() { return this._fontFamily; }, set: function(t) { this._fontFamily = t || "Arial"; }, override: !0 } } }); cc.TTFFont = e.exports = r; }), { "./CCFont": 61 } ], 72: [ (function(t, e, i) { "use strict"; var n = cc.Class({ name: "cc.TextAsset", extends: cc.Asset, properties: { text: "" }, toString: function() { return this.text; } }); e.exports = cc.TextAsset = n; }), {} ], 73: [ (function(t, e, i) { "use strict"; var n = (function(t) { return t && t.__esModule ? t : { default: t }; })(t("../../renderer/gfx")); var r = t("../event/event-target"), s = t("../renderer"); t("../platform/CCClass"); var o = new (t("../platform/id-generater"))("Tex"), a = cc.Enum({ RGB565: n.default.TEXTURE_FMT_R5_G6_B5, RGB5A1: n.default.TEXTURE_FMT_R5_G5_B5_A1, RGBA4444: n.default.TEXTURE_FMT_R4_G4_B4_A4, RGB888: n.default.TEXTURE_FMT_RGB8, RGBA8888: n.default.TEXTURE_FMT_RGBA8, RGBA32F: n.default.TEXTURE_FMT_RGBA32F, A8: n.default.TEXTURE_FMT_A8, I8: n.default.TEXTURE_FMT_L8, AI8: n.default.TEXTURE_FMT_L8_A8, RGB_PVRTC_2BPPV1: n.default.TEXTURE_FMT_RGB_PVRTC_2BPPV1, RGBA_PVRTC_2BPPV1: n.default.TEXTURE_FMT_RGBA_PVRTC_2BPPV1, RGB_PVRTC_4BPPV1: n.default.TEXTURE_FMT_RGB_PVRTC_4BPPV1, RGBA_PVRTC_4BPPV1: n.default.TEXTURE_FMT_RGBA_PVRTC_4BPPV1, RGB_ETC1: n.default.TEXTURE_FMT_RGB_ETC1, RGBA_ETC1: 1024, RGB_ETC2: n.default.TEXTURE_FMT_RGB_ETC2, RGBA_ETC2: n.default.TEXTURE_FMT_RGBA_ETC2 }), c = cc.Enum({ REPEAT: 10497, CLAMP_TO_EDGE: 33071, MIRRORED_REPEAT: 33648 }), l = cc.Enum({ LINEAR: 9729, NEAREST: 9728 }), h = { 9728: 0, 9729: 1 }, u = [], _ = { width: void 0, height: void 0, minFilter: void 0, magFilter: void 0, wrapS: void 0, wrapT: void 0, format: void 0, genMipmaps: void 0, images: void 0, image: void 0, flipY: void 0, premultiplyAlpha: void 0 }; function f() { for (var t in _) _[t] = void 0; u.length = 0; _.images = u; _.flipY = !1; return _; } var d = cc.Class({ name: "cc.Texture2D", extends: t("../assets/CCAsset"), mixins: [ r ], properties: { _nativeAsset: { get: function() { return this._image; }, set: function(t) { t._compressed && t._data ? this.initWithData(t._data, this._format, t.width, t.height) : this.initWithElement(t); }, override: !0 }, _format: a.RGBA8888, _premultiplyAlpha: !1, _flipY: !1, _minFilter: l.LINEAR, _magFilter: l.LINEAR, _mipFilter: l.LINEAR, _wrapS: c.CLAMP_TO_EDGE, _wrapT: c.CLAMP_TO_EDGE, _genMipmaps: !1, genMipmaps: { get: function() { return this._genMipmaps; }, set: function(t) { if (this._genMipmaps !== t) { var e = f(); e.genMipmaps = t; this.update(e); } } }, _packable: !0, packable: { get: function() { return this._packable; }, set: function(t) { this._packable = t; } } }, statics: { PixelFormat: a, WrapMode: c, Filter: l, _FilterIndex: h, extnames: [ ".png", ".jpg", ".jpeg", ".bmp", ".webp", ".pvr", ".pkm" ] }, ctor: function() { this._id = o.getNewId(); this.loaded = !1; this.width = 0; this.height = 0; this._hashDirty = !0; this._hash = 0; this._texture = null; 0; }, getImpl: function() { return this._texture; }, getId: function() { return this._id; }, toString: function() { return this.url || ""; }, update: function(t) { if (t) { var e = !1; void 0 !== t.width && (this.width = t.width); void 0 !== t.height && (this.height = t.height); if (void 0 !== t.minFilter) { this._minFilter = t.minFilter; t.minFilter = h[t.minFilter]; } if (void 0 !== t.magFilter) { this._magFilter = t.magFilter; t.magFilter = h[t.magFilter]; } if (void 0 !== t.mipFilter) { this._mipFilter = t.mipFilter; t.mipFilter = h[t.mipFilter]; } void 0 !== t.wrapS && (this._wrapS = t.wrapS); void 0 !== t.wrapT && (this._wrapT = t.wrapT); void 0 !== t.format && (this._format = t.format); if (void 0 !== t.flipY) { this._flipY = t.flipY; e = !0; } if (void 0 !== t.premultiplyAlpha) { this._premultiplyAlpha = t.premultiplyAlpha; e = !0; } void 0 !== t.genMipmaps && (this._genMipmaps = t.genMipmaps); e && this._image && (t.image = this._image); if (t.images && t.images.length > 0) this._image = t.images[0]; else if (void 0 !== t.image) { this._image = t.image; if (!t.images) { u.length = 0; t.images = u; } t.images.push(t.image); } t.images && t.images.length > 0 && this._texture.update(t); this._hashDirty = !0; } }, initWithElement: function(t) { if (t) { this._image = t; if (t.complete || t instanceof HTMLCanvasElement) this.handleLoadedTexture(); else { var e = this; t.addEventListener("load", (function() { e.handleLoadedTexture(); })); t.addEventListener("error", (function(t) { cc.warnID(3119, t.message); })); } } }, initWithData: function(t, e, i, n) { var r = f(); r.image = t; r.images = [ r.image ]; r.genMipmaps = this._genMipmaps; r.premultiplyAlpha = this._premultiplyAlpha; r.flipY = this._flipY; r.minFilter = h[this._minFilter]; r.magFilter = h[this._magFilter]; r.wrapS = this._wrapS; r.wrapT = this._wrapT; r.format = e; e === a.RGBA_ETC1 && (r.format = a.RGB_ETC1); r.width = i; r.height = n; this._texture ? this._texture.update(r) : this._texture = new s.Texture2D(s.device, r); this.width = i; this.height = n; this._checkPackable(); this.loaded = !0; this.emit("load"); return !0; }, getHtmlElementObj: function() { return this._image; }, destroy: function() { this._image = null; this._texture && this._texture.destroy(); this._super(); }, getPixelFormat: function() { return this._format; }, hasPremultipliedAlpha: function() { return this._premultiplyAlpha || !1; }, handleLoadedTexture: function() { if (this._image && this._image.width && this._image.height) { this.width = this._image.width; this.height = this._image.height; var t = f(); t.image = this._image; t.images = [ t.image ]; t.width = this.width; t.height = this.height; t.genMipmaps = this._genMipmaps; t.format = this._format; this._format === a.RGBA_ETC1 && (t.format = a.RGB_ETC1); t.premultiplyAlpha = this._premultiplyAlpha; t.flipY = this._flipY; t.minFilter = h[this._minFilter]; t.magFilter = h[this._magFilter]; t.wrapS = this._wrapS; t.wrapT = this._wrapT; this._texture ? this._texture.update(t) : this._texture = new s.Texture2D(s.device, t); this._checkPackable(); this.loaded = !0; this.emit("load"); cc.macro.CLEANUP_IMAGE_CACHE && this._image instanceof HTMLImageElement && this._clearImage(); } }, description: function() { return ""; }, releaseTexture: function() { this._image = null; this._texture && this._texture.destroy(); }, setWrapMode: function(t, e) { if (this._wrapS !== t || this._wrapT !== e) { var i = f(); i.wrapS = t; i.wrapT = e; this.update(i); } }, setFilters: function(t, e) { if (this._minFilter !== t || this._magFilter !== e) { var i = f(); i.minFilter = t; i.magFilter = e; this.update(i); } }, setFlipY: function(t) { if (this._flipY !== t) { var e = f(); e.flipY = t; this.update(e); } }, setPremultiplyAlpha: function(t) { if (this._premultiplyAlpha !== t) { var e = f(); e.premultiplyAlpha = t; this.update(e); } }, _checkPackable: function() { var t = cc.dynamicAtlasManager; if (t) if (this._isCompressed()) this._packable = !1; else { var e = this.width, i = this.height; !this._image || e > t.maxFrameSize || i > t.maxFrameSize || e <= t.minFrameSize || i <= t.minFrameSize || this._getHash() !== t.Atlas.DEFAULT_HASH ? this._packable = !1 : this._image && this._image instanceof HTMLCanvasElement && (this._packable = !0); } }, _getOpts: function() { var t = f(); t.width = this.width; t.height = this.height; t.genMipmaps = this._genMipmaps; t.format = this._format; t.premultiplyAlpha = this._premultiplyAlpha; t.anisotropy = this._anisotropy; t.flipY = this._flipY; t.minFilter = h[this._minFilter]; t.magFilter = h[this._magFilter]; t.mipFilter = h[this._mipFilter]; t.wrapS = this._wrapS; t.wrapT = this._wrapT; return t; }, _resetUnderlyingMipmaps: function(t) { var e = this._getOpts(); e.images = t || [ null ]; this._texture ? this._texture.update(e) : this._texture = new s.Texture2D(s.device, e); }, _serialize: !1, _deserialize: function(t, e) { var i = cc.renderer.device, n = t.split(","), r = n[0]; if (r) { for (var s = r.split("_"), o = "", c = "", l = 999, h = this._format, u = cc.macro.SUPPORT_TEXTURE_FORMATS, _ = 0; _ < s.length; _++) { var f = s[_].split("@"), m = f[0]; m = d.extnames[m.charCodeAt(0) - 48] || m; var p = u.indexOf(m); if (-1 !== p && p < l) { var v = f[1] ? parseInt(f[1]) : this._format; if (".pvr" === m && !i.ext("WEBGL_compressed_texture_pvrtc")) continue; if (!(v !== a.RGB_ETC1 && v !== a.RGBA_ETC1 || i.ext("WEBGL_compressed_texture_etc1"))) continue; if ((v === a.RGB_ETC2 || v === a.RGBA_ETC2) && !i.ext("WEBGL_compressed_texture_etc")) continue; l = p; c = m; h = v; } else o || (o = m); } if (c) { this._setRawAsset(c); this._format = h; } else { this._setRawAsset(o); cc.warnID(3120, e.customEnv.url, o, o); } } if (8 === n.length) { this._minFilter = parseInt(n[1]); this._magFilter = parseInt(n[2]); this._wrapS = parseInt(n[3]); this._wrapT = parseInt(n[4]); this._premultiplyAlpha = 49 === n[5].charCodeAt(0); this._genMipmaps = 49 === n[6].charCodeAt(0); this._packable = 49 === n[7].charCodeAt(0); } }, _getHash: function() { if (!this._hashDirty) return this._hash; var t = this._genMipmaps ? 1 : 0, e = this._premultiplyAlpha ? 1 : 0, i = this._flipY ? 1 : 0, n = this._minFilter === l.LINEAR ? 1 : 2, r = this._magFilter === l.LINEAR ? 1 : 2, s = this._wrapS === c.REPEAT ? 1 : this._wrapS === c.CLAMP_TO_EDGE ? 2 : 3, o = this._wrapT === c.REPEAT ? 1 : this._wrapT === c.CLAMP_TO_EDGE ? 2 : 3, a = this._format, h = this._image; if (h) { 6408 !== h._glFormat && (a = 0); e = h._premultiplyAlpha; } this._hash = Number("" + n + r + a + s + o + t + e + i); this._hashDirty = !1; return this._hash; }, _isCompressed: function() { return this._texture && this._texture._compressed; }, _clearImage: function() { cc.loader.removeItem(this._image.id || this._image.src); this._image.src = ""; } }); cc.Texture2D = e.exports = d; }), { "../../renderer/gfx": 349, "../assets/CCAsset": 56, "../event/event-target": 133, "../platform/CCClass": 201, "../platform/id-generater": 217, "../renderer": 244 } ], 74: [ (function(t, e, i) { "use strict"; t("./CCRawAsset"); t("./CCAsset"); t("./CCFont"); t("./CCPrefab"); t("./CCAudioClip"); t("./CCScripts"); t("./CCSceneAsset"); t("./CCSpriteFrame"); t("./CCTexture2D"); t("./CCRenderTexture"); t("./CCTTFFont"); t("./CCSpriteAtlas"); t("./CCBitmapFont"); t("./CCLabelAtlas"); t("./CCTextAsset"); t("./CCJsonAsset"); t("./CCBufferAsset"); t("./CCEffectAsset"); t("./material/CCMaterial"); }), { "./CCAsset": 56, "./CCAudioClip": 57, "./CCBitmapFont": 58, "./CCBufferAsset": 59, "./CCEffectAsset": 60, "./CCFont": 61, "./CCJsonAsset": 62, "./CCLabelAtlas": 63, "./CCPrefab": 64, "./CCRawAsset": 65, "./CCRenderTexture": 66, "./CCSceneAsset": 67, "./CCScripts": 68, "./CCSpriteAtlas": 69, "./CCSpriteFrame": 70, "./CCTTFFont": 71, "./CCTextAsset": 72, "./CCTexture2D": 73, "./material/CCMaterial": 75 } ], 75: [ (function(t, e, i) { "use strict"; var n = o(t("../../../renderer/core/effect")), r = o(t("./murmurhash2_gc")), s = o(t("./utils")); function o(t) { return t && t.__esModule ? t : { default: t }; } var a = t("../CCAsset"), c = t("../CCTexture2D"), l = c.PixelFormat, h = t("../CCEffectAsset"), u = cc.Class({ name: "cc.Material", extends: a, ctor: function() { this._dirty = !0; this._effect = null; this._owner = null; }, properties: { _effectAsset: { type: h, default: null }, _defines: { default: {}, type: Object }, _props: { default: {}, type: Object }, effectName: void 0, effectAsset: { get: function() { return this._effectAsset; }, set: function(t) { if (cc.game.renderType !== cc.game.RENDER_TYPE_CANVAS) { this._effectAsset = t; t ? this._effect = n.default.parseEffect(t) : cc.error("Can not set an empty effect asset."); } } }, effect: { get: function() { return this._effect; } }, owner: { get: function() { return this._owner; } } }, statics: { getBuiltinMaterial: function(t) { return cc.AssetLibrary.getBuiltin("material", "builtin-" + t); }, getInstantiatedBuiltinMaterial: function(t, e) { var i = this.getBuiltinMaterial(t); return u.getInstantiatedMaterial(i, e); }, getInstantiatedMaterial: function(t, e) { if (t._owner === e) return t; var i = new u(); i.copy(t); i._name = t._name + " (Instance)"; i._uuid = t._uuid; i._owner = e; return i; } }, copy: function(t) { this.effectAsset = t.effectAsset; for (var e in t._defines) this.define(e, t._defines[e]); for (var i in t._props) this.setProperty(i, t._props[i]); }, setProperty: function(t, e, i) { if (this._props[t] !== e || i) { this._props[t] = e; this._dirty = !0; if (this._effect) if (e instanceof c) { this._effect.setProperty(t, e.getImpl()); e.getPixelFormat() === l.RGBA_ETC1 && this.define("_USE_ETC1_" + t.toUpperCase(), !0); } else this._effect.setProperty(t, e); } }, getProperty: function(t) { return this._props[t]; }, define: function(t, e, i) { if (this._defines[t] !== e || i) { this._defines[t] = e; this._dirty = !0; this._effect && this._effect.define(t, e); } }, getDefine: function(t) { return this._defines[t]; }, setDirty: function(t) { this._dirty = t; }, updateHash: function(t) { this._dirty = !1; this._hash = t; }, getHash: function() { if (!this._dirty) return this._hash; this._dirty = !1; var t = this._effect, e = ""; if (t) { e += s.default.serializeDefines(t._defines); e += s.default.serializeTechniques(t._techniques); e += s.default.serializeUniforms(t._properties); } return this._hash = (0, r.default)(e, 666); }, onLoad: function() { this.effectAsset = this._effectAsset; if (this._effect) { for (var t in this._defines) this.define(t, this._defines[t], !0); for (var e in this._props) this.setProperty(e, this._props[e], !0); } } }); e.exports = cc.Material = u; }), { "../../../renderer/core/effect": 338, "../CCAsset": 56, "../CCEffectAsset": 60, "../CCTexture2D": 73, "./murmurhash2_gc": 77, "./utils": 78 } ], 76: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.default = void 0; var n = t("../../../renderer/types"), r = o(t("./murmurhash2_gc")), s = o(t("./utils")); function o(t) { return t && t.__esModule ? t : { default: t }; } function a(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var c = (function() { function t() { a(this, t); this._properties = {}; this._defines = {}; this._dirty = !1; } t.prototype.setProperty = function(t, e) { var i = this._properties[t]; if (i) { if (i.value === e) return; } else { (i = Object.create(null)).name = t; i.type = n.ctor2enums[e.constructor]; this._properties[t] = i; } this._dirty = !0; i.value = e; }; t.prototype.getProperty = function(t) { var e = this._properties[t]; return e ? e.value : null; }; t.prototype.define = function(t, e) { if (this._defines[t] !== e) { this._dirty = !0; this._defines[t] = e; } }; t.prototype.getDefine = function(t) { return this._defines[t]; }; t.prototype.extractProperties = function() { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; Object.assign(t, this._properties); return t; }; t.prototype.extractDefines = function() { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; Object.assign(t, this._defines); return t; }; t.prototype.getHash = function() { if (!this._dirty) return this._hash; this._dirty = !1; var t = ""; t += s.default.serializeDefines(this._defines); t += s.default.serializeUniforms(this._properties); return this._hash = (0, r.default)(t, 666); }; return t; })(); i.default = c; e.exports = i.default; }), { "../../../renderer/types": 375, "./murmurhash2_gc": 77, "./utils": 78 } ], 77: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.default = function(t, e) { var i, n = t.length, r = e ^ n, s = 0; for (;n >= 4; ) { i = 1540483477 * (65535 & (i = 255 & t.charCodeAt(s) | (255 & t.charCodeAt(++s)) << 8 | (255 & t.charCodeAt(++s)) << 16 | (255 & t.charCodeAt(++s)) << 24)) + ((1540483477 * (i >>> 16) & 65535) << 16); r = 1540483477 * (65535 & r) + ((1540483477 * (r >>> 16) & 65535) << 16) ^ (i = 1540483477 * (65535 & (i ^= i >>> 24)) + ((1540483477 * (i >>> 16) & 65535) << 16)); n -= 4; ++s; } switch (n) { case 3: r ^= (255 & t.charCodeAt(s + 2)) << 16; case 2: r ^= (255 & t.charCodeAt(s + 1)) << 8; case 1: r = 1540483477 * (65535 & (r ^= 255 & t.charCodeAt(s))) + ((1540483477 * (r >>> 16) & 65535) << 16); } r = 1540483477 * (65535 & (r ^= r >>> 13)) + ((1540483477 * (r >>> 16) & 65535) << 16); return (r ^= r >>> 15) >>> 0; }; e.exports = i.default; }), {} ], 78: [ (function(t, e, i) { "use strict"; i.__esModule = !0; var n = (function(t) { return t && t.__esModule ? t : { default: t }; })(t("../../../renderer/enums")); function r(t) { var e = t._programName + t._cullMode; t._blend && (e += t._blendEq + t._blendAlphaEq + t._blendSrc + t._blendDst + t._blendSrcAlpha + t._blendDstAlpha + t._blendColor); t._depthTest && (e += t._depthWrite + t._depthFunc); t._stencilTest && (e += t._stencilFuncFront + t._stencilRefFront + t._stencilMaskFront + t._stencilFailOpFront + t._stencilZFailOpFront + t._stencilZPassOpFront + t._stencilWriteMaskFront + t._stencilFuncBack + t._stencilRefBack + t._stencilMaskBack + t._stencilFailOpBack + t._stencilZFailOpBack + t._stencilZPassOpBack + t._stencilWriteMaskBack); return e; } i.default = { serializeDefines: function(t) { var e = ""; for (var i in t) e += i + t[i]; return e; }, serializeTechniques: function(t) { for (var e = "", i = 0; i < t.length; i++) { var n = t[i]; e += n.stageIDs; for (var s = 0; s < n.passes.length; s++) e += r(n.passes[s]); } return e; }, serializeUniforms: function(t) { var e = ""; for (var i in t) { var r = t[i], s = r.value; if (s) switch (r.type) { case n.default.PARAM_INT: case n.default.PARAM_FLOAT: e += s + ";"; break; case n.default.PARAM_INT2: case n.default.PARAM_FLOAT2: e += s.x + "," + s.y + ";"; break; case n.default.PARAM_INT4: case n.default.PARAM_FLOAT4: e += s.x + "," + s.y + "," + s.z + "," + s.w + ";"; break; case n.default.PARAM_COLOR4: e += s.r + "," + s.g + "," + s.b + "," + s.a + ";"; break; case n.default.PARAM_MAT2: e += s.m00 + "," + s.m01 + "," + s.m02 + "," + s.m03 + ";"; break; case n.default.PARAM_TEXTURE_2D: case n.default.PARAM_TEXTURE_CUBE: e += s._id + ";"; break; case n.default.PARAM_INT3: case n.default.PARAM_FLOAT3: case n.default.PARAM_COLOR3: case n.default.PARAM_MAT3: case n.default.PARAM_MAT4: e += JSON.stringify(s) + ";"; } } return e; } }; e.exports = i.default; }), { "../../../renderer/enums": 344 } ], 79: [ (function(t, e, i) { "use strict"; t("../CCNode").EventType; var n = 56, r = 7, s = cc.Enum({ ONCE: 0, ON_WINDOW_RESIZE: 1, ALWAYS: 2 }); function o(t) { return t instanceof cc.Scene ? cc.visibleRect : t._contentSize; } function a(t, e, i, n) { for (var r = t._parent._scale.x, s = t._parent._scale.y, o = 0, a = 0, c = t._parent; ;) { var l = c._position; o += l.x; a += l.y; if (!(c = c._parent)) { i.x = i.y = 0; n.x = n.y = 1; return; } if (c === e) break; var h = c._scale.x, u = c._scale.y; o *= h; a *= u; r *= h; s *= u; } n.x = 0 !== r ? 1 / r : 1; n.y = 0 !== s ? 1 / s : 1; i.x = -o; i.y = -a; } var c = cc.Vec2.ZERO, l = cc.Vec2.ONE; function h(t, e) { var i, s, h, u = e._target; u ? a(t, i = u, s = c, h = l) : i = t._parent; var _ = o(i), f = i._anchorPoint, d = i instanceof cc.Scene, m = t._position.x, p = t._position.y, v = t._anchorPoint; if (e._alignFlags & n) { var y, g, x = _.width; if (d) { y = cc.visibleRect.left.x; g = cc.visibleRect.right.x; } else g = (y = -f.x * x) + x; y += e._isAbsLeft ? e._left : e._left * x; g -= e._isAbsRight ? e._right : e._right * x; if (u) { y += s.x; y *= h.x; g += s.x; g *= h.x; } var C, b = v.x, A = t._scale.x; if (A < 0) { b = 1 - b; A = -A; } if (e.isStretchWidth) { C = g - y; 0 !== A && (t.width = C / A); m = y + b * C; } else { C = t.width * A; if (e.isAlignHorizontalCenter) { var S = e._isAbsHorizontalCenter ? e._horizontalCenter : e._horizontalCenter * x, w = (.5 - f.x) * _.width; if (u) { S *= h.x; w += s.x; w *= h.x; } m = w + (b - .5) * C + S; } else m = e.isAlignLeft ? y + b * C : g + (b - 1) * C; } } if (e._alignFlags & r) { var T, E, M = _.height; if (d) { E = cc.visibleRect.bottom.y; T = cc.visibleRect.top.y; } else T = (E = -f.y * M) + M; E += e._isAbsBottom ? e._bottom : e._bottom * M; T -= e._isAbsTop ? e._top : e._top * M; if (u) { E += s.y; E *= h.y; T += s.y; T *= h.y; } var B, D = v.y, I = t._scale.y; if (I < 0) { D = 1 - D; I = -I; } if (e.isStretchHeight) { B = T - E; 0 !== I && (t.height = B / I); p = E + D * B; } else { B = t.height * I; if (e.isAlignVerticalCenter) { var P = e._isAbsVerticalCenter ? e._verticalCenter : e._verticalCenter * M, R = (.5 - f.y) * _.height; if (u) { P *= h.y; R += s.y; R *= h.y; } p = R + (D - .5) * B + P; } else p = e.isAlignBottom ? E + D * B : T + (D - 1) * B; } } t.setPosition(m, p); } function u(t) { var e = t._widget; if (e) { 0; h(t, e); e.alignMode !== s.ALWAYS ? e.enabled = !1 : f.push(e); } for (var i = t._children, n = 0; n < i.length; n++) { var r = i[n]; r._active && u(r); } } function _() { var t = cc.director.getScene(); if (t) { d.isAligning = !0; if (d._nodesOrderDirty) { f.length = 0; u(t); d._nodesOrderDirty = !1; } else { var e, i = d._activeWidgetsIterator; for (i.i = 0; i.i < f.length; ++i.i) h((e = f[i.i]).node, e); } d.isAligning = !1; } 0; } var f = []; var d = cc._widgetManager = e.exports = { _AlignFlags: { TOP: 1, MID: 2, BOT: 4, LEFT: 8, CENTER: 16, RIGHT: 32 }, isAligning: !1, _nodesOrderDirty: !1, _activeWidgetsIterator: new cc.js.array.MutableForwardIterator(f), init: function(t) { t.on(cc.Director.EVENT_AFTER_UPDATE, _); cc.sys.isMobile ? window.addEventListener("resize", this.onResized.bind(this)) : cc.view.on("canvas-resize", this.onResized, this); }, add: function(t) { t.node._widget = t; this._nodesOrderDirty = !0; 0; }, remove: function(t) { t.node._widget = null; this._activeWidgetsIterator.remove(t); 0; }, onResized: function() { var t = cc.director.getScene(); t && this.refreshWidgetOnResized(t); }, refreshWidgetOnResized: function(t) { var e = cc.Node.isNode(t) && t.getComponent(cc.Widget); e && e.alignMode === s.ON_WINDOW_RESIZE && (e.enabled = !0); for (var i = t._children, n = 0; n < i.length; n++) { var r = i[n]; this.refreshWidgetOnResized(r); } }, updateAlignment: function t(e) { var i = e._parent; cc.Node.isNode(i) && t(i); var n = e._widget || e.getComponent(cc.Widget); n && i && h(e, n); }, AlignMode: s }; 0; }), { "../CCNode": 52 } ], 80: [ (function(t, e, i) { "use strict"; var n = s(t("../geom-utils")), r = s(t("../../renderer/scene/camera")); s(t("../../renderer/core/view")); function s(t) { return t && t.__esModule ? t : { default: t }; } var o = t("../utils/affine-transform"), a = t("../renderer/index"), c = t("../renderer/render-flow"), l = t("../CCGame"), h = cc.vmath.mat4, u = cc.vmath.vec2, _ = cc.vmath.vec3, f = h.create(), d = h.create(), m = _.create(), p = _.create(), v = _.create(), y = [], g = null; function x() { if (g) { var t = g.getNode(), e = cc.game.canvas; t.z = e.height / 1.1566; t.x = e.width / 2; t.y = e.height / 2; } } var C = cc.Enum({ COLOR: 1, DEPTH: 2, STENCIL: 4 }), b = cc.Enum({ OPAQUE: 1, TRANSPARENT: 2 }), A = cc.Class({ name: "cc.Camera", extends: cc.Component, ctor: function() { if (l.renderType !== l.RENDER_TYPE_CANVAS) { var t = new r.default(); t.setStages([ "opaque" ]); t.dirty = !0; this._inited = !1; this._camera = t; } else this._inited = !0; }, editor: !1, properties: { _cullingMask: 4294967295, _clearFlags: C.DEPTH | C.STENCIL, _backgroundColor: cc.color(0, 0, 0, 255), _depth: 0, _zoomRatio: 1, _targetTexture: null, _fov: 60, _orthoSize: 10, _nearClip: 1, _farClip: 4096, _ortho: !0, _rect: cc.rect(0, 0, 1, 1), _renderStages: 1, zoomRatio: { get: function() { return this._zoomRatio; }, set: function(t) { this._zoomRatio = t; }, tooltip: !1 }, fov: { get: function() { return this._fov; }, set: function(t) { this._fov = t; }, tooltip: !1 }, orthoSize: { get: function() { return this._orthoSize; }, set: function(t) { this._orthoSize = t; }, tooltip: !1 }, nearClip: { get: function() { return this._nearClip; }, set: function(t) { this._nearClip = t; this._updateClippingpPlanes(); }, tooltip: !1 }, farClip: { get: function() { return this._farClip; }, set: function(t) { this._farClip = t; this._updateClippingpPlanes(); }, tooltip: !1 }, ortho: { get: function() { return this._ortho; }, set: function(t) { this._ortho = t; this._updateProjection(); }, tooltip: !1 }, rect: { get: function() { return this._rect; }, set: function(t) { this._rect = t; this._updateRect(); }, tooltip: !1 }, cullingMask: { get: function() { return this._cullingMask; }, set: function(t) { this._cullingMask = t; this._updateCameraMask(); }, tooltip: !1 }, clearFlags: { get: function() { return this._clearFlags; }, set: function(t) { this._clearFlags = t; this._camera && this._camera.setClearFlags(t); }, tooltip: !1 }, backgroundColor: { get: function() { return this._backgroundColor; }, set: function(t) { this._backgroundColor = t; this._updateBackgroundColor(); }, tooltip: !1 }, depth: { get: function() { return this._depth; }, set: function(t) { this._depth = t; this._camera && (this._camera._priority = t); }, tooltip: !1 }, targetTexture: { get: function() { return this._targetTexture; }, set: function(t) { this._targetTexture = t; this._updateTargetTexture(); }, tooltip: !1 }, renderStages: { get: function() { return this._renderStages; }, set: function(t) { this._renderStages = t; this._updateStages(); }, tooltip: !1 }, _is3D: { get: function() { return this.node && this.node._is3DNode; } } }, statics: { main: null, cameras: y, ClearFlags: C, findCamera: function(t) { for (var e = 0, i = y.length; e < i; e++) { var n = y[e]; if (n.containsNode(t)) return n; } return null; }, _findRendererCamera: function(t) { for (var e = a.scene._cameras, i = 0; i < e._count; i++) if (e._data[i]._cullingMask & t._cullingMask) return e._data[i]; return null; }, _setupDebugCamera: function() { if (!g && l.renderType !== l.RENDER_TYPE_CANVAS) { var t = new r.default(); g = t; t.setStages([ "opaque" ]); t.setFov(60 * Math.PI / 180); t.setNear(.1); t.setFar(4096); t.dirty = !0; t._cullingMask = 1 << cc.Node.BuiltinGroupIndex.DEBUG; t._priority = cc.macro.MAX_ZINDEX; t.setClearFlags(0); t.setColor(0, 0, 0, 0); var e = new cc.Node(); t.setNode(e); x(); cc.view.on("design-resolution-changed", x); a.scene.addCamera(t); } } }, _updateCameraMask: function() { if (this._camera) { var t = this._cullingMask & ~(1 << cc.Node.BuiltinGroupIndex.DEBUG); this._camera._cullingMask = t; } }, _updateBackgroundColor: function() { if (this._camera) { var t = this._backgroundColor; this._camera.setColor(t.r / 255, t.g / 255, t.b / 255, t.a / 255); } }, _updateTargetTexture: function() { if (this._camera) { var t = this._targetTexture; this._camera._framebuffer = t ? t._framebuffer : null; } }, _updateClippingpPlanes: function() { if (this._camera) { this._camera.setNear(this._nearClip); this._camera.setFar(this._farClip); } }, _updateProjection: function() { if (this._camera) { var t = this._ortho ? 1 : 0; this._camera.setType(t); } }, _updateRect: function() { if (this._camera) { var t = this._rect; this._camera.setRect(t.x, t.y, t.width, t.height); } }, _updateStages: function() { var t = this._renderStages, e = this._camera._stages; e.length = 0; t & b.OPAQUE && e.push("opaque"); t & b.TRANSPARENT && e.push("transparent"); }, _init: function() { if (!this._inited) { this._inited = !0; var t = this._camera; if (t) { t.setNode(this.node); t.setClearFlags(this._clearFlags); t._priority = this._depth; this._updateBackgroundColor(); this._updateCameraMask(); this._updateTargetTexture(); this._updateClippingpPlanes(); this._updateProjection(); this._updateStages(); this._updateRect(); this.beforeDraw(); } } }, onLoad: function() { this._init(); }, onEnable: function() { if (l.renderType !== l.RENDER_TYPE_CANVAS) { cc.director.on(cc.Director.EVENT_BEFORE_DRAW, this.beforeDraw, this); a.scene.addCamera(this._camera); } y.push(this); }, onDisable: function() { if (l.renderType !== l.RENDER_TYPE_CANVAS) { cc.director.off(cc.Director.EVENT_BEFORE_DRAW, this.beforeDraw, this); a.scene.removeCamera(this._camera); } cc.js.array.remove(y, this); }, getScreenToWorldMatrix2D: function(t) { this.getWorldToScreenMatrix2D(t); h.invert(t, t); return t; }, getWorldToScreenMatrix2D: function(t) { this.node.getWorldRT(f); var e = this.zoomRatio; f.m00 *= e; f.m01 *= e; f.m04 *= e; f.m05 *= e; var i = f.m12, n = f.m13, r = cc.visibleRect.center; f.m12 = r.x - (f.m00 * i + f.m04 * n); f.m13 = r.y - (f.m01 * i + f.m05 * n); t !== f && h.copy(t, f); return t; }, getScreenToWorldPoint: function(t, e) { if (this.node.is3DNode) { e = e || new cc.Vec3(); this._camera.screenToWorld(e, t, cc.visibleRect.width, cc.visibleRect.height); } else { e = e || new cc.Vec2(); this.getScreenToWorldMatrix2D(f); u.transformMat4(e, t, f); } return e; }, getWorldToScreenPoint: function(t, e) { if (this.node.is3DNode) { e = e || new cc.Vec3(); this._camera.worldToScreen(e, t, cc.visibleRect.width, cc.visibleRect.height); } else { e = e || new cc.Vec2(); this.getWorldToScreenMatrix2D(f); u.transformMat4(e, t, f); } return e; }, getRay: function(t) { if (!n.default) return t; _.set(v, t.x, t.y, 1); this._camera.screenToWorld(p, v, cc.visibleRect.width, cc.visibleRect.height); if (this.ortho) { _.set(v, t.x, t.y, -1); this._camera.screenToWorld(m, v, cc.visibleRect.width, cc.visibleRect.height); } else this.node.getWorldPosition(m); return n.default.Ray.fromPoints(n.default.Ray.create(), m, p); }, containsNode: function(t) { return t._cullingMask & this.cullingMask; }, render: function(t) { if (!(t = t || cc.director.getScene())) return null; this.node.getWorldMatrix(f); this.beforeDraw(); c.visit(t); a._forward.renderCamera(this._camera, a.scene); }, _layout2D: function() { var t = cc.game.canvas.height / cc.view._scaleY, e = this._targetTexture; e && (t = e.height); var i = this._fov * cc.macro.RAD; this.node.z = t / (2 * Math.tan(i / 2)); i = 2 * Math.atan(Math.tan(i / 2) / this.zoomRatio); this._camera.setFov(i); this._camera.setOrthoHeight(t / 2 / this.zoomRatio); }, beforeDraw: function() { if (this._camera) { if (this.node._is3DNode) { this._camera.setFov(this._fov * cc.macro.RAD); this._camera.setOrthoHeight(this._orthoSize); } else this._layout2D(); this._camera.dirty = !0; } } }); cc.js.mixin(A.prototype, { getNodeToCameraTransform: function(t) { var e = o.identity(); t.getWorldMatrix(d); if (this.containsNode(t)) { this.getWorldToCameraMatrix(f); h.mul(d, d, f); } o.fromMat4(e, d); return e; }, getCameraToWorldPoint: function(t, e) { return this.getScreenToWorldPoint(t, e); }, getWorldToCameraPoint: function(t, e) { return this.getWorldToScreenPoint(t, e); }, getCameraToWorldMatrix: function(t) { return this.getScreenToWorldMatrix2D(t); }, getWorldToCameraMatrix: function(t) { return this.getWorldToScreenMatrix2D(t); } }); e.exports = cc.Camera = A; }), { "../../renderer/core/view": 343, "../../renderer/scene/camera": 371, "../CCGame": 51, "../geom-utils": 138, "../renderer/index": 244, "../renderer/render-flow": 245, "../utils/affine-transform": 286 } ], 81: [ (function(t, e, i) { "use strict"; cc.Collider.Box = cc.Class({ properties: { _offset: cc.v2(0, 0), _size: cc.size(100, 100), offset: { tooltip: !1, get: function() { return this._offset; }, set: function(t) { this._offset = t; }, type: cc.Vec2 }, size: { tooltip: !1, get: function() { return this._size; }, set: function(t) { this._size.width = t.width < 0 ? 0 : t.width; this._size.height = t.height < 0 ? 0 : t.height; }, type: cc.Size } }, resetInEditor: !1 }); var n = cc.Class({ name: "cc.BoxCollider", extends: cc.Collider, mixins: [ cc.Collider.Box ], editor: !1 }); cc.BoxCollider = e.exports = n; }), {} ], 82: [ (function(t, e, i) { "use strict"; cc.Collider.Circle = cc.Class({ properties: { _offset: cc.v2(0, 0), _radius: 50, offset: { get: function() { return this._offset; }, set: function(t) { this._offset = t; }, type: cc.Vec2 }, radius: { tooltip: !1, get: function() { return this._radius; }, set: function(t) { this._radius = t < 0 ? 0 : t; } } }, resetInEditor: !1 }); var n = cc.Class({ name: "cc.CircleCollider", extends: cc.Collider, mixins: [ cc.Collider.Circle ], editor: !1 }); cc.CircleCollider = e.exports = n; }), {} ], 83: [ (function(t, e, i) { "use strict"; var n = cc.Class({ name: "cc.Collider", extends: cc.Component, properties: { editing: { default: !1, serializable: !1, tooltip: !1 }, tag: { tooltip: !1, default: 0, range: [ 0, 1e7 ], type: cc.Integer } }, onDisable: function() { cc.director.getCollisionManager().removeCollider(this); }, onEnable: function() { cc.director.getCollisionManager().addCollider(this); } }); cc.Collider = e.exports = n; }), {} ], 84: [ (function(t, e, i) { "use strict"; var n = t("./CCContact"), r = n.CollisionType, s = t("../CCNode").EventType, o = cc.vmath, a = cc.v2(); function c(t, e, i, n, r, s) { var o = t.x, a = t.y, c = t.width, l = t.height, h = e.m00, u = e.m01, _ = e.m04, f = e.m05, d = h * o + _ * a + e.m12, m = u * o + f * a + e.m13, p = h * c, v = u * c, y = _ * l, g = f * l; n.x = d; n.y = m; r.x = p + d; r.y = v + m; i.x = y + d; i.y = g + m; s.x = p + y + d; s.y = v + g + m; } var l = cc.Class({ mixins: [ cc.EventTarget ], properties: { enabled: !1, enabledDrawBoundingBox: !1 }, ctor: function() { this._contacts = []; this._colliders = []; this._debugDrawer = null; this._enabledDebugDraw = !1; cc.director._scheduler && cc.director._scheduler.enableForTarget(this); }, update: function(t) { if (this.enabled) { var e = void 0, i = void 0, n = this._colliders; for (e = 0, i = n.length; e < i; e++) this.updateCollider(n[e]); var s = this._contacts, o = []; for (e = 0, i = s.length; e < i; e++) { var a = s[e].updateState(); a !== r.None && o.push([ a, s[e] ]); } for (e = 0, i = o.length; e < i; e++) { var c = o[e]; this._doCollide(c[0], c[1]); } this.drawColliders(); } }, _doCollide: function(t, e) { var i = void 0; switch (t) { case r.CollisionEnter: i = "onCollisionEnter"; break; case r.CollisionStay: i = "onCollisionStay"; break; case r.CollisionExit: i = "onCollisionExit"; } var n = e.collider1, s = e.collider2, o = n.node._components, a = s.node._components, c = void 0, l = void 0, h = void 0; for (c = 0, l = o.length; c < l; c++) (h = o[c])[i] && h[i](s, n); for (c = 0, l = a.length; c < l; c++) (h = a[c])[i] && h[i](n, s); }, shouldCollide: function(t, e) { var i = t.node, n = e.node, r = cc.game.collisionMatrix; return i !== n && r[i.groupIndex][n.groupIndex]; }, initCollider: function(t) { if (!t.world) { var e = t.world = {}; e.aabb = cc.rect(); e.preAabb = cc.rect(); e.matrix = o.mat4.create(); e.radius = 0; if (t instanceof cc.BoxCollider) { e.position = null; e.points = [ cc.v2(), cc.v2(), cc.v2(), cc.v2() ]; } else if (t instanceof cc.PolygonCollider) { e.position = null; e.points = t.points.map((function(t) { return cc.v2(t.x, t.y); })); } else if (t instanceof cc.CircleCollider) { e.position = cc.v2(); e.points = null; } } }, updateCollider: function(t) { var e = t.offset, i = t.world, n = i.aabb, r = i.matrix; t.node.getWorldMatrix(r); var s = i.preAabb; s.x = n.x; s.y = n.y; s.width = n.width; s.height = n.height; if (t instanceof cc.BoxCollider) { var l = t.size; n.x = e.x - l.width / 2; n.y = e.y - l.height / 2; n.width = l.width; n.height = l.height; var h = i.points, u = h[0], _ = h[1], f = h[2], d = h[3]; c(n, r, u, _, f, d); var m = Math.min(u.x, _.x, f.x, d.x), p = Math.min(u.y, _.y, f.y, d.y), v = Math.max(u.x, _.x, f.x, d.x), y = Math.max(u.y, _.y, f.y, d.y); n.x = m; n.y = p; n.width = v - m; n.height = y - p; } else if (t instanceof cc.CircleCollider) { o.vec2.transformMat4(a, t.offset, r); i.position.x = a.x; i.position.y = a.y; var g = r.m12, x = r.m13; r.m12 = r.m13 = 0; a.x = t.radius; a.y = 0; o.vec2.transformMat4(a, a, r); var C = Math.sqrt(a.x * a.x + a.y * a.y); i.radius = C; n.x = i.position.x - C; n.y = i.position.y - C; n.width = 2 * C; n.height = 2 * C; r.m12 = g; r.m13 = x; } else if (t instanceof cc.PolygonCollider) { var b = t.points, A = i.points; A.length = b.length; for (var S = 1e6, w = 1e6, T = -1e6, E = -1e6, M = 0, B = b.length; M < B; M++) { A[M] || (A[M] = cc.v2()); a.x = b[M].x + e.x; a.y = b[M].y + e.y; o.vec2.transformMat4(a, a, r); var D = a.x, I = a.y; A[M].x = D; A[M].y = I; D > T && (T = D); D < S && (S = D); I > E && (E = I); I < w && (w = I); } n.x = S; n.y = w; n.width = T - S; n.height = E - w; } }, addCollider: function(t) { var e = this._colliders; if (-1 === e.indexOf(t)) { for (var i = 0, r = e.length; i < r; i++) { var o = e[i]; if (this.shouldCollide(t, o)) { var a = new n(t, o); this._contacts.push(a); } } e.push(t); this.initCollider(t); } t.node.on(s.GROUP_CHANGED, this.onNodeGroupChanged, this); }, removeCollider: function(t) { var e = this._colliders, i = e.indexOf(t); if (i >= 0) { e.splice(i, 1); for (var n = this._contacts, o = n.length - 1; o >= 0; o--) { var a = n[o]; if (a.collider1 === t || a.collider2 === t) { a.touching && this._doCollide(r.CollisionExit, a); n.splice(o, 1); } } t.node.off(s.GROUP_CHANGED, this.onNodeGroupChanged, this); } else cc.errorID(6600); }, onNodeGroupChanged: function(t) { for (var e = t.getComponents(cc.Collider), i = 0, n = e.length; i < n; i++) { var r = e[i]; if (!(r instanceof cc.PhysicsCollider)) { this.removeCollider(r); this.addCollider(r); } } }, drawColliders: function() { if (this._enabledDebugDraw) { this._checkDebugDrawValid(); var t = this._debugDrawer; t.clear(); for (var e = this._colliders, i = 0, n = e.length; i < n; i++) { var r = e[i]; t.strokeColor = cc.Color.WHITE; if (r instanceof cc.BoxCollider || r instanceof cc.PolygonCollider) { var s = r.world.points; if (s.length > 0) { t.moveTo(s[0].x, s[0].y); for (var o = 1; o < s.length; o++) t.lineTo(s[o].x, s[o].y); t.close(); t.stroke(); } } else if (r instanceof cc.CircleCollider) { t.circle(r.world.position.x, r.world.position.y, r.world.radius); t.stroke(); } if (this.enabledDrawBoundingBox) { var a = r.world.aabb; t.strokeColor = cc.Color.BLUE; t.moveTo(a.xMin, a.yMin); t.lineTo(a.xMin, a.yMax); t.lineTo(a.xMax, a.yMax); t.lineTo(a.xMax, a.yMin); t.close(); t.stroke(); } } } }, _checkDebugDrawValid: function() { if (!this._debugDrawer || !this._debugDrawer.isValid) { var t = new cc.Node("COLLISION_MANAGER_DEBUG_DRAW"); t.zIndex = cc.macro.MAX_ZINDEX; cc.game.addPersistRootNode(t); this._debugDrawer = t.addComponent(cc.Graphics); } } }); cc.js.getset(l.prototype, "enabledDebugDraw", (function() { return this._enabledDebugDraw; }), (function(t) { if (t && !this._enabledDebugDraw) { this._checkDebugDrawValid(); this._debugDrawer.node.active = !0; } else if (!t && this._enabledDebugDraw) { this._debugDrawer.clear(!0); this._debugDrawer.node.active = !1; } this._enabledDebugDraw = t; })); cc.CollisionManager = e.exports = l; }), { "../CCNode": 52, "./CCContact": 85 } ], 85: [ (function(t, e, i) { "use strict"; var n = t("./CCIntersection"), r = cc.Enum({ None: 0, CollisionEnter: 1, CollisionStay: 2, CollisionExit: 3 }); function s(t, e) { this.collider1 = t; this.collider2 = e; this.touching = !1; var i = t instanceof cc.BoxCollider || t instanceof cc.PolygonCollider, r = e instanceof cc.BoxCollider || e instanceof cc.PolygonCollider, s = t instanceof cc.CircleCollider, o = e instanceof cc.CircleCollider; if (i && r) this.testFunc = n.polygonPolygon; else if (s && o) this.testFunc = n.circleCircle; else if (i && o) this.testFunc = n.polygonCircle; else if (s && r) { this.testFunc = n.polygonCircle; this.collider1 = e; this.collider2 = t; } else cc.errorID(6601, cc.js.getClassName(t), cc.js.getClassName(e)); } s.prototype.test = function() { var t = this.collider1.world, e = this.collider2.world; return !!t.aabb.intersects(e.aabb) && (this.testFunc === n.polygonPolygon ? this.testFunc(t.points, e.points) : this.testFunc === n.circleCircle ? this.testFunc(t, e) : this.testFunc === n.polygonCircle && this.testFunc(t.points, e)); }; s.prototype.updateState = function() { var t = this.test(), e = r.None; if (t && !this.touching) { this.touching = !0; e = r.CollisionEnter; } else if (t && this.touching) e = r.CollisionStay; else if (!t && this.touching) { this.touching = !1; e = r.CollisionExit; } return e; }; s.CollisionType = r; e.exports = s; }), { "./CCIntersection": 86 } ], 86: [ (function(t, e, i) { "use strict"; var n = {}; function r(t, e, i, n) { var r = (n.x - i.x) * (t.y - i.y) - (n.y - i.y) * (t.x - i.x), s = (e.x - t.x) * (t.y - i.y) - (e.y - t.y) * (t.x - i.x), o = (n.y - i.y) * (e.x - t.x) - (n.x - i.x) * (e.y - t.y); if (0 !== o) { var a = r / o, c = s / o; if (0 <= a && a <= 1 && 0 <= c && c <= 1) return !0; } return !1; } n.lineLine = r; n.lineRect = function(t, e, i) { var n = new cc.Vec2(i.x, i.y), s = new cc.Vec2(i.x, i.yMax), o = new cc.Vec2(i.xMax, i.yMax), a = new cc.Vec2(i.xMax, i.y); return !!(r(t, e, n, s) || r(t, e, s, o) || r(t, e, o, a) || r(t, e, a, n)); }; function s(t, e, i) { for (var n = i.length, s = 0; s < n; ++s) { if (r(t, e, i[s], i[(s + 1) % n])) return !0; } return !1; } n.linePolygon = s; n.rectRect = function(t, e) { var i = t.x, n = t.y, r = t.x + t.width, s = t.y + t.height, o = e.x, a = e.y, c = e.x + e.width, l = e.y + e.height; return i <= c && r >= o && n <= l && s >= a; }; n.rectPolygon = function(t, e) { var i, n, r = new cc.Vec2(t.x, t.y), a = new cc.Vec2(t.x, t.yMax), c = new cc.Vec2(t.xMax, t.yMax), l = new cc.Vec2(t.xMax, t.y); if (s(r, a, e)) return !0; if (s(a, c, e)) return !0; if (s(c, l, e)) return !0; if (s(l, r, e)) return !0; for (i = 0, n = e.length; i < n; ++i) if (o(e[i], t)) return !0; return !!(o(r, e) || o(a, e) || o(c, e) || o(l, e)); }; n.polygonPolygon = function(t, e) { var i, n; for (i = 0, n = t.length; i < n; ++i) if (s(t[i], t[(i + 1) % n], e)) return !0; for (i = 0, n = e.length; i < n; ++i) if (o(e[i], t)) return !0; for (i = 0, n = t.length; i < n; ++i) if (o(t[i], e)) return !0; return !1; }; n.circleCircle = function(t, e) { return t.position.sub(e.position).mag() < t.radius + e.radius; }; n.polygonCircle = function(t, e) { var i = e.position; if (o(i, t)) return !0; for (var n = 0, r = t.length; n < r; n++) if (a(i, 0 === n ? t[t.length - 1] : t[n - 1], t[n], !0) < e.radius) return !0; return !1; }; function o(t, e) { for (var i = !1, n = t.x, r = t.y, s = e.length, o = 0, a = s - 1; o < s; a = o++) { var c = e[o].x, l = e[o].y, h = e[a].x, u = e[a].y; l > r != u > r && n < (h - c) * (r - l) / (u - l) + c && (i = !i); } return i; } n.pointInPolygon = o; function a(t, e, i, n) { var r, s = i.x - e.x, o = i.y - e.y, a = s * s + o * o, c = ((t.x - e.x) * s + (t.y - e.y) * o) / a; r = n ? a ? c < 0 ? e : c > 1 ? i : cc.v2(e.x + c * s, e.y + c * o) : e : cc.v2(e.x + c * s, e.y + c * o); s = t.x - r.x; o = t.y - r.y; return Math.sqrt(s * s + o * o); } n.pointLineDistance = a; cc.Intersection = e.exports = n; }), {} ], 87: [ (function(t, e, i) { "use strict"; cc.Collider.Polygon = cc.Class({ properties: { threshold: { default: 1, serializable: !1, visible: !1 }, _offset: cc.v2(0, 0), offset: { get: function() { return this._offset; }, set: function(t) { this._offset = t; }, type: cc.Vec2 }, points: { tooltip: !1, default: function() { return [ cc.v2(-50, -50), cc.v2(50, -50), cc.v2(50, 50), cc.v2(-50, 50) ]; }, type: [ cc.Vec2 ] } }, resetPointsByContour: !1 }); var n = cc.Class({ name: "cc.PolygonCollider", extends: cc.Collider, mixins: [ cc.Collider.Polygon ], editor: !1 }); cc.PolygonCollider = e.exports = n; }), {} ], 88: [ (function(t, e, i) { "use strict"; t("./CCCollisionManager"); t("./CCCollider"); t("./CCBoxCollider"); t("./CCCircleCollider"); t("./CCPolygonCollider"); }), { "./CCBoxCollider": 81, "./CCCircleCollider": 82, "./CCCollider": 83, "./CCCollisionManager": 84, "./CCPolygonCollider": 87 } ], 89: [ (function(t, e, i) { "use strict"; t("./platform/CCClass"); var n = t("./platform/CCObject").Flags, r = t("./platform/js").array, s = n.IsStartCalled, o = n.IsOnEnableCalled; n.IsEditorOnEnableCalled; function a(t, e) { for (var i = e.constructor._executionOrder, n = e._id, r = 0, s = t.length - 1, o = s >>> 1; r <= s; o = r + s >>> 1) { var a = t[o], c = a.constructor._executionOrder; if (c > i) s = o - 1; else if (c < i) r = o + 1; else { var l = a._id; if (l > n) s = o - 1; else { if (!(l < n)) return o; r = o + 1; } } } return ~r; } function c(t, e) { for (var i = t.array, n = t.i + 1; n < i.length; ) { var r = i[n]; if (r._enabled && r.node._activeInHierarchy) ++n; else { t.removeAt(n); e && (r._objFlags &= ~e); } } } var l = cc.Class({ __ctor__: function(t) { var e = r.MutableForwardIterator; this._zero = new e([]); this._neg = new e([]); this._pos = new e([]); 0; this._invoke = t; }, statics: { stableRemoveInactive: c }, add: null, remove: null, invoke: null }); function h(t, e) { return t.constructor._executionOrder - e.constructor._executionOrder; } var u = cc.Class({ extends: l, add: function(t) { var e = t.constructor._executionOrder; (0 === e ? this._zero : e < 0 ? this._neg : this._pos).array.push(t); }, remove: function(t) { var e = t.constructor._executionOrder; (0 === e ? this._zero : e < 0 ? this._neg : this._pos).fastRemove(t); }, cancelInactive: function(t) { c(this._zero, t); c(this._neg, t); c(this._pos, t); }, invoke: function() { var t = this._neg; if (t.array.length > 0) { t.array.sort(h); this._invoke(t); t.array.length = 0; } this._invoke(this._zero); this._zero.array.length = 0; var e = this._pos; if (e.array.length > 0) { e.array.sort(h); this._invoke(e); e.array.length = 0; } } }), _ = cc.Class({ extends: l, add: function(t) { var e = t.constructor._executionOrder; if (0 === e) this._zero.array.push(t); else { var i = e < 0 ? this._neg.array : this._pos.array, n = a(i, t); n < 0 && i.splice(~n, 0, t); } }, remove: function(t) { var e = t.constructor._executionOrder; if (0 === e) this._zero.fastRemove(t); else { var i = e < 0 ? this._neg : this._pos, n = a(i.array, t); n >= 0 && i.removeAt(n); } }, invoke: function(t) { this._neg.array.length > 0 && this._invoke(this._neg, t); this._invoke(this._zero, t); this._pos.array.length > 0 && this._invoke(this._pos, t); } }); function f(t, e, i, n) { var r = "var a=it.array;for(it.i=0;it.i= 0) r.fastRemoveAt(this.scheduleInNextFrame, e); else { !t.start || t._objFlags & s || this.startInvoker.remove(t); t.update && this.updateInvoker.remove(t); t.lateUpdate && this.lateUpdateInvoker.remove(t); } }, enableComp: function(t, e) { if (!(t._objFlags & o)) { if (t.onEnable) { if (e) { e.add(t); return; } t.onEnable(); if (!t.node._activeInHierarchy) return; } this._onEnabled(t); } }, disableComp: function(t) { if (t._objFlags & o) { t.onDisable && t.onDisable(); this._onDisabled(t); } }, _scheduleImmediate: function(t) { !t.start || t._objFlags & s || this.startInvoker.add(t); t.update && this.updateInvoker.add(t); t.lateUpdate && this.lateUpdateInvoker.add(t); }, _deferredSchedule: function() { for (var t = this.scheduleInNextFrame, e = 0, i = t.length; e < i; e++) { var n = t[e]; this._scheduleImmediate(n); } t.length = 0; }, startPhase: function() { this._updating = !0; this.scheduleInNextFrame.length > 0 && this._deferredSchedule(); this.startInvoker.invoke(); }, updatePhase: function(t) { this.updateInvoker.invoke(t); }, lateUpdatePhase: function(t) { this.lateUpdateInvoker.invoke(t); this._updating = !1; } }); e.exports = y; }), { "./platform/CCClass": 201, "./platform/CCObject": 207, "./platform/js": 221, "./utils/misc": 297 } ], 90: [ (function(t, e, i) { "use strict"; var n = t("../../animation/animation-animator"), r = t("../../animation/animation-clip"), s = t("../event/event-target"), o = t("../platform/js"); function a(t, e) { return t === e || t && e && (t.name === e.name || t._uuid === e._uuid); } var c = cc.Enum({ PLAY: "play", STOP: "stop", PAUSE: "pause", RESUME: "resume", LASTFRAME: "lastframe", FINISHED: "finished" }), l = cc.Class({ name: "cc.Animation", extends: t("./CCComponent"), mixins: [ s ], editor: !1, statics: { EventType: c }, ctor: function() { cc.EventTarget.call(this); this._animator = null; this._nameToState = o.createMap(!0); this._didInit = !1; this._currentClip = null; }, properties: { _defaultClip: { default: null, type: r }, defaultClip: { type: r, get: function() { return this._defaultClip; }, set: function(t) {}, tooltip: !1 }, currentClip: { get: function() { return this._currentClip; }, set: function(t) { this._currentClip = t; }, type: r, visible: !1 }, _writableClips: { get: function() { return this._clips; }, set: function(t) { this._didInit = !1; this._clips = t; this._init(); }, type: [ r ] }, _clips: { default: [], type: [ r ], tooltip: !1, visible: !0 }, playOnLoad: { default: !1, tooltip: !1 } }, start: function() { if (this.playOnLoad && this._defaultClip) { if (!(this._animator && this._animator.isPlaying)) { var t = this.getAnimationState(this._defaultClip.name); this._animator.playState(t); } } }, onEnable: function() { this._animator && this._animator.resume(); }, onDisable: function() { this._animator && this._animator.pause(); }, onDestroy: function() { this.stop(); }, getClips: function() { return this._clips; }, play: function(t, e) { var i = this.playAdditive(t, e); this._animator.stopStatesExcept(i); return i; }, playAdditive: function(t, e) { this._init(); var i = this.getAnimationState(t || this._defaultClip && this._defaultClip.name); if (i) { this.enabled = !0; var n = this._animator; if (n.isPlaying && i.isPlaying) if (i.isPaused) n.resumeState(i); else { n.stopState(i); n.playState(i, e); } else n.playState(i, e); this.enabledInHierarchy || n.pause(); this.currentClip = i.clip; } return i; }, stop: function(t) { if (this._didInit) if (t) { var e = this._nameToState[t]; e && this._animator.stopState(e); } else this._animator.stop(); }, pause: function(t) { if (this._didInit) if (t) { var e = this._nameToState[t]; e && this._animator.pauseState(e); } else this.enabled = !1; }, resume: function(t) { if (this._didInit) if (t) { var e = this._nameToState[t]; e && this._animator.resumeState(e); } else this.enabled = !0; }, setCurrentTime: function(t, e) { this._init(); if (e) { var i = this._nameToState[e]; i && this._animator.setStateTime(i, t); } else this._animator.setStateTime(t); }, getAnimationState: function(t) { this._init(); var e = this._nameToState[t]; 0; e && !e.curveLoaded && this._animator._reloadClip(e); return e || null; }, addClip: function(t, e) { if (t) { this._init(); cc.js.array.contains(this._clips, t) || this._clips.push(t); e = e || t.name; var i = this._nameToState[e]; if (i) { if (i.clip === t) return i; var n = this._clips.indexOf(i.clip); -1 !== n && this._clips.splice(n, 1); } var r = new cc.AnimationState(t, e); this._nameToState[e] = r; return r; } cc.warnID(3900); }, removeClip: function(t, e) { if (t) { this._init(); var i = void 0; for (var n in this._nameToState) { if ((i = this._nameToState[n]).clip === t) break; } if (t === this._defaultClip) { if (!e) { cc.warnID(3902); return; } this._defaultClip = null; } if (i && i.isPlaying) { if (!e) { cc.warnID(3903); return; } this.stop(i.name); } this._clips = this._clips.filter((function(e) { return e !== t; })); i && delete this._nameToState[i.name]; } else cc.warnID(3901); }, sample: function(t) { this._init(); if (t) { var e = this._nameToState[t]; e && e.sample(); } else this._animator.sample(); }, on: function(t, e, i, n) { this._init(); var r = this._EventTargetOn(t, e, i, n); if ("lastframe" === t) { var s = this._nameToState; for (var o in s) s[o]._lastframeEventOn = !0; } return r; }, off: function(t, e, i, n) { this._init(); if ("lastframe" === t) { var r = this._nameToState; for (var s in r) r[s]._lastframeEventOn = !1; } this._EventTargetOff(t, e, i, n); }, _init: function() { if (!this._didInit) { this._didInit = !0; this._animator = new n(this.node, this); this._createStates(); } }, _createStates: function() { this._nameToState = o.createMap(!0); for (var t = null, e = !1, i = 0; i < this._clips.length; ++i) { var n = this._clips[i]; if (n) { t = new cc.AnimationState(n); 0; this._nameToState[t.name] = t; a(this._defaultClip, n) && (e = t); } } if (this._defaultClip && !e) { t = new cc.AnimationState(this._defaultClip); 0; this._nameToState[t.name] = t; } } }); l.prototype._EventTargetOn = s.prototype.on; l.prototype._EventTargetOff = s.prototype.off; cc.Animation = e.exports = l; }), { "../../animation/animation-animator": 9, "../../animation/animation-clip": 10, "../event/event-target": 133, "../platform/js": 221, "./CCComponent": 95 } ], 91: [ (function(i, n, r) { "use strict"; var s = i("../utils/misc"), o = i("./CCComponent"), a = i("../assets/CCAudioClip"), c = cc.Class({ name: "cc.AudioSource", extends: o, editor: !1, ctor: function() { this.audio = new cc.Audio(); }, properties: { _clip: { default: null, type: a }, _volume: 1, _mute: !1, _loop: !1, _pausedFlag: { default: !1, serializable: !1 }, isPlaying: { get: function() { return this.audio.getState() === cc.Audio.State.PLAYING; }, visible: !1 }, clip: { get: function() { return this._clip; }, set: function(i) { if ("string" !== ("object" === (e = typeof i) ? t(i) : e)) { if (i !== this._clip) { this._clip = i; this.audio.stop(); this.preload && (this.audio.src = this._clip); } } else { cc.warnID(8401, "cc.AudioSource", "cc.AudioClip", "AudioClip", "cc.AudioClip", "audio"); var n = this; a._loadByUrl(i, (function(t, e) { e && (n.clip = e); })); } }, type: a, tooltip: !1, animatable: !1 }, volume: { get: function() { return this._volume; }, set: function(t) { t = s.clamp01(t); this._volume = t; this._mute || this.audio.setVolume(t); return t; }, tooltip: !1 }, mute: { get: function() { return this._mute; }, set: function(t) { this._mute = t; this.audio.setVolume(t ? 0 : this._volume); return t; }, animatable: !1, tooltip: !1 }, loop: { get: function() { return this._loop; }, set: function(t) { this._loop = t; this.audio.setLoop(t); return t; }, animatable: !1, tooltip: !1 }, playOnLoad: { default: !1, tooltip: !1, animatable: !1 }, preload: { default: !1, animatable: !1 } }, _ensureDataLoaded: function() { this.audio.src !== this._clip && (this.audio.src = this._clip); }, _pausedCallback: function() { if (this.audio.getState() === cc.Audio.State.PLAYING) { this.audio.pause(); this._pausedFlag = !0; } }, _restoreCallback: function() { this._pausedFlag && this.audio.resume(); this._pausedFlag = !1; }, onLoad: function() { this.audio.setVolume(this._mute ? 0 : this._volume); this.audio.setLoop(this._loop); }, onEnable: function() { this.preload && (this.audio.src = this._clip); this.playOnLoad && this.play(); cc.game.on(cc.game.EVENT_HIDE, this._pausedCallback, this); cc.game.on(cc.game.EVENT_SHOW, this._restoreCallback, this); }, onDisable: function() { this.stop(); cc.game.off(cc.game.EVENT_HIDE, this._pausedCallback, this); cc.game.off(cc.game.EVENT_SHOW, this._restoreCallback, this); }, onDestroy: function() { this.stop(); this.audio.destroy(); cc.audioEngine.uncache(this._clip); }, play: function() { if (this._clip) { var t = this.audio; this._clip.loaded && t.stop(); this._ensureDataLoaded(); t.setCurrentTime(0); t.play(); } }, stop: function() { this.audio.stop(); }, pause: function() { this.audio.pause(); }, resume: function() { this._ensureDataLoaded(); this.audio.resume(); }, rewind: function() { this.audio.setCurrentTime(0); }, getCurrentTime: function() { return this.audio.getCurrentTime(); }, setCurrentTime: function(t) { this.audio.setCurrentTime(t); return t; }, getDuration: function() { return this.audio.getDuration(); } }); cc.AudioSource = n.exports = c; }), { "../assets/CCAudioClip": 57, "../utils/misc": 297, "./CCComponent": 95 } ], 92: [ (function(t, e, i) { "use strict"; var n = [ "touchstart", "touchmove", "touchend", "mousedown", "mousemove", "mouseup", "mouseenter", "mouseleave", "mousewheel" ]; function r(t) { t.stopPropagation(); } var s = cc.Class({ name: "cc.BlockInputEvents", extends: t("./CCComponent"), editor: { menu: "i18n:MAIN_MENU.component.ui/Block Input Events", inspector: "packages://inspector/inspectors/comps/block-input-events.js", help: "i18n:COMPONENT.help_url.block_input_events" }, onEnable: function() { for (var t = 0; t < n.length; t++) this.node.on(n[t], r, this); }, onDisable: function() { for (var t = 0; t < n.length; t++) this.node.off(n[t], r, this); } }); cc.BlockInputEvents = e.exports = s; }), { "./CCComponent": 95 } ], 93: [ (function(t, e, i) { "use strict"; var n = t("./CCComponent"), r = t("../utils/gray-sprite-state"), s = cc.Enum({ NONE: 0, COLOR: 1, SPRITE: 2, SCALE: 3 }), o = cc.Enum({ NORMAL: 0, HOVER: 1, PRESSED: 2, DISABLED: 3 }), a = cc.Class({ name: "cc.Button", extends: n, mixins: [ r ], ctor: function() { this._pressed = !1; this._hovered = !1; this._fromColor = null; this._toColor = null; this._time = 0; this._transitionFinished = !0; this._fromScale = cc.Vec2.ZERO; this._toScale = cc.Vec2.ZERO; this._originalScale = null; this._graySpriteMaterial = null; this._spriteMaterial = null; this._sprite = null; }, editor: !1, properties: { interactable: { default: !0, tooltip: !1, notify: function() { this._updateState(); this.interactable || this._resetState(); }, animatable: !1 }, _resizeToTarget: { animatable: !1, set: function(t) { t && this._resizeNodeToTargetNode(); } }, enableAutoGrayEffect: { default: !1, tooltip: !1, notify: function() { this._updateDisabledState(); } }, transition: { default: s.NONE, tooltip: !1, type: s, animatable: !1, notify: function(t) { this._updateTransition(t); }, formerlySerializedAs: "transition" }, normalColor: { default: cc.Color.WHITE, displayName: "Normal", tooltip: !1, notify: function() { this.transition === s.Color && this._getButtonState() === o.NORMAL && (this._getTarget().opacity = this.normalColor.a); this._updateState(); } }, pressedColor: { default: cc.color(211, 211, 211), displayName: "Pressed", tooltip: !1, notify: function() { this.transition === s.Color && this._getButtonState() === o.PRESSED && (this._getTarget().opacity = this.pressedColor.a); this._updateState(); }, formerlySerializedAs: "pressedColor" }, hoverColor: { default: cc.Color.WHITE, displayName: "Hover", tooltip: !1, notify: function() { this.transition === s.Color && this._getButtonState() === o.HOVER && (this._getTarget().opacity = this.hoverColor.a); this._updateState(); }, formerlySerializedAs: "hoverColor" }, disabledColor: { default: cc.color(124, 124, 124), displayName: "Disabled", tooltip: !1, notify: function() { this.transition === s.Color && this._getButtonState() === o.DISABLED && (this._getTarget().opacity = this.disabledColor.a); this._updateState(); } }, duration: { default: .1, range: [ 0, 10 ], tooltip: !1 }, zoomScale: { default: 1.2, tooltip: !1 }, normalSprite: { default: null, type: cc.SpriteFrame, displayName: "Normal", tooltip: !1, notify: function() { this._updateState(); } }, pressedSprite: { default: null, type: cc.SpriteFrame, displayName: "Pressed", tooltip: !1, formerlySerializedAs: "pressedSprite", notify: function() { this._updateState(); } }, hoverSprite: { default: null, type: cc.SpriteFrame, displayName: "Hover", tooltip: !1, formerlySerializedAs: "hoverSprite", notify: function() { this._updateState(); } }, disabledSprite: { default: null, type: cc.SpriteFrame, displayName: "Disabled", tooltip: !1, notify: function() { this._updateState(); } }, target: { default: null, type: cc.Node, tooltip: !1, notify: function(t) { this._applyTarget(); t && this.target !== t && this._unregisterTargetEvent(t); } }, clickEvents: { default: [], type: cc.Component.EventHandler, tooltip: !1 } }, statics: { Transition: s }, __preload: function() { this._applyTarget(); this._updateState(); }, _resetState: function() { this._pressed = !1; this._hovered = !1; var t = this._getTarget(), e = this.transition, i = this._originalScale; e === s.COLOR && this.interactable ? this._setTargetColor(this.normalColor) : e === s.SCALE && i && t.setScale(i.x, i.y); this._transitionFinished = !0; }, onEnable: function() { this.normalSprite && this.normalSprite.ensureLoadTexture(); this.hoverSprite && this.hoverSprite.ensureLoadTexture(); this.pressedSprite && this.pressedSprite.ensureLoadTexture(); this.disabledSprite && this.disabledSprite.ensureLoadTexture(); this._registerNodeEvent(); }, onDisable: function() { this._resetState(); this._unregisterNodeEvent(); }, _getTarget: function() { return this.target ? this.target : this.node; }, _onTargetSpriteFrameChanged: function(t) { this.transition === s.SPRITE && this._setCurrentStateSprite(t.spriteFrame); }, _onTargetColorChanged: function(t) { this.transition === s.COLOR && this._setCurrentStateColor(t); }, _onTargetScaleChanged: function() { var t = this._getTarget(); if (this._originalScale && (this.transition !== s.SCALE || this._transitionFinished)) { this._originalScale.x = t.scaleX; this._originalScale.y = t.scaleY; } }, _setTargetColor: function(t) { var e = this._getTarget(); e.color = t; e.opacity = t.a; }, _getStateColor: function(t) { switch (t) { case o.NORMAL: return this.normalColor; case o.HOVER: return this.hoverColor; case o.PRESSED: return this.pressedColor; case o.DISABLED: return this.disabledColor; } }, _getStateSprite: function(t) { switch (t) { case o.NORMAL: return this.normalSprite; case o.HOVER: return this.hoverSprite; case o.PRESSED: return this.pressedSprite; case o.DISABLED: return this.disabledSprite; } }, _setCurrentStateColor: function(t) { switch (this._getButtonState()) { case o.NORMAL: this.normalColor = t; break; case o.HOVER: this.hoverColor = t; break; case o.PRESSED: this.pressedColor = t; break; case o.DISABLED: this.disabledColor = t; } }, _setCurrentStateSprite: function(t) { switch (this._getButtonState()) { case o.NORMAL: this.normalSprite = t; break; case o.HOVER: this.hoverSprite = t; break; case o.PRESSED: this.pressedSprite = t; break; case o.DISABLED: this.disabledSprite = t; } }, update: function(t) { var e = this._getTarget(); if (!this._transitionFinished && (this.transition === s.COLOR || this.transition === s.SCALE)) { this.time += t; var i = 1; this.duration > 0 && (i = this.time / this.duration); i >= 1 && (i = 1); if (this.transition === s.COLOR) { var n = this._fromColor.lerp(this._toColor, i); this._setTargetColor(n); } else this.transition === s.SCALE && this._originalScale && (e.scale = this._fromScale.lerp(this._toScale, i)); 1 === i && (this._transitionFinished = !0); } }, _registerNodeEvent: function() { this.node.on(cc.Node.EventType.TOUCH_START, this._onTouchBegan, this); this.node.on(cc.Node.EventType.TOUCH_MOVE, this._onTouchMove, this); this.node.on(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this); this.node.on(cc.Node.EventType.TOUCH_CANCEL, this._onTouchCancel, this); this.node.on(cc.Node.EventType.MOUSE_ENTER, this._onMouseMoveIn, this); this.node.on(cc.Node.EventType.MOUSE_LEAVE, this._onMouseMoveOut, this); }, _unregisterNodeEvent: function() { this.node.off(cc.Node.EventType.TOUCH_START, this._onTouchBegan, this); this.node.off(cc.Node.EventType.TOUCH_MOVE, this._onTouchMove, this); this.node.off(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this); this.node.off(cc.Node.EventType.TOUCH_CANCEL, this._onTouchCancel, this); this.node.off(cc.Node.EventType.MOUSE_ENTER, this._onMouseMoveIn, this); this.node.off(cc.Node.EventType.MOUSE_LEAVE, this._onMouseMoveOut, this); }, _registerTargetEvent: function(t) { 0; t.on(cc.Node.EventType.SCALE_CHANGED, this._onTargetScaleChanged, this); }, _unregisterTargetEvent: function(t) { 0; t.off(cc.Node.EventType.SCALE_CHANGED, this._onTargetScaleChanged, this); }, _getTargetSprite: function(t) { var e = null; t && (e = t.getComponent(cc.Sprite)); return e; }, _applyTarget: function() { var t = this._getTarget(); this._sprite = this._getTargetSprite(t); this._originalScale || (this._originalScale = cc.Vec2.ZERO); this._originalScale.x = t.scaleX; this._originalScale.y = t.scaleY; this._registerTargetEvent(t); }, _onTouchBegan: function(t) { if (this.interactable && this.enabledInHierarchy) { this._pressed = !0; this._updateState(); t.stopPropagation(); } }, _onTouchMove: function(t) { if (this.interactable && this.enabledInHierarchy && this._pressed) { var e = t.touch, i = this.node._hitTest(e.getLocation()), n = this._getTarget(), r = this._originalScale; if (this.transition === s.SCALE && r) if (i) { this._fromScale.x = r.x; this._fromScale.y = r.y; this._toScale.x = r.x * this.zoomScale; this._toScale.y = r.y * this.zoomScale; this._transitionFinished = !1; } else { this.time = 0; this._transitionFinished = !0; n.setScale(r.x, r.y); } else { var a = void 0; a = i ? o.PRESSED : o.NORMAL; this._applyTransition(a); } t.stopPropagation(); } }, _onTouchEnded: function(t) { if (this.interactable && this.enabledInHierarchy) { if (this._pressed) { cc.Component.EventHandler.emitEvents(this.clickEvents, t); this.node.emit("click", this); } this._pressed = !1; this._updateState(); t.stopPropagation(); } }, _onTouchCancel: function() { if (this.interactable && this.enabledInHierarchy) { this._pressed = !1; this._updateState(); } }, _onMouseMoveIn: function() { if (!this._pressed && this.interactable && this.enabledInHierarchy && (this.transition !== s.SPRITE || this.hoverSprite) && !this._hovered) { this._hovered = !0; this._updateState(); } }, _onMouseMoveOut: function() { if (this._hovered) { this._hovered = !1; this._updateState(); } }, _updateState: function() { var t = this._getButtonState(); this._applyTransition(t); this._updateDisabledState(); }, _getButtonState: function() { return this.interactable ? this._pressed ? o.PRESSED : this._hovered ? o.HOVER : o.NORMAL : o.DISABLED; }, _updateColorTransitionImmediately: function(t) { var e = this._getStateColor(t); this._setTargetColor(e); }, _updateColorTransition: function(t) { if (t === o.DISABLED) this._updateColorTransitionImmediately(t); else { var e = this._getTarget(), i = this._getStateColor(t); this._fromColor = e.color.clone(); this._toColor = i; this.time = 0; this._transitionFinished = !1; } }, _updateSpriteTransition: function(t) { var e = this._getStateSprite(t); this._sprite && e && (this._sprite.spriteFrame = e); }, _updateScaleTransition: function(t) { t === o.PRESSED ? this._zoomUp() : this._zoomBack(); }, _zoomUp: function() { if (this._originalScale) { this._fromScale.x = this._originalScale.x; this._fromScale.y = this._originalScale.y; this._toScale.x = this._originalScale.x * this.zoomScale; this._toScale.y = this._originalScale.y * this.zoomScale; this.time = 0; this._transitionFinished = !1; } }, _zoomBack: function() { if (this._originalScale) { var t = this._getTarget(); this._fromScale.x = t.scaleX; this._fromScale.y = t.scaleY; this._toScale.x = this._originalScale.x; this._toScale.y = this._originalScale.y; this.time = 0; this._transitionFinished = !1; } }, _updateTransition: function(t) { t === s.COLOR ? this._updateColorTransitionImmediately(o.NORMAL) : t === s.SPRITE && this._updateSpriteTransition(o.NORMAL); this._updateState(); }, _applyTransition: function(t) { var e = this.transition; e === s.COLOR ? this._updateColorTransition(t) : e === s.SPRITE ? this._updateSpriteTransition(t) : e === s.SCALE && this._updateScaleTransition(t); }, _resizeNodeToTargetNode: !1, _updateDisabledState: function() { if (this._sprite) { var t = !1; this.enableAutoGrayEffect && (this.transition === s.SPRITE && this.disabledSprite || this.interactable || (t = !0)); this._switchGrayMaterial(t, this._sprite); } } }); cc.Button = e.exports = a; }), { "../utils/gray-sprite-state": 292, "./CCComponent": 95 } ], 94: [ (function(t, e, i) { "use strict"; var n = t("../camera/CCCamera"), r = t("./CCComponent"), s = cc.Class({ name: "cc.Canvas", extends: r, editor: !1, resetInEditor: !1, statics: { instance: null }, properties: { _designResolution: cc.size(960, 640), designResolution: { get: function() { return cc.size(this._designResolution); }, set: function(t) { this._designResolution.width = t.width; this._designResolution.height = t.height; this.applySettings(); this.alignWithScreen(); }, tooltip: !1 }, _fitWidth: !1, _fitHeight: !0, fitHeight: { get: function() { return this._fitHeight; }, set: function(t) { if (this._fitHeight !== t) { this._fitHeight = t; this.applySettings(); this.alignWithScreen(); } }, tooltip: !1 }, fitWidth: { get: function() { return this._fitWidth; }, set: function(t) { if (this._fitWidth !== t) { this._fitWidth = t; this.applySettings(); this.alignWithScreen(); } }, tooltip: !1 } }, ctor: function() { this._thisOnResized = this.alignWithScreen.bind(this); }, __preload: function() { if (s.instance) return cc.errorID(6700, this.node.name, s.instance.node.name); s.instance = this; cc.sys.isMobile ? window.addEventListener("resize", this._thisOnResized) : cc.view.on("canvas-resize", this._thisOnResized); this.applySettings(); this.alignWithScreen(); var t = cc.find("Main Camera", this.node); if (!t) { (t = new cc.Node("Main Camera")).parent = this.node; t.setSiblingIndex(0); } var e = t.getComponent(n); if (!e) { e = t.addComponent(n); var i = n.ClearFlags; e.clearFlags = i.COLOR | i.DEPTH | i.STENCIL; e.depth = -1; } n.main = e; }, onDestroy: function() { cc.sys.isMobile ? window.removeEventListener("resize", this._thisOnResized) : cc.view.off("canvas-resize", this._thisOnResized); s.instance === this && (s.instance = null); }, alignWithScreen: function() { var t, e, i = e = cc.visibleRect; t = cc.view.getDesignResolutionSize(); var n = 0, r = 0; if (!this.fitHeight && !this.fitWidth) { n = .5 * (t.width - i.width); r = .5 * (t.height - i.height); } this.node.setPosition(.5 * i.width + n, .5 * i.height + r); this.node.width = e.width; this.node.height = e.height; }, applySettings: function() { var t, e = cc.ResolutionPolicy; t = this.fitHeight && this.fitWidth ? e.SHOW_ALL : this.fitHeight || this.fitWidth ? this.fitWidth ? e.FIXED_WIDTH : e.FIXED_HEIGHT : e.NO_BORDER; var i = this._designResolution; cc.view.setDesignResolutionSize(i.width, i.height, t); } }); cc.Canvas = e.exports = s; }), { "../camera/CCCamera": 80, "./CCComponent": 95 } ], 95: [ (function(i, n, r) { "use strict"; var s = i("../platform/CCObject"), o = i("../platform/js"), a = new (i("../platform/id-generater"))("Comp"), c = (s.Flags.IsOnEnableCalled, s.Flags.IsOnLoadCalled), l = cc.Class({ name: "cc.Component", extends: s, ctor: function() { this._id = a.getNewId(); this.__eventTargets = []; }, properties: { node: { default: null, visible: !1 }, name: { get: function() { if (this._name) return this._name; var t = cc.js.getClassName(this), e = t.lastIndexOf("."); e >= 0 && (t = t.slice(e + 1)); return this.node.name + "<" + t + ">"; }, set: function(t) { this._name = t; }, visible: !1 }, uuid: { get: function() { return this._id; }, visible: !1 }, __scriptAsset: !1, _enabled: !0, enabled: { get: function() { return this._enabled; }, set: function(t) { if (this._enabled !== t) { this._enabled = t; if (this.node._activeInHierarchy) { var e = cc.director._compScheduler; t ? e.enableComp(this) : e.disableComp(this); } } }, visible: !1, animatable: !0 }, enabledInHierarchy: { get: function() { return this._enabled && this.node._activeInHierarchy; }, visible: !1 }, _isOnLoadCalled: { get: function() { return this._objFlags & c; } } }, update: null, lateUpdate: null, __preload: null, onLoad: null, start: null, onEnable: null, onDisable: null, onDestroy: null, onFocusInEditor: null, onLostFocusInEditor: null, resetInEditor: null, addComponent: function(t) { return this.node.addComponent(t); }, getComponent: function(t) { return this.node.getComponent(t); }, getComponents: function(t) { return this.node.getComponents(t); }, getComponentInChildren: function(t) { return this.node.getComponentInChildren(t); }, getComponentsInChildren: function(t) { return this.node.getComponentsInChildren(t); }, _getLocalBounds: null, onRestore: null, destroy: function() { this._super() && this._enabled && this.node._activeInHierarchy && cc.director._compScheduler.disableComp(this); }, _onPreDestroy: function() { this.unscheduleAllCallbacks(); for (var t = this.__eventTargets, e = 0, i = t.length; e < i; ++e) { var n = t[e]; n && n.targetOff(this); } t.length = 0; 0; cc.director._nodeActivator.destroyComp(this); this.node._removeComponent(this); }, _instantiate: function(t) { t || (t = cc.instantiate._clone(this, this)); t.node = null; return t; }, schedule: function(t, e, i, n) { cc.assertID(t, 1619); cc.assertID(e >= 0, 1620); e = e || 0; i = isNaN(i) ? cc.macro.REPEAT_FOREVER : i; n = n || 0; var r = cc.director.getScheduler(), s = r.isTargetPaused(this); r.schedule(t, this, e, i, n, s); }, scheduleOnce: function(t, e) { this.schedule(t, 0, 0, e); }, unschedule: function(t) { t && cc.director.getScheduler().unschedule(t, this); }, unscheduleAllCallbacks: function() { cc.director.getScheduler().unscheduleAllForTarget(this); } }); l._requireComponent = null; l._executionOrder = 0; 0; o.value(l, "_registerEditorProps", (function(i, n) { var r = n.requireComponent; r && (i._requireComponent = r); var s = n.executionOrder; s && "number" === ("object" === (e = typeof s) ? t(s) : e) && (i._executionOrder = s); })); l.prototype.__scriptUuid = ""; cc.Component = n.exports = l; }), { "../platform/CCObject": 207, "../platform/id-generater": 217, "../platform/js": 221 } ], 96: [ (function(i, n, r) { "use strict"; cc.Component.EventHandler = cc.Class({ name: "cc.ClickEvent", properties: { target: { default: null, type: cc.Node }, component: "", _componentId: "", _componentName: { get: function() { this._genCompIdIfNeeded(); return this._compId2Name(this._componentId); }, set: function(t) { this._componentId = this._compName2Id(t); } }, handler: { default: "" }, customEventData: { default: "" } }, statics: { emitEvents: function(t) { var e = void 0; if (arguments.length > 0) for (var i = 0, n = (e = new Array(arguments.length - 1)).length; i < n; i++) e[i] = arguments[i + 1]; for (var r = 0, s = t.length; r < s; r++) { var o = t[r]; o instanceof cc.Component.EventHandler && o.emit(e); } } }, emit: function(i) { var n = this.target; if (cc.isValid(n)) { this._genCompIdIfNeeded(); var r = cc.js._getClassById(this._componentId), s = n.getComponent(r); if (cc.isValid(s)) { var o = s[this.handler]; if ("function" === ("object" === (e = typeof o) ? t(o) : e)) { null != this.customEventData && "" !== this.customEventData && (i = i.slice()).push(this.customEventData); o.apply(s, i); } } } }, _compName2Id: function(t) { var e = cc.js.getClassByName(t); return cc.js._getClassId(e); }, _compId2Name: function(t) { var e = cc.js._getClassById(t); return cc.js.getClassName(e); }, _genCompIdIfNeeded: function() { if (!this._componentId) { this._componentName = this.component; this.component = ""; } } }); }), {} ], 97: [ (function(i, n, r) { "use strict"; var s = i("../platform/CCMacro"), o = i("./CCRenderComponent"), a = i("../assets/material/CCMaterial"), c = i("../assets/CCJsonAsset"), l = i("../renderer/utils/label/label-frame"), h = i("../renderer/render-flow"), u = (h.FLAG_COLOR, h.FLAG_OPACITY, s.TextAlignment), _ = s.VerticalTextAlignment, f = cc.Enum({ NONE: 0, CLAMP: 1, SHRINK: 2, RESIZE_HEIGHT: 3 }), d = cc.Enum({ NONE: 0, BITMAP: 1, CHAR: 2 }), m = cc.Class({ name: "cc.Label", extends: o, ctor: function() { 0; this._actualFontSize = 0; this._assemblerData = null; this._frame = null; this._ttfTexture = null; this._letterTexture = null; }, editor: !1, properties: { _useOriginalSize: !0, _string: { default: "", formerlySerializedAs: "_N$string" }, string: { get: function() { return this._string; }, set: function(t) { var e = this._string; this._string = "" + t; this.string !== e && this._updateRenderData(); this._checkStringEmpty(); }, multiline: !0, tooltip: !1 }, horizontalAlign: { default: u.LEFT, type: u, tooltip: !1, notify: function(t) { this.horizontalAlign !== t && this._updateRenderData(); }, animatable: !1 }, verticalAlign: { default: _.TOP, type: _, tooltip: !1, notify: function(t) { this.verticalAlign !== t && this._updateRenderData(); }, animatable: !1 }, actualFontSize: { displayName: "Actual Font Size", animatable: !1, readonly: !0, get: function() { return this._actualFontSize; }, tooltip: !1 }, _fontSize: 40, fontSize: { get: function() { return this._fontSize; }, set: function(t) { if (this._fontSize !== t) { this._fontSize = t; this._updateRenderData(); } }, range: [ 0, 512 ], tooltip: !1 }, fontFamily: { default: "Arial", tooltip: !1, notify: function(t) { this.fontFamily !== t && this._updateRenderData(); }, animatable: !1 }, _lineHeight: 40, lineHeight: { get: function() { return this._lineHeight; }, set: function(t) { if (this._lineHeight !== t) { this._lineHeight = t; this._updateRenderData(); } }, tooltip: !1 }, overflow: { default: f.NONE, type: f, tooltip: !1, notify: function(t) { this.overflow !== t && this._updateRenderData(); }, animatable: !1 }, _enableWrapText: !0, enableWrapText: { get: function() { return this._enableWrapText; }, set: function(t) { if (this._enableWrapText !== t) { this._enableWrapText = t; this._updateRenderData(); } }, animatable: !1, tooltip: !1 }, _N$file: null, font: { get: function() { return this._N$file; }, set: function(i) { if (this.font !== i) { i || (this._isSystemFontUsed = !0); 0; this._N$file = i; i && this._isSystemFontUsed && (this._isSystemFontUsed = !1); "string" === ("object" === (e = typeof i) ? t(i) : e) && cc.warnID(4e3); if (this._renderData) { this.destroyRenderData(this._renderData); this._renderData = null; } this._updateAssembler(); this._applyFontTexture(!0); this._updateRenderData(); } }, type: cc.Font, tooltip: !1, animatable: !1 }, _isSystemFontUsed: !0, useSystemFont: { get: function() { return this._isSystemFontUsed; }, set: function(t) { if (this._isSystemFontUsed !== t) { this.destroyRenderData(this._renderData); this._renderData = null; 0; this._isSystemFontUsed = !!t; if (t) { this.font = null; this._updateAssembler(); this._updateRenderData(); this._checkStringEmpty(); } else this._userDefinedFont || this.disableRender(); } }, animatable: !1, tooltip: !1 }, _bmFontOriginalSize: { displayName: "BMFont Original Size", get: function() { return this._N$file instanceof cc.BitmapFont ? this._N$file.fontSize : -1; }, visible: !0, animatable: !1 }, _isUseVerticalKerning: !0, useVerticalKerning: { get: function() { return this._isUseVerticalKerning; }, set: function(t) { if (this._isUseVerticalKerning !== t) { this._isUseVerticalKerning = t; this.font instanceof cc.BitmapFont && (this._isUseVerticalKerning && this._verticalKerning ? this.font.setVerticalKerningDict(this._verticalKerning.json) : this.font.clearVerticalKeningDict()); this._updateRenderData(); } }, visible: !0 }, _verticalKerning: null, verticalKerningJson: { type: c, get: function() { return this._verticalKerning; }, set: function(t) { this._verticalKerning = t; if (this.font instanceof cc.BitmapFont && this._isUseVerticalKerning && this._verticalKerning) { this.font.clearVerticalKeningDict(); this.font.setVerticalKerningDict(this._verticalKerning.json); } this._updateRenderData(); }, visible: !0 }, _spacingX: 0, spacingX: { get: function() { return this._spacingX; }, set: function(t) { this._spacingX = t; this._updateRenderData(); }, tooltip: !1 }, _batchAsBitmap: !1, cacheMode: { default: d.NONE, type: d, tooltip: !1, notify: function(t) { if (this.cacheMode !== t) { t !== d.BITMAP || this.font instanceof cc.BitmapFont || this._frame._resetDynamicAtlasFrame(); t === d.CHAR && (this._ttfTexture = null); this._updateRenderData(!0); } }, animatable: !1 }, _isBold: { default: !1, serializable: !1 }, _isItalic: { default: !1, serializable: !1 }, _isUnderline: { default: !1, serializable: !1 } }, statics: { HorizontalAlign: u, VerticalAlign: _, Overflow: f, CacheMode: d }, onLoad: function() { if (this._batchAsBitmap && this.cacheMode === d.NONE) { this.cacheMode = d.BITMAP; this._batchAsBitmap = !1; } }, onEnable: function() { this._super(); this.font || this._isSystemFontUsed || (this.useSystemFont = !0); this.useSystemFont && !this.fontFamily && (this.fontFamily = "Arial"); this.font instanceof cc.BitmapFont && (this._isUseVerticalKerning && this._verticalKerning ? this.font.setVerticalKerningDict(this._verticalKerning.json) : this.font.clearVerticalKeningDict()); this.node.on(cc.Node.EventType.SIZE_CHANGED, this._updateRenderData, this); this.node.on(cc.Node.EventType.ANCHOR_CHANGED, this._updateRenderData, this); this.node.on(cc.Node.EventType.COLOR_CHANGED, this._updateColor, this); this._updateRenderData(!0); this._checkStringEmpty(); }, onDisable: function() { this._super(); this.node.off(cc.Node.EventType.SIZE_CHANGED, this._updateRenderData, this); this.node.off(cc.Node.EventType.ANCHOR_CHANGED, this._updateRenderData, this); this.node.off(cc.Node.EventType.COLOR_CHANGED, this._updateColor, this); }, onDestroy: function() { this._assembler && this._assembler._resetAssemblerData && this._assembler._resetAssemblerData(this._assemblerData); this._assemblerData = null; this._letterTexture = null; if (this._ttfTexture) { this._ttfTexture.destroy(); this._ttfTexture = null; } this._super(); }, _canRender: function() { var t = this._super(), e = this.font; if (e instanceof cc.BitmapFont) { var i = e.spriteFrame; i && i.textureLoaded() || (t = !1); } return t; }, _checkStringEmpty: function() { this.markForRender(!!this.string); }, _on3DNodeChanged: function() { this._updateAssembler(); this._applyFontTexture(!0); }, _updateAssembler: function() { var t = m._assembler.getAssembler(this); if (this._assembler !== t) { this._assembler = t; this._renderData = null; this._frame = null; } if (!this._renderData) { this._renderData = this._assembler.createData(this); this.markForUpdateRenderData(!0); } }, _applyFontTexture: function(t) { var e = this.font; if (e instanceof cc.BitmapFont) { var i = e.spriteFrame; this._frame = i; var n = this, r = function() { n._frame._texture = i._texture; n._activateMaterial(t); t && n._assembler && n._assembler.updateRenderData(n); }; if (i && i.textureLoaded()) r(); else { this.disableRender(); if (i) { i.once("load", r, this); i.ensureLoadTexture(); } } } else { this._frame || (this._frame = new l()); if (this.cacheMode === d.CHAR && cc.sys.browserType !== cc.sys.BROWSER_TYPE_WECHAT_GAME_SUB) { this._letterTexture = this._assembler._getAssemblerData(); this._frame._refreshTexture(this._letterTexture); } else if (!this._ttfTexture) { this._ttfTexture = new cc.Texture2D(); this._assemblerData = this._assembler._getAssemblerData(); this._ttfTexture.initWithElement(this._assemblerData.canvas); } if (this.cacheMode !== d.CHAR) { this._frame._resetDynamicAtlasFrame(); this._frame._refreshTexture(this._ttfTexture); } this._activateMaterial(t); t && this._assembler && this._assembler.updateRenderData(this); } }, _updateColor: function() { if (!(this.font instanceof cc.BitmapFont)) { this._updateRenderData(); this.node._renderFlag &= ~h.FLAG_COLOR; } }, _activateMaterial: function(t) { if (t) { if (cc.game.renderType === cc.game.RENDER_TYPE_CANVAS) this._frame._texture.url = this.uuid + "_texture"; else { var e = this.sharedMaterials[0]; (e = e ? a.getInstantiatedMaterial(e, this) : a.getInstantiatedBuiltinMaterial("2d-sprite", this)).setProperty("texture", this._frame._texture); this.setMaterial(0, e); } this.markForUpdateRenderData(!0); this.markForRender(!0); } }, _updateRenderData: function(t) { var e = this._renderData; if (e) { e.vertDirty = !0; e.uvDirty = !0; this.markForUpdateRenderData(!0); } if (!0 === t) { this._updateAssembler(); this._applyFontTexture(t); } }, _enableBold: function(t) { this._isBold = !!t; }, _enableItalics: function(t) { this._isItalic = !!t; }, _enableUnderline: function(t) { this._isUnderline = !!t; } }); cc.Label = n.exports = m; }), { "../assets/CCJsonAsset": 62, "../assets/material/CCMaterial": 75, "../platform/CCMacro": 206, "../renderer/render-flow": 245, "../renderer/utils/label/label-frame": 249, "./CCRenderComponent": 106 } ], 98: [ (function(t, e, i) { "use strict"; var n = cc.Class({ name: "cc.LabelOutline", extends: t("./CCComponent"), editor: !1, properties: { _color: cc.Color.WHITE, _width: 1, color: { tooltip: !1, get: function() { return this._color; }, set: function(t) { this._color = t; this._updateRenderData(); } }, width: { tooltip: !1, get: function() { return this._width; }, set: function(t) { this._width = t; this._updateRenderData(); }, range: [ 0, 512 ] } }, onEnable: function() { this._updateRenderData(); }, onDisable: function() { this._updateRenderData(); }, _updateRenderData: function() { var t = this.node.getComponent(cc.Label); t && t._updateRenderData(); } }); cc.LabelOutline = e.exports = n; }), { "./CCComponent": 95 } ], 99: [ (function(t, e, i) { "use strict"; var n = cc.Class({ name: "cc.LabelShadow", extends: t("./CCComponent"), editor: !1, properties: { _color: cc.Color.WHITE, _offset: cc.v2(2, 2), _blur: 2, color: { tooltip: !1, get: function() { return this._color; }, set: function(t) { this._color = t; this._updateRenderData(); } }, offset: { tooltip: !1, get: function() { return this._offset; }, set: function(t) { this._offset = t; this._updateRenderData(); } }, blur: { tooltip: !1, get: function() { return this._blur; }, set: function(t) { this._blur = t; this._updateRenderData(); }, range: [ 0, 1024 ] } }, onEnable: function() { this._updateRenderData(); }, onDisable: function() { this._updateRenderData(); }, _updateRenderData: function() { var t = this.node.getComponent(cc.Label); t && t._updateRenderData(); } }); cc.LabelShadow = e.exports = n; }), { "./CCComponent": 95 } ], 100: [ (function(t, e, i) { "use strict"; var n = t("../CCNode").EventType, r = cc.Enum({ NONE: 0, HORIZONTAL: 1, VERTICAL: 2, GRID: 3 }), s = cc.Enum({ NONE: 0, CONTAINER: 1, CHILDREN: 2 }), o = cc.Enum({ HORIZONTAL: 0, VERTICAL: 1 }), a = cc.Enum({ BOTTOM_TO_TOP: 0, TOP_TO_BOTTOM: 1 }), c = cc.Enum({ LEFT_TO_RIGHT: 0, RIGHT_TO_LEFT: 1 }), l = cc.Class({ name: "cc.Layout", extends: t("./CCComponent"), editor: !1, properties: { _layoutSize: cc.size(300, 200), _layoutDirty: { default: !0, serializable: !1 }, _resize: s.NONE, _N$layoutType: r.NONE, type: { type: r, get: function() { return this._N$layoutType; }, set: function(t) { this._N$layoutType = t; this._doLayoutDirty(); }, tooltip: !1, animatable: !1 }, resizeMode: { type: s, tooltip: !1, animatable: !1, get: function() { return this._resize; }, set: function(t) { if (this.type !== r.NONE || t !== s.CHILDREN) { this._resize = t; this._doLayoutDirty(); } } }, cellSize: { default: cc.size(40, 40), tooltip: !1, type: cc.Size, notify: function() { this._doLayoutDirty(); } }, startAxis: { default: o.HORIZONTAL, tooltip: !1, type: o, notify: function() { this._doLayoutDirty(); }, animatable: !1 }, _N$padding: { default: 0 }, paddingLeft: { default: 0, tooltip: !1, notify: function() { this._doLayoutDirty(); } }, paddingRight: { default: 0, tooltip: !1, notify: function() { this._doLayoutDirty(); } }, paddingTop: { default: 0, tooltip: !1, notify: function() { this._doLayoutDirty(); } }, paddingBottom: { default: 0, tooltip: !1, notify: function() { this._doLayoutDirty(); } }, spacingX: { default: 0, notify: function() { this._doLayoutDirty(); }, tooltip: !1 }, spacingY: { default: 0, notify: function() { this._doLayoutDirty(); }, tooltip: !1 }, verticalDirection: { default: a.TOP_TO_BOTTOM, type: a, notify: function() { this._doLayoutDirty(); }, tooltip: !1, animatable: !1 }, horizontalDirection: { default: c.LEFT_TO_RIGHT, type: c, notify: function() { this._doLayoutDirty(); }, tooltip: !1, animatable: !1 }, affectedByScale: { default: !1, notify: function() { this._doLayoutDirty(); }, animatable: !1, tooltip: !1 } }, statics: { Type: r, VerticalDirection: a, HorizontalDirection: c, ResizeMode: s, AxisDirection: o }, _migratePaddingData: function() { this.paddingLeft = this._N$padding; this.paddingRight = this._N$padding; this.paddingTop = this._N$padding; this.paddingBottom = this._N$padding; this._N$padding = 0; }, onEnable: function() { this._addEventListeners(); this.node.getContentSize().equals(cc.size(0, 0)) && this.node.setContentSize(this._layoutSize); 0 !== this._N$padding && this._migratePaddingData(); this._doLayoutDirty(); }, onDisable: function() { this._removeEventListeners(); }, _doLayoutDirty: function() { this._layoutDirty = !0; }, _doScaleDirty: function() { this._layoutDirty = this._layoutDirty || this.affectedByScale; }, _addEventListeners: function() { cc.director.on(cc.Director.EVENT_AFTER_UPDATE, this.updateLayout, this); this.node.on(n.SIZE_CHANGED, this._resized, this); this.node.on(n.ANCHOR_CHANGED, this._doLayoutDirty, this); this.node.on(n.CHILD_ADDED, this._childAdded, this); this.node.on(n.CHILD_REMOVED, this._childRemoved, this); this.node.on(n.CHILD_REORDER, this._doLayoutDirty, this); this._addChildrenEventListeners(); }, _removeEventListeners: function() { cc.director.off(cc.Director.EVENT_AFTER_UPDATE, this.updateLayout, this); this.node.off(n.SIZE_CHANGED, this._resized, this); this.node.off(n.ANCHOR_CHANGED, this._doLayoutDirty, this); this.node.off(n.CHILD_ADDED, this._childAdded, this); this.node.off(n.CHILD_REMOVED, this._childRemoved, this); this.node.off(n.CHILD_REORDER, this._doLayoutDirty, this); this._removeChildrenEventListeners(); }, _addChildrenEventListeners: function() { for (var t = this.node.children, e = 0; e < t.length; ++e) { var i = t[e]; i.on(n.SCALE_CHANGED, this._doScaleDirty, this); i.on(n.SIZE_CHANGED, this._doLayoutDirty, this); i.on(n.POSITION_CHANGED, this._doLayoutDirty, this); i.on(n.ANCHOR_CHANGED, this._doLayoutDirty, this); i.on("active-in-hierarchy-changed", this._doLayoutDirty, this); } }, _removeChildrenEventListeners: function() { for (var t = this.node.children, e = 0; e < t.length; ++e) { var i = t[e]; i.off(n.SCALE_CHANGED, this._doScaleDirty, this); i.off(n.SIZE_CHANGED, this._doLayoutDirty, this); i.off(n.POSITION_CHANGED, this._doLayoutDirty, this); i.off(n.ANCHOR_CHANGED, this._doLayoutDirty, this); i.off("active-in-hierarchy-changed", this._doLayoutDirty, this); } }, _childAdded: function(t) { t.on(n.SCALE_CHANGED, this._doScaleDirty, this); t.on(n.SIZE_CHANGED, this._doLayoutDirty, this); t.on(n.POSITION_CHANGED, this._doLayoutDirty, this); t.on(n.ANCHOR_CHANGED, this._doLayoutDirty, this); t.on("active-in-hierarchy-changed", this._doLayoutDirty, this); this._doLayoutDirty(); }, _childRemoved: function(t) { t.off(n.SCALE_CHANGED, this._doScaleDirty, this); t.off(n.SIZE_CHANGED, this._doLayoutDirty, this); t.off(n.POSITION_CHANGED, this._doLayoutDirty, this); t.off(n.ANCHOR_CHANGED, this._doLayoutDirty, this); t.off("active-in-hierarchy-changed", this._doLayoutDirty, this); this._doLayoutDirty(); }, _resized: function() { this._layoutSize = this.node.getContentSize(); this._doLayoutDirty(); }, _doLayoutHorizontally: function(t, e, i, n) { var o = this.node.getAnchorPoint(), l = this.node.children, h = 1, u = this.paddingLeft, _ = -o.x * t; if (this.horizontalDirection === c.RIGHT_TO_LEFT) { h = -1; _ = (1 - o.x) * t; u = this.paddingRight; } for (var f = _ + h * u - h * this.spacingX, d = 0, m = 0, p = 0, v = 0, y = 0, g = 0, x = 0, C = 0; C < l.length; ++C) { (A = l[C]).activeInHierarchy && x++; } var b = this.cellSize.width; this.type !== r.GRID && this.resizeMode === s.CHILDREN && (b = (t - (this.paddingLeft + this.paddingRight) - (x - 1) * this.spacingX) / x); for (C = 0; C < l.length; ++C) { var A = l[C], S = this._getUsedScaleValue(A.scaleX), w = this._getUsedScaleValue(A.scaleY); if (A.activeInHierarchy) { if (this._resize === s.CHILDREN) { A.width = b / S; this.type === r.GRID && (A.height = this.cellSize.height / w); } var T = A.anchorX, E = A.width * S, M = A.height * w; p > m && (m = p); if (M >= m) { p = m; m = M; g = A.getAnchorPoint().y; } this.horizontalDirection === c.RIGHT_TO_LEFT && (T = 1 - A.anchorX); f = f + h * T * E + h * this.spacingX; var B = h * (1 - T) * E; if (e) { var D = f + B + h * (h > 0 ? this.paddingRight : this.paddingLeft), I = this.horizontalDirection === c.LEFT_TO_RIGHT && D > (1 - o.x) * t, P = this.horizontalDirection === c.RIGHT_TO_LEFT && D < -o.x * t; if (I || P) { if (M >= m) { 0 === p && (p = m); d += p; p = m; } else { d += m; p = M; m = 0; } f = _ + h * (u + T * E); v++; } } var R = i(A, d, v); t >= E + this.paddingLeft + this.paddingRight && n && A.setPosition(cc.v2(f, R)); var L, F = 1, O = 0 === m ? M : m; if (this.verticalDirection === a.TOP_TO_BOTTOM) { y = y || this.node._contentSize.height; (L = R + (F = -1) * (O * g + this.paddingBottom)) < y && (y = L); } else { y = y || -this.node._contentSize.height; (L = R + F * (O * g + this.paddingTop)) > y && (y = L); } f += B; } } return y; }, _getVerticalBaseHeight: function(t) { var e = 0, i = 0; if (this.resizeMode === s.CONTAINER) { for (var n = 0; n < t.length; ++n) { var r = t[n]; if (r.activeInHierarchy) { i++; e += r.height * this._getUsedScaleValue(r.scaleY); } } e += (i - 1) * this.spacingY + this.paddingBottom + this.paddingTop; } else e = this.node.getContentSize().height; return e; }, _doLayoutVertically: function(t, e, i, n) { var o = this.node.getAnchorPoint(), l = this.node.children, h = 1, u = this.paddingBottom, _ = -o.y * t; if (this.verticalDirection === a.TOP_TO_BOTTOM) { h = -1; _ = (1 - o.y) * t; u = this.paddingTop; } for (var f = _ + h * u - h * this.spacingY, d = 0, m = 0, p = 0, v = 0, y = 0, g = 0, x = 0, C = 0; C < l.length; ++C) { (A = l[C]).activeInHierarchy && x++; } var b = this.cellSize.height; this.type !== r.GRID && this.resizeMode === s.CHILDREN && (b = (t - (this.paddingTop + this.paddingBottom) - (x - 1) * this.spacingY) / x); for (C = 0; C < l.length; ++C) { var A = l[C], S = this._getUsedScaleValue(A.scaleX), w = this._getUsedScaleValue(A.scaleY); if (A.activeInHierarchy) { if (this.resizeMode === s.CHILDREN) { A.height = b / w; this.type === r.GRID && (A.width = this.cellSize.width / S); } var T = A.anchorY, E = A.width * S, M = A.height * w; p > m && (m = p); if (E >= m) { p = m; m = E; g = A.getAnchorPoint().x; } this.verticalDirection === a.TOP_TO_BOTTOM && (T = 1 - A.anchorY); f = f + h * T * M + h * this.spacingY; var B = h * (1 - T) * M; if (e) { var D = f + B + h * (h > 0 ? this.paddingTop : this.paddingBottom), I = this.verticalDirection === a.BOTTOM_TO_TOP && D > (1 - o.y) * t, P = this.verticalDirection === a.TOP_TO_BOTTOM && D < -o.y * t; if (I || P) { if (E >= m) { 0 === p && (p = m); d += p; p = m; } else { d += m; p = E; m = 0; } f = _ + h * (u + T * M); v++; } } var R = i(A, d, v); t >= M + (this.paddingTop + this.paddingBottom) && n && A.setPosition(cc.v2(R, f)); var L, F = 1, O = 0 === m ? E : m; if (this.horizontalDirection === c.RIGHT_TO_LEFT) { F = -1; y = y || this.node._contentSize.width; (L = R + F * (O * g + this.paddingLeft)) < y && (y = L); } else { y = y || -this.node._contentSize.width; (L = R + F * (O * g + this.paddingRight)) > y && (y = L); } f += B; } } return y; }, _doLayoutBasic: function() { for (var t = this.node.children, e = null, i = 0; i < t.length; ++i) { var n = t[i]; n.activeInHierarchy && (e ? e.union(e, n.getBoundingBoxToWorld()) : e = n.getBoundingBoxToWorld()); } if (e) { var r = this.node.convertToNodeSpaceAR(cc.v2(e.x, e.y)); r = cc.v2(r.x - this.paddingLeft, r.y - this.paddingBottom); var s = this.node.convertToNodeSpaceAR(cc.v2(e.xMax, e.yMax)), o = (s = cc.v2(s.x + this.paddingRight, s.y + this.paddingTop)).sub(r); if (0 !== (o = cc.size(parseFloat(o.x.toFixed(2)), parseFloat(o.y.toFixed(2)))).width) { var a = -r.x / o.width; this.node.anchorX = parseFloat(a.toFixed(2)); } if (0 !== o.height) { var c = -r.y / o.height; this.node.anchorY = parseFloat(c.toFixed(2)); } this.node.setContentSize(o); } }, _doLayoutGridAxisHorizontal: function(t, e) { var i = e.width, n = 1, r = -t.y * e.height, o = this.paddingBottom; if (this.verticalDirection === a.TOP_TO_BOTTOM) { n = -1; r = (1 - t.y) * e.height; o = this.paddingTop; } var c = function(t, e, i) { return r + n * (e + t.anchorY * t.height * this._getUsedScaleValue(t.scaleY) + o + i * this.spacingY); }.bind(this), l = 0; if (this.resizeMode === s.CONTAINER) { var h = this._doLayoutHorizontally(i, !0, c, !1); (l = r - h) < 0 && (l *= -1); r = -t.y * l; if (this.verticalDirection === a.TOP_TO_BOTTOM) { n = -1; r = (1 - t.y) * l; } } this._doLayoutHorizontally(i, !0, c, !0); this.resizeMode === s.CONTAINER && this.node.setContentSize(i, l); }, _doLayoutGridAxisVertical: function(t, e) { var i = e.height, n = 1, r = -t.x * e.width, o = this.paddingLeft; if (this.horizontalDirection === c.RIGHT_TO_LEFT) { n = -1; r = (1 - t.x) * e.width; o = this.paddingRight; } var a = function(t, e, i) { return r + n * (e + t.anchorX * t.width * this._getUsedScaleValue(t.scaleX) + o + i * this.spacingX); }.bind(this), l = 0; if (this.resizeMode === s.CONTAINER) { var h = this._doLayoutVertically(i, !0, a, !1); (l = r - h) < 0 && (l *= -1); r = -t.x * l; if (this.horizontalDirection === c.RIGHT_TO_LEFT) { n = -1; r = (1 - t.x) * l; } } this._doLayoutVertically(i, !0, a, !0); this.resizeMode === s.CONTAINER && this.node.setContentSize(l, i); }, _doLayoutGrid: function() { var t = this.node.getAnchorPoint(), e = this.node.getContentSize(); this.startAxis === o.HORIZONTAL ? this._doLayoutGridAxisHorizontal(t, e) : this.startAxis === o.VERTICAL && this._doLayoutGridAxisVertical(t, e); }, _getHorizontalBaseWidth: function(t) { var e = 0, i = 0; if (this.resizeMode === s.CONTAINER) { for (var n = 0; n < t.length; ++n) { var r = t[n]; if (r.activeInHierarchy) { i++; e += r.width * this._getUsedScaleValue(r.scaleX); } } e += (i - 1) * this.spacingX + this.paddingLeft + this.paddingRight; } else e = this.node.getContentSize().width; return e; }, _doLayout: function() { if (this.type === r.HORIZONTAL) { var t = this._getHorizontalBaseWidth(this.node.children); this._doLayoutHorizontally(t, !1, (function(t) { return t.y; }), !0); this.node.width = t; } else if (this.type === r.VERTICAL) { var e = this._getVerticalBaseHeight(this.node.children); this._doLayoutVertically(e, !1, (function(t) { return t.x; }), !0); this.node.height = e; } else this.type === r.NONE ? this.resizeMode === s.CONTAINER && this._doLayoutBasic() : this.type === r.GRID && this._doLayoutGrid(); }, _getUsedScaleValue: function(t) { return this.affectedByScale ? Math.abs(t) : 1; }, updateLayout: function() { if (this._layoutDirty && this.node.children.length > 0) { this._doLayout(); this._layoutDirty = !1; } } }); Object.defineProperty(l.prototype, "padding", { get: function() { cc.warnID(4100); return this.paddingLeft; }, set: function(t) { this._N$padding = t; this._migratePaddingData(); this._doLayoutDirty(); } }); cc.Layout = e.exports = l; }), { "../CCNode": 52, "./CCComponent": 95 } ], 101: [ (function(t, e, i) { "use strict"; var n = (function(t) { return t && t.__esModule ? t : { default: t }; })(t("../../renderer/gfx")), r = t("../vmath"); var s = t("../utils/misc"), o = t("../assets/material/CCMaterial"), a = t("./CCRenderComponent"), c = t("../renderer/render-flow"), l = t("../graphics/graphics"), h = (t("../CCNode"), cc.v2()), u = r.mat4.create(), _ = []; function f(t, e, i) { _.length = 0; for (var n = 2 * Math.PI / i, r = 0; r < i; ++r) _.push(cc.v2(e.x * Math.cos(n * r) + t.x, e.y * Math.sin(n * r) + t.y)); return _; } var d = cc.Enum({ RECT: 0, ELLIPSE: 1, IMAGE_STENCIL: 2 }), m = cc.Class({ name: "cc.Mask", extends: a, editor: !1, ctor: function() { this._graphics = null; this._enableMaterial = null; this._exitMaterial = null; this._clearMaterial = null; }, properties: { _spriteFrame: { default: null, type: cc.SpriteFrame }, _type: d.RECT, type: { get: function() { return this._type; }, set: function(t) { this._type = t; if (this._type !== d.IMAGE_STENCIL) { this.spriteFrame = null; this.alphaThreshold = 0; this._updateGraphics(); } if (this._renderData) { this.destroyRenderData(this._renderData); this._renderData = null; } this._activateMaterial(); }, type: d, tooltip: !1 }, spriteFrame: { type: cc.SpriteFrame, tooltip: !1, get: function() { return this._spriteFrame; }, set: function(t) { var e = this._spriteFrame; if (e !== t) { this._spriteFrame = t; this._applySpriteFrame(e); } } }, alphaThreshold: { default: 0, type: cc.Float, range: [ 0, 1, .1 ], slide: !0, tooltip: !1, notify: function() { if (cc.game.renderType !== cc.game.RENDER_TYPE_CANVAS) { var t = this.sharedMaterials[0]; t && t.setProperty("alphaThreshold", this.alphaThreshold); } else cc.warnID(4201); } }, inverted: { default: !1, type: cc.Boolean, tooltip: !1, notify: function() { cc.game.renderType !== cc.game.RENDER_TYPE_CANVAS || cc.warnID(4202); } }, _segments: 64, segements: { get: function() { return this._segments; }, set: function(t) { this._segments = s.clampf(t, 3, 1e4); this._updateGraphics(); }, type: cc.Integer, tooltip: !1 }, _resizeToTarget: { animatable: !1, set: function(t) { t && this._resizeNodeToTargetNode(); } } }, statics: { Type: d }, onLoad: function() { this._createGraphics(); }, onRestore: function() { this._createGraphics(); this._type !== d.IMAGE_STENCIL ? this._updateGraphics() : this._applySpriteFrame(); }, onEnable: function() { this._super(); if (this._type === d.IMAGE_STENCIL) { if (!this._spriteFrame || !this._spriteFrame.textureLoaded()) { this.markForRender(!1); if (this._spriteFrame) { this.markForUpdateRenderData(!1); this._spriteFrame.once("load", this._onTextureLoaded, this); this._spriteFrame.ensureLoadTexture(); } } } else this._updateGraphics(); this.node.on(cc.Node.EventType.POSITION_CHANGED, this._updateGraphics, this); this.node.on(cc.Node.EventType.ROTATION_CHANGED, this._updateGraphics, this); this.node.on(cc.Node.EventType.SCALE_CHANGED, this._updateGraphics, this); this.node.on(cc.Node.EventType.SIZE_CHANGED, this._updateGraphics, this); this.node.on(cc.Node.EventType.ANCHOR_CHANGED, this._updateGraphics, this); this.node._renderFlag |= c.FLAG_POST_RENDER; this._activateMaterial(); }, onDisable: function() { this._super(); this.node.off(cc.Node.EventType.POSITION_CHANGED, this._updateGraphics, this); this.node.off(cc.Node.EventType.ROTATION_CHANGED, this._updateGraphics, this); this.node.off(cc.Node.EventType.SCALE_CHANGED, this._updateGraphics, this); this.node.off(cc.Node.EventType.SIZE_CHANGED, this._updateGraphics, this); this.node.off(cc.Node.EventType.ANCHOR_CHANGED, this._updateGraphics, this); this.node._renderFlag &= ~c.FLAG_POST_RENDER; }, onDestroy: function() { this._super(); this._removeGraphics(); }, _resizeNodeToTargetNode: !1, _onTextureLoaded: function() { if (this._renderData) { this._renderData.uvDirty = !0; this._renderData.vertDirty = !0; this.markForUpdateRenderData(!0); } this.enabledInHierarchy && this._activateMaterial(); }, _applySpriteFrame: function(t) { t && t.off && t.off("load", this._onTextureLoaded, this); var e = this._spriteFrame; if (e) if (e.textureLoaded()) this._onTextureLoaded(null); else { e.once("load", this._onTextureLoaded, this); e.ensureLoadTexture(); } else this.disableRender(); }, _activateMaterial: function() { if (this._type !== d.IMAGE_STENCIL || this.spriteFrame && this.spriteFrame.textureLoaded()) { if (cc.game.renderType !== cc.game.RENDER_TYPE_CANVAS) { var t = this.sharedMaterials[0]; (t = t ? o.getInstantiatedMaterial(t, this) : o.getInstantiatedBuiltinMaterial("2d-sprite", this)).define("USE_ALPHA_TEST", !0); if (this._type === d.IMAGE_STENCIL) { var e = this.spriteFrame.getTexture(); t.define("_USE_MODEL", !1); t.define("USE_TEXTURE", !0); t.setProperty("texture", e); t.setProperty("alphaThreshold", this.alphaThreshold); } else { t.define("_USE_MODEL", !0); t.define("USE_TEXTURE", !1); } this._enableMaterial || (this._enableMaterial = o.getInstantiatedBuiltinMaterial("2d-sprite", this)); if (!this._exitMaterial) { this._exitMaterial = o.getInstantiatedBuiltinMaterial("2d-sprite", this); for (var i = this._exitMaterial.effect.getDefaultTechnique().passes, r = 0; r < i.length; r++) i[r].setStencilEnabled(n.default.STENCIL_DISABLE); } this._clearMaterial || (this._clearMaterial = o.getInstantiatedBuiltinMaterial("clear-stencil", this)); this.setMaterial(0, t); } this.markForRender(!0); } else this.markForRender(!1); }, _createGraphics: function() { if (!this._graphics) { this._graphics = new l(); this._graphics.node = this.node; this._graphics.lineWidth = 0; this._graphics.strokeColor = cc.color(0, 0, 0, 0); } }, _updateGraphics: function() { var t = this.node, e = this._graphics; e.clear(!1); var i = t._contentSize.width, n = t._contentSize.height, r = -i * t._anchorPoint.x, s = -n * t._anchorPoint.y; if (this._type === d.RECT) e.rect(r, s, i, n); else if (this._type === d.ELLIPSE) { for (var o = f(cc.v2(r + i / 2, s + n / 2), { x: i / 2, y: n / 2 }, this._segments), a = 0; a < o.length; ++a) { var c = o[a]; 0 === a ? e.moveTo(c.x, c.y) : e.lineTo(c.x, c.y); } e.close(); } cc.game.renderType === cc.game.RENDER_TYPE_CANVAS ? e.stroke() : e.fill(); }, _removeGraphics: function() { if (this._graphics) { this._graphics.destroy(); this._graphics = null; } if (this._clearGraphics) { this._clearGraphics.destroy(); this._clearGraphics = null; } }, _hitTest: function(t) { var e = this.node, i = e.getContentSize(), n = i.width, s = i.height, o = h; e._updateWorldMatrix(); if (!r.mat4.invert(u, e._worldMatrix)) return !1; r.vec2.transformMat4(o, t, u); o.x += e._anchorPoint.x * n; o.y += e._anchorPoint.y * s; var a = !1; if (this.type === d.RECT || this.type === d.IMAGE_STENCIL) a = o.x >= 0 && o.y >= 0 && o.x <= n && o.y <= s; else if (this.type === d.ELLIPSE) { var c = n / 2, l = s / 2, _ = o.x - .5 * n, f = o.y - .5 * s; a = _ * _ / (c * c) + f * f / (l * l) < 1; } this.inverted && (a = !a); return a; }, markForUpdateRenderData: function(t) { t && this.enabledInHierarchy ? this.node._renderFlag |= c.FLAG_UPDATE_RENDER_DATA : t || (this.node._renderFlag &= ~c.FLAG_UPDATE_RENDER_DATA); }, markForRender: function(t) { t && this.enabledInHierarchy ? this.node._renderFlag |= c.FLAG_RENDER | c.FLAG_UPDATE_RENDER_DATA | c.FLAG_POST_RENDER : t || (this.node._renderFlag &= ~(c.FLAG_RENDER | c.FLAG_POST_RENDER)); }, disableRender: function() { this.node._renderFlag &= ~(c.FLAG_RENDER | c.FLAG_UPDATE_RENDER_DATA | c.FLAG_POST_RENDER); } }); cc.Mask = e.exports = m; }), { "../../renderer/gfx": 349, "../CCNode": 52, "../assets/material/CCMaterial": 75, "../graphics/graphics": 142, "../renderer/render-flow": 245, "../utils/misc": 297, "../vmath": 317, "./CCRenderComponent": 106 } ], 102: [ (function(t, e, i) { "use strict"; var n = t("../components/CCRenderComponent"), r = t("../assets/material/CCMaterial"), s = t("../utils/texture-util"), o = t("../../core/utils/blend-func"), a = cc.Class({ name: "cc.MotionStreak", extends: n, mixins: [ o ], editor: !1, ctor: function() { this._points = []; }, properties: { preview: { default: !1, editorOnly: !0, notify: !1, animatable: !1 }, _fadeTime: 1, fadeTime: { get: function() { return this._fadeTime; }, set: function(t) { this._fadeTime = t; this.reset(); }, animatable: !1, tooltip: !1 }, _minSeg: 1, minSeg: { get: function() { return this._minSeg; }, set: function(t) { this._minSeg = t; }, animatable: !1, tooltip: !1 }, _stroke: 64, stroke: { get: function() { return this._stroke; }, set: function(t) { this._stroke = t; }, animatable: !1, tooltip: !1 }, _texture: { default: null, type: cc.Texture2D }, texture: { get: function() { return this._texture; }, set: function(t) { if (this._texture !== t) { this._texture = t; if (t && t.loaded) this._activateMaterial(); else { this.disableRender(); this._ensureLoadTexture(); } } }, type: cc.Texture2D, animatable: !1, tooltip: !1 }, _color: cc.Color.WHITE, color: { get: function() { return this._color; }, set: function(t) { this._color = t; }, type: cc.Color, tooltip: !1 }, _fastMode: !1, fastMode: { get: function() { return this._fastMode; }, set: function(t) { this._fastMode = t; }, animatable: !1, tooltip: !1 } }, onEnable: function() { this._super(); if (this._texture && this._texture.loaded) this._activateMaterial(); else { this.disableRender(); this._ensureLoadTexture(); } this.reset(); }, _ensureLoadTexture: function() { if (this._texture && !this._texture.loaded) { var t = this; s.postLoadTexture(this._texture, (function() { t._activateMaterial(); })); } }, _activateMaterial: function() { if (this._texture && this._texture.loaded) { var t = this.sharedMaterials[0]; (t = t ? r.getInstantiatedMaterial(t, this) : r.getInstantiatedBuiltinMaterial("2d-sprite", this)).setProperty("texture", this._texture); this.setMaterial(0, t); this.markForRender(!0); } else this.disableRender(); }, onFocusInEditor: !1, onLostFocusInEditor: !1, reset: function() { this._points.length = 0; var t = this._renderData; if (t) { t.dataLength = 0; t.vertexCount = 0; t.indiceCount = 0; } 0; } }); cc.MotionStreak = e.exports = a; }), { "../../core/utils/blend-func": 289, "../assets/material/CCMaterial": 75, "../components/CCRenderComponent": 106, "../utils/texture-util": 304 } ], 103: [ (function(t, e, i) { "use strict"; var n = cc.Enum({ Unified: 0, Free: 1 }), r = cc.Enum({ Horizontal: 0, Vertical: 1 }), s = cc.Enum({ PAGE_TURNING: 0 }), o = cc.Class({ name: "cc.PageView", extends: cc.ScrollView, editor: !1, ctor: function() { this._curPageIdx = 0; this._lastPageIdx = 0; this._pages = []; this._initContentPos = cc.v2(); this._scrollCenterOffsetX = []; this._scrollCenterOffsetY = []; }, properties: { sizeMode: { default: n.Unified, type: n, tooltip: !1, notify: function() { this._syncSizeMode(); } }, direction: { default: r.Horizontal, type: r, tooltip: !1, notify: function() { this._syncScrollDirection(); } }, scrollThreshold: { default: .5, type: cc.Float, slide: !0, range: [ 0, 1, .01 ], tooltip: !1 }, autoPageTurningThreshold: { default: 100, type: cc.Float, tooltip: !1 }, pageTurningEventTiming: { default: .1, type: cc.Float, range: [ 0, 1, .01 ], tooltip: !1 }, indicator: { default: null, type: cc.PageViewIndicator, tooltip: !1, notify: function() { this.indicator && this.indicator.setPageView(this); } }, pageTurningSpeed: { default: .3, type: cc.Float, tooltip: !1 }, pageEvents: { default: [], type: cc.Component.EventHandler, tooltip: !1 } }, statics: { SizeMode: n, Direction: r, EventType: s }, __preload: function() { this.node.on(cc.Node.EventType.SIZE_CHANGED, this._updateAllPagesSize, this); }, onEnable: function() { this._super(); this.node.on("scroll-ended-with-threshold", this._dispatchPageTurningEvent, this); }, onDisable: function() { this._super(); this.node.off("scroll-ended-with-threshold", this._dispatchPageTurningEvent, this); }, onLoad: function() { this._initPages(); this.indicator && this.indicator.setPageView(this); }, onDestroy: function() { this.node.off(cc.Node.EventType.SIZE_CHANGED, this._updateAllPagesSize, this); }, getCurrentPageIndex: function() { return this._curPageIdx; }, setCurrentPageIndex: function(t) { this.scrollToPage(t, !0); }, getPages: function() { return this._pages; }, addPage: function(t) { if (t && -1 === this._pages.indexOf(t) && this.content) { this.content.addChild(t); this._pages.push(t); this._updatePageView(); } }, insertPage: function(t, e) { if (!(e < 0) && t && -1 === this._pages.indexOf(t) && this.content) { if (e >= this._pages.length) this.addPage(t); else { this._pages.splice(e, 0, t); this.content.addChild(t); this._updatePageView(); } } }, removePage: function(t) { if (t && this.content) { var e = this._pages.indexOf(t); -1 !== e ? this.removePageAtIndex(e) : cc.warnID(4300, t.name); } }, removePageAtIndex: function(t) { var e = this._pages; if (!(t < 0 || t >= e.length)) { var i = e[t]; if (i) { this.content.removeChild(i); e.splice(t, 1); this._updatePageView(); } } }, removeAllPages: function() { if (this.content) { for (var t = this._pages, e = 0, i = t.length; e < i; e++) this.content.removeChild(t[e]); this._pages.length = 0; this._updatePageView(); } }, scrollToPage: function(t, e) { if (!(t < 0 || t >= this._pages.length)) { e = void 0 !== e ? e : .3; this._curPageIdx = t; this.scrollToOffset(this._moveOffsetValue(t), e, !0); this.indicator && this.indicator._changedState(); } }, getScrollEndedEventTiming: function() { return this.pageTurningEventTiming; }, _syncScrollDirection: function() { this.horizontal = this.direction === r.Horizontal; this.vertical = this.direction === r.Vertical; }, _syncSizeMode: function() { if (this.content) { var t = this.content.getComponent(cc.Layout); if (t) { if (this.sizeMode === n.Free && this._pages.length > 0) { var e = this._pages[this._pages.length - 1]; if (this.direction === r.Horizontal) { t.paddingLeft = (this._view.width - this._pages[0].width) / 2; t.paddingRight = (this._view.width - e.width) / 2; } else if (this.direction === r.Vertical) { t.paddingTop = (this._view.height - this._pages[0].height) / 2; t.paddingBottom = (this._view.height - e.height) / 2; } } t.updateLayout(); } } }, _updatePageView: function() { var t = this.content.getComponent(cc.Layout); t && t.enabled && t.updateLayout(); var e = this._pages.length; if (this._curPageIdx >= e) { this._curPageIdx = 0 === e ? 0 : e - 1; this._lastPageIdx = this._curPageIdx; } for (var i = this._initContentPos, n = 0; n < e; ++n) { var s = this._pages[n]; s.setSiblingIndex(n); this.direction === r.Horizontal ? this._scrollCenterOffsetX[n] = Math.abs(i.x + s.x) : this._scrollCenterOffsetY[n] = Math.abs(i.y + s.y); } this.indicator && this.indicator._refresh(); }, _updateAllPagesSize: function() { if (this.sizeMode === n.Unified) for (var t = this._pages, e = this._view.getContentSize(), i = 0, r = t.length; i < r; i++) t[i].setContentSize(e); }, _initPages: function() { if (this.content) { this._initContentPos = this.content.position; for (var t = this.content.children, e = 0; e < t.length; ++e) { var i = t[e]; this._pages.indexOf(i) >= 0 || this._pages.push(i); } this._syncScrollDirection(); this._syncSizeMode(); this._updatePageView(); } }, _dispatchPageTurningEvent: function() { if (this._lastPageIdx !== this._curPageIdx) { this._lastPageIdx = this._curPageIdx; cc.Component.EventHandler.emitEvents(this.pageEvents, this, s.PAGE_TURNING); this.node.emit("page-turning", this); } }, _isScrollable: function(t, e, i) { if (this.sizeMode === n.Free) { var s, o; if (this.direction === r.Horizontal) { s = this._scrollCenterOffsetX[e]; o = this._scrollCenterOffsetX[i]; return Math.abs(t.x) >= Math.abs(s - o) * this.scrollThreshold; } if (this.direction === r.Vertical) { s = this._scrollCenterOffsetY[e]; o = this._scrollCenterOffsetY[i]; return Math.abs(t.y) >= Math.abs(s - o) * this.scrollThreshold; } } else { if (this.direction === r.Horizontal) return Math.abs(t.x) >= this._view.width * this.scrollThreshold; if (this.direction === r.Vertical) return Math.abs(t.y) >= this._view.height * this.scrollThreshold; } }, _isQuicklyScrollable: function(t) { if (this.direction === r.Horizontal) { if (Math.abs(t.x) > this.autoPageTurningThreshold) return !0; } else if (this.direction === r.Vertical && Math.abs(t.y) > this.autoPageTurningThreshold) return !0; return !1; }, _moveOffsetValue: function(t) { var e = cc.v2(0, 0); this.sizeMode === n.Free ? this.direction === r.Horizontal ? e.x = this._scrollCenterOffsetX[t] : this.direction === r.Vertical && (e.y = this._scrollCenterOffsetY[t]) : this.direction === r.Horizontal ? e.x = t * this._view.width : this.direction === r.Vertical && (e.y = t * this._view.height); return e; }, _getDragDirection: function(t) { return this.direction === r.Horizontal ? 0 === t.x ? 0 : t.x > 0 ? 1 : -1 : this.direction === r.Vertical ? 0 === t.y ? 0 : t.y < 0 ? 1 : -1 : void 0; }, _handleReleaseLogic: function(t) { this._autoScrollToPage(); if (this._scrolling) { this._scrolling = !1; this._autoScrolling || this._dispatchEvent("scroll-ended"); } }, _autoScrollToPage: function() { var t = this._startBounceBackIfNeeded(), e = this._touchBeganPosition.sub(this._touchEndPosition); if (t) { var i = this._getDragDirection(e); if (0 === i) return; this._curPageIdx = i > 0 ? this._pages.length - 1 : 0; this.indicator && this.indicator._changedState(); } else { var n = this._curPageIdx, r = n + this._getDragDirection(e), s = this.pageTurningSpeed * Math.abs(n - r); if (r < this._pages.length) { if (this._isScrollable(e, n, r)) { this.scrollToPage(r, s); return; } var o = this._calculateTouchMoveVelocity(); if (this._isQuicklyScrollable(o)) { this.scrollToPage(r, s); return; } } this.scrollToPage(n, s); } }, _onTouchBegan: function(t, e) { this._touchBeganPosition = t.touch.getLocation(); this._super(t, e); }, _onTouchMoved: function(t, e) { this._super(t, e); }, _onTouchEnded: function(t, e) { this._touchEndPosition = t.touch.getLocation(); this._super(t, e); }, _onTouchCancelled: function(t, e) { this._touchEndPosition = t.touch.getLocation(); this._super(t, e); }, _onMouseWheel: function() {} }); cc.PageView = e.exports = o; }), {} ], 104: [ (function(t, e, i) { "use strict"; var n = cc.Enum({ HORIZONTAL: 0, VERTICAL: 1 }), r = cc.Class({ name: "cc.PageViewIndicator", extends: t("./CCComponent"), editor: !1, properties: { _layout: null, _pageView: null, _indicators: [], spriteFrame: { default: null, type: cc.SpriteFrame, tooltip: !1 }, direction: { default: n.HORIZONTAL, type: n, tooltip: !1 }, cellSize: { default: cc.size(20, 20), tooltip: !1 }, spacing: { default: 0, tooltip: !1 } }, statics: { Direction: n }, onLoad: function() { this._updateLayout(); }, setPageView: function(t) { this._pageView = t; this._refresh(); }, _updateLayout: function() { this._layout = this.getComponent(cc.Layout); this._layout || (this._layout = this.addComponent(cc.Layout)); if (this.direction === n.HORIZONTAL) { this._layout.type = cc.Layout.Type.HORIZONTAL; this._layout.spacingX = this.spacing; } else if (this.direction === n.VERTICAL) { this._layout.type = cc.Layout.Type.VERTICAL; this._layout.spacingY = this.spacing; } this._layout.resizeMode = cc.Layout.ResizeMode.CONTAINER; }, _createIndicator: function() { var t = new cc.Node(); t.addComponent(cc.Sprite).spriteFrame = this.spriteFrame; t.parent = this.node; t.width = this.cellSize.width; t.height = this.cellSize.height; return t; }, _changedState: function() { var t = this._indicators; if (0 !== t.length) { var e = this._pageView._curPageIdx; if (!(e >= t.length)) { for (var i = 0; i < t.length; ++i) { t[i].opacity = 127.5; } t[e].opacity = 255; } } }, _refresh: function() { if (this._pageView) { var t = this._indicators, e = this._pageView.getPages(); if (e.length !== t.length) { var i = 0; if (e.length > t.length) for (i = 0; i < e.length; ++i) t[i] || (t[i] = this._createIndicator()); else { for (i = t.length - e.length; i > 0; --i) { var n = t[i - 1]; this.node.removeChild(n); t.splice(i - 1, 1); } } this._layout && this._layout.enabledInHierarchy && this._layout.updateLayout(); this._changedState(); } } } }); cc.PageViewIndicator = e.exports = r; }), { "./CCComponent": 95 } ], 105: [ (function(t, e, i) { "use strict"; var n = t("../utils/misc"), r = t("./CCComponent"), s = cc.Enum({ HORIZONTAL: 0, VERTICAL: 1, FILLED: 2 }), o = cc.Class({ name: "cc.ProgressBar", extends: r, editor: !1, _initBarSprite: function() { if (this.barSprite) { var t = this.barSprite.node; if (!t) return; var e = this.node.getContentSize(), i = this.node.getAnchorPoint(), n = t.getContentSize(); t.parent === this.node && this.node.setContentSize(n); this.barSprite.fillType === cc.Sprite.FillType.RADIAL && (this.mode = s.FILLED); var r = t.getContentSize(); this.mode === s.HORIZONTAL ? this.totalLength = r.width : this.mode === s.VERTICAL ? this.totalLength = r.height : this.totalLength = this.barSprite.fillRange; if (t.parent === this.node) { var o = -e.width * i.x; t.setPosition(cc.v2(o, 0)); } } }, _updateBarStatus: function() { if (this.barSprite) { var t = this.barSprite.node; if (!t) return; var e, i, r, o = t.getAnchorPoint(), a = t.getContentSize(), c = t.getPosition(), l = cc.v2(0, .5), h = n.clamp01(this.progress), u = this.totalLength * h; switch (this.mode) { case s.HORIZONTAL: this.reverse && (l = cc.v2(1, .5)); e = cc.size(u, a.height); i = this.totalLength; r = a.height; break; case s.VERTICAL: l = this.reverse ? cc.v2(.5, 1) : cc.v2(.5, 0); e = cc.size(a.width, u); i = a.width; r = this.totalLength; } if (this.mode === s.FILLED) if (this.barSprite.type !== cc.Sprite.Type.FILLED) cc.warn("ProgressBar FILLED mode only works when barSprite's Type is FILLED!"); else { this.reverse && (u *= -1); this.barSprite.fillRange = u; } else if (this.barSprite.type !== cc.Sprite.Type.FILLED) { var _ = l.x - o.x, f = l.y - o.y, d = cc.v2(i * _, r * f); t.setPosition(c.x + d.x, c.y + d.y); t.setAnchorPoint(l); t.setContentSize(e); } else cc.warn("ProgressBar non-FILLED mode only works when barSprite's Type is non-FILLED!"); } }, properties: { barSprite: { default: null, type: cc.Sprite, tooltip: !1, notify: function() { this._initBarSprite(); }, animatable: !1 }, mode: { default: s.HORIZONTAL, type: s, tooltip: !1, notify: function() { if (this.barSprite) { var t = this.barSprite.node; if (!t) return; var e = t.getContentSize(); this.mode === s.HORIZONTAL ? this.totalLength = e.width : this.mode === s.VERTICAL ? this.totalLength = e.height : this.mode === s.FILLED && (this.totalLength = this.barSprite.fillRange); } }, animatable: !1 }, _N$totalLength: 1, totalLength: { range: [ 0, Number.MAX_VALUE ], tooltip: !1, get: function() { return this._N$totalLength; }, set: function(t) { this.mode === s.FILLED && (t = n.clamp01(t)); this._N$totalLength = t; this._updateBarStatus(); } }, progress: { default: 1, type: "Float", range: [ 0, 1, .1 ], slide: !0, tooltip: !1, notify: function() { this._updateBarStatus(); } }, reverse: { default: !1, tooltip: !1, notify: function() { this.barSprite && (this.barSprite.fillStart = 1 - this.barSprite.fillStart); this._updateBarStatus(); }, animatable: !1 } }, statics: { Mode: s } }); cc.ProgressBar = e.exports = o; }), { "../utils/misc": 297, "./CCComponent": 95 } ], 106: [ (function(t, e, i) { "use strict"; r(t("../../renderer/gfx")); var n = r(t("../../renderer/render-data/render-data")); function r(t) { return t && t.__esModule ? t : { default: t }; } var s = t("./CCComponent"), o = t("../renderer/render-flow"), a = (t("../platform/CCMacro").BlendFactor, t("../assets/material/CCMaterial")), c = cc.Class({ name: "RenderComponent", extends: s, editor: !1, properties: { _materials: { default: [], type: a }, sharedMaterials: { get: function() { return this._materials; }, set: function(t) { this._materials = t; this._activateMaterial(!0); }, type: [ a ], displayName: "Materials", animatable: !1 } }, ctor: function() { this._renderData = null; this.__allocedDatas = []; this._vertexFormat = null; this._toPostHandle = !1; this._assembler = this.constructor._assembler; this._postAssembler = this.constructor._postAssembler; }, onEnable: function() { this.node._renderComponent && (this.node._renderComponent.enabled = !1); this.node._renderComponent = this; this.node._renderFlag |= o.FLAG_RENDER | o.FLAG_UPDATE_RENDER_DATA; }, onDisable: function() { this.node._renderComponent = null; this.disableRender(); }, onDestroy: function() { for (var t = 0, e = this.__allocedDatas.length; t < e; t++) n.default.free(this.__allocedDatas[t]); this.__allocedDatas.length = 0; this._materials.length = 0; this._renderData = null; var i = this._uniforms; for (var r in i) _uniformPool.remove(_uniformPool._data.indexOf(i[r])); this._uniforms = null; this._defines = null; }, _canRender: function() { return this._enabled && this.node._activeInHierarchy; }, markForUpdateRenderData: function(t) { t && this._canRender() ? this.node._renderFlag |= o.FLAG_UPDATE_RENDER_DATA : t || (this.node._renderFlag &= ~o.FLAG_UPDATE_RENDER_DATA); }, markForRender: function(t) { t && this._canRender() ? this.node._renderFlag |= o.FLAG_RENDER : t || (this.node._renderFlag &= ~o.FLAG_RENDER); }, markForCustomIARender: function(t) { t && this._canRender() ? this.node._renderFlag |= o.FLAG_CUSTOM_IA_RENDER : t || (this.node._renderFlag &= ~o.FLAG_CUSTOM_IA_RENDER); }, disableRender: function() { this.node._renderFlag &= ~(o.FLAG_RENDER | o.FLAG_CUSTOM_IA_RENDER | o.FLAG_UPDATE_RENDER_DATA); }, requestRenderData: function() { var t = n.default.alloc(); this.__allocedDatas.push(t); return t; }, destroyRenderData: function(t) { var e = this.__allocedDatas.indexOf(t); if (-1 !== e) { this.__allocedDatas.splice(e, 1); n.default.free(t); } }, getMaterial: function(t) { if (t < 0 || t >= this._materials.length) return null; var e = this._materials[t]; if (!e) return null; var i = a.getInstantiatedMaterial(e, this); i !== e && this.setMaterial(t, i); return this._materials[t]; }, setMaterial: function(t, e) { this._materials[t] = e; e && this.markForUpdateRenderData(!0); }, _activateMaterial: function(t) {} }); c._assembler = null; c._postAssembler = null; cc.RenderComponent = e.exports = c; }), { "../../renderer/gfx": 349, "../../renderer/render-data/render-data": 369, "../assets/material/CCMaterial": 75, "../platform/CCMacro": 206, "../renderer/render-flow": 245, "./CCComponent": 95 } ], 107: [ (function(i, n, r) { "use strict"; var s = i("../platform/js"), o = i("../platform/CCMacro"), a = i("../utils/text-utils"), c = new (i("../utils/html-text-parser"))(), l = o.TextAlignment, h = o.VerticalTextAlignment; var u = new s.Pool(function(t) { 0; 0; return !!cc.isValid(t) && !t.getComponent(cc.LabelOutline); }, 20); u.get = function(i, n) { var r = this._get(); r || (r = new cc.PrivateNode("RICHTEXT_CHILD")); var s = r.getComponent(cc.Label); s || (s = r.addComponent(cc.Label)); r.setPosition(0, 0); r.setAnchorPoint(.5, .5); r.setContentSize(128, 128); r.skewX = 0; "string" !== ("object" === (e = typeof i) ? t(i) : e) && (i = "" + i); n.font instanceof cc.Font ? s.font = n.font : s.fontFamily = n.fontFamily; s.string = i; s.horizontalAlign = l.LEFT; s.verticalAlign = h.TOP; s.fontSize = n.fontSize || 40; s.overflow = 0; s.enableWrapText = !0; s.lineHeight = 40; s._enableBold(!1); s._enableItalics(!1); s._enableUnderline(!1); return r; }; var _ = cc.Class({ name: "cc.RichText", extends: cc.Component, ctor: function() { this._textArray = null; this._labelSegments = []; this._labelSegmentsCache = []; this._linesWidth = []; this._updateRichTextStatus = this._updateRichText; }, editor: !1, properties: { string: { default: "RichText", multiline: !0, tooltip: !1, notify: function() { this._updateRichTextStatus(); } }, horizontalAlign: { default: l.LEFT, type: l, tooltip: !1, animatable: !1, notify: function(t) { if (this.horizontalAlign !== t) { this._layoutDirty = !0; this._updateRichTextStatus(); } } }, fontSize: { default: 40, tooltip: !1, notify: function(t) { if (this.fontSize !== t) { this._layoutDirty = !0; this._updateRichTextStatus(); } } }, _fontFamily: "Arial", fontFamily: { tooltip: !1, get: function() { return this._fontFamily; }, set: function(t) { if (this._fontFamily !== t) { this._fontFamily = t; this._layoutDirty = !0; this._updateRichTextStatus(); } }, animatable: !1 }, font: { default: null, type: cc.TTFFont, tooltip: !1, notify: function(t) { if (this.font !== t) { this._layoutDirty = !0; if (this.font) { this.useSystemFont = !1; this._onTTFLoaded(); } else this.useSystemFont = !0; this._updateRichTextStatus(); } } }, _isSystemFontUsed: !0, useSystemFont: { get: function() { return this._isSystemFontUsed; }, set: function(t) { if ((t || this.font) && this._isSystemFontUsed !== t) { this._isSystemFontUsed = t; this._layoutDirty = !0; this._updateRichTextStatus(); } }, animatable: !1, tooltip: !1 }, maxWidth: { default: 0, tooltip: !1, notify: function(t) { if (this.maxWidth !== t) { this._layoutDirty = !0; this._updateRichTextStatus(); } } }, lineHeight: { default: 40, tooltip: !1, notify: function(t) { if (this.lineHeight !== t) { this._layoutDirty = !0; this._updateRichTextStatus(); } } }, imageAtlas: { default: null, type: cc.SpriteAtlas, tooltip: !1, notify: function(t) { if (this.imageAtlas !== t) { this._layoutDirty = !0; this._updateRichTextStatus(); } } }, handleTouchEvent: { default: !0, tooltip: !1, notify: function(t) { this.handleTouchEvent !== t && this.enabledInHierarchy && (this.handleTouchEvent ? this._addEventListeners() : this._removeEventListeners()); } } }, statics: { HorizontalAlign: l, VerticalAlign: h }, onEnable: function() { this.handleTouchEvent && this._addEventListeners(); this._updateRichText(); this._activateChildren(!0); }, onDisable: function() { this.handleTouchEvent && this._removeEventListeners(); this._activateChildren(!1); }, start: function() { this._onTTFLoaded(); }, _onColorChanged: function(t) { this.node.children.forEach((function(e) { e.color = t; })); }, _addEventListeners: function() { this.node.on(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this); this.node.on(cc.Node.EventType.COLOR_CHANGED, this._onColorChanged, this); }, _removeEventListeners: function() { this.node.off(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this); this.node.off(cc.Node.EventType.COLOR_CHANGED, this._onColorChanged, this); }, _updateLabelSegmentTextAttributes: function() { this._labelSegments.forEach(function(t) { this._applyTextAttribute(t); }.bind(this)); }, _createFontLabel: function(t) { return u.get(t, this); }, _onTTFLoaded: function() { if (this.font instanceof cc.TTFFont) if (this.font._nativeAsset) { this._layoutDirty = !0; this._updateRichText(); } else { var t = this; cc.loader.load(this.font.nativeUrl, (function(e, i) { t._layoutDirty = !0; t._updateRichText(); })); } else { this._layoutDirty = !0; this._updateRichText(); } }, _measureText: function(t, e) { var i = this, n = function(e) { var n = void 0; if (0 === i._labelSegmentsCache.length) { n = i._createFontLabel(e); i._labelSegmentsCache.push(n); } else (n = i._labelSegmentsCache[0]).getComponent(cc.Label).string = e; n._styleIndex = t; i._applyTextAttribute(n); return n.getContentSize().width; }; return e ? n(e) : n; }, _onTouchEnded: function(t) { for (var e = this, i = this.node.getComponents(cc.Component), n = function(n) { var r = e._labelSegments[n], s = r._clickHandler, o = r._clickParam; if (s && e._containsTouchLocation(r, t.touch.getLocation())) { i.forEach((function(e) { e.enabledInHierarchy && e[s] && e[s](t, o); })); t.stopPropagation(); } }, r = 0; r < this._labelSegments.length; ++r) n(r); }, _containsTouchLocation: function(t, e) { return t.getBoundingBoxToWorld().contains(e); }, _resetState: function() { for (var t = this.node.children, e = t.length - 1; e >= 0; e--) { var i = t[e]; if ("RICHTEXT_CHILD" === i.name || "RICHTEXT_Image_CHILD" === i.name) { i.parent === this.node ? i.parent = null : t.splice(e, 1); "RICHTEXT_CHILD" === i.name && u.put(i); } } this._labelSegments.length = 0; this._labelSegmentsCache.length = 0; this._linesWidth.length = 0; this._lineOffsetX = 0; this._lineCount = 1; this._labelWidth = 0; this._labelHeight = 0; this._layoutDirty = !0; }, onRestore: !1, _activateChildren: function(t) { for (var e = this.node.children.length - 1; e >= 0; e--) { var i = this.node.children[e]; "RICHTEXT_CHILD" !== i.name && "RICHTEXT_Image_CHILD" !== i.name || (i.active = t); } }, _addLabelSegment: function(t, e) { var i = void 0; 0 === this._labelSegmentsCache.length ? i = this._createFontLabel(t) : (i = this._labelSegmentsCache.pop()).getComponent(cc.Label).string = t; i._styleIndex = e; i._lineCount = this._lineCount; i.active = this.node.active; i.setAnchorPoint(0, 0); this._applyTextAttribute(i); this.node.addChild(i); this._labelSegments.push(i); return i; }, _updateRichTextWithMaxWidth: function(t, e, i) { var n = e; if (this._lineOffsetX > 0 && n + this._lineOffsetX > this.maxWidth) for (var r = 0; this._lineOffsetX <= this.maxWidth; ) { var s = this._getFirstWordLen(t, r, t.length), o = t.substr(r, s), c = this._measureText(i, o); if (!(this._lineOffsetX + c <= this.maxWidth)) { if (r > 0) { var l = t.substr(0, r); this._addLabelSegment(l, i); t = t.substr(r, t.length); n = this._measureText(i, t); } this._updateLineInfo(); break; } this._lineOffsetX += c; r += s; } if (n > this.maxWidth) for (var h = a.fragmentText(t, n, this.maxWidth, this._measureText(i)), u = 0; u < h.length; ++u) { var _ = h[u], f = this._addLabelSegment(_, i).getContentSize(); this._lineOffsetX += f.width; h.length > 1 && u < h.length - 1 && this._updateLineInfo(); } else { this._lineOffsetX += n; this._addLabelSegment(t, i); } }, _isLastComponentCR: function(t) { return t.length - 1 === t.lastIndexOf("\n"); }, _updateLineInfo: function() { this._linesWidth.push(this._lineOffsetX); this._lineOffsetX = 0; this._lineCount++; }, _needsUpdateTextLayout: function(t) { if (this._layoutDirty || !this._textArray || !t) return !0; if (this._textArray.length !== t.length) return !0; for (var e = 0; e < this._textArray.length; ++e) { var i = this._textArray[e], n = t[e]; if (i.text !== n.text) return !0; if (i.style) { if (n.style) { if (!!n.style.outline != !!i.style.outline) return !0; if (i.style.size !== n.style.size || i.style.italic !== n.style.italic || i.style.isImage !== n.style.isImage) return !0; if (i.style.isImage === n.style.isImage && i.style.src !== n.style.src) return !0; } else if (i.style.size || i.style.italic || i.style.isImage || i.style.outline) return !0; } else if (n.style && (n.style.size || n.style.italic || n.style.isImage || n.style.outline)) return !0; } return !1; }, _addRichTextImageElement: function(t) { var e = t.style.src, i = this.imageAtlas.getSpriteFrame(e); if (i) { var n = new cc.PrivateNode("RICHTEXT_Image_CHILD"), r = n.addComponent(cc.Sprite); n.setAnchorPoint(0, 0); r.type = cc.Sprite.Type.SLICED; r.sizeMode = cc.Sprite.SizeMode.CUSTOM; this.node.addChild(n); this._labelSegments.push(n); var s = i.getRect(), o = 1, a = s.width, c = s.height, l = t.style.imageWidth, h = t.style.imageHeight; if (h > 0 && h < this.lineHeight) { a *= o = h / c; c *= o; } else { a *= o = this.lineHeight / c; c *= o; } l > 0 && (a = l); if (this.maxWidth > 0) { this._lineOffsetX + a > this.maxWidth && this._updateLineInfo(); this._lineOffsetX += a; } else { this._lineOffsetX += a; this._lineOffsetX > this._labelWidth && (this._labelWidth = this._lineOffsetX); } r.spriteFrame = i; n.setContentSize(a, c); n._lineCount = this._lineCount; if (t.style.event) { t.style.event.click && (n._clickHandler = t.style.event.click); t.style.event.param ? n._clickParam = t.style.event.param : n._clickParam = ""; } else n._clickHandler = null; } else cc.warnID(4400); }, _updateRichText: function() { if (this.enabled) { var t = c.parse(this.string); if (this._needsUpdateTextLayout(t)) { this._textArray = t; this._resetState(); for (var e = !1, i = void 0, n = 0; n < this._textArray.length; ++n) { var r = this._textArray[n], s = r.text; if ("" === s) { if (r.style && r.style.newline) { this._updateLineInfo(); continue; } if (r.style && r.style.isImage && this.imageAtlas) { this._addRichTextImageElement(r); continue; } } for (var o = s.split("\n"), l = 0; l < o.length; ++l) { var h = o[l]; if ("" !== h) { e = !1; if (this.maxWidth > 0) { var u = this._measureText(n, h); this._updateRichTextWithMaxWidth(h, u, n); o.length > 1 && l < o.length - 1 && this._updateLineInfo(); } else { i = this._addLabelSegment(h, n).getContentSize(); this._lineOffsetX += i.width; this._lineOffsetX > this._labelWidth && (this._labelWidth = this._lineOffsetX); o.length > 1 && l < o.length - 1 && this._updateLineInfo(); } } else { if (this._isLastComponentCR(s) && l === o.length - 1) continue; this._updateLineInfo(); e = !0; } } } e || this._linesWidth.push(this._lineOffsetX); this.maxWidth > 0 && (this._labelWidth = this.maxWidth); this._labelHeight = (this._lineCount + a.BASELINE_RATIO) * this.lineHeight; this.node.setContentSize(this._labelWidth, this._labelHeight); this._updateRichTextPosition(); this._layoutDirty = !1; } else { this._textArray = t; this._updateLabelSegmentTextAttributes(); } } }, _getFirstWordLen: function(t, e, i) { var n = t.charAt(e); if (a.isUnicodeCJK(n) || a.isUnicodeSpace(n)) return 1; for (var r = 1, s = e + 1; s < i; ++s) { n = t.charAt(s); if (a.isUnicodeSpace(n) || a.isUnicodeCJK(n)) break; r++; } return r; }, _updateRichTextPosition: function() { for (var t = 0, e = 1, i = this._lineCount, n = 0; n < this._labelSegments.length; ++n) { var r = this._labelSegments[n], s = r._lineCount; if (s > e) { t = 0; e = s; } var o = 0; switch (this.horizontalAlign) { case l.LEFT: o = -this._labelWidth / 2; break; case l.CENTER: o = -this._linesWidth[s - 1] / 2; break; case l.RIGHT: o = this._labelWidth / 2 - this._linesWidth[s - 1]; } r.x = t + o; var a = r.getContentSize(); r.y = this.lineHeight * (i - s) - this._labelHeight / 2; s === e && (t += a.width); } }, _convertLiteralColorValue: function(t) { var e = t.toUpperCase(); return cc.Color[e] ? cc.Color[e] : cc.color().fromHEX(t); }, _applyTextAttribute: function(t) { var e = t.getComponent(cc.Label); if (e) { var i = t._styleIndex; this._isSystemFontUsed && (e.fontFamily = this._fontFamily); e.useSystemFont = this._isSystemFontUsed; e.lineHeight = this.lineHeight; e.horizontalAlign = l.LEFT; e.verticalAlign = h.CENTER; var n = null; this._textArray[i] && (n = this._textArray[i].style); n && n.color ? t.color = this._convertLiteralColorValue(n.color) : t.color = this.node.color; e._enableBold(n && n.bold); e._enableItalics(n && n.italic); n && n.italic && (t.skewX = 12); e._enableUnderline(n && n.underline); if (n && n.outline) { var r = t.getComponent(cc.LabelOutline); r || (r = t.addComponent(cc.LabelOutline)); r.color = this._convertLiteralColorValue(n.outline.color); r.width = n.outline.width; } n && n.size ? e.fontSize = n.size : e.fontSize = this.fontSize; e._updateRenderData(!0); if (n && n.event) { n.event.click && (t._clickHandler = n.event.click); n.event.param ? t._clickParam = n.event.param : t._clickParam = ""; } else t._clickHandler = null; } }, onDestroy: function() { for (var t = 0; t < this._labelSegments.length; ++t) { this._labelSegments[t].removeFromParent(); u.put(this._labelSegments[t]); } } }); cc.RichText = n.exports = _; }), { "../platform/CCMacro": 206, "../platform/js": 221, "../utils/html-text-parser": 293, "../utils/text-utils": 303 } ], 108: [ (function(t, e, i) { "use strict"; var n = t("../utils/misc"), r = (t("./CCComponent"), cc.Enum({ HORIZONTAL: 0, VERTICAL: 1 })), s = cc.Class({ name: "cc.Scrollbar", extends: t("./CCComponent"), editor: !1, properties: { _scrollView: null, _touching: !1, _autoHideRemainingTime: { default: 0, serializable: !1 }, _opacity: 255, handle: { default: null, type: cc.Sprite, tooltip: !1, notify: function() { this._onScroll(cc.v2(0, 0)); }, animatable: !1 }, direction: { default: r.HORIZONTAL, type: r, tooltip: !1, notify: function() { this._onScroll(cc.v2(0, 0)); }, animatable: !1 }, enableAutoHide: { default: !0, animatable: !1, tooltip: !1 }, autoHideTime: { default: 1, animatable: !1, tooltip: !1 } }, statics: { Direction: r }, setTargetScrollView: function(t) { this._scrollView = t; }, _convertToScrollViewSpace: function(t) { var e = this._scrollView.node, i = t.convertToWorldSpaceAR(cc.v2(-t.anchorX * t.width, -t.anchorY * t.height)), n = e.convertToNodeSpaceAR(i); n.x += e.anchorX * e.width; n.y += e.anchorY * e.height; return n; }, _setOpacity: function(t) { if (this.handle) { this.node.opacity = t; this.handle.node.opacity = t; } }, _onScroll: function(t) { if (this._scrollView) { var e = this._scrollView.content; if (e) { var i = e.getContentSize(), n = this._scrollView.node.getContentSize(), s = this.node.getContentSize(); if (this._conditionalDisableScrollBar(i, n)) return; if (this.enableAutoHide) { this._autoHideRemainingTime = this.autoHideTime; this._setOpacity(this._opacity); } var o = 0, a = 0, c = 0, l = 0, h = 0; if (this.direction === r.HORIZONTAL) { o = i.width; a = n.width; h = s.width; c = t.x; l = -this._convertToScrollViewSpace(e).x; } else if (this.direction === r.VERTICAL) { o = i.height; a = n.height; h = s.height; c = t.y; l = -this._convertToScrollViewSpace(e).y; } var u = this._calculateLength(o, a, h, c), _ = this._calculatePosition(o, a, h, l, c, u); this._updateLength(u); this._updateHanlderPosition(_); } } }, _updateHanlderPosition: function(t) { if (this.handle) { var e = this._fixupHandlerPosition(); this.handle.node.setPosition(t.x + e.x, t.y + e.y); } }, _fixupHandlerPosition: function() { var t = this.node.getContentSize(), e = this.node.getAnchorPoint(), i = this.handle.node.getContentSize(), n = this.handle.node.parent, s = this.node.convertToWorldSpaceAR(cc.v2(-t.width * e.x, -t.height * e.y)), o = n.convertToNodeSpaceAR(s); this.direction === r.HORIZONTAL ? o = cc.v2(o.x, o.y + (t.height - i.height) / 2) : this.direction === r.VERTICAL && (o = cc.v2(o.x + (t.width - i.width) / 2, o.y)); this.handle.node.setPosition(o); return o; }, _onTouchBegan: function() { this.enableAutoHide && (this._touching = !0); }, _conditionalDisableScrollBar: function(t, e) { return t.width <= e.width && this.direction === r.HORIZONTAL || t.height <= e.height && this.direction === r.VERTICAL; }, _onTouchEnded: function() { if (this.enableAutoHide) { this._touching = !1; if (!(this.autoHideTime <= 0)) { if (this._scrollView) { var t = this._scrollView.content; if (t) { var e = t.getContentSize(), i = this._scrollView.node.getContentSize(); if (this._conditionalDisableScrollBar(e, i)) return; } } this._autoHideRemainingTime = this.autoHideTime; } } }, _calculateLength: function(t, e, i, n) { var r = t; n && (r += 20 * (n > 0 ? n : -n)); return i * (e / r); }, _calculatePosition: function(t, e, i, s, o, a) { var c = t - e; o && (c += Math.abs(o)); var l = 0; if (c) { l = s / c; l = n.clamp01(l); } var h = (i - a) * l; return this.direction === r.VERTICAL ? cc.v2(0, h) : cc.v2(h, 0); }, _updateLength: function(t) { if (this.handle) { var e = this.handle.node, i = e.getContentSize(); e.setAnchorPoint(cc.v2(0, 0)); this.direction === r.HORIZONTAL ? e.setContentSize(t, i.height) : e.setContentSize(i.width, t); } }, _processAutoHide: function(t) { if (this.enableAutoHide && !(this._autoHideRemainingTime <= 0) && !this._touching) { this._autoHideRemainingTime -= t; if (this._autoHideRemainingTime <= this.autoHideTime) { this._autoHideRemainingTime = Math.max(0, this._autoHideRemainingTime); var e = this._opacity * (this._autoHideRemainingTime / this.autoHideTime); this._setOpacity(e); } } }, start: function() { this.enableAutoHide && this._setOpacity(0); }, hide: function() { this._autoHideRemainingTime = 0; this._setOpacity(0); }, show: function() { this._autoHideRemainingTime = this.autoHideTime; this._setOpacity(this._opacity); }, update: function(t) { this._processAutoHide(t); } }); cc.Scrollbar = e.exports = s; }), { "../utils/misc": 297, "./CCComponent": 95 } ], 109: [ (function(t, e, i) { "use strict"; var n = t("../CCNode").EventType, r = function(t) { return (t -= 1) * t * t * t * t + 1; }, s = function() { return new Date().getMilliseconds(); }, o = cc.Enum({ SCROLL_TO_TOP: 0, SCROLL_TO_BOTTOM: 1, SCROLL_TO_LEFT: 2, SCROLL_TO_RIGHT: 3, SCROLLING: 4, BOUNCE_TOP: 5, BOUNCE_BOTTOM: 6, BOUNCE_LEFT: 7, BOUNCE_RIGHT: 8, SCROLL_ENDED: 9, TOUCH_UP: 10, AUTOSCROLL_ENDED_WITH_THRESHOLD: 11, SCROLL_BEGAN: 12 }), a = { "scroll-to-top": o.SCROLL_TO_TOP, "scroll-to-bottom": o.SCROLL_TO_BOTTOM, "scroll-to-left": o.SCROLL_TO_LEFT, "scroll-to-right": o.SCROLL_TO_RIGHT, scrolling: o.SCROLLING, "bounce-bottom": o.BOUNCE_BOTTOM, "bounce-left": o.BOUNCE_LEFT, "bounce-right": o.BOUNCE_RIGHT, "bounce-top": o.BOUNCE_TOP, "scroll-ended": o.SCROLL_ENDED, "touch-up": o.TOUCH_UP, "scroll-ended-with-threshold": o.AUTOSCROLL_ENDED_WITH_THRESHOLD, "scroll-began": o.SCROLL_BEGAN }, c = cc.Class({ name: "cc.ScrollView", extends: t("./CCViewGroup"), editor: !1, ctor: function() { this._topBoundary = 0; this._bottomBoundary = 0; this._leftBoundary = 0; this._rightBoundary = 0; this._touchMoveDisplacements = []; this._touchMoveTimeDeltas = []; this._touchMovePreviousTimestamp = 0; this._touchMoved = !1; this._autoScrolling = !1; this._autoScrollAttenuate = !1; this._autoScrollStartPosition = cc.v2(0, 0); this._autoScrollTargetDelta = cc.v2(0, 0); this._autoScrollTotalTime = 0; this._autoScrollAccumulatedTime = 0; this._autoScrollCurrentlyOutOfBoundary = !1; this._autoScrollBraking = !1; this._autoScrollBrakingStartPosition = cc.v2(0, 0); this._outOfBoundaryAmount = cc.v2(0, 0); this._outOfBoundaryAmountDirty = !0; this._stopMouseWheel = !1; this._mouseWheelEventElapsedTime = 0; this._isScrollEndedWithThresholdEventFired = !1; this._scrollEventEmitMask = 0; this._isBouncing = !1; this._scrolling = !1; }, properties: { content: { default: void 0, type: cc.Node, tooltip: !1, formerlySerializedAs: "content", notify: function(t) { this._calculateBoundary(); } }, horizontal: { default: !0, animatable: !1, tooltip: !1 }, vertical: { default: !0, animatable: !1, tooltip: !1 }, inertia: { default: !0, tooltip: !1 }, brake: { default: .5, type: "Float", range: [ 0, 1, .1 ], tooltip: !1 }, elastic: { default: !0, animatable: !1, tooltip: !1 }, bounceDuration: { default: 1, range: [ 0, 10 ], tooltip: !1 }, horizontalScrollBar: { default: void 0, type: cc.Scrollbar, tooltip: !1, notify: function() { if (this.horizontalScrollBar) { this.horizontalScrollBar.setTargetScrollView(this); this._updateScrollBar(0); } }, animatable: !1 }, verticalScrollBar: { default: void 0, type: cc.Scrollbar, tooltip: !1, notify: function() { if (this.verticalScrollBar) { this.verticalScrollBar.setTargetScrollView(this); this._updateScrollBar(0); } }, animatable: !1 }, scrollEvents: { default: [], type: cc.Component.EventHandler, tooltip: !1 }, cancelInnerEvents: { default: !0, animatable: !1, tooltip: !1 }, _view: { get: function() { if (this.content) return this.content.parent; } } }, statics: { EventType: o }, scrollToBottom: function(t, e) { var i = this._calculateMovePercentDelta({ anchor: cc.v2(0, 0), applyToHorizontal: !1, applyToVertical: !0 }); t ? this._startAutoScroll(i, t, !1 !== e) : this._moveContent(i, !0); }, scrollToTop: function(t, e) { var i = this._calculateMovePercentDelta({ anchor: cc.v2(0, 1), applyToHorizontal: !1, applyToVertical: !0 }); t ? this._startAutoScroll(i, t, !1 !== e) : this._moveContent(i); }, scrollToLeft: function(t, e) { var i = this._calculateMovePercentDelta({ anchor: cc.v2(0, 0), applyToHorizontal: !0, applyToVertical: !1 }); t ? this._startAutoScroll(i, t, !1 !== e) : this._moveContent(i); }, scrollToRight: function(t, e) { var i = this._calculateMovePercentDelta({ anchor: cc.v2(1, 0), applyToHorizontal: !0, applyToVertical: !1 }); t ? this._startAutoScroll(i, t, !1 !== e) : this._moveContent(i); }, scrollToTopLeft: function(t, e) { var i = this._calculateMovePercentDelta({ anchor: cc.v2(0, 1), applyToHorizontal: !0, applyToVertical: !0 }); t ? this._startAutoScroll(i, t, !1 !== e) : this._moveContent(i); }, scrollToTopRight: function(t, e) { var i = this._calculateMovePercentDelta({ anchor: cc.v2(1, 1), applyToHorizontal: !0, applyToVertical: !0 }); t ? this._startAutoScroll(i, t, !1 !== e) : this._moveContent(i); }, scrollToBottomLeft: function(t, e) { var i = this._calculateMovePercentDelta({ anchor: cc.v2(0, 0), applyToHorizontal: !0, applyToVertical: !0 }); t ? this._startAutoScroll(i, t, !1 !== e) : this._moveContent(i); }, scrollToBottomRight: function(t, e) { var i = this._calculateMovePercentDelta({ anchor: cc.v2(1, 0), applyToHorizontal: !0, applyToVertical: !0 }); t ? this._startAutoScroll(i, t, !1 !== e) : this._moveContent(i); }, scrollToOffset: function(t, e, i) { var n = this.getMaxScrollOffset(), r = cc.v2(0, 0); 0 === n.x ? r.x = 0 : r.x = t.x / n.x; 0 === n.y ? r.y = 1 : r.y = (n.y - t.y) / n.y; this.scrollTo(r, e, i); }, getScrollOffset: function() { var t = this._getContentTopBoundary() - this._topBoundary, e = this._getContentLeftBoundary() - this._leftBoundary; return cc.v2(e, t); }, getMaxScrollOffset: function() { var t = this._view.getContentSize(), e = this.content.getContentSize(), i = e.width - t.width, n = e.height - t.height; i = i >= 0 ? i : 0; n = n >= 0 ? n : 0; return cc.v2(i, n); }, scrollToPercentHorizontal: function(t, e, i) { var n = this._calculateMovePercentDelta({ anchor: cc.v2(t, 0), applyToHorizontal: !0, applyToVertical: !1 }); e ? this._startAutoScroll(n, e, !1 !== i) : this._moveContent(n); }, scrollTo: function(t, e, i) { var n = this._calculateMovePercentDelta({ anchor: cc.v2(t), applyToHorizontal: !0, applyToVertical: !0 }); e ? this._startAutoScroll(n, e, !1 !== i) : this._moveContent(n); }, scrollToPercentVertical: function(t, e, i) { var n = this._calculateMovePercentDelta({ anchor: cc.v2(0, t), applyToHorizontal: !1, applyToVertical: !0 }); e ? this._startAutoScroll(n, e, !1 !== i) : this._moveContent(n); }, stopAutoScroll: function() { this._autoScrolling = !1; this._autoScrollAccumulatedTime = this._autoScrollTotalTime; }, setContentPosition: function(t) { if (!t.fuzzyEquals(this.getContentPosition(), 1e-4)) { this.content.setPosition(t); this._outOfBoundaryAmountDirty = !0; } }, getContentPosition: function() { return this.content.getPosition(); }, isScrolling: function() { return this._scrolling; }, isAutoScrolling: function() { return this._autoScrolling; }, _registerEvent: function() { this.node.on(cc.Node.EventType.TOUCH_START, this._onTouchBegan, this, !0); this.node.on(cc.Node.EventType.TOUCH_MOVE, this._onTouchMoved, this, !0); this.node.on(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this, !0); this.node.on(cc.Node.EventType.TOUCH_CANCEL, this._onTouchCancelled, this, !0); this.node.on(cc.Node.EventType.MOUSE_WHEEL, this._onMouseWheel, this, !0); }, _unregisterEvent: function() { this.node.off(cc.Node.EventType.TOUCH_START, this._onTouchBegan, this, !0); this.node.off(cc.Node.EventType.TOUCH_MOVE, this._onTouchMoved, this, !0); this.node.off(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this, !0); this.node.off(cc.Node.EventType.TOUCH_CANCEL, this._onTouchCancelled, this, !0); this.node.off(cc.Node.EventType.MOUSE_WHEEL, this._onMouseWheel, this, !0); }, _onMouseWheel: function(t, e) { if (this.enabledInHierarchy && !this._hasNestedViewGroup(t, e)) { var i = cc.v2(0, 0), n = -.1; n = -7; this.vertical ? i = cc.v2(0, t.getScrollY() * n) : this.horizontal && (i = cc.v2(t.getScrollY() * n, 0)); this._mouseWheelEventElapsedTime = 0; this._processDeltaMove(i); if (!this._stopMouseWheel) { this._handlePressLogic(); this.schedule(this._checkMouseWheel, 1 / 60); this._stopMouseWheel = !0; } this._stopPropagationIfTargetIsMe(t); } }, _checkMouseWheel: function(t) { if (this._getHowMuchOutOfBoundary().fuzzyEquals(cc.v2(0, 0), 1e-4)) { this._mouseWheelEventElapsedTime += t; if (this._mouseWheelEventElapsedTime > .1) { this._onScrollBarTouchEnded(); this.unschedule(this._checkMouseWheel); this._stopMouseWheel = !1; } } else { this._processInertiaScroll(); this.unschedule(this._checkMouseWheel); this._stopMouseWheel = !1; } }, _calculateMovePercentDelta: function(t) { var e = t.anchor, i = t.applyToHorizontal, n = t.applyToVertical; this._calculateBoundary(); e = e.clampf(cc.v2(0, 0), cc.v2(1, 1)); var r = this._view.getContentSize(), s = this.content.getContentSize(), o = this._getContentBottomBoundary() - this._bottomBoundary; o = -o; var a = this._getContentLeftBoundary() - this._leftBoundary; a = -a; var c = cc.v2(0, 0), l = 0; if (i) { l = s.width - r.width; c.x = a - l * e.x; } if (n) { l = s.height - r.height; c.y = o - l * e.y; } return c; }, _moveContentToTopLeft: function(t) { var e = this.content.getContentSize(), i = this._getContentBottomBoundary() - this._bottomBoundary; i = -i; var n = cc.v2(0, 0), r = 0, s = this._getContentLeftBoundary() - this._leftBoundary; s = -s; if (e.height < t.height) { r = e.height - t.height; n.y = i - r; } if (e.width < t.width) { r = e.width - t.width; n.x = s; } this._updateScrollBarState(); this._moveContent(n); this._adjustContentOutOfBoundary(); }, _calculateBoundary: function() { if (this.content) { var t = this.content.getComponent(cc.Layout); t && t.enabledInHierarchy && t.updateLayout(); var e = this._view.getContentSize(), i = e.width * this._view.anchorX, n = e.height * this._view.anchorY; this._leftBoundary = -i; this._bottomBoundary = -n; this._rightBoundary = this._leftBoundary + e.width; this._topBoundary = this._bottomBoundary + e.height; this._moveContentToTopLeft(e); } }, _hasNestedViewGroup: function(t, e) { if (t.eventPhase === cc.Event.CAPTURING_PHASE) { if (e) for (var i = 0; i < e.length; ++i) { var n = e[i]; if (this.node === n) return !!t.target.getComponent(cc.ViewGroup); if (n.getComponent(cc.ViewGroup)) return !0; } return !1; } }, _stopPropagationIfTargetIsMe: function(t) { t.eventPhase === cc.Event.AT_TARGET && t.target === this.node && t.stopPropagation(); }, _onTouchBegan: function(t, e) { if (this.enabledInHierarchy && !this._hasNestedViewGroup(t, e)) { var i = t.touch; this.content && this._handlePressLogic(i); this._touchMoved = !1; this._stopPropagationIfTargetIsMe(t); } }, _onTouchMoved: function(t, e) { if (this.enabledInHierarchy && !this._hasNestedViewGroup(t, e)) { var i = t.touch; this.content && this._handleMoveLogic(i); if (this.cancelInnerEvents) { if (i.getLocation().sub(i.getStartLocation()).mag() > 7 && !this._touchMoved && t.target !== this.node) { var n = new cc.Event.EventTouch(t.getTouches(), t.bubbles); n.type = cc.Node.EventType.TOUCH_CANCEL; n.touch = t.touch; n.simulate = !0; t.target.dispatchEvent(n); this._touchMoved = !0; } this._stopPropagationIfTargetIsMe(t); } } }, _onTouchEnded: function(t, e) { if (this.enabledInHierarchy && !this._hasNestedViewGroup(t, e)) { this._dispatchEvent("touch-up"); var i = t.touch; this.content && this._handleReleaseLogic(i); this._touchMoved ? t.stopPropagation() : this._stopPropagationIfTargetIsMe(t); } }, _onTouchCancelled: function(t, e) { if (this.enabledInHierarchy && !this._hasNestedViewGroup(t, e)) { if (!t.simulate) { var i = t.touch; this.content && this._handleReleaseLogic(i); } this._stopPropagationIfTargetIsMe(t); } }, _processDeltaMove: function(t) { this._scrollChildren(t); this._gatherTouchMove(t); }, _handleMoveLogic: function(t) { var e = t.getDelta(); this._processDeltaMove(e); }, _scrollChildren: function(t) { var e = t = this._clampDelta(t), i = void 0; if (this.elastic) { i = this._getHowMuchOutOfBoundary(); e.x *= 0 === i.x ? 1 : .5; e.y *= 0 === i.y ? 1 : .5; } if (!this.elastic) { i = this._getHowMuchOutOfBoundary(e); e = e.add(i); } var n = -1; if (e.y > 0) { this.content.y - this.content.anchorY * this.content.height + e.y > this._bottomBoundary && (n = "scroll-to-bottom"); } else if (e.y < 0) { this.content.y - this.content.anchorY * this.content.height + this.content.height + e.y <= this._topBoundary && (n = "scroll-to-top"); } if (e.x < 0) { this.content.x - this.content.anchorX * this.content.width + this.content.width + e.x <= this._rightBoundary && (n = "scroll-to-right"); } else if (e.x > 0) { this.content.x - this.content.anchorX * this.content.width + e.x >= this._leftBoundary && (n = "scroll-to-left"); } this._moveContent(e, !1); if (0 !== e.x || 0 !== e.y) { if (!this._scrolling) { this._scrolling = !0; this._dispatchEvent("scroll-began"); } this._dispatchEvent("scrolling"); } -1 !== n && this._dispatchEvent(n); }, _handlePressLogic: function() { this._autoScrolling && this._dispatchEvent("scroll-ended"); this._autoScrolling = !1; this._isBouncing = !1; this._touchMovePreviousTimestamp = s(); this._touchMoveDisplacements.length = 0; this._touchMoveTimeDeltas.length = 0; this._onScrollBarTouchBegan(); }, _clampDelta: function(t) { var e = this.content.getContentSize(), i = this._view.getContentSize(); e.width < i.width && (t.x = 0); e.height < i.height && (t.y = 0); return t; }, _gatherTouchMove: function(t) { t = this._clampDelta(t); for (;this._touchMoveDisplacements.length >= 5; ) { this._touchMoveDisplacements.shift(); this._touchMoveTimeDeltas.shift(); } this._touchMoveDisplacements.push(t); var e = s(); this._touchMoveTimeDeltas.push((e - this._touchMovePreviousTimestamp) / 1e3); this._touchMovePreviousTimestamp = e; }, _startBounceBackIfNeeded: function() { if (!this.elastic) return !1; var t = this._getHowMuchOutOfBoundary(); if ((t = this._clampDelta(t)).fuzzyEquals(cc.v2(0, 0), 1e-4)) return !1; var e = Math.max(this.bounceDuration, 0); this._startAutoScroll(t, e, !0); if (!this._isBouncing) { t.y > 0 && this._dispatchEvent("bounce-top"); t.y < 0 && this._dispatchEvent("bounce-bottom"); t.x > 0 && this._dispatchEvent("bounce-right"); t.x < 0 && this._dispatchEvent("bounce-left"); this._isBouncing = !0; } return !0; }, _processInertiaScroll: function() { if (!this._startBounceBackIfNeeded() && this.inertia) { var t = this._calculateTouchMoveVelocity(); !t.fuzzyEquals(cc.v2(0, 0), 1e-4) && this.brake < 1 && this._startInertiaScroll(t); } this._onScrollBarTouchEnded(); }, _handleReleaseLogic: function(t) { var e = t.getDelta(); this._gatherTouchMove(e); this._processInertiaScroll(); if (this._scrolling) { this._scrolling = !1; this._autoScrolling || this._dispatchEvent("scroll-ended"); } }, _isOutOfBoundary: function() { return !this._getHowMuchOutOfBoundary().fuzzyEquals(cc.v2(0, 0), 1e-4); }, _isNecessaryAutoScrollBrake: function() { if (this._autoScrollBraking) return !0; if (this._isOutOfBoundary()) { if (!this._autoScrollCurrentlyOutOfBoundary) { this._autoScrollCurrentlyOutOfBoundary = !0; this._autoScrollBraking = !0; this._autoScrollBrakingStartPosition = this.getContentPosition(); return !0; } } else this._autoScrollCurrentlyOutOfBoundary = !1; return !1; }, getScrollEndedEventTiming: function() { return 1e-4; }, _processAutoScrolling: function(t) { var e = this._isNecessaryAutoScrollBrake(), i = e ? .05 : 1; this._autoScrollAccumulatedTime += t * (1 / i); var n = Math.min(1, this._autoScrollAccumulatedTime / this._autoScrollTotalTime); this._autoScrollAttenuate && (n = r(n)); var s = this._autoScrollStartPosition.add(this._autoScrollTargetDelta.mul(n)), o = Math.abs(n - 1) <= 1e-4; if (Math.abs(n - 1) <= this.getScrollEndedEventTiming() && !this._isScrollEndedWithThresholdEventFired) { this._dispatchEvent("scroll-ended-with-threshold"); this._isScrollEndedWithThresholdEventFired = !0; } if (this.elastic && !o) { var a = s.sub(this._autoScrollBrakingStartPosition); e && (a = a.mul(i)); s = this._autoScrollBrakingStartPosition.add(a); } else { var c = s.sub(this.getContentPosition()), l = this._getHowMuchOutOfBoundary(c); if (!l.fuzzyEquals(cc.v2(0, 0), 1e-4)) { s = s.add(l); o = !0; } } o && (this._autoScrolling = !1); var h = s.sub(this.getContentPosition()); this._moveContent(this._clampDelta(h), o); this._dispatchEvent("scrolling"); if (!this._autoScrolling) { this._isBouncing = !1; this._scrolling = !1; this._dispatchEvent("scroll-ended"); } }, _startInertiaScroll: function(t) { var e = t.mul(.7); this._startAttenuatingAutoScroll(e, t); }, _calculateAttenuatedFactor: function(t) { return this.brake <= 0 ? 1 - this.brake : (1 - this.brake) * (1 / (1 + 14e-6 * t + t * t * 8e-9)); }, _startAttenuatingAutoScroll: function(t, e) { var i = this._calculateAutoScrollTimeByInitalSpeed(e.mag()), n = t.normalize(), r = this.content.getContentSize(), s = this._view.getContentSize(), o = r.width - s.width, a = r.height - s.height, c = this._calculateAttenuatedFactor(o), l = this._calculateAttenuatedFactor(a); n = cc.v2(n.x * o * (1 - this.brake) * c, n.y * a * l * (1 - this.brake)); var h = t.mag(), u = n.mag() / h; n = n.add(t); if (this.brake > 0 && u > 7) { u = Math.sqrt(u); n = t.mul(u).add(t); } this.brake > 0 && u > 3 && (i *= u = 3); 0 === this.brake && u > 1 && (i *= u); this._startAutoScroll(n, i, !0); }, _calculateAutoScrollTimeByInitalSpeed: function(t) { return Math.sqrt(Math.sqrt(t / 5)); }, _startAutoScroll: function(t, e, i) { var n = this._flattenVectorByDirection(t); this._autoScrolling = !0; this._autoScrollTargetDelta = n; this._autoScrollAttenuate = i; this._autoScrollStartPosition = this.getContentPosition(); this._autoScrollTotalTime = e; this._autoScrollAccumulatedTime = 0; this._autoScrollBraking = !1; this._isScrollEndedWithThresholdEventFired = !1; this._autoScrollBrakingStartPosition = cc.v2(0, 0); this._getHowMuchOutOfBoundary().fuzzyEquals(cc.v2(0, 0), 1e-4) || (this._autoScrollCurrentlyOutOfBoundary = !0); }, _calculateTouchMoveVelocity: function() { var t = 0; if ((t = this._touchMoveTimeDeltas.reduce((function(t, e) { return t + e; }), t)) <= 0 || t >= .5) return cc.v2(0, 0); var e = cc.v2(0, 0); e = this._touchMoveDisplacements.reduce((function(t, e) { return t.add(e); }), e); return cc.v2(e.x * (1 - this.brake) / t, e.y * (1 - this.brake) / t); }, _flattenVectorByDirection: function(t) { var e = t; e.x = this.horizontal ? e.x : 0; e.y = this.vertical ? e.y : 0; return e; }, _moveContent: function(t, e) { var i = this._flattenVectorByDirection(t), n = this.getContentPosition().add(i); this.setContentPosition(n); var r = this._getHowMuchOutOfBoundary(); this._updateScrollBar(r); this.elastic && e && this._startBounceBackIfNeeded(); }, _getContentLeftBoundary: function() { return this.getContentPosition().x - this.content.getAnchorPoint().x * this.content.getContentSize().width; }, _getContentRightBoundary: function() { var t = this.content.getContentSize(); return this._getContentLeftBoundary() + t.width; }, _getContentTopBoundary: function() { var t = this.content.getContentSize(); return this._getContentBottomBoundary() + t.height; }, _getContentBottomBoundary: function() { return this.getContentPosition().y - this.content.getAnchorPoint().y * this.content.getContentSize().height; }, _getHowMuchOutOfBoundary: function(t) { if ((t = t || cc.v2(0, 0)).fuzzyEquals(cc.v2(0, 0), 1e-4) && !this._outOfBoundaryAmountDirty) return this._outOfBoundaryAmount; var e = cc.v2(0, 0); this._getContentLeftBoundary() + t.x > this._leftBoundary ? e.x = this._leftBoundary - (this._getContentLeftBoundary() + t.x) : this._getContentRightBoundary() + t.x < this._rightBoundary && (e.x = this._rightBoundary - (this._getContentRightBoundary() + t.x)); this._getContentTopBoundary() + t.y < this._topBoundary ? e.y = this._topBoundary - (this._getContentTopBoundary() + t.y) : this._getContentBottomBoundary() + t.y > this._bottomBoundary && (e.y = this._bottomBoundary - (this._getContentBottomBoundary() + t.y)); if (t.fuzzyEquals(cc.v2(0, 0), 1e-4)) { this._outOfBoundaryAmount = e; this._outOfBoundaryAmountDirty = !1; } return e = this._clampDelta(e); }, _updateScrollBarState: function() { if (this.content) { var t = this.content.getContentSize(), e = this._view.getContentSize(); this.verticalScrollBar && (t.height < e.height ? this.verticalScrollBar.hide() : this.verticalScrollBar.show()); this.horizontalScrollBar && (t.width < e.width ? this.horizontalScrollBar.hide() : this.horizontalScrollBar.show()); } }, _updateScrollBar: function(t) { this.horizontalScrollBar && this.horizontalScrollBar._onScroll(t); this.verticalScrollBar && this.verticalScrollBar._onScroll(t); }, _onScrollBarTouchBegan: function() { this.horizontalScrollBar && this.horizontalScrollBar._onTouchBegan(); this.verticalScrollBar && this.verticalScrollBar._onTouchBegan(); }, _onScrollBarTouchEnded: function() { this.horizontalScrollBar && this.horizontalScrollBar._onTouchEnded(); this.verticalScrollBar && this.verticalScrollBar._onTouchEnded(); }, _dispatchEvent: function(t) { if ("scroll-ended" === t) this._scrollEventEmitMask = 0; else if ("scroll-to-top" === t || "scroll-to-bottom" === t || "scroll-to-left" === t || "scroll-to-right" === t) { var e = 1 << a[t]; if (this._scrollEventEmitMask & e) return; this._scrollEventEmitMask |= e; } cc.Component.EventHandler.emitEvents(this.scrollEvents, this, a[t]); this.node.emit(t, this); }, _adjustContentOutOfBoundary: function() { this._outOfBoundaryAmountDirty = !0; if (this._isOutOfBoundary()) { var t = this._getHowMuchOutOfBoundary(cc.v2(0, 0)), e = this.getContentPosition().add(t); if (this.content) { this.content.setPosition(e); this._updateScrollBar(0); } } }, start: function() { this._calculateBoundary(); this.content && cc.director.once(cc.Director.EVENT_BEFORE_DRAW, this._adjustContentOutOfBoundary, this); }, _hideScrollbar: function() { this.horizontalScrollBar && this.horizontalScrollBar.hide(); this.verticalScrollBar && this.verticalScrollBar.hide(); }, onDisable: function() { this._unregisterEvent(); if (this.content) { this.content.off(n.SIZE_CHANGED, this._calculateBoundary, this); this.content.off(n.SCALE_CHANGED, this._calculateBoundary, this); if (this._view) { this._view.off(n.POSITION_CHANGED, this._calculateBoundary, this); this._view.off(n.SCALE_CHANGED, this._calculateBoundary, this); this._view.off(n.SIZE_CHANGED, this._calculateBoundary, this); } } this._hideScrollbar(); this.stopAutoScroll(); }, onEnable: function() { this._registerEvent(); if (this.content) { this.content.on(n.SIZE_CHANGED, this._calculateBoundary, this); this.content.on(n.SCALE_CHANGED, this._calculateBoundary, this); if (this._view) { this._view.on(n.POSITION_CHANGED, this._calculateBoundary, this); this._view.on(n.SCALE_CHANGED, this._calculateBoundary, this); this._view.on(n.SIZE_CHANGED, this._calculateBoundary, this); } } this._updateScrollBarState(); }, update: function(t) { this._autoScrolling && this._processAutoScrolling(t); } }); cc.ScrollView = e.exports = c; }), { "../CCNode": 52, "./CCViewGroup": 116 } ], 110: [ (function(t, e, i) { "use strict"; var n = t("../utils/misc"), r = t("./CCComponent"), s = cc.Enum({ Horizontal: 0, Vertical: 1 }), o = cc.Class({ name: "cc.Slider", extends: r, editor: !1, ctor: function() { this._offset = cc.v2(); this._touchHandle = !1; this._dragging = !1; }, properties: { handle: { default: null, type: cc.Button, tooltip: !1, notify: function() { 0; } }, direction: { default: s.Horizontal, type: s, tooltip: !1 }, progress: { default: .5, type: cc.Float, range: [ 0, 1, .1 ], slide: !0, tooltip: !1, notify: function() { this._updateHandlePosition(); } }, slideEvents: { default: [], type: cc.Component.EventHandler, tooltip: !1 } }, statics: { Direction: s }, __preload: function() { this._updateHandlePosition(); }, onEnable: function() { this.node.on(cc.Node.EventType.TOUCH_START, this._onTouchBegan, this); this.node.on(cc.Node.EventType.TOUCH_MOVE, this._onTouchMoved, this); this.node.on(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this); this.node.on(cc.Node.EventType.TOUCH_CANCEL, this._onTouchCancelled, this); if (this.handle && this.handle.isValid) { this.handle.node.on(cc.Node.EventType.TOUCH_START, this._onHandleDragStart, this); this.handle.node.on(cc.Node.EventType.TOUCH_MOVE, this._onTouchMoved, this); this.handle.node.on(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this); } }, onDisable: function() { this.node.off(cc.Node.EventType.TOUCH_START, this._onTouchBegan, this); this.node.off(cc.Node.EventType.TOUCH_MOVE, this._onTouchMoved, this); this.node.off(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this); this.node.off(cc.Node.EventType.TOUCH_CANCEL, this._onTouchCancelled, this); if (this.handle && this.handle.isValid) { this.handle.node.off(cc.Node.EventType.TOUCH_START, this._onHandleDragStart, this); this.handle.node.off(cc.Node.EventType.TOUCH_MOVE, this._onTouchMoved, this); this.handle.node.off(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this); } }, _onHandleDragStart: function(t) { this._dragging = !0; this._touchHandle = !0; this._offset = this.handle.node.convertToNodeSpaceAR(t.touch.getLocation()); t.stopPropagation(); }, _onTouchBegan: function(t) { if (this.handle) { this._dragging = !0; this._touchHandle || this._handleSliderLogic(t.touch); t.stopPropagation(); } }, _onTouchMoved: function(t) { if (this._dragging) { this._handleSliderLogic(t.touch); t.stopPropagation(); } }, _onTouchEnded: function(t) { this._dragging = !1; this._touchHandle = !1; this._offset = cc.v2(); t.stopPropagation(); }, _onTouchCancelled: function(t) { this._dragging = !1; t.stopPropagation(); }, _handleSliderLogic: function(t) { this._updateProgress(t); this._emitSlideEvent(); }, _emitSlideEvent: function() { cc.Component.EventHandler.emitEvents(this.slideEvents, this); this.node.emit("slide", this); }, _updateProgress: function(t) { if (this.handle) { var e = this.node, i = e.convertToNodeSpaceAR(t.getLocation()); this.direction === s.Horizontal ? this.progress = n.clamp01((i.x - this._offset.x + e.anchorX * e.width) / e.width) : this.progress = n.clamp01((i.y - this._offset.y + e.anchorY * e.height) / e.height); } }, _updateHandlePosition: function() { if (this.handle) { var t; t = this.direction === s.Horizontal ? cc.v2(-this.node.width * this.node.anchorX + this.progress * this.node.width, 0) : cc.v2(0, -this.node.height * this.node.anchorY + this.progress * this.node.height); var e = this.node.convertToWorldSpaceAR(t); this.handle.node.position = this.handle.node.parent.convertToNodeSpaceAR(e); } } }); cc.Slider = e.exports = o; }), { "../utils/misc": 297, "./CCComponent": 95 } ], 111: [ (function(t, e, i) { "use strict"; var n = t("../utils/misc"), r = t("../CCNode").EventType, s = t("./CCRenderComponent"), o = t("../renderer/render-flow"), a = t("../utils/blend-func"), c = t("../assets/material/CCMaterial"), l = cc.Enum({ SIMPLE: 0, SLICED: 1, TILED: 2, FILLED: 3, MESH: 4 }), h = cc.Enum({ HORIZONTAL: 0, VERTICAL: 1, RADIAL: 2 }), u = cc.Enum({ CUSTOM: 0, TRIMMED: 1, RAW: 2 }), _ = cc.Enum({ NORMAL: 0, GRAY: 1 }), f = cc.Class({ name: "cc.Sprite", extends: s, mixins: [ a ], editor: !1, properties: { _spriteFrame: { default: null, type: cc.SpriteFrame }, _type: l.SIMPLE, _sizeMode: u.TRIMMED, _fillType: 0, _fillCenter: cc.v2(0, 0), _fillStart: 0, _fillRange: 0, _isTrimmedMode: !0, _atlas: { default: null, type: cc.SpriteAtlas, tooltip: !1, editorOnly: !0, visible: !0, animatable: !1 }, spriteFrame: { get: function() { return this._spriteFrame; }, set: function(t, e) { var i = this._spriteFrame; if (i !== t) { this._spriteFrame = t; this.markForUpdateRenderData(!1); this._applySpriteFrame(i); 0; } }, type: cc.SpriteFrame }, type: { get: function() { return this._type; }, set: function(t) { if (this._type !== t) { this.destroyRenderData(this._renderData); this._renderData = null; this._type = t; this._updateAssembler(); } }, type: l, animatable: !1, tooltip: !1 }, fillType: { get: function() { return this._fillType; }, set: function(t) { if (t !== this._fillType) { if (t === h.RADIAL || this._fillType === h.RADIAL) { this.destroyRenderData(this._renderData); this._renderData = null; } else this._renderData && this.markForUpdateRenderData(!0); this._fillType = t; this._updateAssembler(); } }, type: h, tooltip: !1 }, fillCenter: { get: function() { return this._fillCenter; }, set: function(t) { this._fillCenter.x = t.x; this._fillCenter.y = t.y; this._type === l.FILLED && this._renderData && this.markForUpdateRenderData(!0); }, tooltip: !1 }, fillStart: { get: function() { return this._fillStart; }, set: function(t) { this._fillStart = n.clampf(t, -1, 1); this._type === l.FILLED && this._renderData && this.markForUpdateRenderData(!0); }, tooltip: !1 }, fillRange: { get: function() { return this._fillRange; }, set: function(t) { this._fillRange = n.clampf(t, -1, 1); this._type === l.FILLED && this._renderData && this.markForUpdateRenderData(!0); }, tooltip: !1 }, trim: { get: function() { return this._isTrimmedMode; }, set: function(t) { if (this._isTrimmedMode !== t) { this._isTrimmedMode = t; this._type !== l.SIMPLE && this._type !== l.MESH || !this._renderData || this.markForUpdateRenderData(!0); } }, animatable: !1, tooltip: !1 }, sizeMode: { get: function() { return this._sizeMode; }, set: function(t) { this._sizeMode = t; t !== u.CUSTOM && this._applySpriteSize(); }, animatable: !1, type: u, tooltip: !1 } }, statics: { FillType: h, Type: l, SizeMode: u, State: _ }, setVisible: function(t) { this.enabled = t; }, setState: function() {}, getState: function() {}, onEnable: function() { this._super(); if (!this._spriteFrame || !this._spriteFrame.textureLoaded()) { this.disableRender(); if (this._spriteFrame) { this._spriteFrame.once("load", this._onTextureLoaded, this); this._spriteFrame.ensureLoadTexture(); } } this._updateAssembler(); this._activateMaterial(); this.node.on(r.SIZE_CHANGED, this._onNodeSizeDirty, this); this.node.on(r.ANCHOR_CHANGED, this._onNodeSizeDirty, this); }, onDisable: function() { this._super(); this.node.off(r.SIZE_CHANGED, this._onNodeSizeDirty, this); this.node.off(r.ANCHOR_CHANGED, this._onNodeSizeDirty, this); }, _onNodeSizeDirty: function() { this._renderData && this.markForUpdateRenderData(!0); }, _on3DNodeChanged: function() { this._updateAssembler(); }, _updateAssembler: function() { var t = f._assembler.getAssembler(this); if (this._assembler !== t) { this._assembler = t; this._renderData = null; } if (!this._renderData) { this._renderData = this._assembler.createData(this); this.markForUpdateRenderData(!0); } }, _activateMaterial: function() { if (cc.game.renderType !== cc.game.RENDER_TYPE_CANVAS) { var t = this._spriteFrame; if (t && t.textureLoaded()) { var e = this.sharedMaterials[0]; (e = e ? c.getInstantiatedMaterial(e, this) : c.getInstantiatedBuiltinMaterial("2d-sprite", this)).setProperty("texture", t.getTexture()); this.setMaterial(0, e); this.markForRender(!0); } else this.disableRender(); } else { this.markForUpdateRenderData(!0); this.markForRender(!0); } }, _applyAtlas: !1, _canRender: function() { if (cc.game.renderType === cc.game.RENDER_TYPE_CANVAS) { if (!this._enabled) return !1; } else if (!this._enabled || !this.sharedMaterials[0] || !this.node._activeInHierarchy) return !1; var t = this._spriteFrame; return !(!t || !t.textureLoaded()); }, markForUpdateRenderData: function(t) { if (t && this._canRender()) { this.node._renderFlag |= o.FLAG_UPDATE_RENDER_DATA; var e = this._renderData; if (e) { e.uvDirty = !0; e.vertDirty = !0; } } else t || (this.node._renderFlag &= ~o.FLAG_UPDATE_RENDER_DATA); }, _applySpriteSize: function() { if (this._spriteFrame) { if (u.RAW === this._sizeMode) { var t = this._spriteFrame.getOriginalSize(); this.node.setContentSize(t); } else if (u.TRIMMED === this._sizeMode) { var e = this._spriteFrame.getRect(); this.node.setContentSize(e.width, e.height); } this._activateMaterial(); } }, _onTextureLoaded: function() { this.isValid && this._applySpriteSize(); }, _applySpriteFrame: function(t) { t && t.off && t.off("load", this._onTextureLoaded, this); var e = this._spriteFrame, i = this.sharedMaterials[0]; e && (i && i._texture) === (e && e._texture) || this.markForRender(!1); if (e) if (t && e._texture === t._texture) this._applySpriteSize(); else if (e.textureLoaded()) this._onTextureLoaded(null); else { e.once("load", this._onTextureLoaded, this); e.ensureLoadTexture(); } 0; }, _resized: !1 }); 0; cc.Sprite = e.exports = f; }), { "../CCNode": 52, "../assets/material/CCMaterial": 75, "../renderer/render-flow": 245, "../utils/blend-func": 289, "../utils/misc": 297, "./CCRenderComponent": 106 } ], 112: [ (function(t, e, i) { "use strict"; var n = cc.Enum({ NONE: 0, CHECKBOX: 1, TEXT_ATLAS: 2, SLIDER_BAR: 3, LIST_VIEW: 4, PAGE_VIEW: 5 }), r = cc.Enum({ VERTICAL: 0, HORIZONTAL: 1 }), s = cc.Enum({ TOP: 0, CENTER: 1, BOTTOM: 2 }), o = cc.Enum({ LEFT: 0, CENTER: 1, RIGHT: 2 }), a = cc.Class({ name: "cc.StudioComponent", extends: cc.Component, editor: !1, properties: !1, statics: { ComponentType: n, ListDirection: r, VerticalAlign: s, HorizontalAlign: o } }), c = t("../utils/prefab-helper"); a.PlaceHolder = cc.Class({ name: "cc.StudioComponent.PlaceHolder", extends: cc.Component, properties: { _baseUrl: "", nestedPrefab: cc.Prefab }, onLoad: function() { this.nestedPrefab && this._replaceWithNestedPrefab(); }, _replaceWithNestedPrefab: function() { var t = this.node, e = t._prefab; e.root = t; e.asset = this.nestedPrefab; c.syncWithPrefab(t); } }); cc.StudioComponent = e.exports = a; var l = cc.Class({ name: "cc.StudioWidget", extends: cc.Widget, editor: !1, _validateTargetInDEV: function() {} }); cc.StudioWidget = e.exports = l; }), { "../utils/prefab-helper": 299 } ], 113: [ (function(t, e, i) { "use strict"; var n = t("../utils/gray-sprite-state"), r = cc.Class({ name: "cc.Toggle", extends: t("./CCButton"), mixins: [ n ], editor: !1, properties: { _N$isChecked: !0, isChecked: { get: function() { return this._N$isChecked; }, set: function(t) { if (t !== this._N$isChecked) { var e = this.toggleGroup || this._toggleContainer; if (!(e && e.enabled && this._N$isChecked) || e.allowSwitchOff) { this._N$isChecked = t; this._updateCheckMark(); e && e.enabled && e.updateToggles(this); this._emitToggleEvents(); } } }, tooltip: !1 }, toggleGroup: { default: null, tooltip: !1, type: t("./CCToggleGroup") }, checkMark: { default: null, type: cc.Sprite, tooltip: !1 }, checkEvents: { default: [], type: cc.Component.EventHandler }, _resizeToTarget: { animatable: !1, set: function(t) { t && this._resizeNodeToTargetNode(); } } }, onEnable: function() { this._super(); this._registerToggleEvent(); this.toggleGroup && this.toggleGroup.enabledInHierarchy && this.toggleGroup.addToggle(this); }, onDisable: function() { this._super(); this._unregisterToggleEvent(); this.toggleGroup && this.toggleGroup.enabledInHierarchy && this.toggleGroup.removeToggle(this); }, _hideCheckMark: function() { this._N$isChecked = !1; this._updateCheckMark(); }, toggle: function(t) { this.isChecked = !this.isChecked; }, check: function() { this.isChecked = !0; }, uncheck: function() { this.isChecked = !1; }, _updateCheckMark: function() { this.checkMark && (this.checkMark.node.active = !!this.isChecked); }, _updateDisabledState: function() { this._super(); if (this.enableAutoGrayEffect && this.checkMark) { var t = !this.interactable; this._switchGrayMaterial(t, this.checkMark); } }, _registerToggleEvent: function() { this.node.on("click", this.toggle, this); }, _unregisterToggleEvent: function() { this.node.off("click", this.toggle, this); }, _emitToggleEvents: function() { this.node.emit("toggle", this); this.checkEvents && cc.Component.EventHandler.emitEvents(this.checkEvents, this); } }); cc.Toggle = e.exports = r; t("../platform/js").get(r.prototype, "_toggleContainer", (function() { var t = this.node.parent; return cc.Node.isNode(t) ? t.getComponent(cc.ToggleContainer) : null; })); }), { "../platform/js": 221, "../utils/gray-sprite-state": 292, "./CCButton": 93, "./CCToggleGroup": 115 } ], 114: [ (function(t, e, i) { "use strict"; var n = cc.Class({ name: "cc.ToggleContainer", extends: cc.Component, editor: !1, properties: { allowSwitchOff: { tooltip: !1, default: !1 }, checkEvents: { default: [], type: cc.Component.EventHandler } }, updateToggles: function(t) { if (this.enabledInHierarchy && t.isChecked) { this.toggleItems.forEach((function(e) { e !== t && e.isChecked && e.enabled && e._hideCheckMark(); })); this.checkEvents && cc.Component.EventHandler.emitEvents(this.checkEvents, t); } }, _allowOnlyOneToggleChecked: function() { var t = !1; this.toggleItems.forEach((function(e) { t ? e._hideCheckMark() : e.isChecked && (t = !0); })); return t; }, _makeAtLeastOneToggleChecked: function() { if (!this._allowOnlyOneToggleChecked() && !this.allowSwitchOff) { var t = this.toggleItems; t.length > 0 && t[0].check(); } }, onEnable: function() { this.node.on("child-added", this._allowOnlyOneToggleChecked, this); this.node.on("child-removed", this._makeAtLeastOneToggleChecked, this); }, onDisable: function() { this.node.off("child-added", this._allowOnlyOneToggleChecked, this); this.node.off("child-removed", this._makeAtLeastOneToggleChecked, this); }, start: function() { this._makeAtLeastOneToggleChecked(); } }); t("../platform/js").get(n.prototype, "toggleItems", (function() { return this.node.getComponentsInChildren(cc.Toggle); })); cc.ToggleContainer = e.exports = n; }), { "../platform/js": 221 } ], 115: [ (function(t, e, i) { "use strict"; var n = cc.Class({ name: "cc.ToggleGroup", extends: cc.Component, ctor: function() { this._toggleItems = []; }, editor: !1, properties: { allowSwitchOff: { tooltip: !1, default: !1 }, toggleItems: { get: function() { return this._toggleItems; } } }, updateToggles: function(t) { this.enabledInHierarchy && this._toggleItems.forEach((function(e) { t.isChecked && e !== t && e.isChecked && e.enabled && e._hideCheckMark(); })); }, addToggle: function(t) { -1 === this._toggleItems.indexOf(t) && this._toggleItems.push(t); this._allowOnlyOneToggleChecked(); }, removeToggle: function(t) { var e = this._toggleItems.indexOf(t); e > -1 && this._toggleItems.splice(e, 1); this._makeAtLeastOneToggleChecked(); }, _allowOnlyOneToggleChecked: function() { var t = !1; this._toggleItems.forEach((function(e) { t && e.enabled && e._hideCheckMark(); e.isChecked && e.enabled && (t = !0); })); return t; }, _makeAtLeastOneToggleChecked: function() { this._allowOnlyOneToggleChecked() || this.allowSwitchOff || this._toggleItems.length > 0 && (this._toggleItems[0].isChecked = !0); }, start: function() { this._makeAtLeastOneToggleChecked(); } }), r = !1; t("../platform/js").get(cc, "ToggleGroup", (function() { if (!r) { cc.logID(1405, "cc.ToggleGroup", "cc.ToggleContainer"); r = !0; } return n; })); e.exports = n; }), { "../platform/js": 221 } ], 116: [ (function(t, e, i) { "use strict"; var n = cc.Class({ name: "cc.ViewGroup", extends: t("./CCComponent") }); cc.ViewGroup = e.exports = n; }), { "./CCComponent": 95 } ], 117: [ (function(t, e, i) { "use strict"; var n = t("../base-ui/CCWidgetManager"), r = n.AlignMode, s = n._AlignFlags, o = s.TOP, a = s.MID, c = s.BOT, l = s.LEFT, h = s.CENTER, u = s.RIGHT, _ = o | c, f = l | u, d = cc.Class({ name: "cc.Widget", extends: t("./CCComponent"), editor: !1, properties: { target: { get: function() { return this._target; }, set: function(t) { this._target = t; 0; }, type: cc.Node, tooltip: !1 }, isAlignTop: { get: function() { return (this._alignFlags & o) > 0; }, set: function(t) { this._setAlign(o, t); }, animatable: !1, tooltip: !1 }, isAlignVerticalCenter: { get: function() { return (this._alignFlags & a) > 0; }, set: function(t) { if (t) { this.isAlignTop = !1; this.isAlignBottom = !1; this._alignFlags |= a; } else this._alignFlags &= ~a; }, animatable: !1, tooltip: !1 }, isAlignBottom: { get: function() { return (this._alignFlags & c) > 0; }, set: function(t) { this._setAlign(c, t); }, animatable: !1, tooltip: !1 }, isAlignLeft: { get: function() { return (this._alignFlags & l) > 0; }, set: function(t) { this._setAlign(l, t); }, animatable: !1, tooltip: !1 }, isAlignHorizontalCenter: { get: function() { return (this._alignFlags & h) > 0; }, set: function(t) { if (t) { this.isAlignLeft = !1; this.isAlignRight = !1; this._alignFlags |= h; } else this._alignFlags &= ~h; }, animatable: !1, tooltip: !1 }, isAlignRight: { get: function() { return (this._alignFlags & u) > 0; }, set: function(t) { this._setAlign(u, t); }, animatable: !1, tooltip: !1 }, isStretchWidth: { get: function() { return (this._alignFlags & f) === f; }, visible: !1 }, isStretchHeight: { get: function() { return (this._alignFlags & _) === _; }, visible: !1 }, top: { get: function() { return this._top; }, set: function(t) { this._top = t; }, tooltip: !1 }, bottom: { get: function() { return this._bottom; }, set: function(t) { this._bottom = t; }, tooltip: !1 }, left: { get: function() { return this._left; }, set: function(t) { this._left = t; }, tooltip: !1 }, right: { get: function() { return this._right; }, set: function(t) { this._right = t; }, tooltip: !1 }, horizontalCenter: { get: function() { return this._horizontalCenter; }, set: function(t) { this._horizontalCenter = t; }, tooltip: !1 }, verticalCenter: { get: function() { return this._verticalCenter; }, set: function(t) { this._verticalCenter = t; }, tooltip: !1 }, isAbsoluteHorizontalCenter: { get: function() { return this._isAbsHorizontalCenter; }, set: function(t) { this._isAbsHorizontalCenter = t; }, animatable: !1 }, isAbsoluteVerticalCenter: { get: function() { return this._isAbsVerticalCenter; }, set: function(t) { this._isAbsVerticalCenter = t; }, animatable: !1 }, isAbsoluteTop: { get: function() { return this._isAbsTop; }, set: function(t) { this._isAbsTop = t; }, animatable: !1 }, isAbsoluteBottom: { get: function() { return this._isAbsBottom; }, set: function(t) { this._isAbsBottom = t; }, animatable: !1 }, isAbsoluteLeft: { get: function() { return this._isAbsLeft; }, set: function(t) { this._isAbsLeft = t; }, animatable: !1 }, isAbsoluteRight: { get: function() { return this._isAbsRight; }, set: function(t) { this._isAbsRight = t; }, animatable: !1 }, alignMode: { default: r.ON_WINDOW_RESIZE, type: r, tooltip: !1 }, _wasAlignOnce: { default: void 0, formerlySerializedAs: "isAlignOnce" }, _target: null, _alignFlags: 0, _left: 0, _right: 0, _top: 0, _bottom: 0, _verticalCenter: 0, _horizontalCenter: 0, _isAbsLeft: !0, _isAbsRight: !0, _isAbsTop: !0, _isAbsBottom: !0, _isAbsHorizontalCenter: !0, _isAbsVerticalCenter: !0, _originalWidth: 0, _originalHeight: 0 }, statics: { AlignMode: r }, onLoad: function() { if (void 0 !== this._wasAlignOnce) { this.alignMode = this._wasAlignOnce ? r.ONCE : r.ALWAYS; this._wasAlignOnce = void 0; } }, onEnable: function() { n.add(this); }, onDisable: function() { n.remove(this); }, _validateTargetInDEV: !1, _setAlign: function(t, e) { if (e !== (this._alignFlags & t) > 0) { var i = (t & f) > 0; if (e) { this._alignFlags |= t; if (i) { this.isAlignHorizontalCenter = !1; if (this.isStretchWidth) { this._originalWidth = this.node.width; 0; } } else { this.isAlignVerticalCenter = !1; if (this.isStretchHeight) { this._originalHeight = this.node.height; 0; } } 0; } else { i ? this.isStretchWidth && (this.node.width = this._originalWidth) : this.isStretchHeight && (this.node.height = this._originalHeight); this._alignFlags &= ~t; } } }, updateAlignment: function() { n.updateAlignment(this.node); } }); Object.defineProperty(d.prototype, "isAlignOnce", { get: function() { 0; return this.alignMode === r.ONCE; }, set: function(t) { 0; this.alignMode = t ? r.ONCE : r.ALWAYS; } }); cc.Widget = e.exports = d; }), { "../base-ui/CCWidgetManager": 79, "./CCComponent": 95 } ], 118: [ (function(t, e, i) { "use strict"; var n = t("./CCComponent"), r = void 0; r = cc.sys.platform === cc.sys.BAIDU_GAME ? cc.Class({ name: "cc.SwanSubContextView", extends: n, editor: !1, properties: { _fps: 60, fps: { get: function() { return this._fps; }, set: function(t) { if (this._fps !== t) { this._fps = t; this._updateInterval = 1 / t; this._updateSubContextFrameRate(); } }, tooltip: !1 } }, ctor: function() { this._sprite = null; this._tex = new cc.Texture2D(); this._context = null; this._updatedTime = performance.now(); this._updateInterval = 0; }, onLoad: function() { if (swan.getOpenDataContext) { this._updateInterval = 1e3 / this._fps; this._context = swan.getOpenDataContext(); var t = this._context.canvas; if (t) { t.width = this.node.width; t.height = this.node.height; } this._tex.setPremultiplyAlpha(!0); this._tex.initWithElement(t); this._sprite = this.node.getComponent(cc.Sprite); if (!this._sprite) { this._sprite = this.node.addComponent(cc.Sprite); this._sprite.srcBlendFactor = cc.macro.BlendFactor.ONE; } this._sprite.spriteFrame = new cc.SpriteFrame(this._tex); } else this.enabled = !1; }, onEnable: function() { this._runSubContextMainLoop(); this._registerNodeEvent(); this._updateSubContextFrameRate(); this.updateSubContextViewport(); }, onDisable: function() { this._unregisterNodeEvent(); this._stopSubContextMainLoop(); }, update: function(t) { if (void 0 === t) { this._context && this._context.postMessage({ fromEngine: !0, event: "step" }); this._updateSubContextTexture(); } else { if (performance.now() - this._updatedTime >= this._updateInterval) { this._updatedTime += this._updateInterval; this._updateSubContextTexture(); } } }, _updateSubContextTexture: function() { if (this._tex && this._context) { this._tex.initWithElement(this._context.canvas); this._sprite._activateMaterial(); } }, updateSubContextViewport: function() { if (this._context) { var t = this.node.getBoundingBoxToWorld(), e = cc.view._scaleX, i = cc.view._scaleY; this._context.postMessage({ fromEngine: !0, event: "viewport", x: t.x * e + cc.view._viewportRect.x, y: t.y * i + cc.view._viewportRect.y, width: t.width * e, height: t.height * i }); } }, _registerNodeEvent: function() { this.node.on("position-changed", this.updateSubContextViewport, this); this.node.on("scale-changed", this.updateSubContextViewport, this); this.node.on("size-changed", this.updateSubContextViewport, this); }, _unregisterNodeEvent: function() { this.node.off("position-changed", this.updateSubContextViewport, this); this.node.off("scale-changed", this.updateSubContextViewport, this); this.node.off("size-changed", this.updateSubContextViewport, this); }, _runSubContextMainLoop: function() { this._context && this._context.postMessage({ fromEngine: !0, event: "mainLoop", value: !0 }); }, _stopSubContextMainLoop: function() { this._context && this._context.postMessage({ fromEngine: !0, event: "mainLoop", value: !1 }); }, _updateSubContextFrameRate: function() { this._context && this._context.postMessage({ fromEngine: !0, event: "frameRate", value: this._fps }); } }) : cc.Class({ name: "cc.SwanSubContextView", extends: n }); cc.SwanSubContextView = e.exports = r; }), { "./CCComponent": 95 } ], 119: [ (function(t, e, i) { "use strict"; var n = t("./CCComponent"), r = void 0; r = cc.Class({ name: "cc.WXSubContextView", extends: n }); cc.WXSubContextView = e.exports = r; }), { "./CCComponent": 95 } ], 120: [ (function(t, e, i) { "use strict"; var n = t("../../platform/CCMacro"), r = t("./EditBoxImplBase"), s = t("../CCLabel"), o = t("./types"), a = o.InputMode, c = o.InputFlag, l = o.KeyboardReturnType; function h(t) { return t.replace(/(?:^|\s)\S/g, (function(t) { return t.toUpperCase(); })); } function u(t) { return t.charAt(0).toUpperCase() + t.slice(1); } var _ = cc.Class({ name: "cc.EditBox", extends: cc.Component, editor: !1, properties: { _useOriginalSize: !0, _string: "", string: { tooltip: !1, get: function() { return this._string; }, set: function(t) { t = "" + t; this.maxLength >= 0 && t.length >= this.maxLength && (t = t.slice(0, this.maxLength)); this._string = t; this._updateString(t); } }, textLabel: { tooltip: !1, default: null, type: s, notify: function(t) { if (this.textLabel && this.textLabel !== t) { this._updateTextLabel(); this._updateLabels(); } } }, placeholderLabel: { tooltip: !1, default: null, type: s, notify: function(t) { if (this.placeholderLabel && this.placeholderLabel !== t) { this._updatePlaceholderLabel(); this._updateLabels(); } } }, background: { tooltip: !1, default: null, type: cc.Sprite, notify: function(t) { this.background && this.background !== t && this._updateBackgroundSprite(); } }, _N$backgroundImage: { default: void 0, type: cc.SpriteFrame }, backgroundImage: { get: function() { return this.background ? this.background.spriteFrame : null; }, set: function(t) { this.background && (this.background.spriteFrame = t); } }, returnType: { default: l.DEFAULT, tooltip: !1, displayName: "KeyboardReturnType", type: l }, _N$returnType: { default: void 0, type: cc.Float }, inputFlag: { tooltip: !1, default: c.DEFAULT, type: c, notify: function() { this._updateString(this._string); } }, inputMode: { tooltip: !1, default: a.ANY, type: a, notify: function(t) { if (this.inputMode !== t) { this._updateTextLabel(); this._updatePlaceholderLabel(); } } }, fontSize: { get: function() { return this.textLabel ? this.textLabel.fontSize : null; }, set: function(t) { this.textLabel && (this.textLabel.fontSize = t); } }, _N$fontSize: { default: void 0, type: cc.Float }, lineHeight: { get: function() { return this.textLabel ? this.textLabel.lineHeight : null; }, set: function(t) { this.textLabel && (this.textLabel.lineHeight = t); } }, _N$lineHeight: { default: void 0, type: cc.Float }, fontColor: { get: function() { return this.textLabel ? this.textLabel.node.color : null; }, set: function(t) { if (this.textLabel) { this.textLabel.node.color = t; this.textLabel.node.opacity = t.a; } } }, _N$fontColor: void 0, placeholder: { tooltip: !1, get: function() { return this.placeholderLabel ? this.placeholderLabel.string : ""; }, set: function(t) { this.placeholderLabel && (this.placeholderLabel.string = t); } }, _N$placeholder: { default: void 0, type: cc.String }, placeholderFontSize: { get: function() { return this.placeholderLabel ? this.placeholderLabel.fontSize : null; }, set: function(t) { this.placeholderLabel && (this.placeholderLabel.fontSize = t); } }, _N$placeholderFontSize: { default: void 0, type: cc.Float }, placeholderFontColor: { get: function() { return this.placeholderLabel ? this.placeholderLabel.node.color : null; }, set: function(t) { if (this.placeholderLabel) { this.placeholderLabel.node.color = t; this.placeholderLabel.node.opacity = t.a; } } }, _N$placeholderFontColor: void 0, maxLength: { tooltip: !1, default: 20 }, _N$maxLength: { default: void 0, type: cc.Float }, stayOnTop: { default: !1, notify: function() { cc.warn("editBox.stayOnTop is removed since v2.1."); } }, _tabIndex: 0, tabIndex: { tooltip: !1, get: function() { return this._tabIndex; }, set: function(t) { if (this._tabIndex !== t) { this._tabIndex = t; this._impl && this._impl.setTabIndex(t); } } }, editingDidBegan: { default: [], type: cc.Component.EventHandler }, textChanged: { default: [], type: cc.Component.EventHandler }, editingDidEnded: { default: [], type: cc.Component.EventHandler }, editingReturn: { default: [], type: cc.Component.EventHandler } }, statics: { _ImplClass: r, KeyboardReturnType: l, InputFlag: c, InputMode: a }, _init: function() { this._upgradeComp(); this._isLabelVisible = !0; this.node.on(cc.Node.EventType.SIZE_CHANGED, this._syncSize, this); (this._impl = new _._ImplClass()).init(this); this._updateString(this._string); this._syncSize(); }, _updateBackgroundSprite: function() { var t = this.background; if (!t) { var e = this.node.getChildByName("BACKGROUND_SPRITE"); e || (e = new cc.Node("BACKGROUND_SPRITE")); (t = e.getComponent(cc.Sprite)) || (t = e.addComponent(cc.Sprite)); e.parent = this.node; this.background = t; } t.type = cc.Sprite.Type.SLICED; if (void 0 !== this._N$backgroundImage) { t.spriteFrame = this._N$backgroundImage; this._N$backgroundImage = void 0; } }, _updateTextLabel: function() { var t = this.textLabel; if (!t) { var e = this.node.getChildByName("TEXT_LABEL"); e || (e = new cc.Node("TEXT_LABEL")); (t = e.getComponent(s)) || (t = e.addComponent(s)); e.parent = this.node; this.textLabel = t; } t.node.setAnchorPoint(0, 1); t.overflow = s.Overflow.CLAMP; if (this.inputMode === a.ANY) { t.verticalAlign = n.VerticalTextAlignment.TOP; t.enableWrapText = !0; } else { t.verticalAlign = n.VerticalTextAlignment.CENTER; t.enableWrapText = !1; } t.string = this._updateLabelStringStyle(this._string); if (void 0 !== this._N$fontColor) { t.node.color = this._N$fontColor; t.node.opacity = this._N$fontColor.a; this._N$fontColor = void 0; } if (void 0 !== this._N$fontSize) { t.fontSize = this._N$fontSize; this._N$fontSize = void 0; } if (void 0 !== this._N$lineHeight) { t.lineHeight = this._N$lineHeight; this._N$lineHeight = void 0; } }, _updatePlaceholderLabel: function() { var t = this.placeholderLabel; if (!t) { var e = this.node.getChildByName("PLACEHOLDER_LABEL"); e || (e = new cc.Node("PLACEHOLDER_LABEL")); (t = e.getComponent(s)) || (t = e.addComponent(s)); e.parent = this.node; this.placeholderLabel = t; } t.node.setAnchorPoint(0, 1); t.overflow = s.Overflow.CLAMP; if (this.inputMode === a.ANY) { t.verticalAlign = n.VerticalTextAlignment.TOP; t.enableWrapText = !0; } else { t.verticalAlign = n.VerticalTextAlignment.CENTER; t.enableWrapText = !1; } t.string = this.placeholder; if (void 0 !== this._N$placeholderFontColor) { t.node.color = this._N$placeholderFontColor; t.node.opacity = this._N$placeholderFontColor.a; this._N$placeholderFontColor = void 0; } if (void 0 !== this._N$placeholderFontSize) { t.fontSize = this._N$placeholderFontSize; this._N$placeholderFontSize = void 0; } }, _upgradeComp: function() { if (void 0 !== this._N$returnType) { this.returnType = this._N$returnType; this._N$returnType = void 0; } if (void 0 !== this._N$maxLength) { this.maxLength = this._N$maxLength; this._N$maxLength = void 0; } void 0 !== this._N$backgroundImage && this._updateBackgroundSprite(); void 0 === this._N$fontColor && void 0 === this._N$fontSize && void 0 === this._N$lineHeight || this._updateTextLabel(); void 0 === this._N$placeholderFontColor && void 0 === this._N$placeholderFontSize || this._updatePlaceholderLabel(); if (void 0 !== this._N$placeholder) { this.placeholder = this._N$placeholder; this._N$placeholder = void 0; } }, _syncSize: function() { if (this._impl) { var t = this.node.getContentSize(); this._impl.setSize(t.width, t.height); } }, _showLabels: function() { this._isLabelVisible = !0; this._updateLabels(); }, _hideLabels: function() { this._isLabelVisible = !1; this.textLabel && (this.textLabel.node.active = !1); this.placeholderLabel && (this.placeholderLabel.node.active = !1); }, _updateLabels: function() { if (this._isLabelVisible) { var t = this._string; this.textLabel && (this.textLabel.node.active = "" !== t); this.placeholderLabel && (this.placeholderLabel.node.active = "" === t); } }, _updateString: function(t) { var e = this.textLabel; if (e) { var i = t; i && (i = this._updateLabelStringStyle(i)); e.string = i; this._updateLabels(); } }, _updateLabelStringStyle: function(t, e) { var i = this.inputFlag; if (e || i !== c.PASSWORD) i === c.INITIAL_CAPS_ALL_CHARACTERS ? t = t.toUpperCase() : i === c.INITIAL_CAPS_WORD ? t = h(t) : i === c.INITIAL_CAPS_SENTENCE && (t = u(t)); else { for (var n = "", r = t.length, s = 0; s < r; ++s) n += "●"; t = n; } return t; }, editBoxEditingDidBegan: function() { cc.Component.EventHandler.emitEvents(this.editingDidBegan, this); this.node.emit("editing-did-began", this); }, editBoxEditingDidEnded: function() { cc.Component.EventHandler.emitEvents(this.editingDidEnded, this); this.node.emit("editing-did-ended", this); }, editBoxTextChanged: function(t) { t = this._updateLabelStringStyle(t, !0); this.string = t; cc.Component.EventHandler.emitEvents(this.textChanged, t, this); this.node.emit("text-changed", this); }, editBoxEditingReturn: function() { cc.Component.EventHandler.emitEvents(this.editingReturn, this); this.node.emit("editing-return", this); }, onEnable: function() { this._registerEvent(); this._impl && this._impl.enable(); }, onDisable: function() { this._unregisterEvent(); this._impl && this._impl.disable(); }, onDestroy: function() { this._impl && this._impl.clear(); }, __preload: function() { this._init(); }, _registerEvent: function() { this.node.on(cc.Node.EventType.TOUCH_START, this._onTouchBegan, this); this.node.on(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this); }, _unregisterEvent: function() { this.node.off(cc.Node.EventType.TOUCH_START, this._onTouchBegan, this); this.node.off(cc.Node.EventType.TOUCH_END, this._onTouchEnded, this); }, _onTouchBegan: function(t) { t.stopPropagation(); }, _onTouchCancel: function(t) { t.stopPropagation(); }, _onTouchEnded: function(t) { this._impl && this._impl.beginEditing(); t.stopPropagation(); }, setFocus: function() { cc.warnID(1400, "setFocus()", "focus()"); this._impl && this._impl.setFocus(!0); }, focus: function() { this._impl && this._impl.setFocus(!0); }, blur: function() { this._impl && this._impl.setFocus(!1); }, isFocused: function() { return !!this._impl && this._impl.isFocused(); }, update: function() { this._impl && this._impl.update(); } }); cc.EditBox = e.exports = _; cc.sys.isBrowser && t("./WebEditBoxImpl"); }), { "../../platform/CCMacro": 206, "../CCLabel": 97, "./EditBoxImplBase": 121, "./WebEditBoxImpl": 122, "./types": 124 } ], 121: [ (function(t, e, i) { "use strict"; var n = cc.Class({ ctor: function() { this._delegate = null; }, init: function(t) {}, enable: function() {}, disable: function() {}, clear: function() {}, update: function() {}, setTabIndex: function(t) {}, setSize: function(t, e) {}, setFocus: function(t) {}, isFocused: function() {}, beginEditing: function() {}, endEditing: function() {} }); e.exports = n; }), {} ], 122: [ (function(t, e, i) { "use strict"; var n = t("../../platform/utils"), r = t("../../platform/CCMacro"), s = t("./types"), o = t("../CCLabel"), a = t("./tabIndexUtil"), c = cc.EditBox, l = cc.js, h = s.InputMode, u = s.InputFlag, _ = s.KeyboardReturnType, f = cc.vmath, d = { zoomInvalid: !1 }; cc.sys.OS_ANDROID !== cc.sys.os || cc.sys.browserType !== cc.sys.BROWSER_TYPE_SOUGOU && cc.sys.browserType !== cc.sys.BROWSER_TYPE_360 || (d.zoomInvalid = !0); var m = 0, p = cc.v3(), v = null, y = !1, g = !1; function x() { this._domId = "EditBoxId_" + ++m; this._placeholderStyleSheet = null; this._elem = null; this._isTextArea = !1; this._editing = !1; this._worldMat = f.mat4.create(); this._cameraMat = f.mat4.create(); this._m00 = 0; this._m01 = 0; this._m04 = 0; this._m05 = 0; this._m12 = 0; this._m13 = 0; this._w = 0; this._h = 0; this._inputMode = null; this._inputFlag = null; this._returnType = null; this._eventListeners = {}; this._textLabelFont = null; this._textLabelFontSize = null; this._textLabelFontColor = null; this._textLabelAlign = null; this._placeholderLabelFont = null; this._placeholderLabelFontSize = null; this._placeholderLabelFontColor = null; this._placeholderLabelAlign = null; this._placeholderLineHeight = null; } l.extend(x, c._ImplClass); c._ImplClass = x; Object.assign(x.prototype, { init: function(t) { if (t) { this._delegate = t; t.inputMode === h.ANY ? this._createTextArea() : this._createInput(); a.add(this); this.setTabIndex(t.tabIndex); this._initStyleSheet(); this._registerEventListeners(); this._addDomToGameContainer(); y = cc.view.isAutoFullScreenEnabled(); g = cc.view._resizeWithBrowserSize; } }, enable: function() {}, disable: function() { this._editing && this._elem.blur(); }, clear: function() { this._removeEventListeners(); this._removeDomFromGameContainer(); a.remove(this); v === this && (v = null); }, update: function() { this._updateMatrix(); }, setTabIndex: function(t) { this._elem.tabIndex = t; a.resort(); }, setSize: function(t, e) { var i = this._elem; i.style.width = t + "px"; i.style.height = e + "px"; }, setFocus: function(t) { t ? this.beginEditing() : this._elem.blur(); }, isFocused: function() { return this._editing; }, beginEditing: function() { v && v !== this && v.setFocus(!1); this._editing = !0; v = this; this._showDom(); this._elem.focus(); this._delegate.editBoxEditingDidBegan(); }, endEditing: function() {}, _createInput: function() { this._isTextArea = !1; this._elem = document.createElement("input"); }, _createTextArea: function() { this._isTextArea = !0; this._elem = document.createElement("textarea"); }, _addDomToGameContainer: function() { cc.game.container.appendChild(this._elem); document.head.appendChild(this._placeholderStyleSheet); }, _removeDomFromGameContainer: function() { n.contains(cc.game.container, this._elem) && cc.game.container.removeChild(this._elem); n.contains(document.head, this._placeholderStyleSheet) && document.head.removeChild(this._placeholderStyleSheet); delete this._elem; delete this._placeholderStyleSheet; }, _showDom: function() { this._updateMaxLength(); this._updateInputType(); this._updateStyleSheet(); this._elem.style.display = ""; this._delegate._hideLabels(); cc.sys.isMobile && this._showDomOnMobile(); }, _hideDom: function() { this._elem.style.display = "none"; this._delegate._showLabels(); cc.sys.isMobile && this._hideDomOnMobile(); }, _showDomOnMobile: function() { if (cc.sys.os === cc.sys.OS_ANDROID) { if (y) { cc.view.enableAutoFullScreen(!1); cc.screen.exitFullScreen(); } g && cc.view.resizeWithBrowserSize(!1); this._adjustWindowScroll(); } }, _hideDomOnMobile: function() { cc.sys.os === cc.sys.OS_ANDROID && setTimeout((function() { if (!v) { y && cc.view.enableAutoFullScreen(!0); g && cc.view.resizeWithBrowserSize(!0); } }), 800); this._scrollBackWindow(); }, _adjustWindowScroll: function() { var t = this; setTimeout((function() { window.scrollY < 100 && t._elem.scrollIntoView({ block: "nearest", inline: "nearest", behavior: "auto" }); }), 800); }, _scrollBackWindow: function() { setTimeout((function() { var t = cc.sys; t.browserType !== t.BROWSER_TYPE_WECHAT || t.os !== t.OS_IOS ? t.os !== t.OS_IOS && window.scrollTo(0, 0) : window.top && window.top.scrollTo(0, 0); }), 800); }, _updateMatrix: function() { var t = this._delegate.node; t.getWorldMatrix(this._worldMat); var e = this._worldMat; if (this.xxforceUpdate || this._m00 !== e.m00 || this._m01 !== e.m01 || this._m04 !== e.m04 || this._m05 !== e.m05 || this._m12 !== e.m12 || this._m13 !== e.m13 || this._w !== t._contentSize.width || this._h !== t._contentSize.height) { this._m00 = e.m00; this._m01 = e.m01; this._m04 = e.m04; this._m05 = e.m05; this._m12 = e.m12; this._m13 = e.m13; this._w = t._contentSize.width; this._h = t._contentSize.height; var i = cc.view._scaleX, n = cc.view._scaleY, r = cc.view._viewportRect, s = cc.view._devicePixelRatio; p.x = -t._anchorPoint.x * this._w; p.y = -t._anchorPoint.y * this._h; f.mat4.translate(e, e, p); var o = void 0; cc.Camera.findCamera(t).getWorldToScreenMatrix2D(this._cameraMat); o = this._cameraMat; f.mat4.mul(o, o, e); i /= s; n /= s; var a = cc.game.container, c = o.m00 * i, l = o.m01, h = o.m04, u = o.m05 * n, _ = a && a.style.paddingLeft && parseInt(a.style.paddingLeft); _ += r.x / s + (this.offsetXXX || 0); var m = a && a.style.paddingBottom && parseInt(a.style.paddingBottom); m += r.y / s + (this.offsetYYY || 0); var v = o.m12 * i + _, y = o.m13 * n + m; if (d.zoomInvalid) { this.setSize(t.width * c, t.height * u); c = 1; u = 1; } var g = this._elem, x = "matrix(" + c + "," + -l + "," + -h + "," + u + "," + v + "," + -y + ")"; g.style.transform = x; g.style["-webkit-transform"] = x; g.style["transform-origin"] = "0px 100% 0px"; g.style["-webkit-transform-origin"] = "0px 100% 0px"; } }, _updateInputType: function() { var t = this._delegate, e = t.inputMode, i = t.inputFlag, n = t.returnType, r = this._elem; if (this._inputMode !== e || this._inputFlag !== i || this._returnType !== n) { this._inputMode = e; this._inputFlag = i; this._returnType = n; if (this._isTextArea) { var s = "none"; i === u.INITIAL_CAPS_ALL_CHARACTERS ? s = "uppercase" : i === u.INITIAL_CAPS_WORD && (s = "capitalize"); r.style.textTransform = s; } else if (i !== u.PASSWORD) { var o = r.type; if (e === h.EMAIL_ADDR) o = "email"; else if (e === h.NUMERIC || e === h.DECIMAL) o = "number"; else if (e === h.PHONE_NUMBER) { o = "number"; r.pattern = "[0-9]*"; } else if (e === h.URL) o = "url"; else { o = "text"; n === _.SEARCH && (o = "search"); } r.type = o; var a = "none"; i === u.INITIAL_CAPS_ALL_CHARACTERS ? a = "uppercase" : i === u.INITIAL_CAPS_WORD && (a = "capitalize"); r.style.textTransform = a; } else r.type = "password"; } }, _updateMaxLength: function() { var t = this._delegate.maxLength; t < 0 && (t = 65535); this._elem.maxLength = t; }, _initStyleSheet: function() { var t = this._elem; t.style.display = "none"; t.style.border = 0; t.style.background = "transparent"; t.style.width = "100%"; t.style.height = "100%"; t.style.active = 0; t.style.outline = "medium"; t.style.padding = "0"; t.style.textTransform = "uppercase"; t.style.position = "absolute"; t.style.bottom = "0px"; t.style.left = "2px"; t.className = "cocosEditBox"; t.id = this._domId; if (this._isTextArea) { t.style.resize = "none"; t.style.overflow_y = "scroll"; } else { t.type = "text"; t.style["-moz-appearance"] = "textfield"; } this._placeholderStyleSheet = document.createElement("style"); }, _updateStyleSheet: function() { var t = this._delegate, e = this._elem; e.value = t.string; e.placeholder = ""; this._updateTextLabel(t.textLabel); this._updatePlaceholderLabel(t.placeholderLabel); }, _updateTextLabel: function(t) { if (t) { var e = t.font; e = !e || e instanceof cc.BitmapFont ? t.fontFamily : e._fontFamily; var i = t.fontSize * t.node.scaleY; if (this._textLabelFont !== e || this._textLabelFontSize !== i || this._textLabelFontColor !== t.fontColor || this._textLabelAlign !== t.horizontalAlign) { this._textLabelFont = e; this._textLabelFontSize = i; this._textLabelFontColor = t.fontColor; this._textLabelAlign = t.horizontalAlign; var n = this._elem; n.style.fontSize = i + "px"; n.style.color = t.node.color.toCSS("rgba"); n.style.opacity = t.node.opacity.toString(); cc.sys.OS_ANDROID && cc.sys.isMobile && (t.string = n.value); n.style.fontFamily = e; switch (t.horizontalAlign) { case o.HorizontalAlign.LEFT: n.style.textAlign = "left"; break; case o.HorizontalAlign.CENTER: n.style.textAlign = "center"; break; case o.HorizontalAlign.RIGHT: n.style.textAlign = "right"; } "0" == t.node.opacity.toString() && cc.sys.os === cc.sys.OS_IOS && cc.sys.isMobile && (n.style.fontSize = "0px"); } } }, _updatePlaceholderLabel: function(t) { if (t) { var e = t.font; e = !e || e instanceof cc.BitmapFont ? t.fontFamily : t.font._fontFamily; var i = t.fontSize * t.node.scaleY; if (this._placeholderLabelFont !== e || this._placeholderLabelFontSize !== i || this._placeholderLabelFontColor !== t.fontColor || this._placeholderLabelAlign !== t.horizontalAlign || this._placeholderLineHeight !== t.fontSize) { this._placeholderLabelFont = e; this._placeholderLabelFontSize = i; this._placeholderLabelFontColor = t.fontColor; this._placeholderLabelAlign = t.horizontalAlign; this._placeholderLineHeight = t.fontSize; var n = this._placeholderStyleSheet, r = t.node.color.toCSS("rgba"), s = t.fontSize, a = void 0; switch (t.horizontalAlign) { case o.HorizontalAlign.LEFT: a = "left"; break; case o.HorizontalAlign.CENTER: a = "center"; break; case o.HorizontalAlign.RIGHT: a = "right"; } n.innerHTML = "#" + this._domId + "::-webkit-input-placeholder,#" + this._domId + "::-moz-placeholder,#" + this._domId + ":-ms-input-placeholder{text-transform: initial; font-family: " + e + "; font-size: " + i + "px; color: " + r + "; line-height: " + s + "px; text-align: " + a + ";}"; cc.sys.browserType === cc.sys.BROWSER_TYPE_EDGE && (n.innerHTML += "#" + this._domId + "::-ms-clear{display: none;}"); } } }, _registerEventListeners: function() { var t = this, e = this._elem, i = !1, n = this._eventListeners; n.compositionStart = function() { i = !0; }; n.compositionEnd = function() { i = !1; t._delegate.editBoxTextChanged(e.value); }; n.onInput = function() { i || t._delegate.editBoxTextChanged(e.value); }; n.onClick = function(e) { t._editing && cc.sys.isMobile && t._adjustWindowScroll(); }; n.onKeydown = function(i) { if (i.keyCode === r.KEY.enter) { i.stopPropagation(); t._delegate.editBoxEditingReturn(); t._isTextArea || e.blur(); } else if (i.keyCode === r.KEY.tab) { i.stopPropagation(); i.preventDefault(); a.next(t); } }; n.onKeyup = function(i) { t._delegate.editBoxTextChanged(e.value); }; n.onBlur = function() { t._editing = !1; v = null; t._hideDom(); t._delegate.editBoxEditingDidEnded(); }; e.addEventListener("compositionstart", n.compositionStart); e.addEventListener("compositionend", n.compositionEnd); e.addEventListener("input", n.onInput); e.addEventListener("keydown", n.onKeydown); e.addEventListener("keyup", n.onKeyup); e.addEventListener("blur", n.onBlur); e.addEventListener("touchstart", n.onClick); }, _removeEventListeners: function() { var t = this._elem, e = this._eventListeners; t.removeEventListener("compositionstart", e.compositionStart); t.removeEventListener("compositionend", e.compositionEnd); t.removeEventListener("input", e.onInput); t.removeEventListener("keydown", e.onKeydown); t.removeEventListener("keyup", e.onKeyup); t.removeEventListener("blur", e.onBlur); t.removeEventListener("touchstart", e.onClick); e.compositionStart = null; e.compositionEnd = null; e.onInput = null; e.onKeydown = null; e.onKeyup = null; e.onBlur = null; e.onClick = null; } }); }), { "../../platform/CCMacro": 206, "../../platform/utils": 225, "../CCLabel": 97, "./tabIndexUtil": 123, "./types": 124 } ], 123: [ (function(t, e, i) { "use strict"; e.exports = { _tabIndexList: [], add: function(t) { var e = this._tabIndexList; -1 === e.indexOf(t) && e.push(t); }, remove: function(t) { var e = this._tabIndexList, i = e.indexOf(t); -1 !== i && e.splice(i, 1); }, resort: function() { this._tabIndexList.sort((function(t, e) { return t._delegate._tabIndex - e._delegate._tabIndex; })); }, next: function(t) { var e = this._tabIndexList, i = e.indexOf(t); t.setFocus(!1); if (-1 !== i) { var n = e[i + 1]; n && n._delegate._tabIndex >= 0 && n.setFocus(!0); } } }; }), {} ], 124: [ (function(t, e, i) { "use strict"; var n = cc.Enum({ DEFAULT: 0, DONE: 1, SEND: 2, SEARCH: 3, GO: 4, NEXT: 5 }), r = cc.Enum({ ANY: 0, EMAIL_ADDR: 1, NUMERIC: 2, PHONE_NUMBER: 3, URL: 4, DECIMAL: 5, SINGLE_LINE: 6 }), s = cc.Enum({ PASSWORD: 0, SENSITIVE: 1, INITIAL_CAPS_WORD: 2, INITIAL_CAPS_SENTENCE: 3, INITIAL_CAPS_ALL_CHARACTERS: 4, DEFAULT: 5 }); e.exports = { KeyboardReturnType: n, InputMode: r, InputFlag: s }; }), {} ], 125: [ (function(t, e, i) { "use strict"; t("./CCComponent"); t("./CCComponentEventHandler"); t("./missing-script"); var n = [ t("./CCSprite"), t("./CCWidget"), t("./CCCanvas"), t("./CCAudioSource"), t("./CCAnimation"), t("./CCButton"), t("./CCLabel"), t("./CCProgressBar"), t("./CCMask"), t("./CCScrollBar"), t("./CCScrollView"), t("./CCPageViewIndicator"), t("./CCPageView"), t("./CCSlider"), t("./CCLayout"), t("./editbox/CCEditBox"), t("./CCLabelOutline"), t("./CCLabelShadow"), t("./CCRichText"), t("./CCToggleContainer"), t("./CCToggleGroup"), t("./CCToggle"), t("./CCBlockInputEvents"), t("./CCMotionStreak"), t("./WXSubContextView"), t("./SwanSubContextView") ]; e.exports = n; }), { "./CCAnimation": 90, "./CCAudioSource": 91, "./CCBlockInputEvents": 92, "./CCButton": 93, "./CCCanvas": 94, "./CCComponent": 95, "./CCComponentEventHandler": 96, "./CCLabel": 97, "./CCLabelOutline": 98, "./CCLabelShadow": 99, "./CCLayout": 100, "./CCMask": 101, "./CCMotionStreak": 102, "./CCPageView": 103, "./CCPageViewIndicator": 104, "./CCProgressBar": 105, "./CCRichText": 107, "./CCScrollBar": 108, "./CCScrollView": 109, "./CCSlider": 110, "./CCSprite": 111, "./CCToggle": 113, "./CCToggleContainer": 114, "./CCToggleGroup": 115, "./CCWidget": 117, "./SwanSubContextView": 118, "./WXSubContextView": 119, "./editbox/CCEditBox": 120, "./missing-script": 126 } ], 126: [ (function(t, e, i) { "use strict"; var n = cc.js, r = t("../utils/misc").BUILTIN_CLASSID_RE, s = cc.Class({ name: "cc.MissingClass", properties: { _$erialized: { default: null, visible: !1, editorOnly: !0 } } }), o = cc.Class({ name: "cc.MissingScript", extends: cc.Component, editor: { inspector: "packages://inspector/inspectors/comps/missing-script.js" }, properties: { compiled: { default: !1, serializable: !1 }, _$erialized: { default: null, visible: !1, editorOnly: !0 } }, ctor: !1, statics: { safeFindClass: function(t, e) { var i = n._getClassById(t); if (i) return i; if (t) { cc.deserialize.reportMissingClass(t); return o.getMissingWrapper(t, e); } return null; }, getMissingWrapper: function(t, e) { return e.node && (/^[0-9a-zA-Z+/]{23}$/.test(t) || r.test(t)) ? o : s; } }, onLoad: function() { cc.warnID(4600, this.node.name); } }); cc._MissingScript = e.exports = o; }), { "../utils/misc": 297 } ], 127: [ (function(t, e, i) { "use strict"; var n = cc.js; t("../event/event"); var r = function(t, e) { cc.Event.call(this, cc.Event.MOUSE, e); this._eventType = t; this._button = 0; this._x = 0; this._y = 0; this._prevX = 0; this._prevY = 0; this._scrollX = 0; this._scrollY = 0; }; n.extend(r, cc.Event); var s = r.prototype; s.setScrollData = function(t, e) { this._scrollX = t; this._scrollY = e; }; s.getScrollX = function() { return this._scrollX; }; s.getScrollY = function() { return this._scrollY; }; s.setLocation = function(t, e) { this._x = t; this._y = e; }; s.getLocation = function() { return cc.v2(this._x, this._y); }; s.getLocationInView = function() { return cc.v2(this._x, cc.view._designResolutionSize.height - this._y); }; s._setPrevCursor = function(t, e) { this._prevX = t; this._prevY = e; }; s.getPreviousLocation = function() { return cc.v2(this._prevX, this._prevY); }; s.getDelta = function() { return cc.v2(this._x - this._prevX, this._y - this._prevY); }; s.getDeltaX = function() { return this._x - this._prevX; }; s.getDeltaY = function() { return this._y - this._prevY; }; s.setButton = function(t) { this._button = t; }; s.getButton = function() { return this._button; }; s.getLocationX = function() { return this._x; }; s.getLocationY = function() { return this._y; }; r.NONE = 0; r.DOWN = 1; r.UP = 2; r.MOVE = 3; r.SCROLL = 4; r.BUTTON_LEFT = 0; r.BUTTON_RIGHT = 2; r.BUTTON_MIDDLE = 1; r.BUTTON_4 = 3; r.BUTTON_5 = 4; r.BUTTON_6 = 5; r.BUTTON_7 = 6; r.BUTTON_8 = 7; var o = function(t, e) { cc.Event.call(this, cc.Event.TOUCH, e); this._eventCode = 0; this._touches = t || []; this.touch = null; this.currentTouch = null; }; n.extend(o, cc.Event); (s = o.prototype).getEventCode = function() { return this._eventCode; }; s.getTouches = function() { return this._touches; }; s._setEventCode = function(t) { this._eventCode = t; }; s._setTouches = function(t) { this._touches = t; }; s.setLocation = function(t, e) { this.touch && this.touch.setTouchInfo(this.touch.getID(), t, e); }; s.getLocation = function() { return this.touch ? this.touch.getLocation() : cc.v2(); }; s.getLocationInView = function() { return this.touch ? this.touch.getLocationInView() : cc.v2(); }; s.getPreviousLocation = function() { return this.touch ? this.touch.getPreviousLocation() : cc.v2(); }; s.getStartLocation = function() { return this.touch ? this.touch.getStartLocation() : cc.v2(); }; s.getID = function() { return this.touch ? this.touch.getID() : null; }; s.getDelta = function() { return this.touch ? this.touch.getDelta() : cc.v2(); }; s.getDeltaX = function() { return this.touch ? this.touch.getDelta().x : 0; }; s.getDeltaY = function() { return this.touch ? this.touch.getDelta().y : 0; }; s.getLocationX = function() { return this.touch ? this.touch.getLocationX() : 0; }; s.getLocationY = function() { return this.touch ? this.touch.getLocationY() : 0; }; o.MAX_TOUCHES = 5; o.BEGAN = 0; o.MOVED = 1; o.ENDED = 2; o.CANCELED = 3; var a = function(t, e) { cc.Event.call(this, cc.Event.ACCELERATION, e); this.acc = t; }; n.extend(a, cc.Event); var c = function(t, e, i) { cc.Event.call(this, cc.Event.KEYBOARD, i); this.keyCode = t; this.isPressed = e; }; n.extend(c, cc.Event); cc.Event.EventMouse = r; cc.Event.EventTouch = o; cc.Event.EventAcceleration = a; cc.Event.EventKeyboard = c; e.exports = cc.Event; }), { "../event/event": 134 } ], 128: [ (function(t, e, i) { "use strict"; var n = t("../platform/js"); cc.EventListener = function(t, e, i) { this._onEvent = i; this._type = t || 0; this._listenerID = e || ""; this._registered = !1; this._fixedPriority = 0; this._node = null; this._target = null; this._paused = !0; this._isEnabled = !0; }; cc.EventListener.prototype = { constructor: cc.EventListener, _setPaused: function(t) { this._paused = t; }, _isPaused: function() { return this._paused; }, _setRegistered: function(t) { this._registered = t; }, _isRegistered: function() { return this._registered; }, _getType: function() { return this._type; }, _getListenerID: function() { return this._listenerID; }, _setFixedPriority: function(t) { this._fixedPriority = t; }, _getFixedPriority: function() { return this._fixedPriority; }, _setSceneGraphPriority: function(t) { this._target = t; this._node = t; }, _getSceneGraphPriority: function() { return this._node; }, checkAvailable: function() { return null !== this._onEvent; }, clone: function() { return null; }, setEnabled: function(t) { this._isEnabled = t; }, isEnabled: function() { return this._isEnabled; }, retain: function() {}, release: function() {} }; cc.EventListener.UNKNOWN = 0; cc.EventListener.TOUCH_ONE_BY_ONE = 1; cc.EventListener.TOUCH_ALL_AT_ONCE = 2; cc.EventListener.KEYBOARD = 3; cc.EventListener.MOUSE = 4; cc.EventListener.ACCELERATION = 6; cc.EventListener.CUSTOM = 8; var r = cc.EventListener.ListenerID = { MOUSE: "__cc_mouse", TOUCH_ONE_BY_ONE: "__cc_touch_one_by_one", TOUCH_ALL_AT_ONCE: "__cc_touch_all_at_once", KEYBOARD: "__cc_keyboard", ACCELERATION: "__cc_acceleration" }, s = function(t, e) { this._onCustomEvent = e; cc.EventListener.call(this, cc.EventListener.CUSTOM, t, this._callback); }; n.extend(s, cc.EventListener); n.mixin(s.prototype, { _onCustomEvent: null, _callback: function(t) { null !== this._onCustomEvent && this._onCustomEvent(t); }, checkAvailable: function() { return cc.EventListener.prototype.checkAvailable.call(this) && null !== this._onCustomEvent; }, clone: function() { return new s(this._listenerID, this._onCustomEvent); } }); var o = function() { cc.EventListener.call(this, cc.EventListener.MOUSE, r.MOUSE, this._callback); }; n.extend(o, cc.EventListener); n.mixin(o.prototype, { onMouseDown: null, onMouseUp: null, onMouseMove: null, onMouseScroll: null, _callback: function(t) { var e = cc.Event.EventMouse; switch (t._eventType) { case e.DOWN: this.onMouseDown && this.onMouseDown(t); break; case e.UP: this.onMouseUp && this.onMouseUp(t); break; case e.MOVE: this.onMouseMove && this.onMouseMove(t); break; case e.SCROLL: this.onMouseScroll && this.onMouseScroll(t); } }, clone: function() { var t = new o(); t.onMouseDown = this.onMouseDown; t.onMouseUp = this.onMouseUp; t.onMouseMove = this.onMouseMove; t.onMouseScroll = this.onMouseScroll; return t; }, checkAvailable: function() { return !0; } }); var a = function() { cc.EventListener.call(this, cc.EventListener.TOUCH_ONE_BY_ONE, r.TOUCH_ONE_BY_ONE, null); this._claimedTouches = []; }; n.extend(a, cc.EventListener); n.mixin(a.prototype, { constructor: a, _claimedTouches: null, swallowTouches: !1, onTouchBegan: null, onTouchMoved: null, onTouchEnded: null, onTouchCancelled: null, setSwallowTouches: function(t) { this.swallowTouches = t; }, isSwallowTouches: function() { return this.swallowTouches; }, clone: function() { var t = new a(); t.onTouchBegan = this.onTouchBegan; t.onTouchMoved = this.onTouchMoved; t.onTouchEnded = this.onTouchEnded; t.onTouchCancelled = this.onTouchCancelled; t.swallowTouches = this.swallowTouches; return t; }, checkAvailable: function() { if (!this.onTouchBegan) { cc.logID(1801); return !1; } return !0; } }); var c = function() { cc.EventListener.call(this, cc.EventListener.TOUCH_ALL_AT_ONCE, r.TOUCH_ALL_AT_ONCE, null); }; n.extend(c, cc.EventListener); n.mixin(c.prototype, { constructor: c, onTouchesBegan: null, onTouchesMoved: null, onTouchesEnded: null, onTouchesCancelled: null, clone: function() { var t = new c(); t.onTouchesBegan = this.onTouchesBegan; t.onTouchesMoved = this.onTouchesMoved; t.onTouchesEnded = this.onTouchesEnded; t.onTouchesCancelled = this.onTouchesCancelled; return t; }, checkAvailable: function() { if (null === this.onTouchesBegan && null === this.onTouchesMoved && null === this.onTouchesEnded && null === this.onTouchesCancelled) { cc.logID(1802); return !1; } return !0; } }); var l = function(t) { this._onAccelerationEvent = t; cc.EventListener.call(this, cc.EventListener.ACCELERATION, r.ACCELERATION, this._callback); }; n.extend(l, cc.EventListener); n.mixin(l.prototype, { constructor: l, _onAccelerationEvent: null, _callback: function(t) { this._onAccelerationEvent(t.acc, t); }, checkAvailable: function() { cc.assertID(this._onAccelerationEvent, 1803); return !0; }, clone: function() { return new l(this._onAccelerationEvent); } }); var h = function() { cc.EventListener.call(this, cc.EventListener.KEYBOARD, r.KEYBOARD, this._callback); }; n.extend(h, cc.EventListener); n.mixin(h.prototype, { constructor: h, onKeyPressed: null, onKeyReleased: null, _callback: function(t) { t.isPressed ? this.onKeyPressed && this.onKeyPressed(t.keyCode, t) : this.onKeyReleased && this.onKeyReleased(t.keyCode, t); }, clone: function() { var t = new h(); t.onKeyPressed = this.onKeyPressed; t.onKeyReleased = this.onKeyReleased; return t; }, checkAvailable: function() { if (null === this.onKeyPressed && null === this.onKeyReleased) { cc.logID(1800); return !1; } return !0; } }); cc.EventListener.create = function(t) { cc.assertID(t && t.event, 1900); var e = t.event; delete t.event; var i = null; if (e === cc.EventListener.TOUCH_ONE_BY_ONE) i = new a(); else if (e === cc.EventListener.TOUCH_ALL_AT_ONCE) i = new c(); else if (e === cc.EventListener.MOUSE) i = new o(); else if (e === cc.EventListener.CUSTOM) { i = new s(t.eventName, t.callback); delete t.eventName; delete t.callback; } else if (e === cc.EventListener.KEYBOARD) i = new h(); else if (e === cc.EventListener.ACCELERATION) { i = new l(t.callback); delete t.callback; } for (var n in t) i[n] = t[n]; return i; }; e.exports = cc.EventListener; }), { "../platform/js": 221 } ], 129: [ (function(t, e, i) { "use strict"; var n = t("../platform/js"); t("./CCEventListener"); var r = cc.EventListener.ListenerID, s = function() { this._fixedListeners = []; this._sceneGraphListeners = []; this.gt0Index = 0; }; s.prototype = { constructor: s, size: function() { return this._fixedListeners.length + this._sceneGraphListeners.length; }, empty: function() { return 0 === this._fixedListeners.length && 0 === this._sceneGraphListeners.length; }, push: function(t) { 0 === t._getFixedPriority() ? this._sceneGraphListeners.push(t) : this._fixedListeners.push(t); }, clearSceneGraphListeners: function() { this._sceneGraphListeners.length = 0; }, clearFixedListeners: function() { this._fixedListeners.length = 0; }, clear: function() { this._sceneGraphListeners.length = 0; this._fixedListeners.length = 0; }, getFixedPriorityListeners: function() { return this._fixedListeners; }, getSceneGraphPriorityListeners: function() { return this._sceneGraphListeners; } }; var o = function(t) { var e = cc.Event, i = t.type; if (i === e.ACCELERATION) return r.ACCELERATION; if (i === e.KEYBOARD) return r.KEYBOARD; if (i.startsWith(e.MOUSE)) return r.MOUSE; i.startsWith(e.TOUCH) && cc.logID(2e3); return ""; }, a = { DIRTY_NONE: 0, DIRTY_FIXED_PRIORITY: 1, DIRTY_SCENE_GRAPH_PRIORITY: 2, DIRTY_ALL: 3, _listenersMap: {}, _priorityDirtyFlagMap: {}, _nodeListenersMap: {}, _toAddedListeners: [], _toRemovedListeners: [], _dirtyListeners: {}, _inDispatch: 0, _isEnabled: !1, _internalCustomListenerIDs: [], _setDirtyForNode: function(t) { var e = this._nodeListenersMap[t._id]; if (void 0 !== e) for (var i = 0, n = e.length; i < n; i++) { var r = e[i]._getListenerID(); null == this._dirtyListeners[r] && (this._dirtyListeners[r] = !0); } if (t.getChildren) { var s = t.getChildren(), o = 0; for (n = s ? s.length : 0; o < n; o++) this._setDirtyForNode(s[o]); } }, pauseTarget: function(t, e) { if (t instanceof cc._BaseNode) { var i, n, r = this._nodeListenersMap[t._id]; if (r) for (i = 0, n = r.length; i < n; i++) r[i]._setPaused(!0); if (!0 === e) { var s = t.getChildren(); for (i = 0, n = s ? s.length : 0; i < n; i++) this.pauseTarget(s[i], !0); } } else cc.warnID(3506); }, resumeTarget: function(t, e) { if (t instanceof cc._BaseNode) { var i, n, r = this._nodeListenersMap[t._id]; if (r) for (i = 0, n = r.length; i < n; i++) r[i]._setPaused(!1); this._setDirtyForNode(t); if (!0 === e && t.getChildren) { var s = t.getChildren(); for (i = 0, n = s ? s.length : 0; i < n; i++) this.resumeTarget(s[i], !0); } } else cc.warnID(3506); }, _addListener: function(t) { 0 === this._inDispatch ? this._forceAddEventListener(t) : this._toAddedListeners.push(t); }, _forceAddEventListener: function(t) { var e = t._getListenerID(), i = this._listenersMap[e]; if (!i) { i = new s(); this._listenersMap[e] = i; } i.push(t); if (0 === t._getFixedPriority()) { this._setDirty(e, this.DIRTY_SCENE_GRAPH_PRIORITY); var n = t._getSceneGraphPriority(); null === n && cc.logID(3507); this._associateNodeAndEventListener(n, t); n.activeInHierarchy && this.resumeTarget(n); } else this._setDirty(e, this.DIRTY_FIXED_PRIORITY); }, _getListeners: function(t) { return this._listenersMap[t]; }, _updateDirtyFlagForSceneGraph: function() { var t = this._dirtyListeners; for (var e in t) this._setDirty(e, this.DIRTY_SCENE_GRAPH_PRIORITY); this._dirtyListeners = {}; }, _removeAllListenersInVector: function(t) { if (t) for (var e, i = t.length - 1; i >= 0; i--) { (e = t[i])._setRegistered(!1); if (null != e._getSceneGraphPriority()) { this._dissociateNodeAndEventListener(e._getSceneGraphPriority(), e); e._setSceneGraphPriority(null); } 0 === this._inDispatch && cc.js.array.removeAt(t, i); } }, _removeListenersForListenerID: function(t) { var e, i = this._listenersMap[t]; if (i) { var n = i.getFixedPriorityListeners(), r = i.getSceneGraphPriorityListeners(); this._removeAllListenersInVector(r); this._removeAllListenersInVector(n); delete this._priorityDirtyFlagMap[t]; if (!this._inDispatch) { i.clear(); delete this._listenersMap[t]; } } var s, o = this._toAddedListeners; for (e = o.length - 1; e >= 0; e--) (s = o[e]) && s._getListenerID() === t && cc.js.array.removeAt(o, e); }, _sortEventListeners: function(t) { var e = this.DIRTY_NONE, i = this._priorityDirtyFlagMap; i[t] && (e = i[t]); if (e !== this.DIRTY_NONE) { i[t] = this.DIRTY_NONE; e & this.DIRTY_FIXED_PRIORITY && this._sortListenersOfFixedPriority(t); if (e & this.DIRTY_SCENE_GRAPH_PRIORITY) { cc.director.getScene() && this._sortListenersOfSceneGraphPriority(t); } } }, _sortListenersOfSceneGraphPriority: function(t) { var e = this._getListeners(t); if (e) { var i = e.getSceneGraphPriorityListeners(); i && 0 !== i.length && e.getSceneGraphPriorityListeners().sort(this._sortEventListenersOfSceneGraphPriorityDes); } }, _sortEventListenersOfSceneGraphPriorityDes: function(t, e) { var i = t._getSceneGraphPriority(), n = e._getSceneGraphPriority(); if (!(e && n && n._activeInHierarchy && null !== n._parent)) return -1; if (!t || !i || !i._activeInHierarchy || null === i._parent) return 1; for (var r = i, s = n, o = !1; r._parent._id !== s._parent._id; ) { r = null === r._parent._parent ? (o = !0) && n : r._parent; s = null === s._parent._parent ? (o = !0) && i : s._parent; } if (r._id === s._id) { if (r._id === n._id) return -1; if (r._id === i._id) return 1; } return o ? r._localZOrder - s._localZOrder : s._localZOrder - r._localZOrder; }, _sortListenersOfFixedPriority: function(t) { var e = this._listenersMap[t]; if (e) { var i = e.getFixedPriorityListeners(); if (i && 0 !== i.length) { i.sort(this._sortListenersOfFixedPriorityAsc); for (var n = 0, r = i.length; n < r && !(i[n]._getFixedPriority() >= 0); ) ++n; e.gt0Index = n; } } }, _sortListenersOfFixedPriorityAsc: function(t, e) { return t._getFixedPriority() - e._getFixedPriority(); }, _onUpdateListeners: function(t) { var e, i, n, r = t.getFixedPriorityListeners(), s = t.getSceneGraphPriorityListeners(), o = this._toRemovedListeners; if (s) for (e = s.length - 1; e >= 0; e--) if (!(i = s[e])._isRegistered()) { cc.js.array.removeAt(s, e); -1 !== (n = o.indexOf(i)) && o.splice(n, 1); } if (r) for (e = r.length - 1; e >= 0; e--) if (!(i = r[e])._isRegistered()) { cc.js.array.removeAt(r, e); -1 !== (n = o.indexOf(i)) && o.splice(n, 1); } s && 0 === s.length && t.clearSceneGraphListeners(); r && 0 === r.length && t.clearFixedListeners(); }, frameUpdateListeners: function() { var t = this._listenersMap, e = this._priorityDirtyFlagMap; for (var i in t) if (t[i].empty()) { delete e[i]; delete t[i]; } var n = this._toAddedListeners; if (0 !== n.length) { for (var r = 0, s = n.length; r < s; r++) this._forceAddEventListener(n[r]); n.length = 0; } 0 !== this._toRemovedListeners.length && this._cleanToRemovedListeners(); }, _updateTouchListeners: function(t) { var e = this._inDispatch; cc.assertID(e > 0, 3508); if (!(e > 1)) { var i; (i = this._listenersMap[r.TOUCH_ONE_BY_ONE]) && this._onUpdateListeners(i); (i = this._listenersMap[r.TOUCH_ALL_AT_ONCE]) && this._onUpdateListeners(i); cc.assertID(1 === e, 3509); var n = this._toAddedListeners; if (0 !== n.length) { for (var s = 0, o = n.length; s < o; s++) this._forceAddEventListener(n[s]); this._toAddedListeners.length = 0; } 0 !== this._toRemovedListeners.length && this._cleanToRemovedListeners(); } }, _cleanToRemovedListeners: function() { for (var t = this._toRemovedListeners, e = 0; e < t.length; e++) { var i = t[e], n = this._listenersMap[i._getListenerID()]; if (n) { var r, s = n.getFixedPriorityListeners(), o = n.getSceneGraphPriorityListeners(); o && -1 !== (r = o.indexOf(i)) && o.splice(r, 1); s && -1 !== (r = s.indexOf(i)) && s.splice(r, 1); } } t.length = 0; }, _onTouchEventCallback: function(t, e) { if (!t._isRegistered()) return !1; var i = e.event, n = i.currentTouch; i.currentTarget = t._node; var r, s = !1, o = i.getEventCode(), c = cc.Event.EventTouch; if (o === c.BEGAN) t.onTouchBegan && (s = t.onTouchBegan(n, i)) && t._registered && t._claimedTouches.push(n); else if (t._claimedTouches.length > 0 && -1 !== (r = t._claimedTouches.indexOf(n))) { s = !0; if (o === c.MOVED && t.onTouchMoved) t.onTouchMoved(n, i); else if (o === c.ENDED) { t.onTouchEnded && t.onTouchEnded(n, i); t._registered && t._claimedTouches.splice(r, 1); } else if (o === c.CANCELLED) { t.onTouchCancelled && t.onTouchCancelled(n, i); t._registered && t._claimedTouches.splice(r, 1); } } if (i.isStopped()) { a._updateTouchListeners(i); return !0; } if (s && t.swallowTouches) { e.needsMutableSet && e.touches.splice(n, 1); return !0; } return !1; }, _dispatchTouchEvent: function(t) { this._sortEventListeners(r.TOUCH_ONE_BY_ONE); this._sortEventListeners(r.TOUCH_ALL_AT_ONCE); var e = this._getListeners(r.TOUCH_ONE_BY_ONE), i = this._getListeners(r.TOUCH_ALL_AT_ONCE); if (null !== e || null !== i) { var n = t.getTouches(), s = cc.js.array.copy(n), o = { event: t, needsMutableSet: e && i, touches: s, selTouch: null }; if (e) for (var a = 0; a < n.length; a++) { t.currentTouch = n[a]; t._propagationStopped = t._propagationImmediateStopped = !1; this._dispatchEventToListeners(e, this._onTouchEventCallback, o); } if (i && s.length > 0) { this._dispatchEventToListeners(i, this._onTouchesEventCallback, { event: t, touches: s }); if (t.isStopped()) return; } this._updateTouchListeners(t); } }, _onTouchesEventCallback: function(t, e) { if (!t._registered) return !1; var i = cc.Event.EventTouch, n = e.event, r = e.touches, s = n.getEventCode(); n.currentTarget = t._node; s === i.BEGAN && t.onTouchesBegan ? t.onTouchesBegan(r, n) : s === i.MOVED && t.onTouchesMoved ? t.onTouchesMoved(r, n) : s === i.ENDED && t.onTouchesEnded ? t.onTouchesEnded(r, n) : s === i.CANCELLED && t.onTouchesCancelled && t.onTouchesCancelled(r, n); if (n.isStopped()) { a._updateTouchListeners(n); return !0; } return !1; }, _associateNodeAndEventListener: function(t, e) { var i = this._nodeListenersMap[t._id]; if (!i) { i = []; this._nodeListenersMap[t._id] = i; } i.push(e); }, _dissociateNodeAndEventListener: function(t, e) { var i = this._nodeListenersMap[t._id]; if (i) { cc.js.array.remove(i, e); 0 === i.length && delete this._nodeListenersMap[t._id]; } }, _dispatchEventToListeners: function(t, e, i) { var n, r, s = !1, o = t.getFixedPriorityListeners(), a = t.getSceneGraphPriorityListeners(), c = 0; if (o && 0 !== o.length) for (;c < t.gt0Index; ++c) if ((r = o[c]).isEnabled() && !r._isPaused() && r._isRegistered() && e(r, i)) { s = !0; break; } if (a && !s) for (n = 0; n < a.length; n++) if ((r = a[n]).isEnabled() && !r._isPaused() && r._isRegistered() && e(r, i)) { s = !0; break; } if (o && !s) for (;c < o.length; ++c) if ((r = o[c]).isEnabled() && !r._isPaused() && r._isRegistered() && e(r, i)) { s = !0; break; } }, _setDirty: function(t, e) { var i = this._priorityDirtyFlagMap; null == i[t] ? i[t] = e : i[t] = e | i[t]; }, _sortNumberAsc: function(t, e) { return t - e; }, hasEventListener: function(t) { return !!this._getListeners(t); }, addListener: function(t, e) { cc.assertID(t && e, 3503); if (cc.js.isNumber(e) || e instanceof cc._BaseNode) { if (t instanceof cc.EventListener) { if (t._isRegistered()) { cc.logID(3505); return; } } else { cc.assertID(!cc.js.isNumber(e), 3504); t = cc.EventListener.create(t); } if (t.checkAvailable()) { if (cc.js.isNumber(e)) { if (0 === e) { cc.logID(3500); return; } t._setSceneGraphPriority(null); t._setFixedPriority(e); t._setRegistered(!0); t._setPaused(!1); this._addListener(t); } else { t._setSceneGraphPriority(e); t._setFixedPriority(0); t._setRegistered(!0); this._addListener(t); } return t; } } else cc.warnID(3506); }, addCustomListener: function(t, e) { var i = new cc.EventListener.create({ event: cc.EventListener.CUSTOM, eventName: t, callback: e }); this.addListener(i, 1); return i; }, removeListener: function(t) { if (null != t) { var e, i = this._listenersMap; for (var n in i) { var r = i[n], s = r.getFixedPriorityListeners(), o = r.getSceneGraphPriorityListeners(); (e = this._removeListenerInVector(o, t)) ? this._setDirty(t._getListenerID(), this.DIRTY_SCENE_GRAPH_PRIORITY) : (e = this._removeListenerInVector(s, t)) && this._setDirty(t._getListenerID(), this.DIRTY_FIXED_PRIORITY); if (r.empty()) { delete this._priorityDirtyFlagMap[t._getListenerID()]; delete i[n]; } if (e) break; } if (!e) for (var a = this._toAddedListeners, c = a.length - 1; c >= 0; c--) { var l = a[c]; if (l === t) { cc.js.array.removeAt(a, c); l._setRegistered(!1); break; } } } }, _removeListenerInCallback: function(t, e) { if (null == t) return !1; for (var i = t.length - 1; i >= 0; i--) { var n = t[i]; if (n._onCustomEvent === e || n._onEvent === e) { n._setRegistered(!1); if (null != n._getSceneGraphPriority()) { this._dissociateNodeAndEventListener(n._getSceneGraphPriority(), n); n._setSceneGraphPriority(null); } 0 === this._inDispatch ? cc.js.array.removeAt(t, i) : this._toRemovedListeners.push(n); return !0; } } return !1; }, _removeListenerInVector: function(t, e) { if (null == t) return !1; for (var i = t.length - 1; i >= 0; i--) { var n = t[i]; if (n === e) { n._setRegistered(!1); if (null != n._getSceneGraphPriority()) { this._dissociateNodeAndEventListener(n._getSceneGraphPriority(), n); n._setSceneGraphPriority(null); } 0 === this._inDispatch ? cc.js.array.removeAt(t, i) : this._toRemovedListeners.push(n); return !0; } } return !1; }, removeListeners: function(t, e) { var i = this; if (cc.js.isNumber(t) || t instanceof cc._BaseNode) if (void 0 !== t._id) { var n, s = i._nodeListenersMap[t._id]; if (s) { var o = cc.js.array.copy(s); for (n = 0; n < o.length; n++) i.removeListener(o[n]); delete i._nodeListenersMap[t._id]; } var a = i._toAddedListeners; for (n = 0; n < a.length; ) { var c = a[n]; if (c._getSceneGraphPriority() === t) { c._setSceneGraphPriority(null); c._setRegistered(!1); a.splice(n, 1); } else ++n; } if (!0 === e) { var l, h = t.getChildren(); for (n = 0, l = h.length; n < l; n++) i.removeListeners(h[n], !0); } } else t === cc.EventListener.TOUCH_ONE_BY_ONE ? i._removeListenersForListenerID(r.TOUCH_ONE_BY_ONE) : t === cc.EventListener.TOUCH_ALL_AT_ONCE ? i._removeListenersForListenerID(r.TOUCH_ALL_AT_ONCE) : t === cc.EventListener.MOUSE ? i._removeListenersForListenerID(r.MOUSE) : t === cc.EventListener.ACCELERATION ? i._removeListenersForListenerID(r.ACCELERATION) : t === cc.EventListener.KEYBOARD ? i._removeListenersForListenerID(r.KEYBOARD) : cc.logID(3501); else cc.warnID(3506); }, removeCustomListeners: function(t) { this._removeListenersForListenerID(t); }, removeAllListeners: function() { var t = this._listenersMap, e = this._internalCustomListenerIDs; for (var i in t) -1 === e.indexOf(i) && this._removeListenersForListenerID(i); }, setPriority: function(t, e) { if (null != t) { var i = this._listenersMap; for (var n in i) { var r = i[n].getFixedPriorityListeners(); if (r) { if (-1 !== r.indexOf(t)) { null != t._getSceneGraphPriority() && cc.logID(3502); if (t._getFixedPriority() !== e) { t._setFixedPriority(e); this._setDirty(t._getListenerID(), this.DIRTY_FIXED_PRIORITY); } return; } } } } }, setEnabled: function(t) { this._isEnabled = t; }, isEnabled: function() { return this._isEnabled; }, dispatchEvent: function(t) { if (this._isEnabled) { this._updateDirtyFlagForSceneGraph(); this._inDispatch++; if (t && t.getType) if (t.getType().startsWith(cc.Event.TOUCH)) { this._dispatchTouchEvent(t); this._inDispatch--; } else { var e = o(t); this._sortEventListeners(e); var i = this._listenersMap[e]; if (null != i) { this._dispatchEventToListeners(i, this._onListenerCallback, t); this._onUpdateListeners(i); } this._inDispatch--; } else cc.errorID(3511); } }, _onListenerCallback: function(t, e) { e.currentTarget = t._target; t._onEvent(e); return e.isStopped(); }, dispatchCustomEvent: function(t, e) { var i = new cc.Event.EventCustom(t); i.setUserData(e); this.dispatchEvent(i); } }; n.get(cc, "eventManager", (function() { cc.warnID(1405, "cc.eventManager", "cc.EventTarget or cc.systemEvent"); return a; })); e.exports = a; }), { "../platform/js": 221, "./CCEventListener": 128 } ], 130: [ (function(t, e, i) { "use strict"; cc.Touch = function(t, e, i) { this._lastModified = 0; this.setTouchInfo(i, t, e); }; cc.Touch.prototype = { constructor: cc.Touch, getLocation: function() { return cc.v2(this._point.x, this._point.y); }, getLocationX: function() { return this._point.x; }, getLocationY: function() { return this._point.y; }, getPreviousLocation: function() { return cc.v2(this._prevPoint.x, this._prevPoint.y); }, getStartLocation: function() { return cc.v2(this._startPoint.x, this._startPoint.y); }, getDelta: function() { return this._point.sub(this._prevPoint); }, getLocationInView: function() { return cc.v2(this._point.x, cc.view._designResolutionSize.height - this._point.y); }, getPreviousLocationInView: function() { return cc.v2(this._prevPoint.x, cc.view._designResolutionSize.height - this._prevPoint.y); }, getStartLocationInView: function() { return cc.v2(this._startPoint.x, cc.view._designResolutionSize.height - this._startPoint.y); }, getID: function() { return this._id; }, setTouchInfo: function(t, e, i) { this._prevPoint = this._point; this._point = cc.v2(e || 0, i || 0); this._id = t; if (!this._startPointCaptured) { this._startPoint = cc.v2(this._point); cc.view._convertPointWithScale(this._startPoint); this._startPointCaptured = !0; } }, _setPoint: function(t, e) { if (void 0 === e) { this._point.x = t.x; this._point.y = t.y; } else { this._point.x = t; this._point.y = e; } }, _setPrevPoint: function(t, e) { this._prevPoint = void 0 === e ? cc.v2(t.x, t.y) : cc.v2(t || 0, e || 0); } }; }), {} ], 131: [ (function(t, e, i) { "use strict"; t("./CCEvent"); t("./CCTouch"); t("./CCEventListener"); var n = t("./CCEventManager"); e.exports = n; 0; }), { "./CCEvent": 127, "./CCEventListener": 128, "./CCEventManager": 129, "./CCTouch": 130 } ], 132: [ (function(t, e, i) { "use strict"; var n = cc.js, r = t("../platform/callbacks-invoker").CallbacksHandler; function s() { r.call(this); } n.extend(s, r); s.prototype.invoke = function(t, e) { var i = t.type, n = this._callbackTable[i]; if (n) { var r = !n.isInvoking; n.isInvoking = !0; for (var s = n.callbacks, o = n.targets, a = 0, c = s.length; a < c; ++a) { var l = s[a]; if (l) { var h = o[a] || t.currentTarget; l.call(h, t, e); if (t._propagationImmediateStopped) break; } } if (r) { n.isInvoking = !1; n.containCanceled && n.purgeCanceled(); } } }; e.exports = s; 0; }), { "../platform/callbacks-invoker": 214 } ], 133: [ (function(t, e, i) { "use strict"; var n = t("../platform/js"), r = t("../platform/callbacks-invoker"), s = n.array.fastRemove; function o() { r.call(this); } n.extend(o, r); var a = o.prototype; a.on = function(t, e, i) { if (e) { if (!this.hasEventListener(t, e, i)) { this.add(t, e, i); i && i.__eventTargets && i.__eventTargets.push(this); } return e; } cc.errorID(6800); }; a.off = function(t, e, i) { if (e) { this.remove(t, e, i); i && i.__eventTargets && s(i.__eventTargets, this); } else { var n = this._callbackTable[t]; if (!n) return; for (var r = n.targets, o = 0; o < r.length; ++o) { var a = r[o]; a && a.__eventTargets && s(a.__eventTargets, this); } this.removeAll(t); } }; a.targetOff = function(t) { this.removeAll(t); t && t.__eventTargets && s(t.__eventTargets, this); }; a.once = function(t, e, i) { var n = "__ONCE_FLAG:" + t; if (!this.hasEventListener(n, e, i)) { var r = this; this.on(t, (function s(o, a, c, l, h) { r.off(t, s, i); r.remove(n, e, i); e.call(this, o, a, c, l, h); }), i); this.add(n, e, i); } }; a.emit = r.prototype.invoke; a.dispatchEvent = function(t) { this.invoke(t.type, t); }; cc.EventTarget = e.exports = o; }), { "../platform/callbacks-invoker": 214, "../platform/js": 221 } ], 134: [ (function(t, e, i) { "use strict"; var n = t("../platform/js"); cc.Event = function(t, e) { this.type = t; this.bubbles = !!e; this.target = null; this.currentTarget = null; this.eventPhase = 0; this._propagationStopped = !1; this._propagationImmediateStopped = !1; }; cc.Event.prototype = { constructor: cc.Event, unuse: function() { this.type = cc.Event.NO_TYPE; this.target = null; this.currentTarget = null; this.eventPhase = cc.Event.NONE; this._propagationStopped = !1; this._propagationImmediateStopped = !1; }, reuse: function(t, e) { this.type = t; this.bubbles = e || !1; }, stopPropagation: function() { this._propagationStopped = !0; }, stopPropagationImmediate: function() { this._propagationImmediateStopped = !0; }, isStopped: function() { return this._propagationStopped || this._propagationImmediateStopped; }, getCurrentTarget: function() { return this.currentTarget; }, getType: function() { return this.type; } }; cc.Event.NO_TYPE = "no_type"; cc.Event.TOUCH = "touch"; cc.Event.MOUSE = "mouse"; cc.Event.KEYBOARD = "keyboard"; cc.Event.ACCELERATION = "acceleration"; cc.Event.NONE = 0; cc.Event.CAPTURING_PHASE = 1; cc.Event.AT_TARGET = 2; cc.Event.BUBBLING_PHASE = 3; var r = function(t, e) { cc.Event.call(this, t, e); this.detail = null; }; n.extend(r, cc.Event); r.prototype.reset = r; r.prototype.setUserData = function(t) { this.detail = t; }; r.prototype.getUserData = function() { return this.detail; }; r.prototype.getEventName = cc.Event.prototype.getType; var s = new n.Pool(10); r.put = function(t) { s.put(t); }; r.get = function(t, e) { var i = s._get(); i ? i.reset(t, e) : i = new r(t, e); return i; }; cc.Event.EventCustom = r; e.exports = cc.Event; }), { "../platform/js": 221 } ], 135: [ (function(t, e, i) { "use strict"; t("./event"); t("./event-listeners"); t("./event-target"); t("./system-event"); }), { "./event": 134, "./event-listeners": 132, "./event-target": 133, "./system-event": 136 } ], 136: [ (function(t, e, i) { "use strict"; var n = t("../event/event-target"), r = t("../event-manager"), s = t("../platform/CCInputManager"), o = cc.Enum({ KEY_DOWN: "keydown", KEY_UP: "keyup", DEVICEMOTION: "devicemotion" }), a = null, c = null, l = cc.Class({ name: "SystemEvent", extends: n, statics: { EventType: o }, setAccelerometerEnabled: function(t) { 0; s.setAccelerometerEnabled(t); }, setAccelerometerInterval: function(t) { 0; s.setAccelerometerInterval(t); }, on: function(t, e, i) { 0; this._super(t, e, i); if (t === o.KEY_DOWN || t === o.KEY_UP) { a || (a = cc.EventListener.create({ event: cc.EventListener.KEYBOARD, onKeyPressed: function(t, e) { e.type = o.KEY_DOWN; cc.systemEvent.dispatchEvent(e); }, onKeyReleased: function(t, e) { e.type = o.KEY_UP; cc.systemEvent.dispatchEvent(e); } })); r.hasEventListener(cc.EventListener.ListenerID.KEYBOARD) || r.addListener(a, 1); } if (t === o.DEVICEMOTION) { c || (c = cc.EventListener.create({ event: cc.EventListener.ACCELERATION, callback: function(t, e) { e.type = o.DEVICEMOTION; cc.systemEvent.dispatchEvent(e); } })); r.hasEventListener(cc.EventListener.ListenerID.ACCELERATION) || r.addListener(c, 1); } }, off: function(t, e, i) { 0; this._super(t, e, i); if (a && (t === o.KEY_DOWN || t === o.KEY_UP)) { var n = this.hasEventListener(o.KEY_DOWN), s = this.hasEventListener(o.KEY_UP); n || s || r.removeListener(a); } c && t === o.DEVICEMOTION && r.removeListener(c); } }); cc.SystemEvent = e.exports = l; cc.systemEvent = new cc.SystemEvent(); }), { "../event-manager": 131, "../event/event-target": 133, "../platform/CCInputManager": 205 } ], 137: [ (function(t, e, i) { "use strict"; var n = cc.vmath.vec3, r = cc.vmath.mat3, s = n.create(), o = n.create(), a = r.create(), c = function(t, e, i) { a.m00 = Math.abs(i.m00); a.m01 = Math.abs(i.m01); a.m02 = Math.abs(i.m02); a.m03 = Math.abs(i.m04); a.m04 = Math.abs(i.m05); a.m05 = Math.abs(i.m06); a.m06 = Math.abs(i.m08); a.m07 = Math.abs(i.m09); a.m08 = Math.abs(i.m10); n.transformMat3(t, e, a); }; function l(t, e, i, r, s, o) { this.center = n.create(t, e, i); this.halfExtents = n.create(r, s, o); } var h = l.prototype; h.getBoundary = function(t, e) { n.sub(t, this.center, this.halfExtents); n.add(e, this.center, this.halfExtents); }; h.transform = function(t, e, i, r, s) { s || (s = this); n.transformMat4(s.center, this.center, t); c(s.halfExtents, this.halfExtents, t); }; l.create = function(t, e, i, n, r, s) { return new l(t, e, i, n, r, s); }; l.clone = function(t) { return new l(t.center.x, t.center.y, t.center.z, t.halfExtents.x, t.halfExtents.y, t.halfExtents.z); }; l.copy = function(t, e) { n.copy(t.center, e.center); n.copy(t.halfExtents, e.halfExtents); return t; }; l.fromPoints = function(t, e, i) { n.scale(t.center, n.add(s, e, i), .5); n.scale(t.halfExtents, n.sub(o, i, e), .5); return t; }; l.set = function(t, e, i, r, s, o, a) { n.set(t.center, e, i, r); n.set(t.halfExtents, s, o, a); return t; }; e.exports = l; }), {} ], 138: [ (function(t, e, i) { "use strict"; i.__esModule = !0; cc.geomUtils = { Triangle: t("./triangle"), Aabb: t("./aabb"), Ray: t("./ray"), intersect: t("./intersect") }; i.default = cc.geomUtils; e.exports = i.default; }), { "./aabb": 137, "./intersect": 139, "./ray": 140, "./triangle": 141 } ], 139: [ (function(t, e, i) { "use strict"; var n = s(t("../../renderer/gfx")), r = s(t("../../renderer/memop/recycle-pool")); function s(t) { return t && t.__esModule ? t : { default: t }; } var o = t("./aabb"), a = t("./ray"), c = t("./triangle"), l = cc.vmath.mat4, h = cc.vmath.vec3, u = {}; u.rayAabb = (function() { var t = h.create(), e = h.create(); return function(i, n) { var r = i.o, s = i.d, o = 1 / s.x, a = 1 / s.y, c = 1 / s.z; h.sub(t, n.center, n.halfExtents); h.add(e, n.center, n.halfExtents); var l = (t.x - r.x) * o, u = (e.x - r.x) * o, _ = (t.y - r.y) * a, f = (e.y - r.y) * a, d = (t.z - r.z) * c, m = (e.z - r.z) * c, p = Math.max(Math.max(Math.min(l, u), Math.min(_, f)), Math.min(d, m)), v = Math.min(Math.min(Math.max(l, u), Math.max(_, f)), Math.max(d, m)); return v < 0 || p > v ? 0 : p; }; })(); u.rayTriangle = (function() { var t = h.create(0, 0, 0), e = h.create(0, 0, 0), i = h.create(0, 0, 0), n = h.create(0, 0, 0), r = h.create(0, 0, 0); return function(s, o) { h.sub(t, o.b, o.a); h.sub(e, o.c, o.a); h.cross(i, s.d, e); var a = h.dot(t, i); if (a <= 0) return 0; h.sub(n, s.o, o.a); var c = h.dot(n, i); if (c < 0 || c > a) return 0; h.cross(r, n, t); var l = h.dot(s.d, r); if (l < 0 || c + l > a) return 0; var u = h.dot(e, r) / a; return u < 0 ? 0 : u; }; })(); u.rayMesh = (function() { var t = c.create(), e = Infinity, i = { 5120: "getInt8", 5121: "getUint8", 5122: "getInt16", 5123: "getUint16", 5124: "getInt32", 5125: "getUint32", 5126: "getFloat32" }, r = (function() { var t = new ArrayBuffer(2); new DataView(t).setInt16(0, 256, !0); return 256 === new Int16Array(t)[0]; })(); function s(t, e, i, n, s) { h.set(t, e[i](s, r), e[i](s += n, r), e[i](s += n, r)); } return function(r, o) { e = Infinity; for (var a = o._subMeshes, c = 0; c < a.length; c++) if (a[c]._primitiveType === n.default.PT_TRIANGLES) for (var l = o._vbs[c] || o._vbs[0], h = l.data, _ = new DataView(h.buffer, h.byteOffset, h.byteLength), f = o._ibs[c].data, d = l.buffer._format.element(n.default.ATTR_POSITION), m = d.offset, p = d.stride, v = i[d.type], y = 0; y < f.length; y += 3) { s(t.a, _, v, 4, f[y] * p + m); s(t.b, _, v, 4, f[y + 1] * p + m); s(t.c, _, v, 4, f[y + 2] * p + m); var g = u.rayTriangle(r, t); g > 0 && g < e && (e = g); } return e; }; })(); u.raycast = (function() { function t(e, i) { for (var n = e.children, r = n.length - 1; r >= 0; r--) { t(n[r], i); } i(e); } function e(t, e) { return t.distance - e.distance; } function i(t, e, i) { var n = e.x, r = e.y, s = e.z, o = i.m03 * n + i.m07 * r + i.m11 * s; o = o ? 1 / o : 1; t.x = (i.m00 * n + i.m04 * r + i.m08 * s) * o; t.y = (i.m01 * n + i.m05 * r + i.m09 * s) * o; t.z = (i.m02 * n + i.m06 * r + i.m10 * s) * o; return t; } var n = new r.default(function() { return { distance: 0, node: null }; }, 1), s = [], c = o.create(), _ = h.create(), f = h.create(), d = a.create(), m = l.create(), p = l.create(), v = h.create(); function y(t) { return t > 0 && t < Infinity; } return function(r, a, g, x) { n.reset(); s.length = 0; t(r = r || cc.director.getScene(), (function(t) { if (!x || x(t)) { l.invert(p, t.getWorldMatrix(m)); h.transformMat4(d.o, a.o, p); h.normalize(d.d, i(d.d, a.d, p)); var e = Infinity, r = t._renderComponent; if (r && r._boundingBox) e = u.rayAabb(d, r._boundingBox); else if (t.width && t.height) { h.set(_, -t.width * t.anchorX, -t.height * t.anchorY, t.z); h.set(f, t.width * (1 - t.anchorX), t.height * (1 - t.anchorY), t.z); o.fromPoints(c, _, f); e = u.rayAabb(d, c); } if (y(e)) { g && (e = g(d, t, e)); if (y(e)) { h.scale(v, d.d, e); i(v, v, m); var C = n.add(); C.node = t; C.distance = cc.vmath.vec3.mag(v); s.push(C); } } } })); s.sort(e); return s; }; })(); e.exports = u; }), { "../../renderer/gfx": 349, "../../renderer/memop/recycle-pool": 364, "./aabb": 137, "./ray": 140, "./triangle": 141 } ], 140: [ (function(t, e, i) { "use strict"; var n = cc.vmath.vec3; function r(t, e, i, r, s, o) { this.o = n.create(t, e, i); this.d = n.create(r, s, o); } r.create = function(t, e, i, n, s, o) { return new r(t, e, i, n, s, o); }; r.clone = function(t) { return new r(t.o.x, t.o.y, t.o.z, t.d.x, t.d.y, t.d.z); }; r.copy = function(t, e) { t.o.x = e.o.x; t.o.y = e.o.y; t.o.z = e.o.z; t.d.x = e.d.x; t.d.y = e.d.y; t.d.z = e.d.z; return t; }; r.set = function(t, e, i, n, r, s, o) { t.o.x = e; t.o.y = i; t.o.z = n; t.d.x = r; t.d.y = s; t.d.z = o; return t; }; r.fromPoints = function(t, e, i) { n.copy(t.o, e); n.normalize(t.d, n.sub(t.d, i, e)); return t; }; e.exports = r; }), {} ], 141: [ (function(t, e, i) { "use strict"; var n = cc.vmath.vec3; function r(t, e, i, r, s, o, a, c, l) { this.a = n.create(t, e, i); this.b = n.create(r, s, o); this.c = n.create(a, c, l); } r.create = function(t, e, i, n, s, o, a, c, l) { return new r(t, e, i, n, s, o, a, c, l); }; r.clone = function(t) { return new r(t.a.x, t.a.y, t.a.z, t.b.x, t.b.y, t.b.z, t.c.x, t.c.y, t.c.z); }; r.copy = function(t, e) { n.copy(t.a, e.a); n.copy(t.b, e.b); n.copy(t.c, e.c); return t; }; r.fromPoints = function(t, e, i, r) { n.copy(t.a, e); n.copy(t.b, i); n.copy(t.c, r); return t; }; r.set = function(t, e, i, n, r, s, o, a, c, l) { t.a.x = e; t.a.y = i; t.a.z = n; t.b.x = r; t.b.y = s; t.b.z = o; t.c.x = a; t.c.y = c; t.c.z = l; return t; }; e.exports = r; }), {} ], 142: [ (function(t, e, i) { "use strict"; var n = t("../components/CCRenderComponent"), r = t("../assets/material/CCMaterial"), s = t("./types"), o = s.LineCap, a = s.LineJoin, c = cc.Class({ name: "cc.Graphics", extends: n, editor: !1, ctor: function() { this._impl = c._assembler.createImpl(this); }, properties: { _lineWidth: 1, _strokeColor: cc.Color.BLACK, _lineJoin: a.MITER, _lineCap: o.BUTT, _fillColor: cc.Color.WHITE, _miterLimit: 10, lineWidth: { get: function() { return this._lineWidth; }, set: function(t) { this._lineWidth = t; this._impl.lineWidth = t; } }, lineJoin: { get: function() { return this._lineJoin; }, set: function(t) { this._lineJoin = t; this._impl.lineJoin = t; }, type: a }, lineCap: { get: function() { return this._lineCap; }, set: function(t) { this._lineCap = t; this._impl.lineCap = t; }, type: o }, strokeColor: { get: function() { return this._strokeColor; }, set: function(t) { this._impl.strokeColor = this._strokeColor = cc.color(t); } }, fillColor: { get: function() { return this._fillColor; }, set: function(t) { this._impl.fillColor = this._fillColor = cc.color(t); } }, miterLimit: { get: function() { return this._miterLimit; }, set: function(t) { this._miterLimit = t; this._impl.miterLimit = t; } } }, statics: { LineJoin: a, LineCap: o }, onRestore: function() { this._impl || (this._impl = c._assembler.createImpl()); }, onEnable: function() { this._super(); this._activateMaterial(); }, onDestroy: function() { this._super(); this._impl.clear(this, !0); this._impl = null; }, _activateMaterial: function() { if (cc.game.renderType !== cc.game.RENDER_TYPE_CANVAS) { this.node._renderFlag &= ~cc.RenderFlow.FLAG_RENDER; this.node._renderFlag |= cc.RenderFlow.FLAG_CUSTOM_IA_RENDER; var t = this.sharedMaterials[0]; (t = t ? r.getInstantiatedMaterial(t, this) : r.getInstantiatedBuiltinMaterial("2d-base", this)).define("_USE_MODEL", !0); this.setMaterial(0, t); } else this.disableRender(); }, moveTo: function(t, e) { 0; this._impl.moveTo(t, e); }, lineTo: function(t, e) { 0; this._impl.lineTo(t, e); }, bezierCurveTo: function(t, e, i, n, r, s) { this._impl.bezierCurveTo(t, e, i, n, r, s); }, quadraticCurveTo: function(t, e, i, n) { this._impl.quadraticCurveTo(t, e, i, n); }, arc: function(t, e, i, n, r, s) { this._impl.arc(t, e, i, n, r, s); }, ellipse: function(t, e, i, n) { this._impl.ellipse(t, e, i, n); }, circle: function(t, e, i) { this._impl.circle(t, e, i); }, rect: function(t, e, i, n) { this._impl.rect(t, e, i, n); }, roundRect: function(t, e, i, n, r) { this._impl.roundRect(t, e, i, n, r); }, fillRect: function(t, e, i, n) { this.rect(t, e, i, n); this.fill(); }, clear: function(t) { this._impl.clear(this, t); }, close: function() { this._impl.close(); }, stroke: function() { c._assembler.stroke(this); }, fill: function() { c._assembler.fill(this); } }); cc.Graphics = e.exports = c; }), { "../assets/material/CCMaterial": 75, "../components/CCRenderComponent": 106, "./types": 145 } ], 143: [ (function(t, e, i) { "use strict"; var n = t("./types").PointFlags, r = Math.PI, s = Math.min, o = Math.max, a = Math.cos, c = Math.sin, l = Math.abs, h = Math.sign, u = .5522847493; e.exports = { arc: function(t, e, i, n, h, u, _) { var f, d, m, p = 0, v = 0, y = 0, g = 0, x = 0, C = 0, b = 0, A = 0, S = 0, w = 0, T = 0, E = 0, M = 0; v = u - h; if (_ = _ || !1) if (l(v) >= 2 * r) v = 2 * r; else for (;v < 0; ) v += 2 * r; else if (l(v) >= 2 * r) v = 2 * -r; else for (;v > 0; ) v -= 2 * r; m = 0 | o(1, s(l(v) / (.5 * r) + .5, 5)); y = l(4 / 3 * (1 - a(f = v / m / 2)) / c(f)); _ || (y = -y); for (d = 0; d <= m; d++) { g = a(p = h + v * (d / m)); x = c(p); C = e + g * n; b = i + x * n; A = -x * n * y; S = g * n * y; 0 === d ? t.moveTo(C, b) : t.bezierCurveTo(w + E, T + M, C - A, b - S, C, b); w = C; T = b; E = A; M = S; } }, ellipse: function(t, e, i, n, r) { t.moveTo(e - n, i); t.bezierCurveTo(e - n, i + r * u, e - n * u, i + r, e, i + r); t.bezierCurveTo(e + n * u, i + r, e + n, i + r * u, e + n, i); t.bezierCurveTo(e + n, i - r * u, e + n * u, i - r, e, i - r); t.bezierCurveTo(e - n * u, i - r, e - n, i - r * u, e - n, i); t.close(); }, roundRect: function(t, e, i, n, r, o) { if (o < .1) t.rect(e, i, n, r); else { var a = s(o, .5 * l(n)) * h(n), c = s(o, .5 * l(r)) * h(r); t.moveTo(e, i + c); t.lineTo(e, i + r - c); t.bezierCurveTo(e, i + r - c * (1 - u), e + a * (1 - u), i + r, e + a, i + r); t.lineTo(e + n - a, i + r); t.bezierCurveTo(e + n - a * (1 - u), i + r, e + n, i + r - c * (1 - u), e + n, i + r - c); t.lineTo(e + n, i + c); t.bezierCurveTo(e + n, i + c * (1 - u), e + n - a * (1 - u), i, e + n - a, i); t.lineTo(e + a, i); t.bezierCurveTo(e + a * (1 - u), i, e, i + c * (1 - u), e, i + c); t.close(); } }, tesselateBezier: function t(e, i, r, s, o, a, c, h, u, _, f) { var d, m, p, v, y, g, x, C, b, A, S, w, T, E, M, B; if (!(_ > 10)) { y = .5 * (a + h); g = .5 * (c + u); x = .5 * ((d = .5 * (i + s)) + (p = .5 * (s + a))); C = .5 * ((m = .5 * (r + o)) + (v = .5 * (o + c))); if (((M = l((s - h) * (E = u - r) - (o - u) * (T = h - i))) + (B = l((a - h) * E - (c - u) * T))) * (M + B) < e._tessTol * (T * T + E * E)) e._addPoint(h, u, 0 === f ? f | n.PT_BEVEL : f); else { t(e, i, r, d, m, x, C, S = .5 * (x + (b = .5 * (p + y))), w = .5 * (C + (A = .5 * (v + g))), _ + 1, 0); t(e, S, w, b, A, y, g, h, u, _ + 1, f); } } } }; }), { "./types": 145 } ], 144: [ (function(t, e, i) { "use strict"; t("./graphics"); }), { "./graphics": 142 } ], 145: [ (function(t, e, i) { "use strict"; var n = cc.Enum({ BUTT: 0, ROUND: 1, SQUARE: 2 }), r = cc.Enum({ BEVEL: 0, ROUND: 1, MITER: 2 }), s = cc.Enum({ PT_CORNER: 1, PT_LEFT: 2, PT_BEVEL: 4, PT_INNERBEVEL: 8 }); e.exports = { LineCap: n, LineJoin: r, PointFlags: s }; }), {} ], 146: [ (function(t, e, i) { "use strict"; t("./platform"); t("./assets"); t("./CCNode"); t("./CCPrivateNode"); t("./CCScene"); t("./components"); t("./graphics"); t("./collider"); t("./collider/CCIntersection"); t("./physics"); t("./camera/CCCamera"); t("./geom-utils"); t("./mesh"); t("./3d"); t("./3d/polyfill-3d"); t("./base-ui/CCWidgetManager"); }), { "./3d": 29, "./3d/polyfill-3d": 30, "./CCNode": 52, "./CCPrivateNode": 53, "./CCScene": 54, "./assets": 74, "./base-ui/CCWidgetManager": 79, "./camera/CCCamera": 80, "./collider": 88, "./collider/CCIntersection": 86, "./components": 125, "./geom-utils": 138, "./graphics": 144, "./mesh": 169, "./physics": 184, "./platform": 218 } ], 147: [ (function(i, n, r) { "use strict"; var s = i("../platform/js"), o = i("./pipeline"), a = i("./loading-items"), c = i("./asset-loader"), l = i("./downloader"), h = i("./loader"), u = i("./asset-table"), _ = i("../platform/utils").callInNextTick, f = i("./auto-release-utils"), d = Object.create(null); d.assets = new u(); d.internal = new u(); var m = { url: null, raw: !1 }; function p(i) { var n, r, s; if ("object" === ("object" === (e = typeof i) ? t(i) : e)) { r = i; if (i.url) return r; n = i.uuid; } else { r = {}; n = i; } s = r.type ? "uuid" === r.type : cc.AssetLibrary._uuidInSettings(n); cc.AssetLibrary._getAssetInfoInRuntime(n, m); r.url = s ? m.url : n; if (m.url && "uuid" === r.type && m.raw) { r.type = null; r.isRawAsset = !0; } else s || (r.isRawAsset = !0); return r; } var v = [], y = []; function g() { var t = new c(), e = new l(), i = new h(); o.call(this, [ t, e, i ]); this.assetLoader = t; this.md5Pipe = null; this.downloader = e; this.loader = i; this.onProgress = null; this._autoReleaseSetting = s.createMap(!0); 0; } s.extend(g, o); var x = g.prototype; x.init = function(t) {}; x.getXMLHttpRequest = function() { return window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("MSXML2.XMLHTTP"); }; x.addDownloadHandlers = function(t) { this.downloader.addHandlers(t); }; x.addLoadHandlers = function(t) { this.loader.addHandlers(t); }; x.load = function(t, e, i) { 0; if (void 0 === i) { i = e; e = this.onProgress || null; } var n, r = this, s = !1; if (!(t instanceof Array)) if (t) { s = !0; t = [ t ]; } else t = []; v.length = 0; for (var o = 0; o < t.length; ++o) { var c = t[o]; if (c && c.id) { cc.warnID(4920, c.id); c.uuid || c.url || (c.url = c.id); } if ((n = p(c)).url || n.uuid) { var l = this._cache[n.url]; v.push(l || n); } } var h = a.create(this, e, (function(t, e) { _((function() { if (i) { if (s) { var o = n.url; i.call(r, t, e.getContent(o)); } else i.call(r, t, e); i = null; } e.destroy(); })); })); a.initQueueDeps(h); h.append(v); v.length = 0; }; x.flowInDeps = function(t, e, i) { y.length = 0; for (var n = 0; n < e.length; ++n) { var r = p(e[n]); if (r.url || r.uuid) { var s = this._cache[r.url]; s ? y.push(s) : y.push(r); } } var o = a.create(this, t ? function(t, e, i) { this._ownerQueue && this._ownerQueue.onProgress && this._ownerQueue._childOnProgress(i); } : null, (function(e, n) { i(e, n); t && t.deps && (t.deps.length = 0); n.destroy(); })); if (t) { var c = a.getQueue(t); o._ownerQueue = c._ownerQueue || c; } var l = o.append(y, t); y.length = 0; return l; }; x._assetTables = d; x._getResUuid = function(t, e, i, n) { var r = d[i = i || "assets"]; if (!t || !r) return null; var s = t.indexOf("?"); -1 !== s && (t = t.substr(0, s)); var o = r.getUuid(t, e); if (!o) { var a = cc.path.extname(t); if (a) { t = t.slice(0, -a.length); (o = r.getUuid(t, e)) && !n && cc.warnID(4901, t, a); } } return o; }; x._getReferenceKey = function(i) { var n; "object" === ("object" === (e = typeof i) ? t(i) : e) ? n = i._uuid || null : "string" === ("object" === (e = typeof i) ? t(i) : e) && (n = this._getResUuid(i, null, null, !0) || i); if (!n) { cc.warnID(4800, i); return n; } cc.AssetLibrary._getAssetInfoInRuntime(n, m); return this._cache[m.url] ? m.url : n; }; x._urlNotFound = function(t, e, i) { _((function() { t = cc.url.normalize(t); var n = (e ? s.getClassName(e) : "Asset") + ' in "resources/' + t + '" does not exist.'; i && i(new Error(n), []); })); }; x._parseLoadResArgs = function(t, e, i) { if (void 0 === i) { var n = t instanceof Array || s.isChildClassOf(t, cc.RawAsset); if (e) { i = e; n && (e = this.onProgress || null); } else if (void 0 === e && !n) { i = t; e = this.onProgress || null; t = null; } if (void 0 !== e && !n) { e = t; t = null; } } return { type: t, onProgress: e, onComplete: i }; }; x.loadRes = function(t, e, i, n, r) { if (5 !== arguments.length) { r = n; n = i; i = "assets"; } var s = this._parseLoadResArgs(e, n, r); e = s.type; n = s.onProgress; r = s.onComplete; var o = this, a = o._getResUuid(t, e, i); a ? this.load({ type: "uuid", uuid: a }, n, (function(t, e) { e && o.setAutoReleaseRecursively(a, !1); r && r(t, e); })) : o._urlNotFound(t, e, r); }; x._loadResUuids = function(t, e, i, n) { if (t.length > 0) { var r = this, s = t.map((function(t) { return { type: "uuid", uuid: t }; })); this.load(s, e, (function(t, e) { if (i) { for (var o = [], a = n && [], c = 0; c < s.length; ++c) { var l = s[c].uuid, h = this._getReferenceKey(l), u = e.getContent(h); if (u) { r.setAutoReleaseRecursively(l, !1); o.push(u); a && a.push(n[c]); } } n ? i(t, o, a) : i(t, o); } })); } else i && _((function() { n ? i(null, [], []) : i(null, []); })); }; x.loadResArray = function(t, e, i, n, r) { if (5 !== arguments.length) { r = n; n = i; i = "assets"; } var s = this._parseLoadResArgs(e, n, r); e = s.type; n = s.onProgress; r = s.onComplete; for (var o = [], a = e instanceof Array, c = 0; c < t.length; c++) { var l = t[c], h = a ? e[c] : e, u = this._getResUuid(l, h, i); if (!u) { this._urlNotFound(l, h, r); return; } o.push(u); } this._loadResUuids(o, n, r); }; x.loadResDir = function(t, e, i, n, r) { if (5 !== arguments.length) { r = n; n = i; i = "assets"; } if (d[i]) { var s = this._parseLoadResArgs(e, n, r); e = s.type; n = s.onProgress; r = s.onComplete; var o = [], a = d[i].getUuidArray(t, e, o); this._loadResUuids(a, n, r, o); } }; x.getRes = function(t, e) { var i = this._cache[t]; if (!i) { var n = this._getResUuid(t, e, null, !0); if (!n) return null; var r = this._getReferenceKey(n); i = this._cache[r]; } i && i.alias && (i = i.alias); return i && i.complete ? i.content : null; }; x.getResCount = function() { return Object.keys(this._cache).length; }; x.getDependsRecursively = function(t) { if (t) { var e = this._getReferenceKey(t), i = f.getDependsRecursively(e); i.push(e); return i; } return []; }; x.release = function(t) { if (Array.isArray(t)) for (var e = 0; e < t.length; e++) { var i = t[e]; this.release(i); } else if (t) { var n = this._getReferenceKey(t); if (n && n in cc.AssetLibrary.getBuiltinDeps()) return; var r = this.getItem(n); if (r) { this.removeItem(n); t = r.content; 0; } if (t instanceof cc.Asset) { var s = t.nativeUrl; s && this.release(s); t.destroy(); } } }; x.releaseAsset = function(t) { var e = t._uuid; e && this.release(e); }; x.releaseRes = function(t, e, i) { var n = this._getResUuid(t, e, i); n ? this.release(n) : cc.errorID(4914, t); }; x.releaseResDir = function(t, e, i) { if (d[i = i || "assets"]) for (var n = d[i].getUuidArray(t, e), r = 0; r < n.length; r++) { var s = n[r]; this.release(s); } }; x.releaseAll = function() { for (var t in this._cache) this.release(t); }; x.removeItem = function(t) { var e = o.prototype.removeItem.call(this, t); delete this._autoReleaseSetting[t]; return e; }; x.setAutoRelease = function(t, e) { var i = this._getReferenceKey(t); i && (this._autoReleaseSetting[i] = !!e); }; x.setAutoReleaseRecursively = function(t, e) { e = !!e; var i = this._getReferenceKey(t); if (i) { this._autoReleaseSetting[i] = e; for (var n = f.getDependsRecursively(i), r = 0; r < n.length; r++) { var s = n[r]; this._autoReleaseSetting[s] = e; } } else 0; }; x.isAutoRelease = function(t) { var e = this._getReferenceKey(t); return !!e && !!this._autoReleaseSetting[e]; }; cc.loader = new g(); 0; n.exports = cc.loader; }), { "../platform/js": 221, "../platform/utils": 225, "./asset-loader": 148, "./asset-table": 149, "./auto-release-utils": 151, "./downloader": 153, "./loader": 156, "./loading-items": 157, "./pipeline": 160, "./released-asset-checker": 161 } ], 148: [ (function(t, e, i) { "use strict"; t("../utils/CCPath"); var n = t("../CCDebug"), r = t("./pipeline"), s = t("./loading-items"), o = "AssetLoader", a = function(t) { this.id = o; this.async = !0; this.pipeline = null; }; a.ID = o; var c = []; a.prototype.handle = function(t, e) { var i = t.uuid; if (!i) return t.content || null; cc.AssetLibrary.queryAssetInfo(i, (function(r, o, a) { if (r) e(r); else { t.url = t.rawUrl = o; t.isRawAsset = a; if (a) { var l = cc.path.extname(o).toLowerCase(); if (!l) { e(new Error(n.getError(4931, i, o))); return; } l = l.substr(1); var h = s.getQueue(t); c[0] = { queueId: t.queueId, id: o, url: o, type: l, error: null, alias: t, complete: !0 }; 0; h.append(c); t.type = l; e(null, t.content); } else { t.type = "uuid"; e(null, t.content); } } })); }; r.AssetLoader = e.exports = a; }), { "../CCDebug": 49, "../utils/CCPath": 285, "./loading-items": 157, "./pipeline": 160 } ], 149: [ (function(t, e, i) { "use strict"; var n = t("../utils/misc").pushToMap, r = t("../platform/js"); function s(t, e) { this.uuid = t; this.type = e; } function o() { this._pathToUuid = r.createMap(!0); } function a(t, e) { if (t.length > e.length) { var i = t.charCodeAt(e.length); return 46 === i || 47 === i; } return !0; } var c = o.prototype; c.getUuid = function(t, e) { t = cc.url.normalize(t); var i = this._pathToUuid[t]; if (i) if (Array.isArray(i)) { if (!e) return i[0].uuid; for (var n = 0; n < i.length; n++) { var s = i[n]; if (r.isChildClassOf(s.type, e)) return s.uuid; } } else { if (!e || r.isChildClassOf(i.type, e)) return i.uuid; 0; } return ""; }; c.getUuidArray = function(t, e, i) { "/" === (t = cc.url.normalize(t))[t.length - 1] && (t = t.slice(0, -1)); var n = this._pathToUuid, s = [], o = r.isChildClassOf; for (var c in n) if (c.startsWith(t) && a(c, t) || !t) { var l = n[c]; if (Array.isArray(l)) for (var h = 0; h < l.length; h++) { var u = l[h]; if (!e || o(u.type, e)) { s.push(u.uuid); i && i.push(c); } else 0; } else if (!e || o(l.type, e)) { s.push(l.uuid); i && i.push(c); } else 0; } 0; return s; }; c.add = function(t, e, i, r) { t = t.substring(0, t.length - cc.path.extname(t).length); var o = new s(e, i); n(this._pathToUuid, t, o, r); }; c._getInfo_DEBUG = !1; c.reset = function() { this._pathToUuid = r.createMap(!0); }; e.exports = o; }), { "../platform/js": 221, "../utils/misc": 297 } ], 150: [ (function(t, e, i) { "use strict"; var n = t("../platform/CCSys"), r = t("../CCDebug"), s = n.__audioSupport, o = s.format, a = s.context; function c(t, e) { var i = document.createElement("audio"); i.src = t.url; var n = cc.sys.platform === cc.sys.XIAOMI_GAME, r = cc.sys.platform === cc.sys.BAIDU_GAME, o = cc.sys.platform === cc.sys.ALIPAY_GAME; if (r || n || o) e(null, i); else { var a = function() { clearTimeout(c); i.removeEventListener("canplaythrough", l, !1); i.removeEventListener("error", h, !1); s.USE_LOADER_EVENT && i.removeEventListener(s.USE_LOADER_EVENT, l, !1); }, c = setTimeout((function() { 0 === i.readyState ? h() : l(); }), 8e3), l = function() { a(); e(null, i); }, h = function() { a(); var i = "load audio failure - " + t.url; cc.log(i); e(i); }; i.addEventListener("canplaythrough", l, !1); i.addEventListener("error", h, !1); s.USE_LOADER_EVENT && i.addEventListener(s.USE_LOADER_EVENT, l, !1); } } function l(t, e) { a || e(new Error(r.getError(4926))); var i = cc.loader.getXMLHttpRequest(); i.open("GET", t.url, !0); i.responseType = "arraybuffer"; i.onload = function() { a.decodeAudioData(i.response, (function(t) { e(null, t); }), (function() { e("decode error - " + t.id, null); })); }; i.onerror = function() { e("request error - " + t.id, null); }; i.send(); } e.exports = function(t, e) { if (0 === o.length) return new Error(r.getError(4927)); var i; i = s.WEB_AUDIO ? t._owner instanceof cc.AudioClip ? t._owner.loadMode === cc.AudioClip.LoadMode.WEB_AUDIO ? l : c : t.urlParam && t.urlParam.useDom ? c : l : c; i(t, e); }; }), { "../CCDebug": 49, "../platform/CCSys": 210 } ], 151: [ (function(i, n, r) { "use strict"; var s = i("../platform/js"); function o(t, e) { var i = cc.loader.getItem(t); if (i) { var n = i.dependKeys; if (n) for (var r = 0; r < n.length; r++) { var s = n[r]; if (!e[s]) { e[s] = !0; o(s, e); } } } } function a(t, e) { if (t._uuid) { var i = cc.loader._getReferenceKey(t); if (!e[i]) { e[i] = !0; o(i, e); } } } function c(i, n) { for (var r = Object.getOwnPropertyNames(i), s = 0; s < r.length; s++) { var o = i[r[s]]; if ("object" === ("object" === (e = typeof o) ? t(o) : e) && o) if (Array.isArray(o)) for (var c = 0; c < o.length; c++) { var l = o[c]; l instanceof cc.RawAsset && a(l, n); } else if (o.constructor && o.constructor !== Object) o instanceof cc.RawAsset && a(o, n); else for (var h = Object.getOwnPropertyNames(o), u = 0; u < h.length; u++) { var _ = o[h[u]]; _ instanceof cc.RawAsset && a(_, n); } } } function l(t, e) { for (var i = 0; i < t._components.length; i++) c(t._components[i], e); for (var n = 0; n < t._children.length; n++) l(t._children[n], e); } n.exports = { autoRelease: function(t, e, i) { var n = cc.loader._autoReleaseSetting, r = s.createMap(); if (e) for (var o = 0; o < e.length; o++) r[e[o]] = !0; for (var a = 0; a < i.length; a++) l(i[a], r); if (t) for (var c = 0; c < t.length; c++) { var h = t[c]; !1 === n[h] || r[h] || cc.loader.release(h); } for (var u = Object.keys(n), _ = 0; _ < u.length; _++) { var f = u[_]; !0 !== n[f] || r[f] || cc.loader.release(f); } }, getDependsRecursively: function(t) { var e = {}; o(t, e); return Object.keys(e); } }; }), { "../platform/js": 221 } ], 152: [ (function(t, e, i) { "use strict"; e.exports = function(t, e) { var i = t.url, n = cc.loader.getXMLHttpRequest(), r = "Load binary data failed: " + i; n.open("GET", i, !0); n.responseType = "arraybuffer"; n.onload = function() { var t = n.response; if (t) { var i = new Uint8Array(t); e(null, i); } else e({ status: n.status, errorMessage: r + "(no response)" }); }; n.onerror = function() { e({ status: n.status, errorMessage: r + "(error)" }); }; n.ontimeout = function() { e({ status: n.status, errorMessage: r + "(time out)" }); }; n.send(null); }; }), {} ], 153: [ (function(t, e, i) { "use strict"; var n = t("../platform/js"), r = t("../CCDebug"); t("../utils/CCPath"); var s, o = t("./pipeline"), a = t("./pack-downloader"), c = t("./binary-downloader"), l = t("./text-downloader"), h = t("./utils").urlAppendTimestamp; function u() { return null; } function _(t, e, i) { var n = t.url, s = document, o = document.createElement("script"); "file:" !== window.location.protocol && (o.crossOrigin = "anonymous"); o.async = i; o.src = h(n); function a() { o.parentNode.removeChild(o); o.removeEventListener("load", a, !1); o.removeEventListener("error", c, !1); e(null, n); } function c() { o.parentNode.removeChild(o); o.removeEventListener("load", a, !1); o.removeEventListener("error", c, !1); e(new Error(r.getError(4928, n))); } o.addEventListener("load", a, !1); o.addEventListener("error", c, !1); s.body.appendChild(o); } function f(t, e, i, n) { void 0 === i && (i = !0); var s = h(t.url); n = n || new Image(); i && "file:" !== window.location.protocol ? n.crossOrigin = "anonymous" : n.crossOrigin = null; if (n.complete && n.naturalWidth > 0 && n.src === s) return n; var o = function i() { n.removeEventListener("load", i); n.removeEventListener("error", a); n.id = t.id; e(null, n); }, a = function i() { n.removeEventListener("load", o); n.removeEventListener("error", i); "https:" !== window.location.protocol && n.crossOrigin && "anonymous" === n.crossOrigin.toLowerCase() ? f(t, e, !1, n) : e(new Error(r.getError(4930, s))); }; n.addEventListener("load", o); n.addEventListener("error", a); n.src = s; } var d = { js: _, png: f, jpg: f, bmp: f, jpeg: f, gif: f, ico: f, tiff: f, webp: function(t, e, i, n) { return cc.sys.capabilities.webp ? f(t, e, i, n) : new Error(r.getError(4929, t.url)); }, image: f, pvr: c, pkm: c, mp3: s = t("./audio-downloader"), ogg: s, wav: s, m4a: s, txt: l, xml: l, vsh: l, fsh: l, atlas: l, tmx: l, tsx: l, json: l, ExportJson: l, plist: l, fnt: l, font: u, eot: u, ttf: u, woff: u, svg: u, ttc: u, uuid: function(t, e) { var i = a.load(t, e); return void 0 === i ? this.extMap.json(t, e) : i || void 0; }, binary: c, bin: c, dbbin: c, default: l }, m = "Downloader", p = function(t) { this.id = m; this.async = !0; this.pipeline = null; this._curConcurrent = 0; this._loadQueue = []; this._subpackages = {}; this.extMap = n.mixin(t, d); }; p.ID = m; p.PackDownloader = a; p.prototype.addHandlers = function(t) { n.mixin(this.extMap, t); }; p.prototype._handleLoadQueue = function() { for (;this._curConcurrent < cc.macro.DOWNLOAD_MAX_CONCURRENT; ) { var t = this._loadQueue.shift(); if (!t) break; var e = this.handle(t.item, t.callback); void 0 !== e && (e instanceof Error ? t.callback(e) : t.callback(null, e)); } }; p.prototype.handle = function(t, e) { var i = this, n = this.extMap[t.type] || this.extMap.default, r = void 0; if (this._curConcurrent < cc.macro.DOWNLOAD_MAX_CONCURRENT) { this._curConcurrent++; if (void 0 !== (r = n.call(this, t, (function(t, n) { i._curConcurrent = Math.max(0, i._curConcurrent - 1); i._handleLoadQueue(); e && e(t, n); })))) { this._curConcurrent = Math.max(0, this._curConcurrent - 1); this._handleLoadQueue(); return r; } } else if (t.ignoreMaxConcurrency) { if (void 0 !== (r = n.call(this, t, e))) return r; } else this._loadQueue.push({ item: t, callback: e }); }; p.prototype.loadSubpackage = function(t, e) { var i = this._subpackages[t]; i ? i.loaded ? e && e() : _({ url: i.path + "index.js" }, (function(t) { t || (i.loaded = !0); e && e(t); })) : e && e(new Error("Can't find subpackage " + t)); }; o.Downloader = e.exports = p; }), { "../CCDebug": 49, "../platform/js": 221, "../utils/CCPath": 285, "./audio-downloader": 150, "./binary-downloader": 152, "./pack-downloader": 159, "./pipeline": 160, "./text-downloader": 163, "./utils": 165 } ], 154: [ (function(t, e, i) { "use strict"; var n = t("../utils/text-utils"), r = null, s = "BES bswy:->@123丁ぁᄁ", o = {}, a = -1, c = [], l = 3e3, h = (function() { var t = void 0; return function() { if (void 0 === t) if (window.FontFace) { var e = /Gecko.*Firefox\/(\d+)/.exec(window.navigator.userAgent), i = /OS X.*Version\/10\..*Safari/.exec(window.navigator.userAgent) && /Apple/.exec(window.navigator.vendor); t = e ? parseInt(e[1], 10) > 42 : !i; } else t = !1; return t; }; })(); function u() { for (var t = !0, e = Date.now(), i = c.length - 1; i >= 0; i--) { var o = c[i], h = o.fontFamilyName; if (e - o.startTime > l) { cc.warnID(4933, h); o.callback(null, h); c.splice(i, 1); } else { var u = o.refWidth; r.font = "40px " + h; if (u !== n.safeMeasureText(r, s)) { c.splice(i, 1); o.callback(null, h); } else t = !1; } } if (t) { clearInterval(a); a = -1; } } function _(t, e, i) { var n = new Promise(function(i, n) { (function r() { Date.now() - t >= l ? n() : document.fonts.load("40px " + e).then((function(t) { t.length >= 1 ? i() : setTimeout(r, 100); }), (function() { n(); })); })(); }), r = null, s = new Promise(function(t, e) { r = setTimeout(e, l); }); Promise.race([ s, n ]).then((function() { if (r) { clearTimeout(r); r = null; } i(null, e); }), (function() { cc.warnID(4933, e); i(null, e); })); } var f = { loadFont: function(t, e) { var i = t.url, l = f._getFontFamily(i); if (o[l]) return l; if (!r) { var d = document.createElement("canvas"); d.width = 100; d.height = 100; r = d.getContext("2d"); } var m = "40px " + l; r.font = m; var p = n.safeMeasureText(r, s), v = document.createElement("style"); v.type = "text/css"; var y = ""; isNaN(l - 0) ? y += "@font-face { font-family:" + l + "; src:" : y += "@font-face { font-family:'" + l + "'; src:"; y += "url('" + i + "');"; v.textContent = y + "}"; document.body.appendChild(v); var g = document.createElement("div"), x = g.style; x.fontFamily = l; g.innerHTML = "."; x.position = "absolute"; x.left = "-100px"; x.top = "-100px"; document.body.appendChild(g); if (h()) _(Date.now(), l, e); else { var C = { fontFamilyName: l, refWidth: p, callback: e, startTime: Date.now() }; c.push(C); -1 === a && (a = setInterval(u, 100)); } o[l] = v; }, _getFontFamily: function(t) { var e = t.lastIndexOf(".ttf"); if (-1 === e) return t; var i, n = t.lastIndexOf("/"); -1 !== (i = -1 === n ? t.substring(0, e) + "_LABEL" : t.substring(n + 1, e) + "_LABEL").indexOf(" ") && (i = '"' + i + '"'); return i; } }; e.exports = f; }), { "../utils/text-utils": 303 } ], 155: [ (function(t, e, i) { "use strict"; t("./downloader"); t("./loader"); t("./loading-items"); t("./pipeline"); t("./CCLoader"); }), { "./CCLoader": 147, "./downloader": 153, "./loader": 156, "./loading-items": 157, "./pipeline": 160 } ], 156: [ (function(i, n, r) { "use strict"; var s = i("../platform/js"), o = i("../platform/CCSAXParser").plistParser, a = i("./pipeline"), c = i("../assets/CCTexture2D"), l = i("./uuid-loader"), h = i("./font-loader"); function u(i) { if ("string" !== ("object" === (e = typeof i.content) ? t(i.content) : e)) return new Error("JSON Loader: Input item doesn't contain string content"); try { return JSON.parse(i.content); } catch (t) { return new Error("JSON Loader: Parse json [" + i.id + "] failed : " + t); } } function _(t) { if (t._owner instanceof cc.Asset) return null; var e = t.content; if (cc.sys.platform !== cc.sys.FB_PLAYABLE_ADS && !(e instanceof Image)) return new Error("Image Loader: Input item doesn't contain Image content"); var i = t.texture || new c(); i._uuid = t.uuid; i.url = t.url; i._setRawAsset(t.rawUrl, !1); i._nativeAsset = e; return i; } function f(t, e) { if (t._owner instanceof cc.Asset) return null; var i = new cc.AudioClip(); i._setRawAsset(t.rawUrl, !1); i._nativeAsset = t.content; i.url = t.url; return i; } function d(t) { return t.load ? t.load(t.content) : null; } var m = 13, p = 55727696, v = 0, y = 6, g = 7, x = 12; var C = 16, b = 6, A = 8, S = 10, w = 12, T = 14, E = 0, M = 1, B = 3; function D(t, e) { return t[e] << 8 | t[e + 1]; } var I = { png: _, jpg: _, bmp: _, jpeg: _, gif: _, ico: _, tiff: _, webp: _, image: _, pvr: function(t) { var e = t.content instanceof ArrayBuffer ? t.content : t.content.buffer, i = new Int32Array(e, 0, m); if (i[v] != p) return new Error("Invalid magic number in PVR header"); var n = i[g], r = i[y], s = i[x] + 52; return { _data: new Uint8Array(e, s), _compressed: !0, width: n, height: r }; }, pkm: function(t) { var e = t.content instanceof ArrayBuffer ? t.content : t.content.buffer, i = new Uint8Array(e), n = D(i, b); if (n !== E && n !== M && n !== B) return new Error("Invalid magic number in ETC header"); var r = D(i, w), s = D(i, T); D(i, A), D(i, S); return { _data: new Uint8Array(e, C), _compressed: !0, width: r, height: s }; }, mp3: f, ogg: f, wav: f, m4a: f, json: u, ExportJson: u, plist: function(i) { if ("string" !== ("object" == (e = typeof i.content) ? t(i.content) : e)) return new Error("Plist Loader: Input item doesn't contain string content"); var n = o.parse(i.content); return n || new Error("Plist Loader: Parse [" + i.id + "] failed"); }, uuid: l, prefab: l, fire: l, scene: l, binary: d, dbbin: d, bin: d, font: h.loadFont, eot: h.loadFont, ttf: h.loadFont, woff: h.loadFont, svg: h.loadFont, ttc: h.loadFont, default: function() { return null; } }, P = function(t) { this.id = "Loader"; this.async = !0; this.pipeline = null; this.extMap = s.mixin(t, I); }; P.ID = "Loader"; P.prototype.addHandlers = function(t) { this.extMap = s.mixin(this.extMap, t); }; P.prototype.handle = function(t, e) { return (this.extMap[t.type] || this.extMap.default).call(this, t, e); }; a.Loader = n.exports = P; }), { "../assets/CCTexture2D": 73, "../platform/CCSAXParser": 208, "../platform/js": 221, "./font-loader": 154, "./pipeline": 160, "./uuid-loader": 166 } ], 157: [ (function(i, n, r) { "use strict"; var s = i("../platform/callbacks-invoker"); i("../utils/CCPath"); var o = i("../platform/js"), a = 0 | 998 * Math.random(), c = o.createMap(!0), l = [], h = { WORKING: 1, COMPLETE: 2, ERROR: 3 }, u = o.createMap(!0); function _(i) { var n = i.url || i; return "string" === ("object" === (e = typeof n) ? t(n) : e); } function f(t) { if (t) { var e = t.split("?"); if (e && e[0] && e[1]) { var i = {}; e[1].split("&").forEach((function(t) { var e = t.split("="); i[e[0]] = e[1]; })); return i; } } } function d(i, n) { var r = "object" === ("object" === (e = typeof i) ? t(i) : e) ? i.url : i, s = { queueId: n, id: r, url: r, rawUrl: void 0, urlParam: f(r), type: "", error: null, content: null, complete: !1, states: {}, deps: null }; if ("object" === ("object" === (e = typeof i) ? t(i) : e)) { o.mixin(s, i); if (i.skips) for (var a = 0; a < i.skips.length; a++) { var c = i.skips[a]; s.states[c] = h.COMPLETE; } } s.rawUrl = s.url; r && !s.type && (s.type = cc.path.extname(r).toLowerCase().substr(1)); return s; } var m = []; function p(t, e, i) { if (!t || !e) return !1; var n = !1; m.push(e.id); if (e.deps) { var r, s, o = e.deps; for (r = 0; r < o.length; r++) { if ((s = o[r]).id === t.id) { n = !0; break; } if (!(m.indexOf(s.id) >= 0) && (s.deps && p(t, s, !0))) { n = !0; break; } } } i || (m.length = 0); return n; } var v = function(t, e, i, n) { s.call(this); this._id = ++a; c[this._id] = this; this._pipeline = t; this._errorUrls = o.createMap(!0); this._appending = !1; this._ownerQueue = null; this.onProgress = i; this.onComplete = n; this.map = o.createMap(!0); this.completed = {}; this.totalCount = 0; this.completedCount = 0; this._pipeline ? this.active = !0 : this.active = !1; e && (e.length > 0 ? this.append(e) : this.allComplete()); }; v.ItemState = new cc.Enum(h); v.create = function(i, n, r, s) { if (void 0 === r) { if ("function" === ("object" === (e = typeof n) ? t(n) : e)) { s = n; n = r = null; } } else if (void 0 === s) if ("function" === ("object" === (e = typeof n) ? t(n) : e)) { s = r; r = n; n = null; } else { s = r; r = null; } var o = l.pop(); if (o) { o._pipeline = i; o.onProgress = r; o.onComplete = s; c[o._id] = o; o._pipeline && (o.active = !0); n && o.append(n); } else o = new v(i, n, r, s); return o; }; v.getQueue = function(t) { return t.queueId ? c[t.queueId] : null; }; v.itemComplete = function(t) { var e = c[t.queueId]; e && e.itemComplete(t.id); }; v.initQueueDeps = function(t) { var e = u[t._id]; if (e) { e.completed.length = 0; e.deps.length = 0; } else e = u[t._id] = { completed: [], deps: [] }; }; v.registerQueueDep = function(t, e) { var i = t.queueId || t; if (!i) return !1; var n = u[i]; if (n) -1 === n.deps.indexOf(e) && n.deps.push(e); else if (t.id) for (var r in u) { var s = u[r]; -1 !== s.deps.indexOf(t.id) && -1 === s.deps.indexOf(e) && s.deps.push(e); } }; v.finishDep = function(t) { for (var e in u) { var i = u[e]; -1 !== i.deps.indexOf(t) && -1 === i.completed.indexOf(t) && i.completed.push(t); } }; var y = v.prototype; o.mixin(y, s.prototype); y.append = function(t, e) { if (!this.active) return []; e && !e.deps && (e.deps = []); this._appending = !0; var i, n, r, s = []; for (i = 0; i < t.length; ++i) if (!(n = t[i]).queueId || this.map[n.id]) { if (_(n)) { var o = (r = d(n, this._id)).id; if (!this.map[o]) { this.map[o] = r; this.totalCount++; e && e.deps.push(r); v.registerQueueDep(e || this._id, o); s.push(r); } } } else { this.map[n.id] = n; e && e.deps.push(n); if (n.complete || p(e, n)) { this.totalCount++; this.itemComplete(n.id); continue; } var a = this, l = c[n.queueId]; if (l) { this.totalCount++; v.registerQueueDep(e || this._id, n.id); l.addListener(n.id, (function(t) { a.itemComplete(t.id); })); } } this._appending = !1; this.completedCount === this.totalCount ? this.allComplete() : this._pipeline.flowIn(s); return s; }; y._childOnProgress = function(t) { if (this.onProgress) { var e = u[this._id]; this.onProgress(e ? e.completed.length : this.completedCount, e ? e.deps.length : this.totalCount, t); } }; y.allComplete = function() { var t = o.isEmptyObject(this._errorUrls) ? null : this._errorUrls; this.onComplete && this.onComplete(t, this); }; y.isCompleted = function() { return this.completedCount >= this.totalCount; }; y.isItemCompleted = function(t) { return !!this.completed[t]; }; y.exists = function(t) { return !!this.map[t]; }; y.getContent = function(t) { var e = this.map[t], i = null; e && (e.content ? i = e.content : e.alias && (i = e.alias.content)); return i; }; y.getError = function(t) { var e = this.map[t], i = null; e && (e.error ? i = e.error : e.alias && (i = e.alias.error)); return i; }; y.addListener = s.prototype.add; y.hasListener = s.prototype.has; y.removeListener = s.prototype.remove; y.removeAllListeners = s.prototype.removeAll; y.removeItem = function(t) { var e = this.map[t]; if (e && this.completed[e.alias || t]) { delete this.completed[t]; delete this.map[t]; if (e.alias) { delete this.completed[e.alias.id]; delete this.map[e.alias.id]; } this.completedCount--; this.totalCount--; } }; y.itemComplete = function(t) { var e = this.map[t]; if (e) { var i = t in this._errorUrls; e.error instanceof Error || o.isString(e.error) ? this._errorUrls[t] = e.error : e.error ? o.mixin(this._errorUrls, e.error) : !e.error && i && delete this._errorUrls[t]; this.completed[t] = e; this.completedCount++; v.finishDep(e.id); if (this.onProgress) { var n = u[this._id]; this.onProgress(n ? n.completed.length : this.completedCount, n ? n.deps.length : this.totalCount, e); } this.invoke(t, e); this.removeAll(t); !this._appending && this.completedCount >= this.totalCount && this.allComplete(); } }; y.destroy = function() { this.active = !1; this._appending = !1; this._pipeline = null; this._ownerQueue = null; o.clear(this._errorUrls); this.onProgress = null; this.onComplete = null; this.map = o.createMap(!0); this.completed = {}; this.totalCount = 0; this.completedCount = 0; s.call(this); if (u[this._id]) { u[this._id].completed.length = 0; u[this._id].deps.length = 0; } delete c[this._id]; delete u[this._id]; -1 === l.indexOf(this) && l.length < 10 && l.push(this); }; cc.LoadingItems = n.exports = v; }), { "../platform/callbacks-invoker": 214, "../platform/js": 221, "../utils/CCPath": 285 } ], 158: [ (function(t, e, i) { "use strict"; var n = t("./pipeline"), r = "MD5Pipe", s = /.*[/\\][0-9a-fA-F]{2}[/\\]([0-9a-fA-F-]{8,})/, o = function(t, e, i) { this.id = r; this.async = !1; this.pipeline = null; this.md5AssetsMap = t; this.md5NativeAssetsMap = e; this.libraryBase = i; }; o.ID = r; o.prototype.handle = function(t) { t.url = this.transformURL(t.url); return null; }; o.prototype.transformURL = function(t) { var e = !t.startsWith(this.libraryBase) ? this.md5NativeAssetsMap : this.md5AssetsMap; return t = t.replace(s, (function(t, i) { var n = e[i]; return n ? t + "." + n : t; })); }; n.MD5Pipe = e.exports = o; }), { "./pipeline": 160 } ], 159: [ (function(i, n, r) { "use strict"; var s = i("./unpackers"), o = i("../utils/misc").pushToMap, a = { Invalid: 0, Removed: 1, Downloading: 2, Loaded: 3 }; function c() { this.unpacker = null; this.state = a.Invalid; } var l = {}, h = {}, u = {}; function _(t, e) { return new Error("Can not retrieve " + t + " from packer " + e); } n.exports = { initPacks: function(t) { h = t; l = {}; for (var e in t) for (var i = t[e], n = 0; n < i.length; n++) { var r = i[n], s = 1 === i.length; o(l, r, e, s); } }, _loadNewPack: function(t, e, i) { var n = this, r = cc.AssetLibrary.getLibUrlNoExt(e) + ".json"; cc.loader.load({ url: r, ignoreMaxConcurrency: !0 }, (function(r, s) { if (r) { cc.errorID(4916, t); return i(r); } var o = n._doLoadNewPack(t, e, s); o ? i(null, o) : i(_(t, e)); })); }, _doPreload: function(t, e) { var i = u[t]; i || ((i = u[t] = new c()).state = a.Downloading); if (i.state !== a.Loaded) { i.unpacker = new s.JsonUnpacker(); i.unpacker.load(h[t], e); i.state = a.Loaded; } }, _doLoadNewPack: function(i, n, r) { var o = u[n]; if (o.state !== a.Loaded) { "string" === ("object" === (e = typeof r) ? t(r) : e) && (r = JSON.parse(r)); Array.isArray(r) ? o.unpacker = new s.JsonUnpacker() : r.type === s.TextureUnpacker.ID && (o.unpacker = new s.TextureUnpacker()); o.unpacker.load(h[n], r); o.state = a.Loaded; } return o.unpacker.retrieve(i); }, _selectLoadedPack: function(t) { for (var e = a.Invalid, i = "", n = 0; n < t.length; n++) { var r = t[n], s = u[r]; if (s) { var o = s.state; if (o === a.Loaded) return r; if (o > e) { e = o; i = r; } } } return e !== a.Invalid ? i : t[0]; }, load: function(t, e) { var i = t.uuid, n = l[i]; if (n) { Array.isArray(n) && (n = this._selectLoadedPack(n)); var r = u[n]; if (r && r.state === a.Loaded) { var s = r.unpacker.retrieve(i); return s || _(i, n); } if (!r) { console.log("Create unpacker %s for %s", n, i); (r = u[n] = new c()).state = a.Downloading; } this._loadNewPack(i, n, e); return null; } } }; 0; }), { "../utils/misc": 297, "./unpackers": 164 } ], 160: [ (function(t, e, i) { "use strict"; var n = t("../platform/js"), r = t("./loading-items"), s = r.ItemState; function o(t, e) { var i = t.id, n = e.states[i], r = t.next, a = t.pipeline; if (!e.error && n !== s.WORKING && n !== s.ERROR) if (n === s.COMPLETE) r ? o(r, e) : a.flowOut(e); else { e.states[i] = s.WORKING; var c = t.handle(e, (function(t, n) { if (t) { e.error = t; e.states[i] = s.ERROR; a.flowOut(e); } else { n && (e.content = n); e.states[i] = s.COMPLETE; r ? o(r, e) : a.flowOut(e); } })); if (c instanceof Error) { e.error = c; e.states[i] = s.ERROR; a.flowOut(e); } else if (void 0 !== c) { null !== c && (e.content = c); e.states[i] = s.COMPLETE; r ? o(r, e) : a.flowOut(e); } } } var a = function(t) { this._pipes = t; this._cache = n.createMap(!0); for (var e = 0; e < t.length; ++e) { var i = t[e]; if (i.handle && i.id) { i.pipeline = this; i.next = e < t.length - 1 ? t[e + 1] : null; } } }; a.ItemState = s; var c = a.prototype; c.insertPipe = function(t, e) { if (!t.handle || !t.id || e > this._pipes.length) cc.warnID(4921); else if (this._pipes.indexOf(t) > 0) cc.warnID(4922); else { t.pipeline = this; var i = null; e < this._pipes.length && (i = this._pipes[e]); var n = null; e > 0 && (n = this._pipes[e - 1]); n && (n.next = t); t.next = i; this._pipes.splice(e, 0, t); } }; c.insertPipeAfter = function(t, e) { var i = this._pipes.indexOf(t); i < 0 || this.insertPipe(e, i + 1); }; c.appendPipe = function(t) { if (t.handle && t.id) { t.pipeline = this; t.next = null; this._pipes.length > 0 && (this._pipes[this._pipes.length - 1].next = t); this._pipes.push(t); } }; c.flowIn = function(t) { var e, i, n = this._pipes[0]; if (n) { for (e = 0; e < t.length; e++) { i = t[e]; this._cache[i.id] = i; } for (e = 0; e < t.length; e++) o(n, i = t[e]); } else for (e = 0; e < t.length; e++) this.flowOut(t[e]); }; c.flowInDeps = function(t, e, i) { return r.create(this, (function(t, e) { i(t, e); e.destroy(); })).append(e, t); }; c.flowOut = function(t) { t.error ? delete this._cache[t.id] : this._cache[t.id] || (this._cache[t.id] = t); t.complete = !0; r.itemComplete(t); }; c.copyItemStates = function(t, e) { if (e instanceof Array) for (var i = 0; i < e.length; ++i) e[i].states = t.states; else e.states = t.states; }; c.getItem = function(t) { var e = this._cache[t]; if (!e) return e; e.alias && (e = e.alias); return e; }; c.removeItem = function(t) { var e = this._cache[t]; e && e.complete && delete this._cache[t]; return e; }; c.clear = function() { for (var t in this._cache) { var e = this._cache[t]; delete this._cache[t]; if (!e.complete) { e.error = new Error("Canceled manually"); this.flowOut(e); } } }; cc.Pipeline = e.exports = a; }), { "../platform/js": 221, "./loading-items": 157 } ], 161: [ (function(t, e, i) { "use strict"; }), { "../platform/js": 221 } ], 162: [ (function(t, e, i) { "use strict"; var n = t("./pipeline"), r = "SubPackPipe", s = /.*[/\\][0-9a-fA-F]{2}[/\\]([0-9a-fA-F-]{8,})/; function o(t) { var e = t.match(s); return e ? e[1] : ""; } var a = Object.create(null), c = function(t) { this.id = r; this.async = !1; this.pipeline = null; for (var e in t) { var i = t[e]; i.uuids && i.uuids.forEach((function(t) { a[t] = i.path; })); } }; c.ID = r; c.prototype.handle = function(t) { t.url = this.transformURL(t.url); return null; }; c.prototype.transformURL = function(t) { var e = o(t); if (e) { var i = a[e]; if (i) return t.replace("res/raw-assets/", i + "raw-assets/"); } return t; }; n.SubPackPipe = e.exports = c; }), { "./pipeline": 160 } ], 163: [ (function(t, e, i) { "use strict"; var n = t("./utils").urlAppendTimestamp; e.exports = function(t, e) { var i = t.url; i = n(i); var r = cc.loader.getXMLHttpRequest(), s = "Load text file failed: " + i; r.open("GET", i, !0); r.overrideMimeType && r.overrideMimeType("text/plain; charset=utf-8"); r.onload = function() { 4 === r.readyState ? 200 === r.status || 0 === r.status ? e(null, r.responseText) : e({ status: r.status, errorMessage: s + "(wrong status)" }) : e({ status: r.status, errorMessage: s + "(wrong readyState)" }); }; r.onerror = function() { e({ status: r.status, errorMessage: s + "(error)" }); }; r.ontimeout = function() { e({ status: r.status, errorMessage: s + "(time out)" }); }; r.send(null); }; }), { "./utils": 165 } ], 164: [ (function(t, e, i) { "use strict"; var n = t("../assets/CCTexture2D"), r = t("../platform/js"); function s() { this.jsons = {}; } s.prototype.load = function(t, e) { e.length !== t.length && cc.errorID(4915); for (var i = 0; i < t.length; i++) { var n = t[i], r = e[i]; this.jsons[n] = r; } }; s.prototype.retrieve = function(t) { return this.jsons[t] || null; }; function o() { this.contents = {}; } o.ID = r._getClassId(n); o.prototype.load = function(t, e) { var i = e.data.split("|"); i.length !== t.length && cc.errorID(4915); for (var n = 0; n < t.length; n++) this.contents[t[n]] = i[n]; }; o.prototype.retrieve = function(t) { var e = this.contents[t]; return e ? { __type__: o.ID, content: e } : null; }; 0; e.exports = { JsonUnpacker: s, TextureUnpacker: o }; }), { "../assets/CCTexture2D": 73, "../platform/js": 221 } ], 165: [ (function(i, n, r) { "use strict"; var s = /\?/; n.exports = { urlAppendTimestamp: function(i) { cc.game.config.noCache && "string" === ("object" === (e = typeof i) ? t(i) : e) && (s.test(i) ? i += "&_t=" + (new Date() - 0) : i += "?_t=" + (new Date() - 0)); return i; } }; }), {} ], 166: [ (function(i, n, r) { "use strict"; var s = i("../platform/js"), o = i("../CCDebug"); i("../platform/deserialize"); var a = i("./loading-items"); function c(t) { return t && (t[0] && "cc.Scene" === t[0].__type__ || t[1] && "cc.Scene" === t[1].__type__ || t[0] && "cc.Prefab" === t[0].__type__); } function l(t, e, i, n) { var r, s, o, a = i.uuidList, c = i.uuidObjList, l = i.uuidPropList, h = i._stillUseUrl, u = t.dependKeys = []; if (n) { r = []; for (s = 0; s < a.length; s++) { o = a[s]; var _ = c[s], f = l[s], d = cc.AssetLibrary._getAssetInfoInRuntime(o); if (d.raw) { var m = d.url; _[f] = m; u.push(m); } else r.push({ type: "uuid", uuid: o, deferredLoadRaw: !0, _owner: _, _ownerProp: f, _stillUseUrl: h[s] }); } } else { r = new Array(a.length); for (s = 0; s < a.length; s++) { o = a[s]; r[s] = { type: "uuid", uuid: o, _owner: c[s], _ownerProp: l[s], _stillUseUrl: h[s] }; } e._native && !e.constructor.preventPreloadNativeObject && r.push({ url: e.nativeUrl, _owner: e, _ownerProp: "_nativeAsset" }); } return r; } function h(t, e, i, n, r) { e.content = i; var s = e.dependKeys; t.flowInDeps(e, n, (function(t, e) { var o, c = e.map; for (var l in c) (o = c[l]).uuid && o.content && (o.content._uuid = o.uuid); for (var h = 0; h < n.length; h++) { var u = function(t) { var e = t.content; this._stillUseUrl && (e = e && cc.RawAsset.wasRawAssetType(e.constructor) ? e.nativeUrl : t.rawUrl); "_nativeAsset" === this._ownerProp && (this._owner.url = t.url); this._owner[this._ownerProp] = e; t.uuid !== i._uuid && s.indexOf(t.id) < 0 && s.push(t.id); }, _ = n[h], f = _.uuid, d = _.url; _._owner, _._ownerProp; if (o = c[d]) { var m = _; if (o.complete || o.content) if (o.error) { cc._throw(o.error.message || o.error.errorMessage || o.error); } else u.call(m, o); else { var p = a.getQueue(o), v = p._callbackTable[f]; v ? v.unshift(u, m) : p.addListener(f, u, m); } } } if (!t && i.onLoad) try { i.onLoad(); } catch (t) { cc._throw(t); } r(t, i); })); } function u(t, e, i) { 0; var n = e.deferredLoadRaw; n ? t instanceof cc.Asset && t.constructor.preventDeferredLoadDependents && (n = !1) : i && (t instanceof cc.SceneAsset || t instanceof cc.Prefab) && (n = t.asyncLoadAssets); return n; } function _(i, n) { 0; var r, a; if ("string" === ("object" === (e = typeof i.content) ? t(i.content) : e)) try { r = JSON.parse(i.content); } catch (t) { return new Error(o.getError(4923, i.id, t.stack)); } else { if ("object" !== ("object" === (e = typeof i.content) ? t(i.content) : e)) return new Error(o.getError(4924)); r = i.content; } var _ = c(r); a = _ ? cc._MissingScript.safeFindClass : function(t) { var e = s._getClassById(t); if (e) return e; cc.warnID(4903, t); return Object; }; var f, d = cc.deserialize.Details.pool.get(); try { f = cc.deserialize(r, d, { classFinder: a, target: i.existingAsset, customEnv: i }); } catch (t) { cc.deserialize.Details.pool.put(d); var m = t + "\n" + t.stack; return new Error(o.getError(4925, i.id, m)); } f._uuid = i.uuid; f.url = f.nativeUrl; 0; var p = l(i, f, d, u(f, i, _)); cc.deserialize.Details.pool.put(d); if (0 === p.length) { f.onLoad && f.onLoad(); return n(null, f); } h(this.pipeline, i, f, p, n); } n.exports = _; _.isSceneObj = c; }), { "../CCDebug": 49, "../platform/deserialize": 216, "../platform/js": 221, "./loading-items": 157 } ], 167: [ (function(i, n, r) { "use strict"; var s = c(i("../../renderer/core/input-assembler")), o = c(i("../../renderer/gfx")), a = i("./mesh-data"); function c(t) { return t && t.__esModule ? t : { default: t }; } var l = i("../renderer"), h = i("../event/event-target"); function u(t, e, i) { t[e] = i._val; } function _(t, e, i) { t[e] = i.x; t[e + 1] = i.y; } function f(t, e, i) { t[e] = i.x; t[e + 1] = i.y; t[e + 2] = i.z; } var d = cc.Class({ name: "cc.Mesh", extends: cc.Asset, mixins: [ h ], properties: { _nativeAsset: { override: !0, get: function() { return this._buffer; }, set: function(t) { this._buffer = ArrayBuffer.isView(t) ? t.buffer : t; this.initWithBuffer(); } }, _vertexBundles: { default: null, type: a.VertexBundle }, _primitives: { default: null, Primitive: a.Primitive }, _minPos: cc.v3(), _maxPos: cc.v3(), subMeshes: { get: function() { return this._subMeshes; }, set: function(t) { this._subMeshes = t; } } }, ctor: function() { this._subMeshes = []; this.loaded = !1; this._ibs = []; this._vbs = []; }, initWithBuffer: function() { this._subMeshes.length = 0; for (var t = this._primitives, e = 0; e < t.length; e++) { var i = t[e], n = i.data, r = new Uint16Array(this._buffer, n.offset, n.length / 2), a = new o.default.IndexBuffer(l.device, i.indexUnit, o.default.USAGE_STATIC, r, r.length), c = this._vertexBundles[i.vertexBundleIndices[0]], h = c.data, u = new o.default.VertexFormat(c.formats), _ = new Uint8Array(this._buffer, h.offset, h.length), f = new o.default.VertexBuffer(l.device, u, o.default.USAGE_STATIC, _, c.verticesCount); this._subMeshes.push(new s.default(f, a)); this._ibs.push({ buffer: a, data: r }); this._vbs.push({ buffer: f, data: _ }); } this.loaded = !0; this.emit("load"); }, init: function(t, e, i) { this.clear(); var n = new Uint8Array(t._bytes * e), r = new o.default.VertexBuffer(l.device, t, i ? o.default.USAGE_DYNAMIC : o.default.USAGE_STATIC, n, e); this._vbs[0] = { buffer: r, data: n, dirty: !0 }; this.loaded = !0; this.emit("load"); this.emit("init-format"); }, setVertices: function(i, n, r) { r = r || 0; var s = this._vbs[r], a = s.buffer._format._attr2el[i]; if (!a) return cc.warn("Cannot find " + i + " attribute in vertex defines."); var c = "number" === ("object" === (e = typeof n[0]) ? t(n[0]) : e), l = a.num, h = Float32Array, d = 4; if (i === o.default.ATTR_COLOR) if (c) { h = Uint8Array; d = 1; } else h = Uint32Array; var m = s[h.name]; if (!m) { var p = s.data; m = s[h.name] = new h(p.buffer, p.byteOffset, p.byteLength / d); } var v = a.stride / d, y = a.offset / d; if (c) for (var g = 0, x = n.length / l; g < x; g++) for (var C = g * l, b = g * v + y, A = 0; A < l; A++) m[b + A] = n[C + A]; else { var S = void 0; S = i === o.default.ATTR_COLOR ? u : 2 === l ? _ : f; for (var w = 0, T = n.length; w < T; w++) { S(m, w * v + y, n[w]); } } s.dirty = !0; }, setIndices: function(t, e, i) { e = e || 0; var n = new Uint16Array(t), r = i ? o.default.USAGE_DYNAMIC : o.default.USAGE_STATIC, a = this._ibs[e]; if (a) { a.buffer._usage = r; a.data = n; a.dirty = !0; } else { var c = new o.default.IndexBuffer(l.device, o.default.INDEX_FMT_UINT16, r, n, n.length); this._ibs[e] = { buffer: c, data: n, dirty: !1 }; var h = this._vbs[0]; this._subMeshes[e] = new s.default(h.buffer, c); } }, setPrimitiveType: function(t, e) { e = e || 0; this._subMeshes[e] ? this._subMeshes[e]._primitiveType = t : cc.warn("Do not have sub mesh at index " + e); }, clear: function() { this._subMeshes.length = 0; for (var t = this._ibs, e = 0; e < t.length; e++) t[e].buffer.destroy(); t.length = 0; for (var i = this._vbs, n = 0; n < i.length; n++) i[n].buffer.destroy(); i.length = 0; }, setBoundingBox: function(t, e) { this._minPos = t; this._maxPos = e; }, destroy: function() { this.clear(); }, _uploadData: function() { for (var t = this._vbs, e = 0; e < t.length; e++) { var i = t[e]; if (i.dirty) { var n = i.buffer, r = i.data; n._numVertices = r.byteLength / n._format._bytes; n._bytes = r.byteLength; n.update(0, r); i.dirty = !1; } } for (var s = this._ibs, o = 0; o < s.length; o++) { var a = s[o]; if (a.dirty) { var c = a.buffer, l = a.data; c._numIndices = l.length; c._bytes = l.byteLength; c.update(0, l); a.dirty = !1; } } } }); cc.Mesh = n.exports = d; }), { "../../renderer/core/input-assembler": 339, "../../renderer/gfx": 349, "../event/event-target": 133, "../renderer": 244, "./mesh-data": 170 } ], 168: [ (function(t, e, i) { "use strict"; var n = a(t("../geom-utils")), r = a(t("../../renderer/gfx")), s = a(t("../assets/material/custom-properties")), o = t("../utils/mesh-util"); function a(t) { return t && t.__esModule ? t : { default: t }; } var c = t("../components/CCRenderComponent"), l = t("./CCMesh"), h = t("../renderer/render-flow"), u = t("../assets/material/CCMaterial"), _ = cc.Enum({ OFF: 0, ON: 1 }), f = cc.Class({ name: "cc.MeshRenderer", extends: c, editor: !1, properties: { _mesh: { default: null, type: l }, _receiveShadows: !1, _shadowCastingMode: _.OFF, mesh: { get: function() { return this._mesh; }, set: function(t) { if (this._mesh !== t) { this._setMesh(t); if (t) { this.markForRender(!0); this._activateMaterial(!0); this.markForUpdateRenderData(!0); this.node._renderFlag |= h.FLAG_TRANSFORM; } else this.markForRender(!1); } }, type: l, animatable: !1 }, textures: { default: [], type: cc.Texture2D, visible: !1 }, receiveShadows: { get: function() { return this._receiveShadows; }, set: function(t) { this._receiveShadows = t; this._updateReceiveShadow(); }, animatable: !1 }, shadowCastingMode: { get: function() { return this._shadowCastingMode; }, set: function(t) { this._shadowCastingMode = t; this._updateCastShadow(); }, type: _, animatable: !1 } }, statics: { ShadowCastingMode: _ }, ctor: function() { this._renderDatas = []; this._boundingBox = null; this._customProperties = new s.default(); }, onEnable: function() { this._super(); if (this._mesh && !this._mesh.loaded) { this.disableRender(); var t = this; this._mesh.once("load", (function() { t._setMesh(t._mesh); t._activateMaterial(); })); (0, o.postLoadMesh)(this._mesh); } else { this._setMesh(this._mesh); this._activateMaterial(); } }, onDestroy: function() { this._setMesh(null); }, getRenderNode: function() { return this.node; }, _setMesh: function(t) { this._mesh && this._mesh.off("init-format", this._updateMeshAttribute, this); t && t.on("init-format", this._updateMeshAttribute, this); this._mesh = t; }, _getDefaultMaterial: function() { return u.getBuiltinMaterial("unlit"); }, _activateMaterial: function(t) { var e = this._mesh; if (e && 0 !== e.subMeshes.length) { n.default && (this._boundingBox = n.default.Aabb.fromPoints(n.default.Aabb.create(), e._minPos, e._maxPos)); var i = this.textures; if (i && i.length > 0) for (var r = 0; r < i.length; r++) { var s = this.sharedMaterials[r]; if (!s) { (s = cc.Material.getInstantiatedMaterial(this._getDefaultMaterial(), this)).setProperty("diffuseTexture", i[r]); this.setMaterial(r, s); } } var o = this.sharedMaterials; if (!o[0]) { var a = this._getDefaultMaterial(); o[0] = a; } this._updateMeshAttribute(); this._updateReceiveShadow(); this._updateCastShadow(); this.markForUpdateRenderData(!0); this.markForRender(!0); } else this.disableRender(); }, _updateReceiveShadow: function() { this._customProperties.define("_USE_SHADOW_MAP", this._receiveShadows); }, _updateCastShadow: function() { this._customProperties.define("_SHADOW_CASTING", this._shadowCastingMode === _.ON); }, _updateMeshAttribute: function() { var t = this._mesh && this._mesh.subMeshes; if (t) { var e = t[0]._vertexBuffer._format._attr2el; this._customProperties.define("_USE_ATTRIBUTE_COLOR", !!e[r.default.ATTR_COLOR]); this._customProperties.define("_USE_ATTRIBUTE_UV0", !!e[r.default.ATTR_UV0]); this._customProperties.define("_USE_ATTRIBUTE_NORMAL", !!e[r.default.ATTR_NORMAL]); } } }); cc.MeshRenderer = e.exports = f; }), { "../../renderer/gfx": 349, "../assets/material/CCMaterial": 75, "../assets/material/custom-properties": 76, "../components/CCRenderComponent": 106, "../geom-utils": 138, "../renderer/render-flow": 245, "../utils/mesh-util": 296, "./CCMesh": 167 } ], 169: [ (function(t, e, i) { "use strict"; t("./CCMesh"); t("./CCMeshRenderer"); t("./mesh-renderer"); }), { "./CCMesh": 167, "./CCMeshRenderer": 168, "./mesh-renderer": 171 } ], 170: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.Primitive = i.VertexBundle = i.VertexFormat = i.BufferRange = void 0; var n = (function(t) { return t && t.__esModule ? t : { default: t }; })(t("../../renderer/gfx")); var r = i.BufferRange = cc.Class({ name: "cc.BufferRange", properties: { offset: 0, length: 0 } }), s = i.VertexFormat = cc.Class({ name: "cc.mesh.VertexFormat", properties: { name: "", type: -1, num: -1, normalize: !1 } }); i.VertexBundle = cc.Class({ name: "cc.mesh.VertexBundle", properties: { data: { default: null, type: r }, formats: { default: [], type: s }, verticesCount: 0 } }), i.Primitive = cc.Class({ name: "cc.mesh.Primitive", properties: { vertexBundleIndices: { default: [], type: Number }, data: { default: null, type: r }, indexUnit: n.default.INDEX_FMT_UINT16, topology: n.default.PT_TRIANGLES } }); }), { "../../renderer/gfx": 349 } ], 171: [ (function(t, e, i) { "use strict"; var n = o(t("../../renderer/gfx")), r = o(t("../../renderer/core/input-assembler")), s = o(t("../../renderer/render-data/ia-render-data")); function o(t) { return t && t.__esModule ? t : { default: t }; } var a = t("../assets/material/CCMaterial"), c = t("./CCMeshRenderer"), l = cc.Color.BLACK, h = { updateRenderData: function(t) { var e = t._renderDatas; e.length = 0; if (t.mesh) for (var i = t.mesh._subMeshes, n = 0; n < i.length; n++) { var r = new s.default(); r.material = t.sharedMaterials[n] || t.sharedMaterials[0]; r.ia = i[n]; e.push(r); } }, createWireFrameData: function(t, e, i, o) { var c = new s.default(), h = new a(); h.copy(a.getBuiltinMaterial("unlit")); h.setProperty("diffuseColor", l); h.define("USE_DIFFUSE_TEXTURE", !1); c.material = h; for (var u = [], _ = 0; _ < e.length; _ += 3) { var f = e[_ + 0], d = e[_ + 1], m = e[_ + 2]; u.push(f, d, d, m, m, f); } var p = new Uint16Array(u), v = new n.default.IndexBuffer(o._device, n.default.INDEX_FMT_UINT16, n.default.USAGE_STATIC, p, p.length); c.ia = new r.default(t._vertexBuffer, v, n.default.PT_LINES); return c; }, fillBuffers: function(t, e) { e._flush(); var i = t._renderDatas, n = t.mesh._subMeshes; if (cc.macro.SHOW_MESH_WIREFRAME) { if (i.length === n.length) for (var r = t.mesh._ibs, s = 0; s < n.length; s++) { var o = i[s]; i.push(this.createWireFrameData(o.ia, r[s].data, o.material, e)); } } else i.length = n.length; var a = e.material, c = e.node; e.node = t.getRenderNode(); e.customProperties = t._customProperties; var l = e.customProperties; t.mesh._uploadData(); for (var h = 0; h < i.length; h++) { var u = i[h], _ = u.material; e.material = _; e._flushIA(u); } e.customProperties = l; e.node = c; e.material = a; } }; e.exports = c._assembler = h; }), { "../../renderer/core/input-assembler": 339, "../../renderer/gfx": 349, "../../renderer/render-data/ia-render-data": 368, "../assets/material/CCMaterial": 75, "./CCMeshRenderer": 168 } ], 172: [ (function(t, e, i) { "use strict"; var n = t("./component-scheduler"), r = t("./platform/CCObject").Flags, s = t("./platform/js"), o = r.IsPreloadStarted, a = r.IsOnLoadStarted, c = r.IsOnLoadCalled, l = r.Deactivating, h = cc.Class({ extends: n.LifeCycleInvoker, add: function(t) { this._zero.array.push(t); }, remove: function(t) { this._zero.fastRemove(t); }, cancelInactive: function(t) { n.LifeCycleInvoker.stableRemoveInactive(this._zero, t); }, invoke: function() { this._invoke(this._zero); this._zero.array.length = 0; } }), u = n.createInvokeImpl("c.__preload();"), _ = n.createInvokeImpl("c.onLoad();c._objFlags|=" + c, !1, c), f = new s.Pool(4); f.get = function() { var t = this._get() || { preload: new h(u), onLoad: new n.OneOffInvoker(_), onEnable: new n.OneOffInvoker(n.invokeOnEnable) }; t.preload._zero.i = -1; var e = t.onLoad; e._zero.i = -1; e._neg.i = -1; e._pos.i = -1; (e = t.onEnable)._zero.i = -1; e._neg.i = -1; e._pos.i = -1; return t; }; function d(t, e, i) { 0; e ? t._removeComponent(e) : s.array.removeAt(t._components, i); } function m() { this._activatingStack = []; } var p = cc.Class({ ctor: m, reset: m, _activateNodeRecursively: function(t, e, i, n) { if (t._objFlags & l) cc.errorID(3816, t.name); else { t._activeInHierarchy = !0; for (var r = t._components.length, s = 0; s < r; ++s) { var o = t._components[s]; if (o instanceof cc.Component) this.activateComp(o, e, i, n); else { d(t, o, s); --s; --r; } } t._childArrivalOrder = t._children.length; for (var a = 0, c = t._children.length; a < c; ++a) { var h = t._children[a]; h._localZOrder = 4294901760 & h._localZOrder | a + 1; h._active && this._activateNodeRecursively(h, e, i, n); } t._onPostActivated(!0); } }, _deactivateNodeRecursively: function(t) { 0; t._objFlags |= l; t._activeInHierarchy = !1; for (var e = t._components.length, i = 0; i < e; ++i) { var n = t._components[i]; if (n._enabled) { cc.director._compScheduler.disableComp(n); if (t._activeInHierarchy) { t._objFlags &= ~l; return; } } } for (var r = 0, s = t._children.length; r < s; ++r) { var o = t._children[r]; if (o._activeInHierarchy) { this._deactivateNodeRecursively(o); if (t._activeInHierarchy) { t._objFlags &= ~l; return; } } } t._onPostActivated(!1); t._objFlags &= ~l; }, activateNode: function(t, e) { if (e) { var i = f.get(); this._activatingStack.push(i); this._activateNodeRecursively(t, i.preload, i.onLoad, i.onEnable); i.preload.invoke(); i.onLoad.invoke(); i.onEnable.invoke(); this._activatingStack.pop(); f.put(i); } else { this._deactivateNodeRecursively(t); for (var n = this._activatingStack, r = 0; r < n.length; r++) { var s = n[r]; s.preload.cancelInactive(o); s.onLoad.cancelInactive(a); s.onEnable.cancelInactive(); } } t.emit("active-in-hierarchy-changed", t); }, activateComp: function(t, e, i, n) { if (cc.isValid(t, !0)) { if (!(t._objFlags & o)) { t._objFlags |= o; t.__preload && (e ? e.add(t) : t.__preload()); } if (!(t._objFlags & a)) { t._objFlags |= a; if (t.onLoad) if (i) i.add(t); else { t.onLoad(); t._objFlags |= c; } else t._objFlags |= c; } if (t._enabled) { if (!t.node._activeInHierarchy) return; cc.director._compScheduler.enableComp(t, n); } } }, destroyComp: function(t) { cc.director._compScheduler.disableComp(t); t.onDestroy && t._objFlags & c && t.onDestroy(); }, resetComp: !1 }); e.exports = p; }), { "./component-scheduler": 89, "./platform/CCObject": 207, "./platform/js": 221, "./utils/misc": 297 } ], 173: [ (function(t, e, i) { "use strict"; var n = t("./CCPhysicsTypes").PTM_RATIO, r = t("./CCPhysicsTypes").ContactType, s = [], o = [ cc.v2(), cc.v2() ], a = new b2.WorldManifold(), c = { points: [], separations: [], normal: cc.v2() }; function l() { this.localPoint = cc.v2(); this.normalImpulse = 0; this.tangentImpulse = 0; } var h = [ new l(), new l() ], u = (new b2.Manifold(), { type: 0, localPoint: cc.v2(), localNormal: cc.v2(), points: [] }), _ = { normalImpulses: [], tangentImpulses: [] }; function f() {} f.prototype.init = function(t) { this.colliderA = t.GetFixtureA().collider; this.colliderB = t.GetFixtureB().collider; this.disabled = !1; this.disabledOnce = !1; this._impulse = null; this._inverted = !1; this._b2contact = t; t._contact = this; }; f.prototype.reset = function() { this.setTangentSpeed(0); this.resetFriction(); this.resetRestitution(); this.colliderA = null; this.colliderB = null; this.disabled = !1; this._impulse = null; this._b2contact._contact = null; this._b2contact = null; }; f.prototype.getWorldManifold = function() { var t = c.points, e = c.separations, i = c.normal; this._b2contact.GetWorldManifold(a); var r = a.points, s = a.separations, l = this._b2contact.GetManifold().pointCount; t.length = e.length = l; for (var h = 0; h < l; h++) { var u = o[h]; u.x = r[h].x * n; u.y = r[h].y * n; t[h] = u; e[h] = s[h] * n; } i.x = a.normal.x; i.y = a.normal.y; if (this._inverted) { i.x *= -1; i.y *= -1; } return c; }; f.prototype.getManifold = function() { for (var t = u.points, e = u.localNormal, i = u.localPoint, r = this._b2contact.GetManifold(), s = r.points, o = t.length = r.pointCount, a = 0; a < o; a++) { var c = h[a], l = s[a]; c.localPoint.x = l.localPoint.x * n; c.localPoint.Y = l.localPoint.Y * n; c.normalImpulse = l.normalImpulse * n; c.tangentImpulse = l.tangentImpulse; t[a] = c; } i.x = r.localPoint.x * n; i.y = r.localPoint.y * n; e.x = r.localNormal.x; e.y = r.localNormal.y; u.type = r.type; if (this._inverted) { e.x *= -1; e.y *= -1; } return u; }; f.prototype.getImpulse = function() { var t = this._impulse; if (!t) return null; for (var e = _.normalImpulses, i = _.tangentImpulses, r = t.count, s = 0; s < r; s++) { e[s] = t.normalImpulses[s] * n; i[s] = t.tangentImpulses[s]; } i.length = e.length = r; return _; }; f.prototype.emit = function(t) { var e; switch (t) { case r.BEGIN_CONTACT: e = "onBeginContact"; break; case r.END_CONTACT: e = "onEndContact"; break; case r.PRE_SOLVE: e = "onPreSolve"; break; case r.POST_SOLVE: e = "onPostSolve"; } var i, n, s, o, a = this.colliderA, c = this.colliderB, l = a.body, h = c.body; if (l.enabledContactListener) { i = l.node._components; this._inverted = !1; for (n = 0, s = i.length; n < s; n++) (o = i[n])[e] && o[e](this, a, c); } if (h.enabledContactListener) { i = h.node._components; this._inverted = !0; for (n = 0, s = i.length; n < s; n++) (o = i[n])[e] && o[e](this, c, a); } if (this.disabled || this.disabledOnce) { this.setEnabled(!1); this.disabledOnce = !1; } }; f.get = function(t) { var e; (e = 0 === s.length ? new cc.PhysicsContact() : s.pop()).init(t); return e; }; f.put = function(t) { var e = t._contact; if (e) { s.push(e); e.reset(); } }; var d = f.prototype; d.setEnabled = function(t) { this._b2contact.SetEnabled(t); }; d.isTouching = function() { return this._b2contact.IsTouching(); }; d.setTangentSpeed = function(t) { this._b2contact.SetTangentSpeed(t / n); }; d.getTangentSpeed = function() { return this._b2contact.GetTangentSpeed() * n; }; d.setFriction = function(t) { this._b2contact.SetFriction(t); }; d.getFriction = function() { return this._b2contact.GetFriction(); }; d.resetFriction = function() { return this._b2contact.ResetFriction(); }; d.setRestitution = function(t) { this._b2contact.SetRestitution(t); }; d.getRestitution = function() { return this._b2contact.GetRestitution(); }; d.resetRestitution = function() { return this._b2contact.ResetRestitution(); }; f.ContactType = r; cc.PhysicsContact = e.exports = f; }), { "./CCPhysicsTypes": 175 } ], 174: [ (function(t, e, i) { "use strict"; var n = t("./CCPhysicsTypes"), r = n.ContactType, s = n.BodyType, o = n.RayCastType, a = n.DrawBits, c = n.PTM_RATIO, l = (n.ANGLE_TO_PHYSICS_ANGLE, n.PHYSICS_ANGLE_TO_ANGLE), h = t("./utils").convertToNodeRotation, u = t("./platform/CCPhysicsDebugDraw"), _ = new b2.AABB(), f = new b2.Vec2(), d = new b2.Vec2(), m = cc.v2(), p = cc.Class({ mixins: [ cc.EventTarget ], statics: { DrawBits: a, PTM_RATIO: c, VELOCITY_ITERATIONS: 10, POSITION_ITERATIONS: 10, FIXED_TIME_STEP: 1 / 60, MAX_ACCUMULATOR: .2 }, ctor: function() { this._debugDrawFlags = 0; this._debugDrawer = null; this._world = null; this._bodies = []; this._joints = []; this._contactMap = {}; this._contactID = 0; this._delayEvents = []; this._accumulator = 0; cc.director._scheduler && cc.director._scheduler.enableForTarget(this); this.enabledAccumulator = !1; }, pushDelayEvent: function(t, e, i) { this._steping ? this._delayEvents.push({ target: t, func: e, args: i }) : t[e].apply(t, i); }, update: function(t) { var e = this._world; if (e && this.enabled) { this.emit("before-step"); this._steping = !0; var i = p.VELOCITY_ITERATIONS, n = p.POSITION_ITERATIONS; if (this.enabledAccumulator) { this._accumulator += t; var r = p.FIXED_TIME_STEP, s = p.MAX_ACCUMULATOR; this._accumulator > s && (this._accumulator = s); for (;this._accumulator > r; ) { e.Step(r, i, n); this._accumulator -= r; } } else { var o = 1 / cc.game.config.frameRate; e.Step(o, i, n); } if (this.debugDrawFlags) { this._checkDebugDrawValid(); this._debugDrawer.clear(); e.DrawDebugData(); } this._steping = !1; for (var a = this._delayEvents, c = 0, l = a.length; c < l; c++) { var h = a[c]; h.target[h.func].apply(h.target, h.args); } a.length = 0; this._syncNode(); } }, testPoint: function(t) { var e = f.x = t.x / c, i = f.y = t.y / c, n = .2 / c; _.lowerBound.x = e - n; _.lowerBound.y = i - n; _.upperBound.x = e + n; _.upperBound.y = i + n; var r = this._aabbQueryCallback; r.init(f); this._world.QueryAABB(r, _); var s = r.getFixture(); return s ? s.collider : null; }, testAABB: function(t) { _.lowerBound.x = t.xMin / c; _.lowerBound.y = t.yMin / c; _.upperBound.x = t.xMax / c; _.upperBound.y = t.yMax / c; var e = this._aabbQueryCallback; e.init(); this._world.QueryAABB(e, _); return e.getFixtures().map((function(t) { return t.collider; })); }, rayCast: function(t, e, i) { if (t.equals(e)) return []; i = i || o.Closest; f.x = t.x / c; f.y = t.y / c; d.x = e.x / c; d.y = e.y / c; var n = this._raycastQueryCallback; n.init(i); this._world.RayCast(n, f, d); var r = n.getFixtures(); if (r.length > 0) { for (var s = n.getPoints(), a = n.getNormals(), l = n.getFractions(), h = [], u = 0, _ = r.length; u < _; u++) { var m = r[u], p = m.collider; if (i === o.AllClosest) { var v = h.find((function(t) { return t.collider === p; })); if (v) { if (l[u] < v.fraction) { v.fixtureIndex = p._getFixtureIndex(m); v.point.x = s[u].x * c; v.point.y = s[u].y * c; v.normal.x = a[u].x; v.normal.y = a[u].y; v.fraction = l[u]; } continue; } } h.push({ collider: p, fixtureIndex: p._getFixtureIndex(m), point: cc.v2(s[u].x * c, s[u].y * c), normal: cc.v2(a[u]), fraction: l[u] }); } return h; } return []; }, syncPosition: function() { for (var t = this._bodies, e = 0; e < t.length; e++) t[e].syncPosition(); }, syncRotation: function() { for (var t = this._bodies, e = 0; e < t.length; e++) t[e].syncRotation(); }, _registerContactFixture: function(t) { this._contactListener.registerContactFixture(t); }, _unregisterContactFixture: function(t) { this._contactListener.unregisterContactFixture(t); }, _addBody: function(t, e) { var i = this._world, n = t.node; if (i && n) { t._b2Body = i.CreateBody(e); t._b2Body.body = t; this._bodies.push(t); } }, _removeBody: function(t) { var e = this._world; if (e) { t._b2Body.body = null; e.DestroyBody(t._b2Body); t._b2Body = null; cc.js.array.remove(this._bodies, t); } }, _addJoint: function(t, e) { var i = this._world.CreateJoint(e); if (i) { i._joint = t; t._joint = i; this._joints.push(t); } }, _removeJoint: function(t) { t._isValid() && this._world.DestroyJoint(t._joint); t._joint && (t._joint._joint = null); cc.js.array.remove(this._joints, t); }, _initCallback: function() { if (this._world) { if (!this._contactListener) { var t = new cc.PhysicsContactListener(); t.setBeginContact(this._onBeginContact); t.setEndContact(this._onEndContact); t.setPreSolve(this._onPreSolve); t.setPostSolve(this._onPostSolve); this._world.SetContactListener(t); this._contactListener = t; this._aabbQueryCallback = new cc.PhysicsAABBQueryCallback(); this._raycastQueryCallback = new cc.PhysicsRayCastCallback(); } } else cc.warn("Please init PhysicsManager first"); }, _init: function() { this.enabled = !0; this.debugDrawFlags = a.e_shapeBit; }, _getWorld: function() { return this._world; }, _syncNode: function() { for (var t = this._bodies, e = 0, i = t.length; e < i; e++) { var n = t[e], r = n.node, o = n._b2Body, a = o.GetPosition(); m.x = a.x * c; m.y = a.y * c; var u = o.GetAngle() * l; if (null !== r.parent.parent) { m = r.parent.convertToNodeSpaceAR(m); u = h(r.parent, u); } var _ = r._eventMask; r._eventMask = 0; r.position = m; r.angle = -u; r._eventMask = _; n.type === s.Animated && n.resetVelocity(); } }, _onBeginContact: function(t) { cc.PhysicsContact.get(t).emit(r.BEGIN_CONTACT); }, _onEndContact: function(t) { var e = t._contact; if (e) { e.emit(r.END_CONTACT); cc.PhysicsContact.put(t); } }, _onPreSolve: function(t) { var e = t._contact; e && e.emit(r.PRE_SOLVE); }, _onPostSolve: function(t, e) { var i = t._contact; if (i) { i._impulse = e; i.emit(r.POST_SOLVE); i._impulse = null; } }, _checkDebugDrawValid: function() { if (!this._debugDrawer || !this._debugDrawer.isValid) { var t = new cc.Node("PHYSICS_MANAGER_DEBUG_DRAW"); t.zIndex = cc.macro.MAX_ZINDEX; cc.game.addPersistRootNode(t); this._debugDrawer = t.addComponent(cc.Graphics); var e = new u(this._debugDrawer); e.SetFlags(this.debugDrawFlags); this._world.SetDebugDraw(e); } } }); cc.js.getset(p.prototype, "enabled", (function() { return this._enabled; }), (function(t) { 0; if (t && !this._world) { var e = new b2.World(new b2.Vec2(0, -10)); e.SetAllowSleeping(!0); this._world = e; this._initCallback(); } this._enabled = t; })); cc.js.getset(p.prototype, "debugDrawFlags", (function() { return this._debugDrawFlags; }), (function(t) { 0; t && !this._debugDrawFlags ? this._debugDrawer && this._debugDrawer.node && (this._debugDrawer.node.active = !0) : !t && this._debugDrawFlags && this._debugDrawer && this._debugDrawer.node && (this._debugDrawer.node.active = !1); if (t) { this._checkDebugDrawValid(); this._world.m_debugDraw.SetFlags(t); } this._debugDrawFlags = t; if (t) { this._checkDebugDrawValid(); this._world.m_debugDraw.SetFlags(t); } })); cc.js.getset(p.prototype, "gravity", (function() { if (this._world) { var t = this._world.GetGravity(); return cc.v2(t.x * c, t.y * c); } return cc.v2(); }), (function(t) { this._world && this._world.SetGravity(new b2.Vec2(t.x / c, t.y / c)); })); cc.PhysicsManager = e.exports = p; }), { "./CCPhysicsTypes": 175, "./platform/CCPhysicsDebugDraw": 196, "./utils": 198 } ], 175: [ (function(t, e, i) { "use strict"; var n = cc.Enum({ Static: 0, Kinematic: 1, Dynamic: 2, Animated: 3 }); cc.RigidBodyType = n; var r = cc.Enum({ Closest: 0, Any: 1, AllClosest: 2, All: 3 }); cc.RayCastType = r; e.exports = { BodyType: n, ContactType: { BEGIN_CONTACT: "begin-contact", END_CONTACT: "end-contact", PRE_SOLVE: "pre-solve", POST_SOLVE: "post-solve" }, RayCastType: r, DrawBits: b2.DrawFlags, PTM_RATIO: 32, ANGLE_TO_PHYSICS_ANGLE: -Math.PI / 180, PHYSICS_ANGLE_TO_ANGLE: -180 / Math.PI }; }), {} ], 176: [ (function(i, n, r) { "use strict"; function s(t, e) { var i = e.length; return e[t < 0 ? i - -t % i : t % i]; } function o(t, e, i) { for (var n = []; e < t; ) e += i.length; for (;t <= e; ++t) n.push(s(t, i)); return n; } function a(t, e, i) { if (c(t, i)) { if (u(s(t, i), s(t - 1, i), s(e, i)) && _(s(t, i), s(t + 1, i), s(e, i))) return !1; } else if (_(s(t, i), s(t + 1, i), s(e, i)) || u(s(t, i), s(t - 1, i), s(e, i))) return !1; if (c(e, i)) { if (u(s(e, i), s(e - 1, i), s(t, i)) && _(s(e, i), s(e + 1, i), s(t, i))) return !1; } else if (_(s(e, i), s(e + 1, i), s(t, i)) || u(s(e, i), s(e - 1, i), s(t, i))) return !1; for (var n = 0; n < i.length; ++n) if ((n + 1) % i.length != t && n != t && (n + 1) % i.length != e && n != e) { var r = cc.v2(); if (y(s(t, i), s(e, i), s(n, i), s(n + 1, i), r)) return !1; } return !0; } function c(t, e) { return l(t, e); } function l(i, n, r) { if ("undefined" === ("object" === (e = typeof r) ? t(r) : e)) { var o = i, a = n; i = s(o - 1, a); n = s(o, a); r = s(o + 1, a); } return x(i, n, r) < 0; } function h(t, e, i) { return x(t, e, i) > 0; } function u(t, e, i) { return x(t, e, i) >= 0; } function _(t, e, i) { return x(t, e, i) <= 0; } function f(t, e) { var i = e.x - t.x, n = e.y - t.y; return i * i + n * n; } function d(t) { m(t) || t.reverse(); } function m(t) { return t.length < 3 || p(t) > 0; } function p(t) { var e, i = 0; for (e = 0; e < t.length; e++) { var n = (e + 1) % t.length; i += t[e].x * t[n].y; i -= t[e].y * t[n].x; } return i /= 2; } function v(t, e, i, n) { var r = cc.v2(), s = e.y - t.y, o = t.x - e.x, a = s * t.x + o * t.y, c = n.y - i.y, l = i.x - n.x, h = c * i.x + l * i.y, u = s * l - c * o; if (!g(u, 0)) { r.x = (l * a - o * h) / u; r.y = (s * h - c * a) / u; } return r; } function y(t, e, i, n, r) { if (t == i || t == n || e == i || e == n) return !1; var s = t.x, o = t.y, a = e.x, c = e.y, l = i.x, h = i.y, u = n.x, _ = n.y; if (Math.max(s, a) < Math.min(l, u) || Math.max(l, u) < Math.min(s, a)) return !1; if (Math.max(o, c) < Math.min(h, _) || Math.max(h, _) < Math.min(o, c)) return !1; var f = (u - l) * (o - h) - (_ - h) * (s - l), d = (a - s) * (o - h) - (c - o) * (s - l), m = (_ - h) * (a - s) - (u - l) * (c - o); if (Math.abs(m) < 1e-6) return !1; d /= m; if (0 < (f /= m) && f < 1 && 0 < d && d < 1) { r.x = s + f * (a - s); r.y = o + f * (c - o); return !0; } return !1; } function g(t, e) { return Math.abs(t - e) <= 1e-6; } function x(t, e, i) { return t.x * (e.y - i.y) + e.x * (i.y - t.y) + i.x * (t.y - e.y); } n.exports = { ConvexPartition: function t(e) { d(e); for (var i, n, r, m, p, y, g = [], x = cc.v2(), C = cc.v2(), b = 0, A = 0, S = 0; S < e.length; ++S) if (c(S, e)) { n = r = 1e8; for (var w = 0; w < e.length; ++w) { if (h(s(S - 1, e), s(S, e), s(w, e)) && _(s(S - 1, e), s(S, e), s(w - 1, e))) { m = v(s(S - 1, e), s(S, e), s(w, e), s(w - 1, e)); if (l(s(S + 1, e), s(S, e), m) && (i = f(s(S, e), m)) < n) { n = i; x = m; b = w; } } if (h(s(S + 1, e), s(S, e), s(w + 1, e)) && _(s(S + 1, e), s(S, e), s(w, e))) { m = v(s(S + 1, e), s(S, e), s(w, e), s(w + 1, e)); if (h(s(S - 1, e), s(S, e), m) && (i = f(s(S, e), m)) < r) { r = i; A = w; C = m; } } } if (b == (A + 1) % e.length) { var T = x.add(C).div(2); (p = o(S, A, e)).push(T); (y = o(b, S, e)).push(T); } else { for (var E = 0, M = b; A < b; ) A += e.length; for (w = b; w <= A; ++w) if (a(S, w, e)) { var B = 1 / (f(s(S, e), s(w, e)) + 1); c(w, e) ? _(s(w - 1, e), s(w, e), s(S, e)) && u(s(w + 1, e), s(w, e), s(S, e)) ? B += 3 : B += 2 : B += 1; if (B > E) { M = w; E = B; } } p = o(S, M, e); y = o(M, S, e); } return g = (g = g.concat(t(p))).concat(t(y)); } g.push(e); for (S = g.length - 1; S >= 0; S--) 0 == g[S].length && g.splice(S, 0); return g; }, ForceCounterClockWise: d, IsCounterClockWise: m }; }), {} ], 177: [ (function(t, e, i) { "use strict"; var n = t("../CCNode").EventType, r = t("./CCPhysicsTypes").PTM_RATIO, s = t("./CCPhysicsTypes").ANGLE_TO_PHYSICS_ANGLE, o = t("./CCPhysicsTypes").PHYSICS_ANGLE_TO_ANGLE, a = t("./utils").getWorldRotation, c = t("./CCPhysicsTypes").BodyType, l = new b2.Vec2(), h = new b2.Vec2(), u = cc.Vec2.ZERO, _ = cc.Class({ name: "cc.RigidBody", extends: cc.Component, editor: !1, properties: { _type: c.Dynamic, _allowSleep: !0, _gravityScale: 1, _linearDamping: 0, _angularDamping: 0, _linearVelocity: cc.v2(0, 0), _angularVelocity: 0, _fixedRotation: !1, enabled: { get: function() { return this._enabled; }, set: function() { cc.warnID(8200); }, visible: !1, override: !0 }, enabledContactListener: { default: !1, tooltip: !1 }, bullet: { default: !1, tooltip: !1 }, type: { type: c, tooltip: !1, get: function() { return this._type; }, set: function(t) { this._type = t; this._b2Body && (t === c.Animated ? this._b2Body.SetType(c.Kinematic) : this._b2Body.SetType(t)); } }, allowSleep: { tooltip: !1, get: function() { return this._b2Body ? this._b2Body.IsSleepingAllowed() : this._allowSleep; }, set: function(t) { this._allowSleep = t; this._b2Body && this._b2Body.SetSleepingAllowed(t); } }, gravityScale: { tooltip: !1, get: function() { return this._gravityScale; }, set: function(t) { this._gravityScale = t; this._b2Body && this._b2Body.SetGravityScale(t); } }, linearDamping: { tooltip: !1, get: function() { return this._linearDamping; }, set: function(t) { this._linearDamping = t; this._b2Body && this._b2Body.SetLinearDamping(this._linearDamping); } }, angularDamping: { tooltip: !1, get: function() { return this._angularDamping; }, set: function(t) { this._angularDamping = t; this._b2Body && this._b2Body.SetAngularDamping(t); } }, linearVelocity: { tooltip: !1, type: cc.Vec2, get: function() { var t = this._linearVelocity; if (this._b2Body) { var e = this._b2Body.GetLinearVelocity(); t.x = e.x * r; t.y = e.y * r; } return t; }, set: function(t) { this._linearVelocity = t; var e = this._b2Body; if (e) { var i = e.m_linearVelocity; i.Set(t.x / r, t.y / r); e.SetLinearVelocity(i); } } }, angularVelocity: { tooltip: !1, get: function() { return this._b2Body ? this._b2Body.GetAngularVelocity() * o : this._angularVelocity; }, set: function(t) { this._angularVelocity = t; this._b2Body && this._b2Body.SetAngularVelocity(t * s); } }, fixedRotation: { tooltip: !1, get: function() { return this._fixedRotation; }, set: function(t) { this._fixedRotation = t; this._b2Body && this._b2Body.SetFixedRotation(t); } }, awake: { visible: !1, tooltip: !1, get: function() { return !!this._b2Body && this._b2Body.IsAwake(); }, set: function(t) { this._b2Body && this._b2Body.SetAwake(t); } }, awakeOnLoad: { default: !0, tooltip: !1, animatable: !1 }, active: { visible: !1, get: function() { return !!this._b2Body && this._b2Body.IsActive(); }, set: function(t) { this._b2Body && this._b2Body.SetActive(t); } } }, getLocalPoint: function(t, e) { e = e || cc.v2(); if (this._b2Body) { l.Set(t.x / r, t.y / r); var i = this._b2Body.GetLocalPoint(l, e); e.x = i.x * r; e.y = i.y * r; } return e; }, getWorldPoint: function(t, e) { e = e || cc.v2(); if (this._b2Body) { l.Set(t.x / r, t.y / r); var i = this._b2Body.GetWorldPoint(l, e); e.x = i.x * r; e.y = i.y * r; } return e; }, getWorldVector: function(t, e) { e = e || cc.v2(); if (this._b2Body) { l.Set(t.x / r, t.y / r); var i = this._b2Body.GetWorldVector(l, e); e.x = i.x * r; e.y = i.y * r; } return e; }, getLocalVector: function(t, e) { e = e || cc.v2(); if (this._b2Body) { l.Set(t.x / r, t.y / r); var i = this._b2Body.GetLocalVector(l, e); e.x = i.x * r; e.y = i.y * r; } return e; }, getWorldPosition: function(t) { t = t || cc.v2(); if (this._b2Body) { var e = this._b2Body.GetPosition(); t.x = e.x * r; t.y = e.y * r; } return t; }, getWorldRotation: function() { return this._b2Body ? this._b2Body.GetAngle() * o : 0; }, getLocalCenter: function(t) { t = t || cc.v2(); if (this._b2Body) { var e = this._b2Body.GetLocalCenter(); t.x = e.x * r; t.y = e.y * r; } return t; }, getWorldCenter: function(t) { t = t || cc.v2(); if (this._b2Body) { var e = this._b2Body.GetWorldCenter(); t.x = e.x * r; t.y = e.y * r; } return t; }, getLinearVelocityFromWorldPoint: function(t, e) { e = e || cc.v2(); if (this._b2Body) { l.Set(t.x / r, t.y / r); var i = this._b2Body.GetLinearVelocityFromWorldPoint(l, e); e.x = i.x * r; e.y = i.y * r; } return e; }, getMass: function() { return this._b2Body ? this._b2Body.GetMass() : 0; }, getInertia: function() { return this._b2Body ? this._b2Body.GetInertia() * r * r : 0; }, getJointList: function() { if (!this._b2Body) return []; var t = [], e = this._b2Body.GetJointList(); if (!e) return []; t.push(e.joint._joint); for (var i = e.prev; i; ) { t.push(i.joint._joint); i = i.prev; } for (var n = e.next; n; ) { t.push(n.joint._joint); n = n.next; } return t; }, applyForce: function(t, e, i) { if (this._b2Body) { l.Set(t.x / r, t.y / r); h.Set(e.x / r, e.y / r); this._b2Body.ApplyForce(l, h, i); } }, applyForceToCenter: function(t, e) { if (this._b2Body) { l.Set(t.x / r, t.y / r); this._b2Body.ApplyForceToCenter(l, e); } }, applyTorque: function(t, e) { this._b2Body && this._b2Body.ApplyTorque(t / r, e); }, applyLinearImpulse: function(t, e, i) { if (this._b2Body) { l.Set(t.x / r, t.y / r); h.Set(e.x / r, e.y / r); this._b2Body.ApplyLinearImpulse(l, h, i); } }, applyAngularImpulse: function(t, e) { this._b2Body && this._b2Body.ApplyAngularImpulse(t / r / r, e); }, syncPosition: function(t) { var e = this._b2Body; if (e) { var i, n = this.node.convertToWorldSpaceAR(u); (i = this.type === c.Animated ? e.GetLinearVelocity() : e.GetPosition()).x = n.x / r; i.y = n.y / r; if (this.type === c.Animated && t) { var s = e.GetPosition(), o = cc.game.config.frameRate; i.x = (i.x - s.x) * o; i.y = (i.y - s.y) * o; e.SetAwake(!0); e.SetLinearVelocity(i); } else e.SetTransformVec(i, e.GetAngle()); } }, syncRotation: function(t) { var e = this._b2Body; if (e) { var i = s * a(this.node); if (this.type === c.Animated && t) { var n = e.GetAngle(), r = cc.game.config.frameRate; e.SetAwake(!0); e.SetAngularVelocity((i - n) * r); } else e.SetTransformVec(e.GetPosition(), i); } }, resetVelocity: function() { var t = this._b2Body; if (t) { var e = t.m_linearVelocity; e.Set(0, 0); t.SetLinearVelocity(e); t.SetAngularVelocity(0); } }, onEnable: function() { this._init(); }, onDisable: function() { this._destroy(); }, _registerNodeEvents: function() { var t = this.node; t.on(n.POSITION_CHANGED, this._onNodePositionChanged, this); t.on(n.ROTATION_CHANGED, this._onNodeRotationChanged, this); t.on(n.SCALE_CHANGED, this._onNodeScaleChanged, this); }, _unregisterNodeEvents: function() { var t = this.node; t.off(n.POSITION_CHANGED, this._onNodePositionChanged, this); t.off(n.ROTATION_CHANGED, this._onNodeRotationChanged, this); t.off(n.SCALE_CHANGED, this._onNodeScaleChanged, this); }, _onNodePositionChanged: function() { this.syncPosition(!0); }, _onNodeRotationChanged: function(t) { this.syncRotation(!0); }, _onNodeScaleChanged: function(t) { if (this._b2Body) for (var e = this.getComponents(cc.PhysicsCollider), i = 0; i < e.length; i++) e[i].apply(); }, _init: function() { cc.director.getPhysicsManager().pushDelayEvent(this, "__init", []); }, _destroy: function() { cc.director.getPhysicsManager().pushDelayEvent(this, "__destroy", []); }, __init: function() { if (!this._inited) { this._registerNodeEvents(); var t = new b2.BodyDef(); this.type === c.Animated ? t.type = c.Kinematic : t.type = this.type; t.allowSleep = this.allowSleep; t.gravityScale = this.gravityScale; t.linearDamping = this.linearDamping; t.angularDamping = this.angularDamping; var e = this.linearVelocity; t.linearVelocity = new b2.Vec2(e.x / r, e.y / r); t.angularVelocity = this.angularVelocity * s; t.fixedRotation = this.fixedRotation; t.bullet = this.bullet; var i = this.node, n = i.convertToWorldSpaceAR(u); t.position = new b2.Vec2(n.x / r, n.y / r); t.angle = -Math.PI / 180 * a(i); t.awake = this.awakeOnLoad; cc.director.getPhysicsManager()._addBody(this, t); this._inited = !0; } }, __destroy: function() { if (this._inited) { cc.director.getPhysicsManager()._removeBody(this); this._unregisterNodeEvents(); this._inited = !1; } }, _getBody: function() { return this._b2Body; } }); cc.RigidBody = e.exports = _; }), { "../CCNode": 52, "./CCPhysicsTypes": 175, "./utils": 198 } ], 178: [ (function(t, e, i) { "use strict"; var n = t("../../../external/box2d/box2d"); window.b2 = {}; 0; for (var r in n) if (-1 === r.indexOf("b2_")) { var s = r.replace("b2", ""); b2[s] = n[r]; } b2.maxPolygonVertices = 8; }), { "../../../external/box2d/box2d": 401 } ], 179: [ (function(t, e, i) { "use strict"; var n = t("../CCPhysicsTypes").PTM_RATIO, r = cc.Class({ name: "cc.PhysicsBoxCollider", extends: cc.PhysicsCollider, mixins: [ cc.Collider.Box ], editor: { menu: !1, requireComponent: cc.RigidBody }, _createShape: function(t) { var e = Math.abs(t.x), i = Math.abs(t.y), r = this.size.width / 2 / n * e, s = this.size.height / 2 / n * i, o = this.offset.x / n * e, a = this.offset.y / n * i, c = new b2.PolygonShape(); c.SetAsBox(r, s, new b2.Vec2(o, a), 0); return c; } }); cc.PhysicsBoxCollider = e.exports = r; }), { "../CCPhysicsTypes": 175 } ], 180: [ (function(t, e, i) { "use strict"; var n = t("../CCPhysicsTypes").PTM_RATIO, r = cc.Class({ name: "cc.PhysicsChainCollider", extends: cc.PhysicsCollider, editor: { menu: !1, inspector: !1, requireComponent: cc.RigidBody }, properties: { loop: !1, points: { default: function() { return [ cc.v2(-50, 0), cc.v2(50, 0) ]; }, type: [ cc.Vec2 ] }, threshold: { default: 1, serializable: !1, visible: !1 } }, _createShape: function(t) { for (var e = new b2.ChainShape(), i = this.points, r = [], s = 0; s < i.length; s++) { var o = i[s]; r.push(new b2.Vec2(o.x / n * t.x, o.y / n * t.y)); } this.loop ? e.CreateLoop(r, r.length) : e.CreateChain(r, r.length); return e; }, resetInEditor: !1, resetPointsByContour: !1 }); cc.PhysicsChainCollider = e.exports = r; }), { "../CCPhysicsTypes": 175 } ], 181: [ (function(t, e, i) { "use strict"; var n = t("../CCPhysicsTypes").PTM_RATIO, r = cc.Class({ name: "cc.PhysicsCircleCollider", extends: cc.PhysicsCollider, mixins: [ cc.Collider.Circle ], editor: { menu: !1, requireComponent: cc.RigidBody }, _createShape: function(t) { var e = Math.abs(t.x), i = Math.abs(t.y), r = this.offset.x / n * e, s = this.offset.y / n * i, o = new b2.CircleShape(); o.m_radius = this.radius / n * e; o.m_p = new b2.Vec2(r, s); return o; } }); cc.PhysicsCircleCollider = e.exports = r; }), { "../CCPhysicsTypes": 175 } ], 182: [ (function(t, e, i) { "use strict"; var n = t("../CCPhysicsTypes").PTM_RATIO, r = t("../utils").getWorldScale, s = cc.Class({ name: "cc.PhysicsCollider", extends: cc.Collider, ctor: function() { this._fixtures = []; this._shapes = []; this._inited = !1; this._rect = cc.rect(); }, properties: { _density: 1, _sensor: !1, _friction: .2, _restitution: 0, density: { tooltip: !1, get: function() { return this._density; }, set: function(t) { this._density = t; } }, sensor: { tooltip: !1, get: function() { return this._sensor; }, set: function(t) { this._sensor = t; } }, friction: { tooltip: !1, get: function() { return this._friction; }, set: function(t) { this._friction = t; } }, restitution: { tooltip: !1, get: function() { return this._restitution; }, set: function(t) { this._restitution = t; } }, body: { default: null, type: cc.RigidBody, visible: !1 } }, onDisable: function() { this._destroy(); }, onEnable: function() { this._init(); }, start: function() { this._init(); }, _getFixtureIndex: function(t) { return this._fixtures.indexOf(t); }, _init: function() { cc.director.getPhysicsManager().pushDelayEvent(this, "__init", []); }, _destroy: function() { cc.director.getPhysicsManager().pushDelayEvent(this, "__destroy", []); }, __init: function() { if (!this._inited) { var t = this.body || this.getComponent(cc.RigidBody); if (t) { var e = t._getBody(); if (e) { var i = t.node, n = r(i); this._scale = n; var s = 0 === n.x && 0 === n.y ? [] : this._createShape(n); s instanceof Array || (s = [ s ]); for (var o = 1 << i.groupIndex, a = 0, c = cc.game.collisionMatrix[i.groupIndex], l = 0; l < c.length; l++) c[l] && (a |= 1 << l); for (var h = { categoryBits: o, maskBits: a, groupIndex: 0 }, u = cc.director.getPhysicsManager(), _ = 0; _ < s.length; _++) { var f = s[_], d = new b2.FixtureDef(); d.density = this.density; d.isSensor = this.sensor; d.friction = this.friction; d.restitution = this.restitution; d.shape = f; d.filter = h; var m = e.CreateFixture(d); m.collider = this; t.enabledContactListener && u._registerContactFixture(m); this._shapes.push(f); this._fixtures.push(m); } this.body = t; this._inited = !0; } } } }, __destroy: function() { if (this._inited) { for (var t = this._fixtures, e = this.body._getBody(), i = cc.director.getPhysicsManager(), n = t.length - 1; n >= 0; n--) { var r = t[n]; r.collider = null; i._unregisterContactFixture(r); e && e.DestroyFixture(r); } this.body = null; this._fixtures.length = 0; this._shapes.length = 0; this._inited = !1; } }, _createShape: function() {}, apply: function() { this._destroy(); this._init(); }, getAABB: function() { for (var t = 1e7, e = 1e7, i = -1e7, r = -1e7, s = this._fixtures, o = 0; o < s.length; o++) for (var a = s[o], c = a.GetShape().GetChildCount(), l = 0; l < c; l++) { var h = a.GetAABB(l); h.lowerBound.x < t && (t = h.lowerBound.x); h.lowerBound.y < e && (e = h.lowerBound.y); h.upperBound.x > i && (i = h.upperBound.x); h.upperBound.y > r && (r = h.upperBound.y); } t *= n; e *= n; i *= n; r *= n; var u = this._rect; u.x = t; u.y = e; u.width = i - t; u.height = r - e; return u; } }); cc.PhysicsCollider = e.exports = s; }), { "../CCPhysicsTypes": 175, "../utils": 198 } ], 183: [ (function(t, e, i) { "use strict"; var n = t("../CCPhysicsTypes").PTM_RATIO, r = t("../CCPolygonSeparator"), s = cc.Class({ name: "cc.PhysicsPolygonCollider", extends: cc.PhysicsCollider, mixins: [ cc.Collider.Polygon ], editor: { menu: !1, inspector: !1, requireComponent: cc.RigidBody }, _createShape: function(t) { var e = [], i = this.points; i.length > 0 && i[0].equals(i[i.length - 1]) && (i.length -= 1); for (var s = r.ConvexPartition(i), o = this.offset, a = 0; a < s.length; a++) { for (var c = s[a], l = null, h = [], u = null, _ = 0, f = c.length; _ < f; _++) { l || (l = new b2.PolygonShape()); var d = c[_], m = (d.x + o.x) / n * t.x, p = (d.y + o.y) / n * t.y, v = new b2.Vec2(m, p); h.push(v); u || (u = v); if (h.length === b2.maxPolygonVertices) { l.Set(h, h.length); e.push(l); l = null; _ < f - 1 && (h = [ u, h[h.length - 1] ]); } } if (l) { l.Set(h, h.length); e.push(l); } } return e; } }); cc.PhysicsPolygonCollider = e.exports = s; }), { "../CCPhysicsTypes": 175, "../CCPolygonSeparator": 176 } ], 184: [ (function(t, e, i) { "use strict"; t("./box2d-adapter"); t("./CCPhysicsManager"); t("./CCRigidBody"); t("./CCPhysicsContact"); t("./collider/CCPhysicsCollider"); t("./collider/CCPhysicsChainCollider"); t("./collider/CCPhysicsCircleCollider"); t("./collider/CCPhysicsBoxCollider"); t("./collider/CCPhysicsPolygonCollider"); t("./joint/CCJoint"); t("./joint/CCDistanceJoint"); t("./joint/CCRevoluteJoint"); t("./joint/CCMouseJoint"); t("./joint/CCMotorJoint"); t("./joint/CCPrismaticJoint"); t("./joint/CCWeldJoint"); t("./joint/CCWheelJoint"); t("./joint/CCRopeJoint"); t("./platform/CCPhysicsContactListner"); t("./platform/CCPhysicsAABBQueryCallback"); t("./platform/CCPhysicsRayCastCallback"); }), { "./CCPhysicsContact": 173, "./CCPhysicsManager": 174, "./CCRigidBody": 177, "./box2d-adapter": 178, "./collider/CCPhysicsBoxCollider": 179, "./collider/CCPhysicsChainCollider": 180, "./collider/CCPhysicsCircleCollider": 181, "./collider/CCPhysicsCollider": 182, "./collider/CCPhysicsPolygonCollider": 183, "./joint/CCDistanceJoint": 185, "./joint/CCJoint": 186, "./joint/CCMotorJoint": 187, "./joint/CCMouseJoint": 188, "./joint/CCPrismaticJoint": 189, "./joint/CCRevoluteJoint": 190, "./joint/CCRopeJoint": 191, "./joint/CCWeldJoint": 192, "./joint/CCWheelJoint": 193, "./platform/CCPhysicsAABBQueryCallback": 194, "./platform/CCPhysicsContactListner": 195, "./platform/CCPhysicsRayCastCallback": 197 } ], 185: [ (function(t, e, i) { "use strict"; var n = t("../CCPhysicsTypes").PTM_RATIO, r = cc.Class({ name: "cc.DistanceJoint", extends: cc.Joint, editor: !1, properties: { _distance: 1, _frequency: 0, _dampingRatio: 0, distance: { tooltip: !1, get: function() { return this._distance; }, set: function(t) { this._distance = t; this._joint && this._joint.SetLength(t); } }, frequency: { tooltip: !1, get: function() { return this._frequency; }, set: function(t) { this._frequency = t; this._joint && this._joint.SetFrequency(t); } }, dampingRatio: { tooltip: !1, get: function() { return this._dampingRatio; }, set: function(t) { this._dampingRatio = t; this._joint && this._joint.SetDampingRatio(t); } } }, _createJointDef: function() { var t = new b2.DistanceJointDef(); t.localAnchorA = new b2.Vec2(this.anchor.x / n, this.anchor.y / n); t.localAnchorB = new b2.Vec2(this.connectedAnchor.x / n, this.connectedAnchor.y / n); t.length = this.distance / n; t.dampingRatio = this.dampingRatio; t.frequencyHz = this.frequency; return t; } }); cc.DistanceJoint = e.exports = r; }), { "../CCPhysicsTypes": 175 } ], 186: [ (function(t, e, i) { "use strict"; var n = t("../CCPhysicsTypes").PTM_RATIO, r = cc.Class({ name: "cc.Joint", extends: cc.Component, editor: { requireComponent: cc.RigidBody }, properties: { anchor: { default: cc.v2(0, 0), tooltip: !1 }, connectedAnchor: { default: cc.v2(0, 0), tooltip: !1 }, connectedBody: { default: null, type: cc.RigidBody, tooltip: !1 }, collideConnected: { default: !1, tooltip: !1 } }, onDisable: function() { this._destroy(); }, onEnable: function() { this._init(); }, start: function() { this._init(); }, apply: function() { this._destroy(); this._init(); }, getWorldAnchor: function() { if (this._joint) { var t = this._joint.GetAnchorA(); return cc.v2(t.x * n, t.y * n); } return cc.Vec2.ZERO; }, getWorldConnectedAnchor: function() { if (this._joint) { var t = this._joint.GetAnchorB(); return cc.v2(t.x * n, t.y * n); } return cc.Vec2.ZERO; }, getReactionForce: function(t) { var e = cc.v2(); return this._joint ? this._joint.GetReactionForce(t, e) : e; }, getReactionTorque: function(t) { return this._joint ? this._joint.GetReactionTorque(t) : 0; }, _init: function() { cc.director.getPhysicsManager().pushDelayEvent(this, "__init", []); }, _destroy: function() { cc.director.getPhysicsManager().pushDelayEvent(this, "__destroy", []); }, __init: function() { if (!this._inited) { this.body = this.getComponent(cc.RigidBody); if (this._isValid()) { var t = this._createJointDef(); if (!t) return; t.bodyA = this.body._getBody(); t.bodyB = this.connectedBody._getBody(); t.collideConnected = this.collideConnected; cc.director.getPhysicsManager()._addJoint(this, t); this._inited = !0; } } }, __destroy: function() { if (this._inited) { cc.director.getPhysicsManager()._removeJoint(this); this._joint = null; this._inited = !1; } }, _createJointDef: function() { return null; }, _isValid: function() { return this.body && this.body._getBody() && this.connectedBody && this.connectedBody._getBody(); } }); cc.Joint = e.exports = r; }), { "../CCPhysicsTypes": 175 } ], 187: [ (function(t, e, i) { "use strict"; var n = t("../CCPhysicsTypes").PTM_RATIO, r = t("../CCPhysicsTypes").ANGLE_TO_PHYSICS_ANGLE, s = cc.Class({ name: "cc.MotorJoint", extends: cc.Joint, editor: !1, properties: { _linearOffset: cc.v2(0, 0), _angularOffset: 0, _maxForce: 1, _maxTorque: 1, _correctionFactor: .3, anchor: { tooltip: !1, default: cc.v2(0, 0), override: !0, visible: !1 }, connectedAnchor: { tooltip: !1, default: cc.v2(0, 0), override: !0, visible: !1 }, linearOffset: { tooltip: !1, get: function() { return this._linearOffset; }, set: function(t) { this._linearOffset = t; this._joint && this._joint.SetLinearOffset(new b2.Vec2(t.x / n, t.y / n)); } }, angularOffset: { tooltip: !1, get: function() { return this._angularOffset; }, set: function(t) { this._angularOffset = t; this._joint && this._joint.SetAngularOffset(t); } }, maxForce: { tooltip: !1, get: function() { return this._maxForce; }, set: function(t) { this._maxForce = t; this._joint && this._joint.SetMaxForce(t); } }, maxTorque: { tooltip: !1, get: function() { return this._maxTorque; }, set: function(t) { this._maxTorque = t; this._joint && this._joint.SetMaxTorque(t); } }, correctionFactor: { tooltip: !1, get: function() { return this._correctionFactor; }, set: function(t) { this._correctionFactor = t; this._joint && this._joint.SetCorrectionFactor(t); } } }, _createJointDef: function() { var t = new b2.MotorJointDef(); t.linearOffset = new b2.Vec2(this.linearOffset.x / n, this.linearOffset.y / n); t.angularOffset = this.angularOffset * r; t.maxForce = this.maxForce; t.maxTorque = this.maxTorque; t.correctionFactor = this.correctionFactor; return t; } }); cc.MotorJoint = e.exports = s; }), { "../CCPhysicsTypes": 175 } ], 188: [ (function(t, e, i) { "use strict"; var n = t("../CCPhysicsTypes").PTM_RATIO, r = new b2.Vec2(), s = cc.Class({ name: "cc.MouseJoint", extends: cc.Joint, editor: !1, properties: { _target: 1, _frequency: 5, _dampingRatio: .7, _maxForce: 0, connectedBody: { default: null, type: cc.RigidBody, visible: !1, override: !0 }, collideConnected: { default: !0, visible: !1, override: !0 }, anchor: { tooltip: !1, default: cc.v2(0, 0), override: !0, visible: !1 }, connectedAnchor: { tooltip: !1, default: cc.v2(0, 0), override: !0, visible: !1 }, mouseRegion: { tooltip: !1, default: null, type: cc.Node }, target: { tooltip: !1, visible: !1, get: function() { return this._target; }, set: function(t) { this._target = t; if (this._joint) { r.x = t.x / n; r.y = t.y / n; this._joint.SetTarget(r); } } }, frequency: { tooltip: !1, get: function() { return this._frequency; }, set: function(t) { this._frequency = t; this._joint && this._joint.SetFrequency(t); } }, dampingRatio: { tooltip: !1, get: function() { return this._dampingRatio; }, set: function(t) { this._dampingRatio = t; this._joint && this._joint.SetDampingRatio(t); } }, maxForce: { tooltip: !1, visible: !1, get: function() { return this._maxForce; }, set: function(t) { this._maxForce = t; this._joint && this._joint.SetMaxForce(t); } } }, onLoad: function() { var t = this.mouseRegion || this.node; t.on(cc.Node.EventType.TOUCH_START, this.onTouchBegan, this); t.on(cc.Node.EventType.TOUCH_MOVE, this.onTouchMove, this); t.on(cc.Node.EventType.TOUCH_END, this.onTouchEnd, this); t.on(cc.Node.EventType.TOUCH_CANCEL, this.onTouchEnd, this); }, onEnable: function() {}, start: function() {}, onTouchBegan: function(t) { var e = cc.director.getPhysicsManager(), i = this._pressPoint = t.touch.getLocation(); cc.Camera && cc.Camera.main && (i = cc.Camera.main.getScreenToWorldPoint(i)); var n = e.testPoint(i); if (n) { (this.connectedBody = n.body).awake = !0; this.maxForce = 1e3 * this.connectedBody.getMass(); this.target = i; this._init(); } }, onTouchMove: function(t) { this._pressPoint = t.touch.getLocation(); }, onTouchEnd: function(t) { this._destroy(); this._pressPoint = null; }, _createJointDef: function() { var t = new b2.MouseJointDef(); r.x = this.target.x / n; r.y = this.target.y / n; t.target = r; t.maxForce = this.maxForce; t.dampingRatio = this.dampingRatio; t.frequencyHz = this.frequency; return t; }, update: function() { if (this._pressPoint && this._isValid()) { var t = cc.Camera.findCamera(this.node); this.target = t ? t.getScreenToWorldPoint(this._pressPoint) : this._pressPoint; } } }); cc.MouseJoint = e.exports = s; }), { "../CCPhysicsTypes": 175 } ], 189: [ (function(t, e, i) { "use strict"; var n = t("../CCPhysicsTypes").PTM_RATIO, r = t("../CCPhysicsTypes").ANGLE_TO_PHYSICS_ANGLE, s = cc.Class({ name: "cc.PrismaticJoint", extends: cc.Joint, editor: !1, properties: { localAxisA: { default: cc.v2(1, 0), tooltip: !1 }, referenceAngle: { default: 0, tooltip: !1 }, enableLimit: { default: !1, tooltip: !1 }, enableMotor: { default: !1, tooltip: !1 }, lowerLimit: { default: 0, tooltip: !1 }, upperLimit: { default: 0, tooltip: !1 }, _maxMotorForce: 0, _motorSpeed: 0, maxMotorForce: { tooltip: !1, get: function() { return this._maxMotorForce; }, set: function(t) { this._maxMotorForce = t; this._joint && this._joint.SetMaxMotorForce(t); } }, motorSpeed: { tooltip: !1, get: function() { return this._motorSpeed; }, set: function(t) { this._motorSpeed = t; this._joint && this._joint.SetMotorSpeed(t); } } }, _createJointDef: function() { var t = new b2.PrismaticJointDef(); t.localAnchorA = new b2.Vec2(this.anchor.x / n, this.anchor.y / n); t.localAnchorB = new b2.Vec2(this.connectedAnchor.x / n, this.connectedAnchor.y / n); t.localAxisA = new b2.Vec2(this.localAxisA.x, this.localAxisA.y); t.referenceAngle = this.referenceAngle * r; t.enableLimit = this.enableLimit; t.lowerTranslation = this.lowerLimit / n; t.upperTranslation = this.upperLimit / n; t.enableMotor = this.enableMotor; t.maxMotorForce = this.maxMotorForce; t.motorSpeed = this.motorSpeed; return t; } }); cc.PrismaticJoint = e.exports = s; }), { "../CCPhysicsTypes": 175 } ], 190: [ (function(t, e, i) { "use strict"; var n = t("../CCPhysicsTypes").PTM_RATIO, r = t("../CCPhysicsTypes").ANGLE_TO_PHYSICS_ANGLE, s = t("../CCPhysicsTypes").PHYSICS_ANGLE_TO_ANGLE, o = cc.Class({ name: "cc.RevoluteJoint", extends: cc.Joint, editor: !1, properties: { _maxMotorTorque: 0, _motorSpeed: 0, _enableLimit: !1, _enableMotor: !1, referenceAngle: { default: 0, tooltip: !1 }, lowerAngle: { default: 0, tooltip: !1 }, upperAngle: { default: 0, tooltip: !1 }, maxMotorTorque: { tooltip: !1, get: function() { return this._maxMotorTorque; }, set: function(t) { this._maxMotorTorque = t; this._joint && this._joint.SetMaxMotorTorque(t); } }, motorSpeed: { tooltip: !1, get: function() { return this._motorSpeed; }, set: function(t) { this._motorSpeed = t; this._joint && this._joint.SetMotorSpeed(t * r); } }, enableLimit: { tooltip: !1, get: function() { return this._enableLimit; }, set: function(t) { this._enableLimit = t; this._joint && this._joint.EnableLimit(t); } }, enableMotor: { tooltip: !1, get: function() { return this._enableMotor; }, set: function(t) { this._enableMotor = t; this._joint && this._joint.EnableMotor(t); } } }, getJointAngle: function() { return this._joint ? this._joint.GetJointAngle() * s : 0; }, setLimits: function(t, e) { if (this._joint) return this._joint.SetLimits(t * r, e * r); }, _createJointDef: function() { var t = new b2.RevoluteJointDef(); t.localAnchorA = new b2.Vec2(this.anchor.x / n, this.anchor.y / n); t.localAnchorB = new b2.Vec2(this.connectedAnchor.x / n, this.connectedAnchor.y / n); t.lowerAngle = this.upperAngle * r; t.upperAngle = this.lowerAngle * r; t.maxMotorTorque = this.maxMotorTorque; t.motorSpeed = this.motorSpeed * r; t.enableLimit = this.enableLimit; t.enableMotor = this.enableMotor; t.referenceAngle = this.referenceAngle * r; return t; } }); cc.RevoluteJoint = e.exports = o; }), { "../CCPhysicsTypes": 175 } ], 191: [ (function(t, e, i) { "use strict"; var n = t("../CCPhysicsTypes").PTM_RATIO, r = cc.Class({ name: "cc.RopeJoint", extends: cc.Joint, editor: !1, properties: { _maxLength: 1, maxLength: { tooltip: !1, get: function() { return this._maxLength; }, set: function(t) { this._maxLength = t; this._joint && this._joint.SetMaxLength(t); } } }, _createJointDef: function() { var t = new b2.RopeJointDef(); t.localAnchorA = new b2.Vec2(this.anchor.x / n, this.anchor.y / n); t.localAnchorB = new b2.Vec2(this.connectedAnchor.x / n, this.connectedAnchor.y / n); t.maxLength = this.maxLength / n; return t; } }); cc.RopeJoint = e.exports = r; }), { "../CCPhysicsTypes": 175 } ], 192: [ (function(t, e, i) { "use strict"; var n = t("../CCPhysicsTypes").PTM_RATIO, r = t("../CCPhysicsTypes").ANGLE_TO_PHYSICS_ANGLE, s = cc.Class({ name: "cc.WeldJoint", extends: cc.Joint, editor: !1, properties: { referenceAngle: { default: 0, tooltip: !1 }, _frequency: 0, _dampingRatio: 0, frequency: { tooltip: !1, get: function() { return this._frequency; }, set: function(t) { this._frequency = t; this._joint && this._joint.SetFrequency(t); } }, dampingRatio: { tooltip: !1, get: function() { return this._dampingRatio; }, set: function(t) { this._dampingRatio = t; this._joint && this._joint.SetDampingRatio(t); } } }, _createJointDef: function() { var t = new b2.WeldJointDef(); t.localAnchorA = new b2.Vec2(this.anchor.x / n, this.anchor.y / n); t.localAnchorB = new b2.Vec2(this.connectedAnchor.x / n, this.connectedAnchor.y / n); t.referenceAngle = this.referenceAngle * r; t.frequencyHz = this.frequency; t.dampingRatio = this.dampingRatio; return t; } }); cc.WeldJoint = e.exports = s; }), { "../CCPhysicsTypes": 175 } ], 193: [ (function(t, e, i) { "use strict"; var n = t("../CCPhysicsTypes").PTM_RATIO, r = t("../CCPhysicsTypes").ANGLE_TO_PHYSICS_ANGLE, s = cc.Class({ name: "cc.WheelJoint", extends: cc.Joint, editor: !1, properties: { _maxMotorTorque: 0, _motorSpeed: 0, _enableMotor: !1, _frequency: 2, _dampingRatio: .7, localAxisA: { default: cc.v2(1, 0), tooltip: !1 }, maxMotorTorque: { tooltip: !1, get: function() { return this._maxMotorTorque; }, set: function(t) { this._maxMotorTorque = t; this._joint && this._joint.SetMaxMotorTorque(t); } }, motorSpeed: { tooltip: !1, get: function() { return this._motorSpeed; }, set: function(t) { this._motorSpeed = t; this._joint && this._joint.SetMotorSpeed(t * r); } }, enableMotor: { tooltip: !1, get: function() { return this._enableMotor; }, set: function(t) { this._enableMotor = t; this._joint && this._joint.EnableMotor(t); } }, frequency: { tooltip: !1, get: function() { return this._frequency; }, set: function(t) { this._frequency = t; this._joint && this._joint.SetFrequency(t); } }, dampingRatio: { tooltip: !1, get: function() { return this._dampingRatio; }, set: function(t) { this._dampingRatio = t; this._joint && this._joint.SetDampingRatio(t); } } }, _createJointDef: function() { var t = new b2.WheelJointDef(); t.localAnchorA = new b2.Vec2(this.anchor.x / n, this.anchor.y / n); t.localAnchorB = new b2.Vec2(this.connectedAnchor.x / n, this.connectedAnchor.y / n); t.localAxisA = new b2.Vec2(this.localAxisA.x, this.localAxisA.y); t.maxMotorTorque = this.maxMotorTorque; t.motorSpeed = this.motorSpeed * r; t.enableMotor = this.enableMotor; t.dampingRatio = this.dampingRatio; t.frequencyHz = this.frequency; return t; } }); cc.WheelJoint = e.exports = s; }), { "../CCPhysicsTypes": 175 } ], 194: [ (function(t, e, i) { "use strict"; var n = t("../CCPhysicsTypes").BodyType; function r() { this._point = new b2.Vec2(); this._isPoint = !1; this._fixtures = []; } r.prototype.init = function(t) { if (t) { this._isPoint = !0; this._point.x = t.x; this._point.y = t.y; } else this._isPoint = !1; this._fixtures.length = 0; }; r.prototype.ReportFixture = function(t) { if (t.GetBody().GetType() === n.Dynamic) if (this._isPoint) { if (t.TestPoint(this._point)) { this._fixtures.push(t); return !1; } } else this._fixtures.push(t); return !0; }; r.prototype.getFixture = function() { return this._fixtures[0]; }; r.prototype.getFixtures = function() { return this._fixtures; }; cc.PhysicsAABBQueryCallback = e.exports = r; }), { "../CCPhysicsTypes": 175 } ], 195: [ (function(t, e, i) { "use strict"; function n() { this._contactFixtures = []; } n.prototype.setBeginContact = function(t) { this._BeginContact = t; }; n.prototype.setEndContact = function(t) { this._EndContact = t; }; n.prototype.setPreSolve = function(t) { this._PreSolve = t; }; n.prototype.setPostSolve = function(t) { this._PostSolve = t; }; n.prototype.BeginContact = function(t) { if (this._BeginContact) { var e = t.GetFixtureA(), i = t.GetFixtureB(), n = this._contactFixtures; t._shouldReport = !1; if (-1 !== n.indexOf(e) || -1 !== n.indexOf(i)) { t._shouldReport = !0; this._BeginContact(t); } } }; n.prototype.EndContact = function(t) { if (this._EndContact && t._shouldReport) { t._shouldReport = !1; this._EndContact(t); } }; n.prototype.PreSolve = function(t, e) { this._PreSolve && t._shouldReport && this._PreSolve(t, e); }; n.prototype.PostSolve = function(t, e) { this._PostSolve && t._shouldReport && this._PostSolve(t, e); }; n.prototype.registerContactFixture = function(t) { this._contactFixtures.push(t); }; n.prototype.unregisterContactFixture = function(t) { cc.js.array.remove(this._contactFixtures, t); }; cc.PhysicsContactListener = e.exports = n; }), {} ], 196: [ (function(t, e, i) { "use strict"; var n = t("../CCPhysicsTypes").PTM_RATIO, r = cc.v2(), s = cc.Color.GREEN, o = cc.Color.RED; function a(t) { b2.Draw.call(this); this._drawer = t; this._xf = this._dxf = new b2.Transform(); } cc.js.extend(a, b2.Draw); cc.js.mixin(a.prototype, { _DrawPolygon: function(t, e) { for (var i = this._drawer, s = 0; s < e; s++) { b2.Transform.MulXV(this._xf, t[s], r); var o = r.x * n, a = r.y * n; 0 === s ? i.moveTo(o, a) : i.lineTo(o, a); } i.close(); }, DrawPolygon: function(t, e, i) { this._applyStrokeColor(i); this._DrawPolygon(t, e); this._drawer.stroke(); }, DrawSolidPolygon: function(t, e, i) { this._applyFillColor(i); this._DrawPolygon(t, e); this._drawer.fill(); this._drawer.stroke(); }, _DrawCircle: function(t, e) { var i = this._xf.p; this._drawer.circle((t.x + i.x) * n, (t.y + i.y) * n, e * n); }, DrawCircle: function(t, e, i) { this._applyStrokeColor(i); this._DrawCircle(t, e); this._drawer.stroke(); }, DrawSolidCircle: function(t, e, i, n) { this._applyFillColor(n); this._DrawCircle(t, e); this._drawer.fill(); }, DrawSegment: function(t, e, i) { var s = this._drawer; if (t.x !== e.x || t.y !== e.y) { this._applyStrokeColor(i); b2.Transform.MulXV(this._xf, t, r); s.moveTo(r.x * n, r.y * n); b2.Transform.MulXV(this._xf, e, r); s.lineTo(r.x * n, r.y * n); s.stroke(); } else { this._applyFillColor(i); this._DrawCircle(t, 2 / n); s.fill(); } }, DrawTransform: function(t) { var e = this._drawer; e.strokeColor = o; r.x = r.y = 0; b2.Transform.MulXV(t, r, r); e.moveTo(r.x * n, r.y * n); r.x = 1; r.y = 0; b2.Transform.MulXV(t, r, r); e.lineTo(r.x * n, r.y * n); e.stroke(); e.strokeColor = s; r.x = r.y = 0; b2.Transform.MulXV(t, r, r); e.moveTo(r.x * n, r.y * n); r.x = 0; r.y = 1; b2.Transform.MulXV(t, r, r); e.lineTo(r.x * n, r.y * n); e.stroke(); }, DrawPoint: function(t, e, i) {}, _applyStrokeColor: function(t) { var e = this._drawer.strokeColor; e.r = 255 * t.r; e.g = 255 * t.g; e.b = 255 * t.b; e.a = 150; this._drawer.strokeColor = e; }, _applyFillColor: function(t) { var e = this._drawer.fillColor; e.r = 255 * t.r; e.g = 255 * t.g; e.b = 255 * t.b; e.a = 150; this._drawer.fillColor = e; }, PushTransform: function(t) { this._xf = t; }, PopTransform: function() { this._xf = this._dxf; } }); e.exports = a; }), { "../CCPhysicsTypes": 175 } ], 197: [ (function(t, e, i) { "use strict"; function n() { this._type = 0; this._fixtures = []; this._points = []; this._normals = []; this._fractions = []; } n.prototype.init = function(t) { this._type = t; this._fixtures.length = 0; this._points.length = 0; this._normals.length = 0; this._fractions.length = 0; }; n.prototype.ReportFixture = function(t, e, i, n) { if (0 === this._type) { this._fixtures[0] = t; this._points[0] = e; this._normals[0] = i; this._fractions[0] = n; return n; } this._fixtures.push(t); this._points.push(cc.v2(e)); this._normals.push(cc.v2(i)); this._fractions.push(n); return 1 === this._type ? 0 : this._type >= 2 ? 1 : n; }; n.prototype.getFixtures = function() { return this._fixtures; }; n.prototype.getPoints = function() { return this._points; }; n.prototype.getNormals = function() { return this._normals; }; n.prototype.getFractions = function() { return this._fractions; }; cc.PhysicsRayCastCallback = e.exports = n; }), {} ], 198: [ (function(t, e, i) { "use strict"; e.exports = { getWorldRotation: function(t) { for (var e = t.angle, i = t.parent; i.parent; ) { e += i.angle; i = i.parent; } return -e; }, getWorldScale: function(t) { for (var e = t.scaleX, i = t.scaleY, n = t.parent; n.parent; ) { e *= n.scaleX; i *= n.scaleY; n = n.parent; } return cc.v2(e, i); }, convertToNodeRotation: function(t, e) { e -= -t.angle; for (var i = t.parent; i.parent; ) { e -= -i.angle; i = i.parent; } return e; } }; }), {} ], 199: [ (function(t, e, i) { "use strict"; }), { "../event-manager": 131, "../platform/js": 221, "./CCMacro": 206, "./CCSys": 210 } ], 200: [ (function(i, n, r) { "use strict"; i("../assets/CCAsset"); var s = i("./utils").callInNextTick, o = i("../load-pipeline/CCLoader"), a = i("../load-pipeline/asset-table"), c = i("../load-pipeline/pack-downloader"), l = i("../load-pipeline/auto-release-utils"), h = i("../utils/decode-uuid"), u = i("../load-pipeline/md5-pipe"), _ = i("../load-pipeline/subpackage-pipe"), f = i("./js"), d = "", m = "", p = f.createMap(!0); function v(t) { return t && (t.constructor === cc.SceneAsset || t instanceof cc.Scene); } function y(t, e) { this.url = t; this.type = e; } var g = { loadAsset: function(i, n, r) { if ("string" !== ("object" === (e = typeof i) ? t(i) : e)) return s(n, new Error("[AssetLibrary] uuid must be string"), null); var a = { uuid: i, type: "uuid" }; r && r.existingAsset && (a.existingAsset = r.existingAsset); o.load(a, (function(t, e) { if (t || !e) t = new Error("[AssetLibrary] loading JSON or dependencies failed: " + (t ? t.message : "Unknown error")); else { if (e.constructor === cc.SceneAsset) { var r = cc.loader._getReferenceKey(i); e.scene.dependAssets = l.getDependsRecursively(r); } if (v(e)) { var s = cc.loader._getReferenceKey(i); o.removeItem(s); } } n && n(t, e); })); }, getLibUrlNoExt: function(t, e) { t = h(t); return (e ? m + "assets/" : d) + t.slice(0, 2) + "/" + t; }, _queryAssetInfoInEditor: function(t, e) { 0; }, _getAssetInfoInRuntime: function(t, e) { e = e || { url: null, raw: !1 }; var i = p[t]; if (i && !f.isChildClassOf(i.type, cc.Asset)) { e.url = m + i.url; e.raw = !0; } else { e.url = this.getLibUrlNoExt(t) + ".json"; e.raw = !1; } return e; }, _uuidInSettings: function(t) { return t in p; }, queryAssetInfo: function(t, e) { var i = this._getAssetInfoInRuntime(t); e(null, i.url, i.raw); }, parseUuidInEditor: function(t) {}, loadJson: function(t, e) { var i = "" + (new Date().getTime() + Math.random()), n = { uuid: i, type: "uuid", content: t, skips: [ o.assetLoader.id, o.downloader.id ] }; o.load(n, (function(t, n) { if (t) t = new Error("[AssetLibrary] loading JSON or dependencies failed: " + t.message); else { if (n.constructor === cc.SceneAsset) { var r = cc.loader._getReferenceKey(i); n.scene.dependAssets = l.getDependsRecursively(r); } if (v(n)) { var s = cc.loader._getReferenceKey(i); o.removeItem(s); } } n._uuid = ""; e && e(t, n); })); }, getAssetByUuid: function(t) { return g._uuidToAsset[t] || null; }, init: function(t) { 0; var e = t.libraryPath; e = e.replace(/\\/g, "/"); d = cc.path.stripSep(e) + "/"; m = t.rawAssetsBase; if (t.subpackages) { var i = new _(t.subpackages); cc.loader.insertPipeAfter(cc.loader.assetLoader, i); cc.loader.subPackPipe = i; } var n = t.md5AssetsMap; if (n && n.import) { var r = 0, s = 0, l = f.createMap(!0), v = n.import; for (r = 0; r < v.length; r += 2) l[s = h(v[r])] = v[r + 1]; var g = f.createMap(!0); v = n["raw-assets"]; for (r = 0; r < v.length; r += 2) g[s = h(v[r])] = v[r + 1]; var x = new u(l, g, d); cc.loader.insertPipeAfter(cc.loader.assetLoader, x); cc.loader.md5Pipe = x; } var C = o._assetTables; for (var b in C) C[b].reset(); var A = t.rawAssets; if (A) for (var S in A) { var w = A[S]; for (var s in w) { var T = w[s], E = T[0], M = T[1], B = cc.js._getClassById(M); if (B) { p[s] = new y(S + "/" + E, B); var D = cc.path.extname(E); D && (E = E.slice(0, -D.length)); var I = 1 === T[2]; C[S] || (C[S] = new a()); C[S].add(E, s, B, !I); } else cc.error("Cannot get", M); } } t.packedAssets && c.initPacks(t.packedAssets); cc.url._init(t.mountPaths && t.mountPaths.assets || m + "assets"); }, _uuidToAsset: {} }, x = { effect: {}, material: {} }, C = {}; function b(t, e, i) { var n = t + "s", r = x[t] = {}, s = "internal"; 0; cc.loader.loadResDir(n, e, s, (function() {}), (function(t, e) { if (t) cc.error(t); else for (var n = 0; n < e.length; n++) { var s = e[n]; cc.loader.getDependsRecursively(s).forEach((function(t) { return C[t] = !0; })); r["" + s.name] = s; } i(); })); } g._loadBuiltins = function(t) { if (cc.game.renderType === cc.game.RENDER_TYPE_CANVAS) return t && t(); b("effect", cc.EffectAsset, (function() { b("material", cc.Material, t); })); }; g.getBuiltin = function(t, e) { return x[t][e]; }; g.getBuiltins = function(t) { return t ? x[t] : x; }; g.resetBuiltins = function() { x = { effect: {}, material: {} }; C = {}; }; g.getBuiltinDeps = function() { return C; }; n.exports = cc.AssetLibrary = g; }), { "../assets/CCAsset": 56, "../load-pipeline/CCLoader": 147, "../load-pipeline/asset-table": 149, "../load-pipeline/auto-release-utils": 151, "../load-pipeline/md5-pipe": 158, "../load-pipeline/pack-downloader": 159, "../load-pipeline/subpackage-pipe": 162, "../utils/decode-uuid": 290, "./js": 221, "./utils": 225 } ], 201: [ (function(i, n, r) { "use strict"; var s = i("./js"), o = i("./CCEnum"), a = i("./utils"), c = (a.isPlainEmptyObj_DEV, a.cloneable_DEV, i("./attribute")), l = c.DELIMETER, h = (c.getTypeChecker, i("./preprocess-class")); i("./requiring-frame"); var u = [ "name", "extends", "mixins", "ctor", "__ctor__", "properties", "statics", "editor", "__ES6__" ]; function _(t, e) { t.indexOf(e) < 0 && t.push(e); } var f = { datas: null, push: function(t) { if (this.datas) this.datas.push(t); else { this.datas = [ t ]; var e = this; setTimeout((function() { e.init(); }), 0); } }, init: function() { var i = this.datas; if (i) { for (var n = 0; n < i.length; ++n) { var r = i[n], o = r.cls, a = r.props; "function" === ("object" === (e = typeof a) ? t(a) : e) && (a = a()); var c = s.getClassName(o); a ? D(o, c, a, o.$super, r.mixins) : cc.errorID(3633, c); } this.datas = null; } } }; function d(t, e) { 0; _(t.__props__, e); } function m(t, e, i, n, r) { var s = n.default; 0; c.setClassAttr(t, i, "default", s); d(t, i); R(t, n, e, i, !1); } function p(t, e, i, n, r) { var o = n.get, a = n.set, l = t.prototype, h = Object.getOwnPropertyDescriptor(l, i), u = !h; if (o) { 0; R(t, n, e, i, !0); 0; c.setClassAttr(t, i, "serializable", !1); 0; r || s.get(l, i, o, u, u); 0; } if (a) { if (!r) { 0; s.set(l, i, a, u, u); } 0; } } function v(i) { return "function" === ("object" === (e = typeof i) ? t(i) : e) ? i() : i; } function y(t, e, i) { for (var n in e) t.hasOwnProperty(n) || i && !i(n) || Object.defineProperty(t, n, s.getPropertyDescriptor(e, n)); } function g(t, e, i, n) { var r, o, a = n.__ctor__, l = n.ctor, h = n.__ES6__; if (h) { r = [ l ]; o = l; } else { r = a ? [ a ] : E(e, i, n); o = T(r, e, t, n); s.value(o, "extend", (function(t) { t.extends = this; return I(t); }), !0); } s.value(o, "__ctors__", r.length > 0 ? r : null, !0); var u = o.prototype; if (e) { if (!h) { s.extend(o, e); u = o.prototype; } o.$super = e; 0; } if (i) { for (var _ = i.length - 1; _ >= 0; _--) { var f = i[_]; y(u, f.prototype); y(o, f, (function(t) { return f.hasOwnProperty(t) && !0; })); I._isCCClass(f) && y(c.getClassAttrs(o), c.getClassAttrs(f)); } u.constructor = o; } h || (u.__initProps__ = w); s.setClassName(t, o); return o; } function x(t, e, i, n) { var r = cc.Component, o = cc._RF.peek(); if (o && s.isChildClassOf(e, r)) { if (s.isChildClassOf(o.cls, r)) { cc.errorID(3615); return null; } 0; t = t || o.script; } var a = g(t, e, i, n); if (o) if (s.isChildClassOf(e, r)) { var c = o.uuid; if (c) { s._setClassId(c, a); 0; } o.cls = a; } else s.isChildClassOf(o.cls, r) || (o.cls = a); return a; } function C(t) { for (var e = s.getClassName(t), i = t.constructor, n = "new " + e + "(", r = 0; r < i.__props__.length; r++) { var o = t[i.__props__[r]]; 0; n += o; r < i.__props__.length - 1 && (n += ","); } return n + ")"; } function b(t) { return JSON.stringify(t).replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029"); } function A(i, n) { for (var r = [], s = "", o = 0; o < n.length; o++) { var a = n[o], c = a + l + "default"; if (c in i) { var h, u; h = S.test(a) ? "this." + a + "=" : "this[" + b(a) + "]="; var _ = i[c]; if ("object" === ("object" === (e = typeof _) ? t(_) : e) && _) u = _ instanceof cc.ValueType ? C(_) : Array.isArray(_) ? "[]" : "{}"; else if ("function" === ("object" === (e = typeof _) ? t(_) : e)) { var f = r.length; r.push(_); u = "F[" + f + "]()"; 0; } else u = "string" === ("object" === (e = typeof _) ? t(_) : e) ? b(_) : _; s += h = h + u + ";\n"; } } return 0 === r.length ? Function(s) : Function("F", "return (function(){\n" + s + "})")(r); } var S = /^[A-Za-z_$][0-9A-Za-z_$]*$/; function w(t) { var e = c.getClassAttrs(t), i = t.__props__; if (null === i) { f.init(); i = t.__props__; } var n = A(e, i); t.prototype.__initProps__ = n; n.call(this); } var T = function(t, e, i, n) { var r = "return function CCClass(){\n"; e && B(e, n, i) && (r += "this._super=null;\n"); r += "this.__initProps__(CCClass);\n"; var s = t.length; if (s > 0) { 0; var o = "].apply(this,arguments);\n"; if (1 === s) r += "CCClass.__ctors__[0" + o; else { r += "var cs=CCClass.__ctors__;\n"; for (var a = 0; a < s; a++) r += "cs[" + a + o; } 0; } r += "}"; return Function(r)(); }; function E(t, e, i) { function n(t) { return I._isCCClass(t) ? t.__ctors__ || [] : [ t ]; } for (var r = [], s = [ t ].concat(e), o = 0; o < s.length; o++) { var a = s[o]; if (a) for (var c = n(a), l = 0; l < c.length; l++) _(r, c[l]); } var h = i.ctor; h && r.push(h); return r; } var M = /xyz/.test((function() { xyz; })) ? /\b\._super\b/ : /.*/; /xyz/.test((function() { xyz; })); function B(i, n, r) { var o = !1; for (var a in n) if (!(u.indexOf(a) >= 0)) { var c = n[a]; if ("function" === ("object" === (e = typeof c) ? t(c) : e)) { var l = s.getPropertyDescriptor(i.prototype, a); if (l) { var h = l.value; if ("function" === ("object" === (e = typeof h) ? t(h) : e)) { if (M.test(c)) { o = !0; n[a] = (function(t, e) { return function() { var i = this._super; this._super = t; var n = e.apply(this, arguments); this._super = i; return n; }; })(h, c); } continue; } } 0; } } return o; } function D(t, e, i, n, r, s) { t.__props__ = []; n && n.__props__ && (t.__props__ = n.__props__.slice()); if (r) for (var o = 0; o < r.length; ++o) { var a = r[o]; a.__props__ && (t.__props__ = t.__props__.concat(a.__props__.filter((function(e) { return t.__props__.indexOf(e) < 0; })))); } if (i) { h.preprocessAttrs(i, e, t, s); for (var u in i) { var _ = i[u]; "default" in _ ? m(t, e, u, _) : p(t, e, u, _, s); } } var f = c.getClassAttrs(t); t.__values__ = t.__props__.filter((function(t) { return !1 !== f[t + l + "serializable"]; })); } function I(i) { var n = (i = i || {}).name, r = i.extends, o = i.mixins, a = x(n, r, o, i); n || (n = cc.js.getClassName(a)); a._sealed = !0; r && (r._sealed = !1); var c = i.properties; if ("function" === ("object" === (e = typeof c) ? t(c) : e) || r && null === r.__props__ || o && o.some((function(t) { return null === t.__props__; }))) { f.push({ cls: a, props: c, mixins: o }); a.__props__ = a.__values__ = null; } else D(a, n, c, r, i.mixins, i.__ES6__); var l = i.statics; if (l) { var _; 0; for (_ in l) a[_] = l[_]; } for (var d in i) if (!(u.indexOf(d) >= 0)) { var m = i[d]; h.validateMethodWithProps(m, d, n, a, r) && s.value(a.prototype, d, m, !0, !0); } var p = i.editor; p && s.isChildClassOf(r, cc.Component) && cc.Component._registerEditorProps(a, p); return a; } I._isCCClass = function(t) { return t && t.hasOwnProperty("__ctors__"); }; I._fastDefine = function(t, e, i) { s.setClassName(t, e); for (var n = e.__props__ = e.__values__ = Object.keys(i), r = c.getClassAttrs(e), o = 0; o < n.length; o++) { var a = n[o]; r[a + l + "visible"] = !1; r[a + l + "default"] = i[a]; } }; I.Attr = c; I.attr = c.attr; I.getInheritanceChain = function(t) { for (var e = []; t = s.getSuper(t); ) t !== Object && e.push(t); return e; }; var P = { Integer: "Number", Float: "Number", Boolean: "Boolean", String: "String" }; function R(i, n, r, s, a) { var h = null, u = ""; function _() { u = s + l; return h = c.getClassAttrs(i); } 0; var f = n.type; if (f) { var d = P[f]; if (d) { (h || _())[u + "type"] = f; 0; } else if ("Object" === f) 0; else if (f === c.ScriptUuid) { (h || _())[u + "type"] = "Script"; h[u + "ctor"] = cc.ScriptAsset; 0; } else if ("object" === ("object" === (e = typeof f) ? t(f) : e)) if (o.isEnum(f)) { (h || _())[u + "type"] = "Enum"; h[u + "enumList"] = o.getList(f); } else 0; else if ("function" === ("object" === (e = typeof f) ? t(f) : e)) if (n.url) { (h || _())[u + "type"] = "Object"; h[u + "ctor"] = f; 0; } else { (h || _())[u + "type"] = "Object"; h[u + "ctor"] = f; 0; } else 0; } function m(i, r) { if (i in n) { var s = n[i]; ("object" === (e = typeof s) ? t(s) : e) === r && ((h || _())[u + i] = s); } } n.editorOnly && ((h || _())[u + "editorOnly"] = !0); 0; n.url && ((h || _())[u + "saveUrlAsAsset"] = !0); !1 === n.serializable && ((h || _())[u + "serializable"] = !1); m("formerlySerializedAs", "string"); 0; var p = n.range; if (p) if (Array.isArray(p)) if (p.length >= 2) { (h || _())[u + "min"] = p[0]; h[u + "max"] = p[1]; p.length > 2 && (h[u + "step"] = p[2]); } else 0; else 0; m("min", "number"); m("max", "number"); m("step", "number"); } cc.Class = I; n.exports = { isArray: function(t) { t = v(t); return Array.isArray(t); }, fastDefine: I._fastDefine, getNewValueTypeCode: C, IDENTIFIER_RE: S, escapeForJS: b, getDefault: v }; 0; }), { "./CCEnum": 203, "./attribute": 213, "./js": 221, "./preprocess-class": 222, "./requiring-frame": 223, "./utils": 225 } ], 202: [ (function(i, n, r) { "use strict"; i("./CCClass"); var s = i("./preprocess-class"), o = i("./js"), a = "__ccclassCache__"; function c(t) { return t; } function l(t, e) { return t[e] || (t[e] = {}); } function h(i) { return function(n) { return "function" === ("object" === (e = typeof n) ? t(n) : e) ? i(n) : function(t) { return i(t, n); }; }; } function u(t, e, i) { return function(t) { 0; return function(i) { return e(i, t); }; }; } var _ = u.bind(null, !1); function f(t) { return u.bind(null, !1); } var d = f(), m = f(); function p(t, e) { 0; return l(t, a); } function v(i) { var n; try { n = i(); } catch (t) { return i; } return "object" !== ("object" === (e = typeof n) ? t(n) : e) || null === n ? n : i; } function y(t) { var e; try { e = new t(); } catch (t) { 0; return {}; } return e; } function g(t, e, i, n, r, a) { var c; n && (c = (c = s.getFullFormOfProperty(n)) || n); var l = e[i], h = o.mixin(l || {}, c || {}); if (r && (r.get || r.set)) { r.get && (h.get = r.get); r.set && (h.set = r.set); } else { 0; var u = void 0; if (r) { if (r.initializer) { u = v(r.initializer); !0; } } else { var _ = a.default || (a.default = y(t)); if (_.hasOwnProperty(i)) { u = _[i]; !0; } } 0; h.default = u; } e[i] = h; } var x = h((function(t, e) { var i = o.getSuper(t); i === Object && (i = null); var n = { name: e, extends: i, ctor: t, __ES6__: !0 }, r = t[a]; if (r) { var s = r.proto; s && o.mixin(n, s); t[a] = void 0; } return cc.Class(n); })); function C(t, e, i) { return t((function(t, n) { var r = p(t); if (r) { var s = void 0 !== i ? i : n; l(l(r, "proto"), "editor")[e] = s; } }), e); } function b(t) { return t(c); } var A = b(h), S = C(_, "requireComponent"), w = b(d), T = C(m, "executionOrder"), E = b(h), M = b(h), B = b(d), D = b(d), I = b(d); cc._decorator = n.exports = { ccclass: x, property: function(i, n, r) { var s = null; function o(t, e, i) { var n = p(t.constructor); if (n) { var r = l(l(n, "proto"), "properties"); g(t.constructor, r, e, s, i, n); } } if ("undefined" === ("object" == (e = typeof n) ? t(n) : e)) { s = i; return o; } o(i, n, r); }, executeInEditMode: A, requireComponent: S, menu: w, executionOrder: T, disallowMultiple: E, playOnFocus: M, inspector: B, icon: D, help: I, mixins: function() { for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e]; return function(e) { var i = p(e); i && (l(i, "proto").mixins = t); }; } }; }), { "./CCClass": 201, "./js": 221, "./preprocess-class": 222, "./utils": 225 } ], 203: [ (function(i, n, r) { "use strict"; var s = i("./js"); function o(i) { if ("__enums__" in i) return i; s.value(i, "__enums__", null, !0); for (var n = -1, r = Object.keys(i), o = 0; o < r.length; o++) { var a = r[o], c = i[a]; if (-1 === c) { c = ++n; i[a] = c; } else if ("number" === ("object" === (e = typeof c) ? t(c) : e)) n = c; else if ("string" === ("object" === (e = typeof c) ? t(c) : e) && Number.isInteger(parseFloat(a))) continue; var l = "" + c; if (a !== l) { 0; s.value(i, l, a); } } return i; } o.isEnum = function(t) { return t && t.hasOwnProperty("__enums__"); }; o.getList = function(t) { if (t.__enums__) return t.__enums__; var e = t.__enums__ = []; for (var i in t) { var n = t[i]; Number.isInteger(n) && e.push({ name: i, value: n }); } e.sort((function(t, e) { return t.value - e.value; })); return e; }; n.exports = cc.Enum = o; }), { "./js": 221 } ], 204: [ (function(t, e, i) { "use strict"; var n = t("../event-manager"), r = t("./CCInputManager"), s = void 0; cc.Acceleration = function(t, e, i, n) { this.x = t || 0; this.y = e || 0; this.z = i || 0; this.timestamp = n || 0; }; r.setAccelerometerEnabled = function(t) { var e = this; if (e._accelEnabled !== t) { e._accelEnabled = t; var i = cc.director.getScheduler(); i.enableForTarget(e); if (e._accelEnabled) { e._registerAccelerometerEvent(); e._accelCurTime = 0; i.scheduleUpdate(e); } else { e._unregisterAccelerometerEvent(); e._accelCurTime = 0; i.unscheduleUpdate(e); } jsb.device.setMotionEnabled(t); } }; r.setAccelerometerInterval = function(t) { if (this._accelInterval !== t) { this._accelInterval = t; jsb.device.setMotionInterval(t); } }; r._registerKeyboardEvent = function() { cc.game.canvas.addEventListener("keydown", (function(t) { n.dispatchEvent(new cc.Event.EventKeyboard(t.keyCode, !0)); t.stopPropagation(); t.preventDefault(); }), !1); cc.game.canvas.addEventListener("keyup", (function(t) { n.dispatchEvent(new cc.Event.EventKeyboard(t.keyCode, !1)); t.stopPropagation(); t.preventDefault(); }), !1); }; r._registerAccelerometerEvent = function() { var t = window, e = this; e._acceleration = new cc.Acceleration(); e._accelDeviceEvent = t.DeviceMotionEvent || t.DeviceOrientationEvent; cc.sys.browserType === cc.sys.BROWSER_TYPE_MOBILE_QQ && (e._accelDeviceEvent = window.DeviceOrientationEvent); var i = e._accelDeviceEvent === t.DeviceMotionEvent ? "devicemotion" : "deviceorientation", n = navigator.userAgent; (/Android/.test(n) || /Adr/.test(n) && cc.sys.browserType === cc.BROWSER_TYPE_UC) && (e._minus = -1); s = e.didAccelerate.bind(e); t.addEventListener(i, s, !1); }; r._unregisterAccelerometerEvent = function() { var t = window, e = this._accelDeviceEvent === t.DeviceMotionEvent ? "devicemotion" : "deviceorientation"; s && t.removeEventListener(e, s, !1); }; r.didAccelerate = function(t) { var e = this, i = window; if (e._accelEnabled) { var n = e._acceleration, r = void 0, s = void 0, o = void 0; if (e._accelDeviceEvent === window.DeviceMotionEvent) { var a = t.accelerationIncludingGravity; r = e._accelMinus * a.x * .1; s = e._accelMinus * a.y * .1; o = .1 * a.z; } else { r = t.gamma / 90 * .981; s = -t.beta / 90 * .981; o = t.alpha / 90 * .981; } if (cc.view._isRotated) { var c = r; r = -s; s = c; } n.x = r; n.y = s; n.z = o; n.timestamp = t.timeStamp || Date.now(); var l = n.x; if (90 === i.orientation) { n.x = -n.y; n.y = l; } else if (-90 === i.orientation) { n.x = n.y; n.y = -l; } else if (180 === i.orientation) { n.x = -n.x; n.y = -n.y; } if (cc.sys.os === cc.sys.OS_ANDROID && cc.sys.browserType !== cc.sys.BROWSER_TYPE_MOBILE_QQ) { n.x = -n.x; n.y = -n.y; } } }; }), { "../event-manager": 131, "./CCInputManager": 205 } ], 205: [ (function(t, e, i) { "use strict"; var n = t("./CCMacro"), r = t("./CCSys"), s = t("../event-manager"), o = n.TOUCH_TIMEOUT, a = cc.v2(), c = { _mousePressed: !1, _isRegisterEvent: !1, _preTouchPoint: cc.v2(0, 0), _prevMousePoint: cc.v2(0, 0), _preTouchPool: [], _preTouchPoolPointer: 0, _touches: [], _touchesIntegerDict: {}, _indexBitsUsed: 0, _maxTouches: 8, _accelEnabled: !1, _accelInterval: .2, _accelMinus: 1, _accelCurTime: 0, _acceleration: null, _accelDeviceEvent: null, _getUnUsedIndex: function() { for (var t = this._indexBitsUsed, e = cc.sys.now(), i = 0; i < this._maxTouches; i++) { if (!(1 & t)) { this._indexBitsUsed |= 1 << i; return i; } var n = this._touches[i]; if (e - n._lastModified > o) { this._removeUsedIndexBit(i); delete this._touchesIntegerDict[n.getID()]; return i; } t >>= 1; } return -1; }, _removeUsedIndexBit: function(t) { if (!(t < 0 || t >= this._maxTouches)) { var e = 1 << t; e = ~e; this._indexBitsUsed &= e; } }, _glView: null, handleTouchesBegin: function(t) { for (var e = void 0, i = void 0, n = void 0, o = [], a = this._touchesIntegerDict, c = r.now(), l = 0, h = t.length; l < h; l++) if (null == a[n = (e = t[l]).getID()]) { var u = this._getUnUsedIndex(); if (-1 === u) { cc.logID(2300, u); continue; } (i = this._touches[u] = new cc.Touch(e._point.x, e._point.y, e.getID()))._lastModified = c; i._setPrevPoint(e._prevPoint); a[n] = u; o.push(i); } if (o.length > 0) { this._glView._convertTouchesWithScale(o); var _ = new cc.Event.EventTouch(o); _._eventCode = cc.Event.EventTouch.BEGAN; s.dispatchEvent(_); } }, handleTouchesMove: function(t) { for (var e = void 0, i = void 0, n = void 0, o = [], a = this._touches, c = r.now(), l = 0, h = t.length; l < h; l++) { n = (e = t[l]).getID(); if (null != (i = this._touchesIntegerDict[n]) && a[i]) { a[i]._setPoint(e._point); a[i]._setPrevPoint(e._prevPoint); a[i]._lastModified = c; o.push(a[i]); } } if (o.length > 0) { this._glView._convertTouchesWithScale(o); var u = new cc.Event.EventTouch(o); u._eventCode = cc.Event.EventTouch.MOVED; s.dispatchEvent(u); } }, handleTouchesEnd: function(t) { var e = this.getSetOfTouchesEndOrCancel(t); if (e.length > 0) { this._glView._convertTouchesWithScale(e); var i = new cc.Event.EventTouch(e); i._eventCode = cc.Event.EventTouch.ENDED; s.dispatchEvent(i); } this._preTouchPool.length = 0; }, handleTouchesCancel: function(t) { var e = this.getSetOfTouchesEndOrCancel(t); if (e.length > 0) { this._glView._convertTouchesWithScale(e); var i = new cc.Event.EventTouch(e); i._eventCode = cc.Event.EventTouch.CANCELLED; s.dispatchEvent(i); } this._preTouchPool.length = 0; }, getSetOfTouchesEndOrCancel: function(t) { for (var e = void 0, i = void 0, n = void 0, r = [], s = this._touches, o = this._touchesIntegerDict, a = 0, c = t.length; a < c; a++) if (null != (i = o[n = (e = t[a]).getID()]) && s[i]) { s[i]._setPoint(e._point); s[i]._setPrevPoint(e._prevPoint); r.push(s[i]); this._removeUsedIndexBit(i); delete o[n]; } return r; }, getHTMLElementPosition: function(t) { 0; var e = document.documentElement, i = window.pageXOffset - e.clientLeft, n = window.pageYOffset - e.clientTop; if (t.getBoundingClientRect) { var r = t.getBoundingClientRect(); return { left: r.left + i, top: r.top + n, width: r.width, height: r.height }; } return t instanceof HTMLCanvasElement ? { left: i, top: n, width: t.width, height: t.height } : { left: i, top: n, width: parseInt(t.style.width), height: parseInt(t.style.height) }; }, getPreTouch: function(t) { for (var e = null, i = this._preTouchPool, n = t.getID(), r = i.length - 1; r >= 0; r--) if (i[r].getID() === n) { e = i[r]; break; } e || (e = t); return e; }, setPreTouch: function(t) { for (var e = !1, i = this._preTouchPool, n = t.getID(), r = i.length - 1; r >= 0; r--) if (i[r].getID() === n) { i[r] = t; e = !0; break; } if (!e) if (i.length <= 50) i.push(t); else { i[this._preTouchPoolPointer] = t; this._preTouchPoolPointer = (this._preTouchPoolPointer + 1) % 50; } }, getTouchByXY: function(t, e, i) { var n = this._preTouchPoint, r = this._glView.convertToLocationInView(t, e, i), s = new cc.Touch(r.x, r.y, 0); s._setPrevPoint(n.x, n.y); n.x = r.x; n.y = r.y; return s; }, getMouseEvent: function(t, e, i) { var n = this._prevMousePoint, r = new cc.Event.EventMouse(i); r._setPrevCursor(n.x, n.y); n.x = t.x; n.y = t.y; this._glView._convertMouseToLocationInView(n, e); r.setLocation(n.x, n.y); return r; }, getPointByEvent: function(t, e) { if (null != t.pageX) return { x: t.pageX, y: t.pageY }; e.left -= document.body.scrollLeft; e.top -= document.body.scrollTop; return { x: t.clientX, y: t.clientY }; }, getTouchesByEvent: function(t, e) { for (var i = [], n = this._glView, s = void 0, o = void 0, c = void 0, l = this._preTouchPoint, h = t.changedTouches.length, u = 0; u < h; u++) if (s = t.changedTouches[u]) { var _ = void 0; _ = r.BROWSER_TYPE_FIREFOX === r.browserType ? n.convertToLocationInView(s.pageX, s.pageY, e, a) : n.convertToLocationInView(s.clientX, s.clientY, e, a); if (null != s.identifier) { o = new cc.Touch(_.x, _.y, s.identifier); c = this.getPreTouch(o).getLocation(); o._setPrevPoint(c.x, c.y); this.setPreTouch(o); } else (o = new cc.Touch(_.x, _.y))._setPrevPoint(l.x, l.y); l.x = _.x; l.y = _.y; i.push(o); } return i; }, registerSystemEvent: function(t) { if (!this._isRegisterEvent) { this._glView = cc.view; var e = this, i = r.isMobile, n = "mouse" in r.capabilities, o = "touches" in r.capabilities; 0; if (n) { if (!i) { window.addEventListener("mousedown", (function() { e._mousePressed = !0; }), !1); window.addEventListener("mouseup", (function(i) { if (e._mousePressed) { e._mousePressed = !1; var n = e.getHTMLElementPosition(t), r = e.getPointByEvent(i, n); if (!cc.rect(n.left, n.top, n.width, n.height).contains(r)) { e.handleTouchesEnd([ e.getTouchByXY(r.x, r.y, n) ]); var o = e.getMouseEvent(r, n, cc.Event.EventMouse.UP); o.setButton(i.button); s.dispatchEvent(o); } } }), !1); } for (var a = cc.Event.EventMouse, c = [ !i && [ "mousedown", a.DOWN, function(i, n, r, s) { e._mousePressed = !0; e.handleTouchesBegin([ e.getTouchByXY(r.x, r.y, s) ]); t.focus(); } ], !i && [ "mouseup", a.UP, function(t, i, n, r) { e._mousePressed = !1; e.handleTouchesEnd([ e.getTouchByXY(n.x, n.y, r) ]); } ], !i && [ "mousemove", a.MOVE, function(t, i, n, r) { e.handleTouchesMove([ e.getTouchByXY(n.x, n.y, r) ]); e._mousePressed || i.setButton(null); } ], [ "mousewheel", a.SCROLL, function(t, e) { e.setScrollData(0, t.wheelDelta); } ], [ "DOMMouseScroll", a.SCROLL, function(t, e) { e.setScrollData(0, -120 * t.detail); } ] ], l = 0; l < c.length; ++l) { var h = c[l]; h && (function() { var i = h[0], n = h[1], r = h[2]; t.addEventListener(i, (function(i) { var o = e.getHTMLElementPosition(t), a = e.getPointByEvent(i, o), c = e.getMouseEvent(a, o, n); c.setButton(i.button); r(i, c, a, o); s.dispatchEvent(c); i.stopPropagation(); i.preventDefault(); }), !1); })(); } } if (window.navigator.msPointerEnabled) { var u = { MSPointerDown: e.handleTouchesBegin, MSPointerMove: e.handleTouchesMove, MSPointerUp: e.handleTouchesEnd, MSPointerCancel: e.handleTouchesCancel }, _ = function(i) { var n = u[i]; t.addEventListener(i, (function(i) { var r = e.getHTMLElementPosition(t); r.left -= document.documentElement.scrollLeft; r.top -= document.documentElement.scrollTop; n.call(e, [ e.getTouchByXY(i.clientX, i.clientY, r) ]); i.stopPropagation(); }), !1); }; for (var f in u) _(f); } if (o) { var d = { touchstart: function(i) { e.handleTouchesBegin(i); t.focus(); }, touchmove: function(t) { e.handleTouchesMove(t); }, touchend: function(t) { e.handleTouchesEnd(t); }, touchcancel: function(t) { e.handleTouchesCancel(t); } }, m = void 0; if (cc.sys.browserType === cc.sys.BROWSER_TYPE_WECHAT_GAME_SUB) { d = { onTouchStart: d.touchstart, onTouchMove: d.touchmove, onTouchEnd: d.touchend, onTouchCancel: d.touchcancel }; m = function(i) { var n = d[i]; wx[i]((function(i) { if (i.changedTouches) { var r = e.getHTMLElementPosition(t), s = document.body; r.left -= s.scrollLeft || 0; r.top -= s.scrollTop || 0; n(e.getTouchesByEvent(i, r)); } })); }; } else m = function(i) { var n = d[i]; t.addEventListener(i, (function(i) { if (i.changedTouches) { var r = e.getHTMLElementPosition(t), s = document.body; r.left -= s.scrollLeft || 0; r.top -= s.scrollTop || 0; n(e.getTouchesByEvent(i, r)); i.stopPropagation(); i.preventDefault(); } }), !1); }; for (var f in d) m(f); } cc.sys.browserType !== cc.sys.BROWSER_TYPE_WECHAT_GAME_SUB && this._registerKeyboardEvent(); this._isRegisterEvent = !0; } }, _registerKeyboardEvent: function() {}, _registerAccelerometerEvent: function() {}, update: function(t) { if (this._accelCurTime > this._accelInterval) { this._accelCurTime -= this._accelInterval; s.dispatchEvent(new cc.Event.EventAcceleration(this._acceleration)); } this._accelCurTime += t; } }; e.exports = _cc.inputManager = c; }), { "../event-manager": 131, "./CCMacro": 206, "./CCSys": 210 } ], 206: [ (function(t, e, i) { "use strict"; t("./js"); cc.macro = { RAD: Math.PI / 180, DEG: 180 / Math.PI, REPEAT_FOREVER: Number.MAX_VALUE - 1, FLT_EPSILON: 1.192092896e-7, MIN_ZINDEX: -Math.pow(2, 15), MAX_ZINDEX: Math.pow(2, 15) - 1, ONE: 1, ZERO: 0, SRC_ALPHA: 770, SRC_ALPHA_SATURATE: 776, SRC_COLOR: 768, DST_ALPHA: 772, DST_COLOR: 774, ONE_MINUS_SRC_ALPHA: 771, ONE_MINUS_SRC_COLOR: 769, ONE_MINUS_DST_ALPHA: 773, ONE_MINUS_DST_COLOR: 775, ONE_MINUS_CONSTANT_ALPHA: 32772, ONE_MINUS_CONSTANT_COLOR: 32770, ORIENTATION_PORTRAIT: 1, ORIENTATION_LANDSCAPE: 2, ORIENTATION_AUTO: 3, DENSITYDPI_DEVICE: "device-dpi", DENSITYDPI_HIGH: "high-dpi", DENSITYDPI_MEDIUM: "medium-dpi", DENSITYDPI_LOW: "low-dpi", FIX_ARTIFACTS_BY_STRECHING_TEXEL_TMX: !0, DIRECTOR_STATS_POSITION: cc.v2(0, 0), ENABLE_STACKABLE_ACTIONS: !0, TOUCH_TIMEOUT: 5e3, BATCH_VERTEX_COUNT: 2e4, ENABLE_TILEDMAP_CULLING: !0, DOWNLOAD_MAX_CONCURRENT: 64, ENABLE_TRANSPARENT_CANVAS: !1, ENABLE_WEBGL_ANTIALIAS: !1, ENABLE_CULLING: !1, CLEANUP_IMAGE_CACHE: !1, SHOW_MESH_WIREFRAME: !1, ROTATE_ACTION_CCW: !1 }; cc.macro.SUPPORT_TEXTURE_FORMATS = [ ".pkm", ".pvr", ".webp", ".jpg", ".jpeg", ".bmp", ".png" ]; cc.macro.KEY = { none: 0, back: 6, menu: 18, backspace: 8, tab: 9, enter: 13, shift: 16, ctrl: 17, alt: 18, pause: 19, capslock: 20, escape: 27, space: 32, pageup: 33, pagedown: 34, end: 35, home: 36, left: 37, up: 38, right: 39, down: 40, select: 41, insert: 45, Delete: 46, 0: 48, 1: 49, 2: 50, 3: 51, 4: 52, 5: 53, 6: 54, 7: 55, 8: 56, 9: 57, a: 65, b: 66, c: 67, d: 68, e: 69, f: 70, g: 71, h: 72, i: 73, j: 74, k: 75, l: 76, m: 77, n: 78, o: 79, p: 80, q: 81, r: 82, s: 83, t: 84, u: 85, v: 86, w: 87, x: 88, y: 89, z: 90, num0: 96, num1: 97, num2: 98, num3: 99, num4: 100, num5: 101, num6: 102, num7: 103, num8: 104, num9: 105, "*": 106, "+": 107, "-": 109, numdel: 110, "/": 111, f1: 112, f2: 113, f3: 114, f4: 115, f5: 116, f6: 117, f7: 118, f8: 119, f9: 120, f10: 121, f11: 122, f12: 123, numlock: 144, scrolllock: 145, ";": 186, semicolon: 186, equal: 187, "=": 187, ",": 188, comma: 188, dash: 189, ".": 190, period: 190, forwardslash: 191, grave: 192, "[": 219, openbracket: 219, backslash: 220, "]": 221, closebracket: 221, quote: 222, dpadLeft: 1e3, dpadRight: 1001, dpadUp: 1003, dpadDown: 1004, dpadCenter: 1005 }; cc.macro.ImageFormat = cc.Enum({ JPG: 0, PNG: 1, TIFF: 2, WEBP: 3, PVR: 4, ETC: 5, S3TC: 6, ATITC: 7, TGA: 8, RAWDATA: 9, UNKNOWN: 10 }); cc.macro.BlendFactor = cc.Enum({ ONE: 1, ZERO: 0, SRC_ALPHA: 770, SRC_COLOR: 768, DST_ALPHA: 772, DST_COLOR: 774, ONE_MINUS_SRC_ALPHA: 771, ONE_MINUS_SRC_COLOR: 769, ONE_MINUS_DST_ALPHA: 773, ONE_MINUS_DST_COLOR: 775 }); cc.macro.TextAlignment = cc.Enum({ LEFT: 0, CENTER: 1, RIGHT: 2 }); cc.macro.VerticalTextAlignment = cc.Enum({ TOP: 0, CENTER: 1, BOTTOM: 2 }); e.exports = cc.macro; }), { "./js": 221 } ], 207: [ (function(i, n, r) { "use strict"; var s = i("./js"), o = i("./CCClass"), a = 1; function c() { this._name = ""; this._objFlags = 0; } o.fastDefine("cc.Object", c, { _name: "", _objFlags: 0 }); s.value(c, "Flags", { Destroyed: a, DontSave: 8, EditorOnly: 16, Dirty: 32, DontDestroy: 64, PersistentMask: -4192741, Destroying: 128, Deactivating: 256, LockedInEditor: 512, HideInHierarchy: 1024, IsPreloadStarted: 8192, IsOnLoadStarted: 32768, IsOnLoadCalled: 16384, IsOnEnableCalled: 2048, IsStartCalled: 65536, IsEditorOnEnableCalled: 4096, IsPositionLocked: 1 << 21, IsRotationLocked: 1 << 17, IsScaleLocked: 1 << 18, IsAnchorLocked: 1 << 19, IsSizeLocked: 1 << 20 }); var l = []; function h() { for (var t = l.length, e = 0; e < t; ++e) { var i = l[e]; i._objFlags & a || i._destroyImmediate(); } t === l.length ? l.length = 0 : l.splice(0, t); 0; } s.value(c, "_deferredDestroy", h); 0; var u = c.prototype; s.getset(u, "name", (function() { return this._name; }), (function(t) { this._name = t; }), !0); s.get(u, "isValid", (function() { return !(this._objFlags & a); }), !0); 0; u.destroy = function() { if (this._objFlags & a) { cc.warnID(5e3); return !1; } if (4 & this._objFlags) return !1; this._objFlags |= 4; l.push(this); 0; return !0; }; 0; function _(i, n) { var r, s = i instanceof cc._BaseNode || i instanceof cc.Component, a = s ? "_id" : null, c = {}; for (r in i) if (i.hasOwnProperty(r)) { if (r === a) continue; switch ("object" === (e = typeof i[r]) ? t(i[r]) : e) { case "string": c[r] = ""; break; case "object": case "function": c[r] = null; } } if (cc.Class._isCCClass(n)) for (var l = cc.Class.Attr.getClassAttrs(n), h = n.__props__, u = 0; u < h.length; u++) { var _ = (r = h[u]) + cc.Class.Attr.DELIMETER + "default"; if (_ in l) { if (s && "_id" === r) continue; switch ("object" === (e = typeof l[_]) ? t(l[_]) : e) { case "string": c[r] = ""; break; case "object": case "function": c[r] = null; break; case "undefined": c[r] = void 0; } } } var f = ""; for (r in c) { var d; d = o.IDENTIFIER_RE.test(r) ? "o." + r + "=" : "o[" + o.escapeForJS(r) + "]="; var m = c[r]; "" === m && (m = '""'); f += d + m + ";\n"; } return Function("o", f); } u._destruct = function() { var t = this.constructor, e = t.__destruct__; if (!e) { e = _(this, t); s.value(t, "__destruct__", e, !0); } e(this); }; u._onPreDestroy = null; u._destroyImmediate = function() { if (this._objFlags & a) cc.errorID(5e3); else { this._onPreDestroy && this._onPreDestroy(); this._destruct(); this._objFlags |= a; } }; 0; u._deserialize = null; cc.isValid = function(i, n) { return "object" === ("object" === (e = typeof i) ? t(i) : e) ? !(!i || i._objFlags & (n ? 4 | a : a)) : "undefined" !== ("object" === (e = typeof i) ? t(i) : e); }; 0; cc.Object = n.exports = c; }), { "./CCClass": 201, "./js": 221 } ], 208: [ (function(t, e, i) { "use strict"; var n = t("../platform/js"); cc.SAXParser = function() { if (window.DOMParser) { this._isSupportDOMParser = !0; this._parser = new DOMParser(); } else { this._isSupportDOMParser = !1; this._parser = null; } }; cc.SAXParser.prototype = { constructor: cc.SAXParser, parse: function(t) { return this._parseXML(t); }, _parseXML: function(t) { var e; if (this._isSupportDOMParser) e = this._parser.parseFromString(t, "text/xml"); else { (e = new ActiveXObject("Microsoft.XMLDOM")).async = "false"; e.loadXML(t); } return e; } }; cc.PlistParser = function() { cc.SAXParser.call(this); }; n.extend(cc.PlistParser, cc.SAXParser); n.mixin(cc.PlistParser.prototype, { parse: function(t) { var e = this._parseXML(t), i = e.documentElement; if ("plist" !== i.tagName) { cc.warnID(5100); return {}; } for (var n = null, r = 0, s = i.childNodes.length; r < s && 1 !== (n = i.childNodes[r]).nodeType; r++) ; e = null; return this._parseNode(n); }, _parseNode: function(t) { var e = null, i = t.tagName; if ("dict" === i) e = this._parseDict(t); else if ("array" === i) e = this._parseArray(t); else if ("string" === i) if (1 === t.childNodes.length) e = t.firstChild.nodeValue; else { e = ""; for (var n = 0; n < t.childNodes.length; n++) e += t.childNodes[n].nodeValue; } else "false" === i ? e = !1 : "true" === i ? e = !0 : "real" === i ? e = parseFloat(t.firstChild.nodeValue) : "integer" === i && (e = parseInt(t.firstChild.nodeValue, 10)); return e; }, _parseArray: function(t) { for (var e = [], i = 0, n = t.childNodes.length; i < n; i++) { var r = t.childNodes[i]; 1 === r.nodeType && e.push(this._parseNode(r)); } return e; }, _parseDict: function(t) { for (var e = {}, i = null, n = 0, r = t.childNodes.length; n < r; n++) { var s = t.childNodes[n]; 1 === s.nodeType && ("key" === s.tagName ? i = s.firstChild.nodeValue : e[i] = this._parseNode(s)); } return e; } }); cc.saxParser = new cc.SAXParser(); cc.plistParser = new cc.PlistParser(); e.exports = { saxParser: cc.saxParser, plistParser: cc.plistParser }; }), { "../platform/js": 221 } ], 209: [ (function(i, n, r) { "use strict"; cc.screen = { _supportsFullScreen: !1, _preOnFullScreenChange: null, _preOnFullScreenError: null, _preOnTouch: null, _touchEvent: "", _fn: null, _fnMap: [ [ "requestFullscreen", "exitFullscreen", "fullscreenchange", "fullscreenEnabled", "fullscreenElement", "fullscreenerror" ], [ "requestFullScreen", "exitFullScreen", "fullScreenchange", "fullScreenEnabled", "fullScreenElement", "fullscreenerror" ], [ "webkitRequestFullScreen", "webkitCancelFullScreen", "webkitfullscreenchange", "webkitIsFullScreen", "webkitCurrentFullScreenElement", "webkitfullscreenerror" ], [ "mozRequestFullScreen", "mozCancelFullScreen", "mozfullscreenchange", "mozFullScreen", "mozFullScreenElement", "mozfullscreenerror" ], [ "msRequestFullscreen", "msExitFullscreen", "MSFullscreenChange", "msFullscreenEnabled", "msFullscreenElement", "msfullscreenerror" ] ], init: function() { this._fn = {}; var i, n, r, s, o = this._fnMap; for (i = 0, n = o.length; i < n; i++) if ((r = o[i]) && "undefined" !== ("object" === (e = typeof document[r[1]]) ? t(document[r[1]]) : e)) { for (i = 0, s = r.length; i < s; i++) this._fn[o[0][i]] = r[i]; break; } this._supportsFullScreen = void 0 !== this._fn.requestFullscreen; this._touchEvent = "ontouchend" in window ? "touchend" : "mousedown"; }, fullScreen: function() { return !!this._supportsFullScreen && !!(document[this._fn.fullscreenElement] || document[this._fn.webkitFullscreenElement] || document[this._fn.mozFullScreenElement]); }, requestFullScreen: function(t, e) { if (t && "video" === t.tagName.toLowerCase()) { if (cc.sys.os === cc.sys.OS_IOS && cc.sys.isBrowser && t.readyState > 0) { t.webkitEnterFullscreen && t.webkitEnterFullscreen(); return; } t.setAttribute("x5-video-player-fullscreen", "true"); } if (this._supportsFullScreen) { t = t || document.documentElement; if (e) { var i = this._fn.fullscreenchange; this._preOnFullScreenChange && document.removeEventListener(i, this._preOnFullScreenChange); this._preOnFullScreenChange = e; document.addEventListener(i, e, !1); } t[this._fn.requestFullscreen](); } }, exitFullScreen: function(t) { if (t && "video" === t.tagName.toLowerCase()) { if (cc.sys.os === cc.sys.OS_IOS && cc.sys.isBrowser) { t.webkitExitFullscreen && t.webkitExitFullscreen(); return; } t.setAttribute("x5-video-player-fullscreen", "false"); } return !this._supportsFullScreen || document[this._fn.exitFullscreen](); }, autoFullScreen: function(t, e) { t = t || document.body; this._ensureFullScreen(t, e); this.requestFullScreen(t, e); }, disableAutoFullScreen: function(t) { var e = cc.game.canvas || t, i = this._touchEvent; if (this._preOnTouch) { e.removeEventListener(i, this._preOnTouch); this._preOnTouch = null; } }, _ensureFullScreen: function(t, e) { var i = this, n = cc.game.canvas || t, r = this._fn.fullscreenerror, s = this._touchEvent; function o() { i._preOnFullScreenError = null; i._preOnTouch && n.removeEventListener(s, i._preOnTouch); i._preOnTouch = function() { i._preOnTouch = null; i.requestFullScreen(t, e); }; n.addEventListener(s, i._preOnTouch, { once: !0 }); } this._preOnFullScreenError && t.removeEventListener(r, this._preOnFullScreenError); this._preOnFullScreenError = o; t.addEventListener(r, o, { once: !0 }); } }; cc.screen.init(); }), {} ], 210: [ (function(i, n, r) { "use strict"; var s = void 0, o = "baidugame" === (s = window._CCSettings ? _CCSettings.platform : void 0) || "baidugame-subcontext" === s, a = "qgame" === s, c = "quickgame" === s, l = "huawei" === s, h = "jkw-game" === s, u = "undefined" === ("object" === (e = typeof window) ? t(window) : e) ? global : window; var _ = cc && cc.sys ? cc.sys : (function() { cc.sys = {}; var i = cc.sys; i.LANGUAGE_ENGLISH = "en"; i.LANGUAGE_CHINESE = "zh"; i.LANGUAGE_FRENCH = "fr"; i.LANGUAGE_ITALIAN = "it"; i.LANGUAGE_GERMAN = "de"; i.LANGUAGE_SPANISH = "es"; i.LANGUAGE_DUTCH = "du"; i.LANGUAGE_RUSSIAN = "ru"; i.LANGUAGE_KOREAN = "ko"; i.LANGUAGE_JAPANESE = "ja"; i.LANGUAGE_HUNGARIAN = "hu"; i.LANGUAGE_PORTUGUESE = "pt"; i.LANGUAGE_ARABIC = "ar"; i.LANGUAGE_NORWEGIAN = "no"; i.LANGUAGE_POLISH = "pl"; i.LANGUAGE_TURKISH = "tr"; i.LANGUAGE_UKRAINIAN = "uk"; i.LANGUAGE_ROMANIAN = "ro"; i.LANGUAGE_BULGARIAN = "bg"; i.LANGUAGE_UNKNOWN = "unknown"; i.OS_IOS = "iOS"; i.OS_ANDROID = "Android"; i.OS_WINDOWS = "Windows"; i.OS_MARMALADE = "Marmalade"; i.OS_LINUX = "Linux"; i.OS_BADA = "Bada"; i.OS_BLACKBERRY = "Blackberry"; i.OS_OSX = "OS X"; i.OS_WP8 = "WP8"; i.OS_WINRT = "WINRT"; i.OS_UNKNOWN = "Unknown"; i.UNKNOWN = -1; i.WIN32 = 0; i.LINUX = 1; i.MACOS = 2; i.ANDROID = 3; i.IPHONE = 4; i.IPAD = 5; i.BLACKBERRY = 6; i.NACL = 7; i.EMSCRIPTEN = 8; i.TIZEN = 9; i.WINRT = 10; i.WP8 = 11; i.MOBILE_BROWSER = 100; i.DESKTOP_BROWSER = 101; i.EDITOR_PAGE = 102; i.EDITOR_CORE = 103; i.WECHAT_GAME = 104; i.QQ_PLAY = 105; i.FB_PLAYABLE_ADS = 106; i.BAIDU_GAME = 107; i.VIVO_GAME = 108; i.OPPO_GAME = 109; i.HUAWEI_GAME = 110; i.XIAOMI_GAME = 111; i.JKW_GAME = 112; i.ALIPAY_GAME = 113; i.BROWSER_TYPE_WECHAT = "wechat"; i.BROWSER_TYPE_WECHAT_GAME = "wechatgame"; i.BROWSER_TYPE_WECHAT_GAME_SUB = "wechatgamesub"; i.BROWSER_TYPE_BAIDU_GAME = "baidugame"; i.BROWSER_TYPE_BAIDU_GAME_SUB = "baidugamesub"; i.BROWSER_TYPE_XIAOMI_GAME = "xiaomigame"; i.BROWSER_TYPE_ALIPAY_GAME = "alipaygame"; i.BROWSER_TYPE_QQ_PLAY = "qqplay"; i.BROWSER_TYPE_ANDROID = "androidbrowser"; i.BROWSER_TYPE_IE = "ie"; i.BROWSER_TYPE_EDGE = "edge"; i.BROWSER_TYPE_QQ = "qqbrowser"; i.BROWSER_TYPE_MOBILE_QQ = "mqqbrowser"; i.BROWSER_TYPE_UC = "ucbrowser"; i.BROWSER_TYPE_UCBS = "ucbs"; i.BROWSER_TYPE_360 = "360browser"; i.BROWSER_TYPE_BAIDU_APP = "baiduboxapp"; i.BROWSER_TYPE_BAIDU = "baidubrowser"; i.BROWSER_TYPE_MAXTHON = "maxthon"; i.BROWSER_TYPE_OPERA = "opera"; i.BROWSER_TYPE_OUPENG = "oupeng"; i.BROWSER_TYPE_MIUI = "miuibrowser"; i.BROWSER_TYPE_FIREFOX = "firefox"; i.BROWSER_TYPE_SAFARI = "safari"; i.BROWSER_TYPE_CHROME = "chrome"; i.BROWSER_TYPE_LIEBAO = "liebao"; i.BROWSER_TYPE_QZONE = "qzone"; i.BROWSER_TYPE_SOUGOU = "sogou"; i.BROWSER_TYPE_UNKNOWN = "unknown"; i.isNative = !0; i.isBrowser = "object" === ("object" == (e = typeof window) ? t(window) : e) && "object" === ("object" == (e = typeof document) ? t(document) : e) && !1; i.glExtension = function(t) { return !(o && "OES_texture_float" === t || !cc.renderer.device.ext(t)); }; i.getMaxJointMatrixSize = function() { if (!i._maxJointMatrixSize) { var t = cc.game._renderContext, e = Math.floor(t.getParameter(t.MAX_VERTEX_UNIFORM_VECTORS) / 4) - 10; i._maxJointMatrixSize = e < 50 ? 0 : 50; } return i._maxJointMatrixSize; }; if (u.__platform && u.__platform.getSystemInfo) { var n = u.__platform.getSystemInfo(); i.isNative = n.isNative; i.isBrowser = n.isBrowser; i.platform = n.platform; i.browserType = n.browserType; i.isMobile = n.isMobile; i.language = n.language; i.languageCode = n.language.toLowerCase(); i.os = n.os; i.osVersion = n.osVersion; i.osMainVersion = n.osMainVersion; i.browserVersion = n.browserVersion; i.windowPixelResolution = n.windowPixelResolution; i.localStorage = n.localStorage; i.capabilities = n.capabilities; i.__audioSupport = n.audioSupport; u.__platform = void 0; } else { var r, s = void 0; s = a ? i.VIVO_GAME : c ? i.OPPO_GAME : l ? i.HUAWEI_GAME : h ? i.JKW_GAME : __getPlatform(); i.platform = s; i.isMobile = s === i.ANDROID || s === i.IPAD || s === i.IPHONE || s === i.WP8 || s === i.TIZEN || s === i.BLACKBERRY || s === i.XIAOMI_GAME || a || c || l || h; i.os = __getOS(); i.language = __getCurrentLanguage(); r = __getCurrentLanguageCode(); i.languageCode = r ? r.toLowerCase() : void 0; i.osVersion = __getOSVersion(); i.osMainVersion = parseInt(i.osVersion); i.browserType = null; i.browserVersion = null; var _, f = window.innerWidth, d = window.innerHeight, m = window.devicePixelRatio || 1; i.windowPixelResolution = { width: m * f, height: m * d }; i.localStorage = window.localStorage; _ = i.capabilities = { canvas: !1, opengl: !0, webp: !0 }; if (i.isMobile) { _.accelerometer = !0; _.touches = !0; } else { _.keyboard = !0; _.mouse = !0; _.touches = !1; } i.__audioSupport = { ONLY_ONE: !1, WEB_AUDIO: !1, DELAY_CREATE_CTX: !1, format: [ ".mp3" ] }; } i.NetworkType = { NONE: 0, LAN: 1, WWAN: 2 }; i.getNetworkType = function() { return i.NetworkType.LAN; }; i.getBatteryLevel = function() { return 1; }; i.garbageCollect = function() {}; i.restartVM = function() {}; i.getSafeAreaRect = function() { var t = cc.view.getVisibleSize(); return cc.rect(0, 0, t.width, t.height); }; i.isObjectValid = function(t) { return !!t; }; i.dump = function() { var t = ""; t += "isMobile : " + this.isMobile + "\r\n"; t += "language : " + this.language + "\r\n"; t += "browserType : " + this.browserType + "\r\n"; t += "browserVersion : " + this.browserVersion + "\r\n"; t += "capabilities : " + JSON.stringify(this.capabilities) + "\r\n"; t += "os : " + this.os + "\r\n"; t += "osVersion : " + this.osVersion + "\r\n"; t += "platform : " + this.platform + "\r\n"; t += "Using " + (cc.game.renderType === cc.game.RENDER_TYPE_WEBGL ? "WEBGL" : "CANVAS") + " renderer.\r\n"; cc.log(t); }; i.openURL = function(t) { jsb.openURL(t); }; i.now = function() { return Date.now ? Date.now() : +new Date(); }; return i; })(); n.exports = _; }), {} ], 211: [ (function(i, n, r) { "use strict"; var s = i("../event/event-target"), o = i("../platform/js"), a = i("../renderer"); i("../platform/CCClass"); var c = cc.sys.platform === cc.sys.XIAOMI_GAME, l = cc.sys.platform === cc.sys.BAIDU_GAME, h = cc.sys.platform === cc.sys.ALIPAY_GAME, u = { init: function() { l || c || h || (this.html = document.getElementsByTagName("html")[0]); }, availWidth: function(t) { return t && t !== this.html ? t.clientWidth : window.innerWidth; }, availHeight: function(t) { return t && t !== this.html ? t.clientHeight : window.innerHeight; }, meta: { width: "device-width" }, adaptationType: cc.sys.browserType }; cc.sys.os === cc.sys.OS_IOS && (u.adaptationType = cc.sys.BROWSER_TYPE_SAFARI); l && (cc.sys.browserType === cc.sys.BROWSER_TYPE_BAIDU_GAME_SUB ? u.adaptationType = cc.sys.BROWSER_TYPE_BAIDU_GAME_SUB : u.adaptationType = cc.sys.BROWSER_TYPE_BAIDU_GAME); c && (u.adaptationType = cc.sys.BROWSER_TYPE_XIAOMI_GAME); h && (u.adaptationType = cc.sys.BROWSER_TYPE_ALIPAY_GAME); 0; 0; switch (u.adaptationType) { case cc.sys.BROWSER_TYPE_SAFARI: u.meta["minimal-ui"] = "true"; case cc.sys.BROWSER_TYPE_SOUGOU: case cc.sys.BROWSER_TYPE_UC: u.availWidth = function(t) { return t.clientWidth; }; u.availHeight = function(t) { return cc.sys.isMobile && cc.sys.isBrowser ? window.innerHeight : t.clientHeight; }; break; case cc.sys.BROWSER_TYPE_WECHAT_GAME: u.availWidth = function() { return window.innerWidth; }; u.availHeight = function() { return window.innerHeight; }; break; case cc.sys.BROWSER_TYPE_WECHAT_GAME_SUB: var _ = window.sharedCanvas || wx.getSharedCanvas(); u.availWidth = function() { return _.width; }; u.availHeight = function() { return _.height; }; } var f = null, d = function() { s.call(this); var t = this, e = cc.ContainerStrategy, i = cc.ContentStrategy; u.init(this); t._frameSize = cc.size(0, 0); t._designResolutionSize = cc.size(0, 0); t._originalDesignResolutionSize = cc.size(0, 0); t._scaleX = 1; t._scaleY = 1; t._viewportRect = cc.rect(0, 0, 0, 0); t._visibleRect = cc.rect(0, 0, 0, 0); t._autoFullScreen = !1; t._devicePixelRatio = 1; t._maxPixelRatio = 2; t._retinaEnabled = !1; t._resizeCallback = null; t._resizing = !1; t._resizeWithBrowserSize = !1; t._orientationChanging = !0; t._isRotated = !1; t._orientation = cc.macro.ORIENTATION_AUTO; t._isAdjustViewport = !0; t._antiAliasEnabled = !1; t._resolutionPolicy = null; t._rpExactFit = new cc.ResolutionPolicy(e.EQUAL_TO_FRAME, i.EXACT_FIT); t._rpShowAll = new cc.ResolutionPolicy(e.EQUAL_TO_FRAME, i.SHOW_ALL); t._rpNoBorder = new cc.ResolutionPolicy(e.EQUAL_TO_FRAME, i.NO_BORDER); t._rpFixedHeight = new cc.ResolutionPolicy(e.EQUAL_TO_FRAME, i.FIXED_HEIGHT); t._rpFixedWidth = new cc.ResolutionPolicy(e.EQUAL_TO_FRAME, i.FIXED_WIDTH); cc.game.once(cc.game.EVENT_ENGINE_INITED, this.init, this); }; cc.js.extend(d, s); cc.js.mixin(d.prototype, { init: function() { this._initFrameSize(); this.enableAntiAlias(!0); var t = cc.game.canvas.width, e = cc.game.canvas.height; this._designResolutionSize.width = t; this._designResolutionSize.height = e; this._originalDesignResolutionSize.width = t; this._originalDesignResolutionSize.height = e; this._viewportRect.width = t; this._viewportRect.height = e; this._visibleRect.width = t; this._visibleRect.height = e; cc.winSize.width = this._visibleRect.width; cc.winSize.height = this._visibleRect.height; cc.visibleRect && cc.visibleRect.init(this._visibleRect); }, _resizeEvent: function(t) { var e, i = (e = this.setDesignResolutionSize ? this : cc.view)._frameSize.width, n = e._frameSize.height, r = e._isRotated; if (cc.sys.isMobile) { var s = cc.game.container.style, o = s.margin; s.margin = "0"; s.display = "none"; e._initFrameSize(); s.margin = o; s.display = "block"; } else e._initFrameSize(); if (!0 === t || e._isRotated !== r || e._frameSize.width !== i || e._frameSize.height !== n) { var a = e._originalDesignResolutionSize.width, c = e._originalDesignResolutionSize.height; e._resizing = !0; a > 0 && e.setDesignResolutionSize(a, c, e._resolutionPolicy); e._resizing = !1; e.emit("canvas-resize"); e._resizeCallback && e._resizeCallback.call(); } }, _orientationChange: function() { cc.view._orientationChanging = !0; cc.view._resizeEvent(); }, resizeWithBrowserSize: function(t) { if (t) { if (!this._resizeWithBrowserSize) { this._resizeWithBrowserSize = !0; window.addEventListener("resize", this._resizeEvent); window.addEventListener("orientationchange", this._orientationChange); } } else if (this._resizeWithBrowserSize) { this._resizeWithBrowserSize = !1; window.removeEventListener("resize", this._resizeEvent); window.removeEventListener("orientationchange", this._orientationChange); } }, setResizeCallback: function(i) { 0; "function" !== ("object" === (e = typeof i) ? t(i) : e) && null != i || (this._resizeCallback = i); }, setOrientation: function(t) { if ((t &= cc.macro.ORIENTATION_AUTO) && this._orientation !== t) { this._orientation = t; var e = this._originalDesignResolutionSize.width, i = this._originalDesignResolutionSize.height; this.setDesignResolutionSize(e, i, this._resolutionPolicy); } }, _initFrameSize: function() { var t = this._frameSize, e = u.availWidth(cc.game.frame), i = u.availHeight(cc.game.frame), n = e >= i; if (!cc.sys.isMobile || n && this._orientation & cc.macro.ORIENTATION_LANDSCAPE || !n && this._orientation & cc.macro.ORIENTATION_PORTRAIT) { t.width = e; t.height = i; cc.game.container.style["-webkit-transform"] = "rotate(0deg)"; cc.game.container.style.transform = "rotate(0deg)"; this._isRotated = !1; } else { t.width = i; t.height = e; cc.game.container.style["-webkit-transform"] = "rotate(90deg)"; cc.game.container.style.transform = "rotate(90deg)"; cc.game.container.style["-webkit-transform-origin"] = "0px 0px 0px"; cc.game.container.style.transformOrigin = "0px 0px 0px"; this._isRotated = !0; } this._orientationChanging && setTimeout((function() { cc.view._orientationChanging = !1; }), 1e3); }, _adjustSizeKeepCanvasSize: function() { var t = this._originalDesignResolutionSize.width, e = this._originalDesignResolutionSize.height; t > 0 && this.setDesignResolutionSize(t, e, this._resolutionPolicy); }, _setViewportMeta: function(t, e) { var i = document.getElementById("cocosMetaElement"); i && e && document.head.removeChild(i); var n, r, s, o = document.getElementsByName("viewport"), a = o ? o[0] : null; n = a ? a.content : ""; (i = i || document.createElement("meta")).id = "cocosMetaElement"; i.name = "viewport"; i.content = ""; for (r in t) if (-1 == n.indexOf(r)) n += "," + r + "=" + t[r]; else if (e) { s = new RegExp(r + "s*=s*[^,]+"); n.replace(s, r + "=" + t[r]); } /^,/.test(n) && (n = n.substr(1)); i.content = n; a && (a.content = n); document.head.appendChild(i); }, _adjustViewportMeta: function() { if ((this._isAdjustViewport, 0) && !l && !c && !h) { this._setViewportMeta(u.meta, !1); this._isAdjustViewport = !1; } }, adjustViewportMeta: function(t) { this._isAdjustViewport = t; }, enableRetina: function(t) { this._retinaEnabled = !!t; }, isRetinaEnabled: function() { return this._retinaEnabled; }, enableAntiAlias: function(t) { if (this._antiAliasEnabled !== t) { this._antiAliasEnabled = t; if (cc.game.renderType === cc.game.RENDER_TYPE_WEBGL) { var e = cc.loader._cache; for (var i in e) { var n = e[i], r = n && n.content instanceof cc.Texture2D ? n.content : null; if (r) { var s = cc.Texture2D.Filter; t ? r.setFilters(s.LINEAR, s.LINEAR) : r.setFilters(s.NEAREST, s.NEAREST); } } } else if (cc.game.renderType === cc.game.RENDER_TYPE_CANVAS) { var o = cc.game.canvas.getContext("2d"); o.imageSmoothingEnabled = t; o.mozImageSmoothingEnabled = t; } } }, isAntiAliasEnabled: function() { return this._antiAliasEnabled; }, enableAutoFullScreen: function(t) { if (t && t !== this._autoFullScreen && cc.sys.isMobile && cc.sys.browserType !== cc.sys.BROWSER_TYPE_WECHAT) { this._autoFullScreen = !0; cc.screen.autoFullScreen(cc.game.frame); } else { this._autoFullScreen = !1; cc.screen.disableAutoFullScreen(cc.game.frame); } }, isAutoFullScreenEnabled: function() { return this._autoFullScreen; }, setCanvasSize: function(t, e) { var i = cc.game.canvas, n = cc.game.container; i.width = t * this._devicePixelRatio; i.height = e * this._devicePixelRatio; i.style.width = t + "px"; i.style.height = e + "px"; n.style.width = t + "px"; n.style.height = e + "px"; this._resizeEvent(); }, getCanvasSize: function() { return cc.size(cc.game.canvas.width, cc.game.canvas.height); }, getFrameSize: function() { return cc.size(this._frameSize.width, this._frameSize.height); }, setFrameSize: function(t, e) { this._frameSize.width = t; this._frameSize.height = e; cc.game.frame.style.width = t + "px"; cc.game.frame.style.height = e + "px"; this._resizeEvent(!0); }, getVisibleSize: function() { return cc.size(this._visibleRect.width, this._visibleRect.height); }, getVisibleSizeInPixel: function() { return cc.size(this._visibleRect.width * this._scaleX, this._visibleRect.height * this._scaleY); }, getVisibleOrigin: function() { return cc.v2(this._visibleRect.x, this._visibleRect.y); }, getVisibleOriginInPixel: function() { return cc.v2(this._visibleRect.x * this._scaleX, this._visibleRect.y * this._scaleY); }, getResolutionPolicy: function() { return this._resolutionPolicy; }, setResolutionPolicy: function(t) { var e = this; if (t instanceof cc.ResolutionPolicy) e._resolutionPolicy = t; else { var i = cc.ResolutionPolicy; t === i.EXACT_FIT && (e._resolutionPolicy = e._rpExactFit); t === i.SHOW_ALL && (e._resolutionPolicy = e._rpShowAll); t === i.NO_BORDER && (e._resolutionPolicy = e._rpNoBorder); t === i.FIXED_HEIGHT && (e._resolutionPolicy = e._rpFixedHeight); t === i.FIXED_WIDTH && (e._resolutionPolicy = e._rpFixedWidth); } }, setDesignResolutionSize: function(t, e, i) { if (t > 0 || e > 0) { this.setResolutionPolicy(i); var n = this._resolutionPolicy; n && n.preApply(this); cc.sys.isMobile && this._adjustViewportMeta(); this._orientationChanging = !0; this._resizing || this._initFrameSize(); if (n) { this._originalDesignResolutionSize.width = this._designResolutionSize.width = t; this._originalDesignResolutionSize.height = this._designResolutionSize.height = e; var r = n.apply(this, this._designResolutionSize); if (r.scale && 2 === r.scale.length) { this._scaleX = r.scale[0]; this._scaleY = r.scale[1]; } if (r.viewport) { var s = this._viewportRect, o = this._visibleRect, c = r.viewport; s.x = c.x; s.y = c.y; s.width = c.width; s.height = c.height; o.x = 0; o.y = 0; o.width = c.width / this._scaleX; o.height = c.height / this._scaleY; } n.postApply(this); cc.winSize.width = this._visibleRect.width; cc.winSize.height = this._visibleRect.height; cc.visibleRect && cc.visibleRect.init(this._visibleRect); a.updateCameraViewport(); this.emit("design-resolution-changed"); } else cc.logID(2201); } else cc.logID(2200); }, getDesignResolutionSize: function() { return cc.size(this._designResolutionSize.width, this._designResolutionSize.height); }, setRealPixelResolution: function(t, e, i) { 0; this.setDesignResolutionSize(t, e, i); }, setViewportInPoints: function(t, e, i, n) { var r = this._scaleX, s = this._scaleY; cc.game._renderContext.viewport(t * r + this._viewportRect.x, e * s + this._viewportRect.y, i * r, n * s); }, setScissorInPoints: function(t, e, i, n) { var r = this._scaleX, s = this._scaleY, o = Math.ceil(t * r + this._viewportRect.x), a = Math.ceil(e * s + this._viewportRect.y), c = Math.ceil(i * r), l = Math.ceil(n * s), h = cc.game._renderContext; if (!f) { var u = h.getParameter(h.SCISSOR_BOX); f = cc.rect(u[0], u[1], u[2], u[3]); } if (f.x !== o || f.y !== a || f.width !== c || f.height !== l) { f.x = o; f.y = a; f.width = c; f.height = l; h.scissor(o, a, c, l); } }, isScissorEnabled: function() { return cc.game._renderContext.isEnabled(gl.SCISSOR_TEST); }, getScissorRect: function() { if (!f) { var t = gl.getParameter(gl.SCISSOR_BOX); f = cc.rect(t[0], t[1], t[2], t[3]); } var e = 1 / this._scaleX, i = 1 / this._scaleY; return cc.rect((f.x - this._viewportRect.x) * e, (f.y - this._viewportRect.y) * i, f.width * e, f.height * i); }, getViewportRect: function() { return this._viewportRect; }, getScaleX: function() { return this._scaleX; }, getScaleY: function() { return this._scaleY; }, getDevicePixelRatio: function() { return this._devicePixelRatio; }, convertToLocationInView: function(t, e, i, n) { var r = n || cc.v2(), s = this._devicePixelRatio * (t - i.left), o = this._devicePixelRatio * (i.top + i.height - e); if (this._isRotated) { r.x = cc.game.canvas.width - o; r.y = s; } else { r.x = s; r.y = o; } return r; }, _convertMouseToLocationInView: function(t, e) { var i = this._viewportRect; t.x = (this._devicePixelRatio * (t.x - e.left) - i.x) / this._scaleX; t.y = (this._devicePixelRatio * (e.top + e.height - t.y) - i.y) / this._scaleY; }, _convertPointWithScale: function(t) { var e = this._viewportRect; t.x = (t.x - e.x) / this._scaleX; t.y = (t.y - e.y) / this._scaleY; }, _convertTouchesWithScale: function(t) { for (var e, i, n, r = this._viewportRect, s = this._scaleX, o = this._scaleY, a = this._isRotated, c = 0; c < t.length; c++) { n = (e = t[c])._prevPoint; i = e._point; if (cc.sys.isNative && a) { var l = (r.width - (i.x - r.x)) / s; i.x = (i.y - r.y) / o; i.y = l; var h = (r.width - (n.x - r.x)) / s; n.x = (n.y - r.y) / o; n.y = h; } else { i.x = (i.x - r.x) / s; i.y = (i.y - r.y) / o; n.x = (n.x - r.x) / s; n.y = (n.y - r.y) / o; } } } }); cc.ContainerStrategy = cc.Class({ name: "ContainerStrategy", preApply: function(t) {}, apply: function(t, e) {}, postApply: function(t) {}, _setupContainer: function(t, e, i) { var n = cc.game.canvas, r = cc.game.container; if (!l && !c && !h) { if (cc.sys.os === cc.sys.OS_ANDROID) { document.body.style.width = (t._isRotated ? i : e) + "px"; document.body.style.height = (t._isRotated ? e : i) + "px"; } r.style.width = n.style.width = e + "px"; r.style.height = n.style.height = i + "px"; } var s = t._devicePixelRatio = 1; t.isRetinaEnabled() && (s = t._devicePixelRatio = Math.min(t._maxPixelRatio, window.devicePixelRatio || 1)); n.width = e * s; n.height = i * s; }, _fixContainer: function() { document.body.insertBefore(cc.game.container, document.body.firstChild); var t = document.body.style; t.width = window.innerWidth + "px"; t.height = window.innerHeight + "px"; t.overflow = "hidden"; var e = cc.game.container.style; e.position = "fixed"; e.left = e.top = "0px"; document.body.scrollTop = 0; } }); cc.ContentStrategy = cc.Class({ name: "ContentStrategy", ctor: function() { this._result = { scale: [ 1, 1 ], viewport: null }; }, _buildResult: function(t, e, i, n, r, s) { Math.abs(t - i) < 2 && (i = t); Math.abs(e - n) < 2 && (n = e); var o = cc.rect((t - i) / 2, (e - n) / 2, i, n); cc.game.renderType, cc.game.RENDER_TYPE_CANVAS; this._result.scale = [ r, s ]; this._result.viewport = o; return this._result; }, preApply: function(t) {}, apply: function(t, e) { return { scale: [ 1, 1 ] }; }, postApply: function(t) {} }); (function() { var t = cc.Class({ name: "EqualToFrame", extends: cc.ContainerStrategy, apply: function(t) { var e = t._frameSize.height, i = cc.game.container.style; this._setupContainer(t, t._frameSize.width, t._frameSize.height); t._isRotated ? i.margin = "0 0 0 " + e + "px" : i.margin = "0px"; i.padding = "0px"; } }), e = cc.Class({ name: "ProportionalToFrame", extends: cc.ContainerStrategy, apply: function(t, e) { var i, n, r = t._frameSize.width, s = t._frameSize.height, o = cc.game.container.style, a = e.width, c = e.height, l = r / a, h = s / c; l < h ? (i = r, n = c * l) : (i = a * h, n = s); var u = Math.round((r - i) / 2), _ = Math.round((s - n) / 2); i = r - 2 * u; n = s - 2 * _; this._setupContainer(t, i, n); t._isRotated ? o.margin = "0 0 0 " + s + "px" : o.margin = "0px"; o.paddingLeft = u + "px"; o.paddingRight = u + "px"; o.paddingTop = _ + "px"; o.paddingBottom = _ + "px"; } }), i = (cc.Class({ name: "EqualToWindow", extends: t, preApply: function(t) { this._super(t); cc.game.frame = document.documentElement; }, apply: function(t) { this._super(t); this._fixContainer(); } }), cc.Class({ name: "ProportionalToWindow", extends: e, preApply: function(t) { this._super(t); cc.game.frame = document.documentElement; }, apply: function(t, e) { this._super(t, e); this._fixContainer(); } }), cc.Class({ name: "OriginalContainer", extends: cc.ContainerStrategy, apply: function(t) { this._setupContainer(t, cc.game.canvas.width, cc.game.canvas.height); } })); cc.ContainerStrategy.EQUAL_TO_FRAME = new t(); cc.ContainerStrategy.PROPORTION_TO_FRAME = new e(); cc.ContainerStrategy.ORIGINAL_CONTAINER = new i(); var n = cc.Class({ name: "ExactFit", extends: cc.ContentStrategy, apply: function(t, e) { var i = cc.game.canvas.width, n = cc.game.canvas.height, r = i / e.width, s = n / e.height; return this._buildResult(i, n, i, n, r, s); } }), r = cc.Class({ name: "ShowAll", extends: cc.ContentStrategy, apply: function(t, e) { var i, n, r = cc.game.canvas.width, s = cc.game.canvas.height, o = e.width, a = e.height, c = r / o, l = s / a, h = 0; c < l ? (i = r, n = a * (h = c)) : (i = o * (h = l), n = s); return this._buildResult(r, s, i, n, h, h); } }), s = cc.Class({ name: "NoBorder", extends: cc.ContentStrategy, apply: function(t, e) { var i, n, r, s = cc.game.canvas.width, o = cc.game.canvas.height, a = e.width, c = e.height, l = s / a, h = o / c; l < h ? (n = a * (i = h), r = o) : (n = s, r = c * (i = l)); return this._buildResult(s, o, n, r, i, i); } }), o = cc.Class({ name: "FixedHeight", extends: cc.ContentStrategy, apply: function(t, e) { var i = cc.game.canvas.width, n = cc.game.canvas.height, r = n / e.height, s = i, o = n; return this._buildResult(i, n, s, o, r, r); } }), a = cc.Class({ name: "FixedWidth", extends: cc.ContentStrategy, apply: function(t, e) { var i = cc.game.canvas.width, n = cc.game.canvas.height, r = i / e.width, s = i, o = n; return this._buildResult(i, n, s, o, r, r); } }); cc.ContentStrategy.EXACT_FIT = new n(); cc.ContentStrategy.SHOW_ALL = new r(); cc.ContentStrategy.NO_BORDER = new s(); cc.ContentStrategy.FIXED_HEIGHT = new o(); cc.ContentStrategy.FIXED_WIDTH = new a(); })(); cc.ResolutionPolicy = cc.Class({ name: "cc.ResolutionPolicy", ctor: function(t, e) { this._containerStrategy = null; this._contentStrategy = null; this.setContainerStrategy(t); this.setContentStrategy(e); }, preApply: function(t) { this._containerStrategy.preApply(t); this._contentStrategy.preApply(t); }, apply: function(t, e) { this._containerStrategy.apply(t, e); return this._contentStrategy.apply(t, e); }, postApply: function(t) { this._containerStrategy.postApply(t); this._contentStrategy.postApply(t); }, setContainerStrategy: function(t) { t instanceof cc.ContainerStrategy && (this._containerStrategy = t); }, setContentStrategy: function(t) { t instanceof cc.ContentStrategy && (this._contentStrategy = t); } }); o.get(cc.ResolutionPolicy.prototype, "canvasSize", (function() { return cc.v2(cc.game.canvas.width, cc.game.canvas.height); })); cc.ResolutionPolicy.EXACT_FIT = 0; cc.ResolutionPolicy.NO_BORDER = 1; cc.ResolutionPolicy.SHOW_ALL = 2; cc.ResolutionPolicy.FIXED_HEIGHT = 3; cc.ResolutionPolicy.FIXED_WIDTH = 4; cc.ResolutionPolicy.UNKNOWN = 5; cc.view = new d(); cc.winSize = cc.v2(); n.exports = cc.view; }), { "../event/event-target": 133, "../platform/CCClass": 201, "../platform/js": 221, "../renderer": 244 } ], 212: [ (function(t, e, i) { "use strict"; cc.visibleRect = { topLeft: cc.v2(0, 0), topRight: cc.v2(0, 0), top: cc.v2(0, 0), bottomLeft: cc.v2(0, 0), bottomRight: cc.v2(0, 0), bottom: cc.v2(0, 0), center: cc.v2(0, 0), left: cc.v2(0, 0), right: cc.v2(0, 0), width: 0, height: 0, init: function(t) { var e = this.width = t.width, i = this.height = t.height, n = t.x, r = t.y, s = r + i, o = n + e; this.topLeft.x = n; this.topLeft.y = s; this.topRight.x = o; this.topRight.y = s; this.top.x = n + e / 2; this.top.y = s; this.bottomLeft.x = n; this.bottomLeft.y = r; this.bottomRight.x = o; this.bottomRight.y = r; this.bottom.x = n + e / 2; this.bottom.y = r; this.center.x = n + e / 2; this.center.y = r + i / 2; this.left.x = n; this.left.y = r + i / 2; this.right.x = o; this.right.y = r + i / 2; } }; }), {} ], 213: [ (function(i, n, r) { "use strict"; var s = i("./js"), o = (i("./utils").isPlainEmptyObj_DEV, "$_$"); function a(t, e) { var i = e ? Object.create(e) : {}; s.value(t, "__attrs__", i); return i; } function c(i) { if ("function" !== ("object" === (e = typeof i) ? t(i) : e)) { return a(i, h(i.constructor)); } for (var n, r = cc.Class.getInheritanceChain(i), s = r.length - 1; s >= 0; s--) { var o = r[s]; o.hasOwnProperty("__attrs__") && o.__attrs__ || a(o, (n = r[s + 1]) && n.__attrs__); } a(i, (n = r[0]) && n.__attrs__); return i.__attrs__; } function l(t, e, i) { var n = h(t), r = e + o, s = {}; for (var a in n) a.startsWith(r) && (s[a.slice(r.length)] = n[a]); return s; } function h(t) { return t.hasOwnProperty("__attrs__") && t.__attrs__ || c(t); } cc.Integer = "Integer"; cc.Float = "Float"; 0; cc.Boolean = "Boolean"; cc.String = "String"; n.exports = { attr: l, getClassAttrs: h, setClassAttr: function(t, e, i, n) { h(t)[e + o + i] = n; }, DELIMETER: o, getTypeChecker: !1, getObjTypeChecker: !1, ScriptUuid: {} }; }), { "./CCClass": 201, "./js": 221, "./utils": 225 } ], 214: [ (function(i, n, r) { "use strict"; var s = i("./js"), o = s.array.fastRemoveAt; function a() { this.callbacks = []; this.targets = []; this.isInvoking = !1; this.containCanceled = !1; } var c = a.prototype; c.removeBy = function(t, e) { for (var i = this.callbacks, n = this.targets, r = 0; r < t.length; ++r) if (t[r] === e) { o(i, r); o(n, r); --r; } }; c.cancel = function(t) { this.callbacks[t] = this.targets[t] = null; this.containCanceled = !0; }; c.cancelAll = function() { for (var t = this.callbacks, e = this.targets, i = 0; i < t.length; i++) t[i] = e[i] = null; this.containCanceled = !0; }; c.purgeCanceled = function() { this.removeBy(this.callbacks, null); this.containCanceled = !1; }; var l = new s.Pool(function(t) { t.callbacks.length = 0; t.targets.length = 0; t.isInvoking = !1; t.containCanceled = !1; }, 16); l.get = function() { return this._get() || new a(); }; function h() { this._callbackTable = s.createMap(!0); } (c = h.prototype).add = function(t, e, i) { var n = this._callbackTable[t]; n || (n = this._callbackTable[t] = l.get()); n.callbacks.push(e); n.targets.push(i || null); }; c.hasEventListener = function(t, e, i) { var n = this._callbackTable[t]; if (!n) return !1; var r = n.callbacks; if (!e) { if (n.isInvoking) { for (var s = 0; s < r.length; s++) if (r[s]) return !0; return !1; } return r.length > 0; } i = i || null; for (var o = n.targets, a = 0; a < r.length; ++a) if (r[a] === e && o[a] === i) return !0; return !1; }; c.removeAll = function(i) { if ("string" === ("object" === (e = typeof i) ? t(i) : e)) { var n = this._callbackTable[i]; if (n) if (n.isInvoking) n.cancelAll(); else { l.put(n); delete this._callbackTable[i]; } } else if (i) for (var r in this._callbackTable) { var s = this._callbackTable[r]; if (s.isInvoking) for (var o = s.targets, a = 0; a < o.length; ++a) o[a] === i && s.cancel(a); else s.removeBy(s.targets, i); } }; c.remove = function(t, e, i) { var n = this._callbackTable[t]; if (n) { i = i || null; for (var r = n.callbacks, s = n.targets, a = 0; a < r.length; ++a) if (r[a] === e && s[a] === i) { if (n.isInvoking) n.cancel(a); else { o(r, a); o(s, a); } break; } } }; var u = function() { h.call(this); }; s.extend(u, h); 0; u.prototype.invoke = function(t, e, i, n, r, s) { var o = this._callbackTable[t]; if (o) { var a = !o.isInvoking; o.isInvoking = !0; for (var c = o.callbacks, l = o.targets, h = 0, u = c.length; h < u; ++h) { var _ = c[h]; if (_) { var f = l[h]; f ? _.call(f, e, i, n, r, s) : _(e, i, n, r, s); } } if (a) { o.isInvoking = !1; o.containCanceled && o.purgeCanceled(); } } }; u.CallbacksHandler = h; n.exports = u; }), { "./js": 221 } ], 215: [ (function(t, e, i) { "use strict"; function n(t, e) { for (var i = 0; i < e.length; i++) { var r = e[i]; Array.isArray(r) ? n(t, r) : t.push(r); } } e.exports = { flattenCodeArray: function(t) { var e = []; n(e, t); return e.join(""); } }; }), {} ], 216: [ (function(i, n, r) { "use strict"; var s = i("./js"), o = i("./attribute"), a = i("./CCClass"), c = i("../utils/misc"), l = function() { this.uuidList = []; this.uuidObjList = []; this.uuidPropList = []; this._stillUseUrl = s.createMap(!0); }; l.prototype.reset = function() { this.uuidList.length = 0; this.uuidObjList.length = 0; this.uuidPropList.length = 0; s.clear(this._stillUseUrl); }; 0; l.prototype.push = function(t, e, i, n) { n && (this._stillUseUrl[this.uuidList.length] = !0); this.uuidList.push(i); this.uuidObjList.push(t); this.uuidPropList.push(e); }; (l.pool = new s.Pool(function(t) { t.reset(); }, 10)).get = function() { return this._get() || new l(); }; var h = (function() { function i(t, e, i, n, r) { this.result = t; this.customEnv = n; this.deserializedList = []; this.deserializedData = null; this._classFinder = i; 0; this._idList = []; this._idObjList = []; this._idPropList = []; } function n(t) { var e, i, n, r = t.deserializedList, s = t._idPropList, o = t._idList, a = t._idObjList; t._classFinder && t._classFinder.onDereferenced; for (e = 0; e < o.length; e++) { i = s[e]; n = o[e]; a[e][i] = r[n]; } } var r = i.prototype; r.deserialize = function(t) { if (Array.isArray(t)) { var e = t, i = e.length; this.deserializedList.length = i; for (var r = 0; r < i; r++) if (e[r]) { this.deserializedList[r] = this._deserializeObject(e[r], !1); } this.deserializedData = i > 0 ? this.deserializedList[0] : []; } else { this.deserializedList.length = 1; this.deserializedData = t ? this._deserializeObject(t, !1) : null; this.deserializedList[0] = this.deserializedData; } n(this); return this.deserializedData; }; r._deserializeObject = function(i, n, r, o, a) { var c, l = null, h = null, _ = i.__type__; if (_) { if (!(h = this._classFinder(_, i, o, a))) { this._classFinder === s._getClassById && cc.deserialize.reportMissingClass(_); return null; } if ((l = new h())._deserialize) { l._deserialize(i.content, this); return l; } cc.Class._isCCClass(h) ? u(this, l, i, h, r) : this._deserializeTypedObject(l, i, h); } else if (Array.isArray(i)) { l = new Array(i.length); for (var f = 0; f < i.length; f++) { c = i[f]; "object" === ("object" === (e = typeof c) ? t(c) : e) && c ? this._deserializeObjField(l, c, "" + f, null, n) : l[f] = c; } } else { l = {}; this._deserializePrimitiveObject(l, i); } return l; }; r._deserializeObjField = function(t, e, i, n, r) { var s = e.__id__; if (void 0 === s) { var o = e.__uuid__; o ? this.result.push(t, i, o, r) : t[i] = this._deserializeObject(e, r); } else { var a = this.deserializedList[s]; if (a) t[i] = a; else { this._idList.push(s); this._idObjList.push(t); this._idPropList.push(i); } } }; r._deserializePrimitiveObject = function(i, n) { for (var r in n) if (n.hasOwnProperty(r)) { var s = n[r]; "object" !== ("object" === (e = typeof s) ? t(s) : e) ? "__type__" !== r && (i[r] = s) : s ? this._deserializeObjField(i, s, r) : i[r] = null; } }; r._deserializeTypedObject = function(i, n, r) { if (r !== cc.Vec2) if (r !== cc.Vec3) if (r !== cc.Color) if (r !== cc.Size) for (var s = o.DELIMETER + "default", c = o.getClassAttrs(r), l = r.__props__ || Object.keys(i), h = 0; h < l.length; h++) { var u = l[h], _ = n[u]; void 0 !== _ && n.hasOwnProperty(u) || (_ = a.getDefault(c[u + s])); "object" !== ("object" === (e = typeof _) ? t(_) : e) ? i[u] = _ : _ ? this._deserializeObjField(i, _, u) : i[u] = null; } else { i.width = n.width || 0; i.height = n.height || 0; } else { i.r = n.r || 0; i.g = n.g || 0; i.b = n.b || 0; var f = n.a; i.a = void 0 === f ? 255 : f; } else { i.x = n.x || 0; i.y = n.y || 0; i.z = n.z || 0; } else { i.x = n.x || 0; i.y = n.y || 0; } }; function l(t, e, i, n, r, o) { if (e instanceof cc.ValueType) { r || t.push("if(prop){"); var a = s.getClassName(e); t.push("s._deserializeTypedObject(o" + i + ",prop," + a + ");"); r || t.push("}else o" + i + "=null;"); } else { t.push("if(prop){"); t.push("s._deserializeObjField(o,prop," + n + ",null," + !!o + ");"); t.push("}else o" + i + "=null;"); } } var h = function(i, n) { for (var r = o.DELIMETER + "type", h = (o.DELIMETER, o.DELIMETER + "default"), u = o.DELIMETER + "saveUrlAsAsset", _ = o.DELIMETER + "formerlySerializedAs", f = o.getClassAttrs(n), d = n.__values__, m = [ "var prop;" ], p = c.BUILTIN_CLASSID_RE.test(s._getClassId(n)), v = 0; v < d.length; v++) { var y, g, x = d[v]; 0; if (a.IDENTIFIER_RE.test(x)) { g = '"' + x + '"'; y = "." + x; } else y = "[" + (g = a.escapeForJS(x)) + "]"; var C = y; if (f[x + _]) { var b = f[x + _]; C = a.IDENTIFIER_RE.test(b) ? "." + b : "[" + a.escapeForJS(b) + "]"; } m.push("prop=d" + C + ";"); m.push('if(typeof (prop)!=="undefined"){'); var A = f[x + u], S = a.getDefault(f[x + h]); if (p) { var w, T = f[x + r]; if (void 0 === S && T) w = T === cc.String || T === cc.Integer || T === cc.Float || T === cc.Boolean; else { var E = "object" === (e = typeof S) ? t(S) : e; w = "string" === E && !A || "number" === E || "boolean" === E; } w ? m.push("o" + y + "=prop;") : l(m, S, y, g, !0, A); } else { m.push('if(typeof (prop)!=="object"){o' + y + "=prop;}else{"); l(m, S, y, g, !1, A); m.push("}"); } m.push("}"); } if (cc.js.isChildClassOf(n, cc._BaseNode) || cc.js.isChildClassOf(n, cc.Component)) { m.push("d._id&&(o._id=d._id);"); } if ("_$erialized" === d[d.length - 1]) { m.push("o._$erialized=JSON.parse(JSON.stringify(d));"); m.push("s._deserializePrimitiveObject(o._$erialized,d);"); } return Function("s", "o", "d", "k", "t", m.join("")); }; function u(t, e, i, n, r) { var o; if (n.hasOwnProperty("__deserialize__")) o = n.__deserialize__; else { o = h(t, n); s.value(n, "__deserialize__", o, !0); } o(t, e, i, n, r); 0; } i.pool = new s.Pool(function(t) { t.result = null; t.customEnv = null; t.deserializedList.length = 0; t.deserializedData = null; t._classFinder = null; 0; t._idList.length = 0; t._idObjList.length = 0; t._idPropList.length = 0; }, 1); i.pool.get = function(t, e, n, r, s) { var o = this._get(); if (o) { o.result = t; o.customEnv = r; o._classFinder = n; 0; return o; } return new i(t, e, n, r, s); }; return i; })(); cc.deserialize = function(i, n, r) { var o = (r = r || {}).classFinder || s._getClassById, a = r.createAssetRefs || cc.sys.platform === cc.sys.EDITOR_CORE, c = r.customEnv, u = r.ignoreEditorOnly; 0; "string" === ("object" === (e = typeof i) ? t(i) : e) && (i = JSON.parse(i)); var _ = !n; n = n || l.pool.get(); var f = h.pool.get(n, !1, o, c, u); cc.game._isCloning = !0; var d = f.deserialize(i); cc.game._isCloning = !1; h.pool.put(f); a && n.assignAssetsBy(Editor.serialize.asAsset); _ && l.pool.put(n); return d; }; cc.deserialize.Details = l; cc.deserialize.reportMissingClass = function(t) { cc.warnID(5302, t); }; }), { "../utils/misc": 297, "./CCClass": 201, "./attribute": 213, "./js": 221 } ], 217: [ (function(t, e, i) { "use strict"; var n = "."; function r(t) { this.id = 0 | 998 * Math.random(); this.prefix = t ? t + n : ""; } r.prototype.getNewId = function() { return this.prefix + ++this.id; }; r.global = new r("global"); e.exports = r; }), {} ], 218: [ (function(t, e, i) { "use strict"; t("./js"); t("./CCClass"); t("./CCClassDecorator"); t("./CCEnum"); t("./CCObject"); t("./callbacks-invoker"); t("./url"); t("./deserialize"); t("./instantiate"); t("./instantiate-jit"); t("./requiring-frame"); t("./CCSys"); t("./CCMacro"); t("./CCAssetLibrary"); t("./CCVisibleRect"); }), { "./CCAssetLibrary": 200, "./CCClass": 201, "./CCClassDecorator": 202, "./CCEnum": 203, "./CCMacro": 206, "./CCObject": 207, "./CCSys": 210, "./CCVisibleRect": 212, "./callbacks-invoker": 214, "./deserialize": 216, "./instantiate": 220, "./instantiate-jit": 219, "./js": 221, "./requiring-frame": 223, "./url": 224 } ], 219: [ (function(i, n, r) { "use strict"; var s = i("./CCObject"), o = s.Flags.Destroyed, a = s.Flags.PersistentMask, c = i("./attribute"), l = i("./js"), h = i("./CCClass"), u = i("./compiler"), _ = c.DELIMETER + "default", f = h.IDENTIFIER_RE, d = h.escapeForJS, m = "var ", p = "o", v = "t", y = { "cc.Node": "cc.Node", "cc.Sprite": "cc.Sprite", "cc.Label": "cc.Label", "cc.Button": "cc.Button", "cc.Widget": "cc.Widget", "cc.Animation": "cc.Animation", "cc.ClickEvent": !1, "cc.PrefabInfo": !1 }; function g(t, e) { this.varName = t; this.expression = e; } g.prototype.toString = function() { return m + this.varName + "=" + this.expression + ";"; }; function x(t, e) { return e instanceof g ? new g(e.varName, t + e.expression) : t + e; } function C(t, e, i) { if (Array.isArray(i)) { i[0] = x(e, i[0]); t.push(i); } else t.push(x(e, i) + ";"); } function b(t) { this._exps = []; this._targetExp = t; } b.prototype.append = function(t, e) { this._exps.push([ t, e ]); }; b.prototype.writeCode = function(t) { var e; if (this._exps.length > 1) { t.push(v + "=" + this._targetExp + ";"); e = v; } else { if (1 !== this._exps.length) return; e = this._targetExp; } for (var i = 0; i < this._exps.length; i++) { var n = this._exps[i]; C(t, e + S(n[0]) + "=", n[1]); } }; b.pool = new l.Pool(function(t) { t._exps.length = 0; t._targetExp = null; }, 1); b.pool.get = function(t) { var e = this._get() || new b(); e._targetExp = t; return e; }; function A(i, n) { if ("function" === ("object" === (e = typeof i) ? t(i) : e)) try { i = i(); } catch (t) { return !1; } if (i === n) return !0; if (i && n) { if (i instanceof cc.ValueType && i.equals(n)) return !0; if (Array.isArray(i) && Array.isArray(n) || i.constructor === Object && n.constructor === Object) try { return Array.isArray(i) && Array.isArray(n) && 0 === i.length && 0 === n.length; } catch (t) {} } return !1; } function S(t) { return f.test(t) ? "." + t : "[" + d(t) + "]"; } function w(t, e) { this.parent = e; this.objsToClear_iN$t = []; this.codeArray = []; this.objs = []; this.funcs = []; this.funcModuleCache = l.createMap(); l.mixin(this.funcModuleCache, y); this.globalVariables = []; this.globalVariableId = 0; this.localVariableId = 0; this.codeArray.push(m + p + "," + v + ";", "if(R){", p + "=R;", "}else{", p + "=R=new " + this.getFuncModule(t.constructor, !0) + "();", "}"); l.value(t, "_iN$t", { globalVar: "R" }, !0); this.objsToClear_iN$t.push(t); this.enumerateObject(this.codeArray, t); var i; this.globalVariables.length > 0 && (i = m + this.globalVariables.join(",") + ";"); var n = u.flattenCodeArray([ "return (function(R){", i || [], this.codeArray, "return o;", "})" ]); this.result = Function("O", "F", n)(this.objs, this.funcs); for (var r = 0, s = this.objsToClear_iN$t.length; r < s; ++r) this.objsToClear_iN$t[r]._iN$t = null; this.objsToClear_iN$t.length = 0; } var T = w.prototype; T.getFuncModule = function(t, e) { var i = l.getClassName(t); if (i) { var n = this.funcModuleCache[i]; if (n) return n; if (void 0 === n) { var r = -1 !== i.indexOf("."); if (r) try { if (r = t === Function("return " + i)()) { this.funcModuleCache[i] = i; return i; } } catch (t) {} } } var s = this.funcs.indexOf(t); if (s < 0) { s = this.funcs.length; this.funcs.push(t); } var o = "F[" + s + "]"; e && (o = "(" + o + ")"); this.funcModuleCache[i] = o; return o; }; T.getObjRef = function(t) { var e = this.objs.indexOf(t); if (e < 0) { e = this.objs.length; this.objs.push(t); } return "O[" + e + "]"; }; T.setValueType = function(t, e, i, n) { var r = b.pool.get(n), s = e.constructor.__props__; s || (s = Object.keys(e)); for (var o = 0; o < s.length; o++) { var a = s[o], c = i[a]; if (e[a] !== c) { var l = this.enumerateField(i, a, c); r.append(a, l); } } r.writeCode(t); b.pool.put(r); }; T.enumerateCCClass = function(i, n, r) { for (var s = r.__values__, o = c.getClassAttrs(r), a = 0; a < s.length; a++) { var l = s[a], u = n[l], f = o[l + _]; if (!A(f, u)) if ("object" === ("object" === (e = typeof u) ? t(u) : e) && u instanceof cc.ValueType && (f = h.getDefault(f)) && f.constructor === u.constructor) { var d = p + S(l); this.setValueType(i, f, u, d); } else this.setObjProp(i, n, l, u); } }; T.instantiateArray = function(t) { if (0 === t.length) return "[]"; var e = "a" + ++this.localVariableId, i = [ new g(e, "new Array(" + t.length + ")") ]; l.value(t, "_iN$t", { globalVar: "", source: i }, !0); this.objsToClear_iN$t.push(t); for (var n = 0; n < t.length; ++n) { C(i, e + "[" + n + "]=", this.enumerateField(t, n, t[n])); } return i; }; T.enumerateField = function(i, n, r) { if ("object" === ("object" === (e = typeof r) ? t(r) : e) && r) { var o = r._iN$t; if (o) { var c = o.globalVar; if (!c) { c = o.globalVar = "v" + ++this.globalVariableId; this.globalVariables.push(c); var l = o.source[0]; o.source[0] = x(c + "=", l); } return c; } return Array.isArray(r) ? this.instantiateArray(r) : this.instantiateObj(r); } if ("function" === ("object" === (e = typeof r) ? t(r) : e)) return this.getFuncModule(r); if ("string" === ("object" === (e = typeof r) ? t(r) : e)) return d(r); "_objFlags" === n && i instanceof s && (r &= a); return r; }; T.setObjProp = function(t, e, i, n) { C(t, p + S(i) + "=", this.enumerateField(e, i, n)); }; T.enumerateObject = function(i, n) { var r = n.constructor; if (cc.Class._isCCClass(r)) this.enumerateCCClass(i, n, r); else for (var s in n) if (n.hasOwnProperty(s) && (95 !== s.charCodeAt(0) || 95 !== s.charCodeAt(1) || "__type__" === s)) { var o = n[s]; "object" === ("object" === (e = typeof o) ? t(o) : e) && o && o === n._iN$t || this.setObjProp(i, n, s, o); } }; T.instantiateObj = function(t) { if (t instanceof cc.ValueType) return h.getNewValueTypeCode(t); if (t instanceof cc.Asset) return this.getObjRef(t); if (t._objFlags & o) return null; var e, i = t.constructor; if (cc.Class._isCCClass(i)) { if (this.parent) if (this.parent instanceof cc.Component) { if (t instanceof cc._BaseNode || t instanceof cc.Component) return this.getObjRef(t); } else if (this.parent instanceof cc._BaseNode) if (t instanceof cc._BaseNode) { if (!t.isChildOf(this.parent)) return this.getObjRef(t); } else if (t instanceof cc.Component && !t.node.isChildOf(this.parent)) return this.getObjRef(t); e = new g(p, "new " + this.getFuncModule(i, !0) + "()"); } else if (i === Object) e = new g(p, "{}"); else { if (i) return this.getObjRef(t); e = new g(p, "Object.create(null)"); } var n = [ e ]; l.value(t, "_iN$t", { globalVar: "", source: n }, !0); this.objsToClear_iN$t.push(t); this.enumerateObject(n, t); return [ "(function(){", n, "return o;})();" ]; }; n.exports = { compile: function(t) { return new w(t, t instanceof cc._BaseNode && t).result; }, equalsToDefault: A }; 0; }), { "./CCClass": 201, "./CCObject": 207, "./attribute": 213, "./compiler": 215, "./js": 221 } ], 220: [ (function(i, n, r) { "use strict"; var s = i("./CCObject"), o = i("../value-types/value-type"), a = s.Flags.Destroyed, c = s.Flags.PersistentMask, l = i("./utils").isDomNode, h = i("./js"); function u(i, n) { if (!n) { if ("object" !== ("object" === (e = typeof i) ? t(i) : e) || Array.isArray(i)) { 0; return null; } if (!i) { 0; return null; } if (!cc.isValid(i)) { 0; return null; } 0; } var r; if (i instanceof s) { if (i._instantiate) { cc.game._isCloning = !0; r = i._instantiate(); cc.game._isCloning = !1; return r; } if (i instanceof cc.Asset) { 0; return null; } } cc.game._isCloning = !0; r = f(i); cc.game._isCloning = !1; return r; } var _ = []; function f(t, e) { if (Array.isArray(t)) { 0; return null; } if (l && l(t)) { 0; return null; } var i; if (t._iN$t) i = t._iN$t; else if (t.constructor) { i = new (0, t.constructor)(); } else i = Object.create(null); m(t, i, e); for (var n = 0, r = _.length; n < r; ++n) _[n]._iN$t = null; _.length = 0; return i; } function d(i, n, r, s) { for (var a = i.__values__, c = 0; c < a.length; c++) { var l = a[c], h = n[l]; if ("object" === ("object" === (e = typeof h) ? t(h) : e) && h) { var u = r[l]; u instanceof o && u.constructor === h.constructor ? u.set(h) : r[l] = h._iN$t || p(h, s); } else r[l] = h; } } function m(i, n, r) { h.value(i, "_iN$t", n, !0); _.push(i); var o = i.constructor; if (cc.Class._isCCClass(o)) d(o, i, n, r); else for (var a in i) if (i.hasOwnProperty(a) && (95 !== a.charCodeAt(0) || 95 !== a.charCodeAt(1) || "__type__" === a)) { var l = i[a]; if ("object" === ("object" === (e = typeof l) ? t(l) : e) && l) { if (l === n) continue; n[a] = l._iN$t || p(l, r); } else n[a] = l; } i instanceof s && (n._objFlags &= c); } function p(i, n) { if (i instanceof o) return i.clone(); if (i instanceof cc.Asset) return i; var r; if (Array.isArray(i)) { var s = i.length; r = new Array(s); h.value(i, "_iN$t", r, !0); for (var c = 0; c < s; ++c) { var l = i[c]; "object" === ("object" === (e = typeof l) ? t(l) : e) && l ? r[c] = l._iN$t || p(l, n) : r[c] = l; } _.push(i); return r; } if (i._objFlags & a) return null; var u = i.constructor; if (cc.Class._isCCClass(u)) { if (n) if (n instanceof cc.Component) { if (i instanceof cc._BaseNode || i instanceof cc.Component) return i; } else if (n instanceof cc._BaseNode) if (i instanceof cc._BaseNode) { if (!i.isChildOf(n)) return i; } else if (i instanceof cc.Component && !i.node.isChildOf(n)) return i; r = new u(); } else if (u === Object) r = {}; else { if (u) return i; r = Object.create(null); } m(i, r, n); return r; } u._clone = f; cc.instantiate = u; n.exports = u; }), { "../value-types/value-type": 311, "./CCObject": 207, "./js": 221, "./utils": 225 } ], 221: [ (function(i, n, r) { "use strict"; var s = new (i("./id-generater"))("TmpCId."); function o(t, e) { for (;t; ) { var i = Object.getOwnPropertyDescriptor(t, e); if (i) return i; t = Object.getPrototypeOf(t); } return null; } function a(t, e, i) { var n = o(e, t); Object.defineProperty(i, t, n); } var c = { isNumber: function(i) { return "number" === ("object" === (e = typeof i) ? t(i) : e) || i instanceof Number; }, isString: function(i) { return "string" === ("object" === (e = typeof i) ? t(i) : e) || i instanceof String; }, addon: function(i) { i = i || {}; for (var n = 1, r = arguments.length; n < r; n++) { var s = arguments[n]; if (s) { if ("object" !== ("object" === (e = typeof s) ? t(s) : e)) { cc.errorID(5402, s); continue; } for (var o in s) o in i || a(o, s, i); } } return i; }, mixin: function(i) { i = i || {}; for (var n = 1, r = arguments.length; n < r; n++) { var s = arguments[n]; if (s) { if ("object" !== ("object" === (e = typeof s) ? t(s) : e)) { cc.errorID(5403, s); continue; } for (var o in s) a(o, s, i); } } return i; }, extend: function(t, e) { 0; for (var i in e) e.hasOwnProperty(i) && (t[i] = e[i]); t.prototype = Object.create(e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }); return t; }, getSuper: function(t) { var e = t.prototype, i = e && Object.getPrototypeOf(e); return i && i.constructor; }, isChildClassOf: function(i, n) { if (i && n) { if ("function" !== ("object" === (e = typeof i) ? t(i) : e)) return !1; if ("function" !== ("object" === (e = typeof n) ? t(n) : e)) { 0; return !1; } if (i === n) return !0; for (;;) { if (!(i = c.getSuper(i))) return !1; if (i === n) return !0; } } return !1; }, clear: function(t) { for (var e = Object.keys(t), i = 0; i < e.length; i++) delete t[e[i]]; }, isEmptyObject: function(t) { for (var e in t) return !1; return !0; }, getPropertyDescriptor: o }, l = { value: void 0, enumerable: !1, writable: !1, configurable: !0 }; c.value = function(t, e, i, n, r) { l.value = i; l.writable = n; l.enumerable = r; Object.defineProperty(t, e, l); l.value = void 0; }; var h = { get: null, set: null, enumerable: !1 }; c.getset = function(i, n, r, s, o, a) { if ("function" !== ("object" === (e = typeof s) ? t(s) : e)) { o = s; s = void 0; } h.get = r; h.set = s; h.enumerable = o; h.configurable = a; Object.defineProperty(i, n, h); h.get = null; h.set = null; }; var u = { get: null, enumerable: !1, configurable: !1 }; c.get = function(t, e, i, n, r) { u.get = i; u.enumerable = n; u.configurable = r; Object.defineProperty(t, e, u); u.get = null; }; var _ = { set: null, enumerable: !1, configurable: !1 }; c.set = function(t, e, i, n, r) { _.set = i; _.enumerable = n; _.configurable = r; Object.defineProperty(t, e, _); _.set = null; }; c.getClassName = function(i) { if ("function" === ("object" === (e = typeof i) ? t(i) : e)) { var n = i.prototype; if (n && n.hasOwnProperty("__classname__") && n.__classname__) return n.__classname__; var r = ""; i.name && (r = i.name); if (i.toString) { var s, o = i.toString(); (s = "[" === o.charAt(0) ? o.match(/\[\w+\s*(\w+)\]/) : o.match(/function\s*(\w+)/)) && 2 === s.length && (r = s[1]); } return "Object" !== r ? r : ""; } return i && i.constructor ? c.getClassName(i.constructor) : ""; }; (function() { var i = {}, n = {}; function r(t, e, i) { c.getset(c, e, (function() { return Object.assign({}, i); }), (function(t) { c.clear(i); Object.assign(i, t); })); return function(e, n) { n.prototype.hasOwnProperty(t) && delete i[n.prototype[t]]; c.value(n.prototype, t, e); if (e) { var r = i[e]; if (r && r !== n) { var s = "A Class already exists with the same " + t + ' : "' + e + '".'; 0; cc.error(s); } else i[e] = n; } }; } c._setClassId = r("__cid__", "_registeredClassIds", i); var o = r("__classname__", "_registeredClassNames", n); c.setClassName = function(t, e) { o(t, e); if (!e.prototype.hasOwnProperty("__cid__")) { var i = t || s.getNewId(); i && c._setClassId(i, e); } }; c.unregisterClass = function() { for (var t = 0; t < arguments.length; t++) { var e = arguments[t].prototype, r = e.__cid__; r && delete i[r]; var s = e.__classname__; s && delete n[s]; } }; c._getClassById = function(t) { return i[t]; }; c.getClassByName = function(t) { return n[t]; }; c._getClassId = function(i, n) { n = "undefined" === ("object" === (e = typeof n) ? t(n) : e) || n; if ("function" === ("object" === (e = typeof i) ? t(i) : e) && i.prototype.hasOwnProperty("__cid__")) { 0; return i.prototype.__cid__; } if (i && i.constructor) { var r = i.constructor.prototype; if (r && r.hasOwnProperty("__cid__")) { 0; return i.__cid__; } } return ""; }; })(); c.obsolete = function(t, e, i, n) { var r = /([^.]+)$/, s = r.exec(e)[0], o = r.exec(i)[0]; function a() { 0; return this[o]; } n ? c.getset(t, s, a, (function(t) { 0; this[o] = t; })) : c.get(t, s, a); }; c.obsoletes = function(t, e, i, n) { for (var r in i) { var s = i[r]; c.obsolete(t, e + "." + r, s, n); } }; var f = /(%d)|(%s)/, d = /%s/; c.formatStr = function() { var i = arguments.length; if (0 === i) return ""; var n = arguments[0]; if (1 === i) return "" + n; if ("string" === ("object" === (e = typeof n) ? t(n) : e) && f.test(n)) for (var r = 1; r < i; ++r) { var s = arguments[r], o = "number" === ("object" === (e = typeof s) ? t(s) : e) ? f : d; o.test(n) ? n = n.replace(o, s) : n += " " + s; } else for (var a = 1; a < i; ++a) n += " " + arguments[a]; return n; }; c.shiftArguments = function() { for (var t = arguments.length - 1, e = new Array(t), i = 0; i < t; ++i) e[i] = arguments[i + 1]; return e; }; c.createMap = function(t) { var e = Object.create(null); if (t) { e["."] = !0; e["/"] = !0; delete e["."]; delete e["/"]; } return e; }; function m(t, e) { t.splice(e, 1); } function p(t, e) { var i = t.indexOf(e); if (i >= 0) { m(t, i); return !0; } return !1; } var v = Array.prototype.indexOf; c.array = { remove: p, fastRemove: function(t, e) { var i = t.indexOf(e); if (i >= 0) { t[i] = t[t.length - 1]; --t.length; } }, removeAt: m, fastRemoveAt: function(t, e) { var i = t.length; if (!(e < 0 || e >= i)) { t[e] = t[i - 1]; t.length = i - 1; } }, contains: function(t, e) { return t.indexOf(e) >= 0; }, verifyType: function(t, e) { if (t && t.length > 0) for (var i = 0; i < t.length; i++) if (!(t[i] instanceof e)) { cc.logID(1300); return !1; } return !0; }, removeArray: function(t, e) { for (var i = 0, n = e.length; i < n; i++) p(t, e[i]); }, appendObjectsAt: function(t, e, i) { t.splice.apply(t, [ i, 0 ].concat(e)); return t; }, copy: function(t) { var e, i = t.length, n = new Array(i); for (e = 0; e < i; e += 1) n[e] = t[e]; return n; }, indexOf: v, MutableForwardIterator: i("../utils/mutable-forward-iterator") }; function y(t, e) { if (void 0 === e) { e = t; t = null; } this.get = null; this.count = 0; this._pool = new Array(e); this._cleanup = t; } y.prototype._get = function() { if (this.count > 0) { --this.count; var t = this._pool[this.count]; this._pool[this.count] = null; return t; } return null; }; y.prototype.put = function(t) { var e = this._pool; if (this.count < e.length) { if (this._cleanup && !1 === this._cleanup(t)) return; e[this.count] = t; ++this.count; } }; y.prototype.resize = function(t) { if (t >= 0) { this._pool.length = t; this.count > t && (this.count = t); } }; c.Pool = y; cc.js = c; n.exports = c; }), { "../utils/mutable-forward-iterator": 298, "./id-generater": 217 } ], 222: [ (function(i, n, r) { "use strict"; var s = i("./js"), o = { url: { canUsedInGet: !0 }, default: {}, serializable: {}, editorOnly: {}, formerlySerializedAs: {} }; function a(t, e, i, n) { if (t.get || t.set) 0; else if (t.hasOwnProperty("default")) { var r = "_N$" + e; t.get = function() { return this[r]; }; t.set = function(t) { var e = this[r]; this[r] = t; i.call(this, e); }; 0; var s = {}; n[r] = s; for (var a in o) { var c = o[a]; if (t.hasOwnProperty(a)) { s[a] = t[a]; c.canUsedInGet || delete t[a]; } } } else 0; } function c(t, e, i, n) { Array.isArray(n) && n.length > 0 && (n = n[0]); 0; t.type = n; } function l(t, e, i, n) { if (Array.isArray(e)) { if (!(e.length > 0)) return cc.errorID(5508, i, n); if (cc.RawAsset.isRawAssetType(e[0])) { t.url = e[0]; delete t.type; return; } t.type = e = e[0]; } 0; } r.getFullFormOfProperty = function(i, n, r) { if (!(i && i.constructor === Object)) { if (Array.isArray(i) && i.length > 0) { var o = i[0]; 0; return { default: [], type: i, _short: !0 }; } if ("function" === ("object" === (e = typeof i) ? t(i) : e)) { o = i; if (!cc.RawAsset.isRawAssetType(o)) { if (!cc.RawAsset.wasRawAssetType(o)) return { default: s.isChildClassOf(o, cc.ValueType) ? new o() : null, type: o, _short: !0 }; 0; } return { default: "", url: o, _short: !0 }; } return { default: i, _short: !0 }; } return null; }; r.preprocessAttrs = function(t, e, i, n) { for (var s in t) { var o = t[s], h = r.getFullFormOfProperty(o, s, e); h && (o = t[s] = h); if (o) { var u = o.notify; u && a(o, s, u, t); "type" in o && l(o, o.type, e, s); "url" in o && c(o, 0, 0, o.url); "type" in o && o.type; } } }; r.validateMethodWithProps = function(i, n, r, s, o) { 0; if ("function" !== ("object" === (e = typeof i) ? t(i) : e) && null !== i) { return !1; } 0; return !0; }; }), { "./CCClass": 201, "./js": 221 } ], 223: [ (function(t, e, i) { "use strict"; var n = []; cc._RF = { push: function(t, e, i) { if (void 0 === i) { i = e; e = ""; } n.push({ uuid: e, script: i, module: t, exports: t.exports, beh: null }); }, pop: function() { var t = n.pop(), e = t.module, i = e.exports; if (i === t.exports) { for (var r in i) return; e.exports = i = t.cls; } }, peek: function() { return n[n.length - 1]; } }; 0; }), {} ], 224: [ (function(t, e, i) { "use strict"; cc.url = { _rawAssets: "", normalize: function(t) { t && (46 === t.charCodeAt(0) && 47 === t.charCodeAt(1) ? t = t.slice(2) : 47 === t.charCodeAt(0) && (t = t.slice(1))); return t; }, raw: function(t) { 0; if ((t = this.normalize(t)).startsWith("resources/")) { var e = cc.loader._getResUuid(t.slice(10), cc.Asset, null, !0); if (e) return cc.AssetLibrary.getLibUrlNoExt(e, !0) + cc.path.extname(t); } else cc.errorID(7002, t); return this._rawAssets + t; }, _init: function(t) { this._rawAssets = cc.path.stripSep(t) + "/"; } }; e.exports = cc.url; }), {} ], 225: [ (function(i, n, r) { "use strict"; i("./js"); n.exports = { contains: function(i, n) { if ("function" == ("object" === (e = typeof i.contains) ? t(i.contains) : e)) return i.contains(n); if ("function" == ("object" === (e = typeof i.compareDocumentPosition) ? t(i.compareDocumentPosition) : e)) return !!(16 & i.compareDocumentPosition(n)); var r = n.parentNode; if (r) do { if (r === i) return !0; r = r.parentNode; } while (null !== r); return !1; }, isDomNode: "object" === (e = typeof window, "object" === e ? t(window) : e) && ("function" === (e = typeof Node, "object" === e ? t(Node) : e) ? function(t) { return t instanceof Node; } : function(i) { return i && "object" === ("object" === (e = typeof i) ? t(i) : e) && "number" === ("object" === (e = typeof i.nodeType) ? t(i.nodeType) : e) && "string" === ("object" === (e = typeof i.nodeName) ? t(i.nodeName) : e); }), callInNextTick: function(t, e, i) { t && setTimeout((function() { t(e, i); }), 0); } }; 0; 0; }), { "./js": 221 } ], 226: [ (function(t, e, i) { "use strict"; t("./platform/js"); t("./value-types"); t("./utils"); t("./platform/CCInputManager"); t("./platform/CCInputExtension"); t("./event"); t("./platform/CCSys"); t("./platform/CCMacro"); t("./load-pipeline"); t("./CCDirector"); t("./renderer"); t("./platform/CCView"); t("./platform/CCScreen"); t("./CCScheduler"); t("./event-manager"); }), { "./CCDirector": 50, "./CCScheduler": 55, "./event": 135, "./event-manager": 131, "./load-pipeline": 155, "./platform/CCInputExtension": 204, "./platform/CCInputManager": 205, "./platform/CCMacro": 206, "./platform/CCScreen": 209, "./platform/CCSys": 210, "./platform/CCView": 211, "./platform/js": 221, "./renderer": 244, "./utils": 294, "./value-types": 306 } ], 227: [ (function(t, e, i) { "use strict"; var n = function(t) { var e; try { e = t.getContext("2d"); } catch (t) { console.error(t); return; } this._canvas = t; this._ctx = e; this._caps = {}; this._stats = { drawcalls: 0 }; this._vx = this._vy = this._vw = this._vh = 0; this._sx = this._sy = this._sw = this._sh = 0; }; n.prototype._restoreTexture = function(t) {}; n.prototype.setViewport = function(t, e, i, n) { if (this._vx !== t || this._vy !== e || this._vw !== i || this._vh !== n) { this._vx = t; this._vy = e; this._vw = i; this._vh = n; } }; n.prototype.setScissor = function(t, e, i, n) { if (this._sx !== t || this._sy !== e || this._sw !== i || this._sh !== n) { this._sx = t; this._sy = e; this._sw = i; this._sh = n; } }; n.prototype.clear = function(t) { var e = this._ctx; e.clearRect(this._vx, this._vy, this._vw, this._vh); if (t && (0 !== t[0] || 0 !== t[1] || 0 !== t[2])) { e.fillStyle = "rgb(" + t[0] + "," + t[1] + "," + t[2] + ")"; e.globalAlpha = t[3]; e.fillRect(this._vx, this._vy, this._vw, this._vh); } }; e.exports = n; }), {} ], 228: [ (function(t, e, i) { "use strict"; var n = function(t, e) { this._device = t; this._width = 4; this._height = 4; this._image = null; if (e) { void 0 !== e.width && (this._width = e.width); void 0 !== e.height && (this._height = e.height); this.updateImage(e); } }; n.prototype.update = function(t) { this.updateImage(t); }; n.prototype.updateImage = function(t) { if (t.images && t.images[0]) { var e = t.images[0]; e && e !== this._image && (this._image = e); } }; n.prototype.destroy = function() { this._image = null; }; e.exports = n; }), {} ], 229: [ (function(t, e, i) { "use strict"; var n = function() {}; n.prototype = { constructor: n, clear: function() {}, render: function() {} }; e.exports = n; }), {} ], 230: [ (function(t, e, i) { "use strict"; e.exports = { ForwardRenderer: t("./forward-renderer"), RenderComponentHandle: t("./render-component-handle"), _renderers: t("./renderers") }; }), { "./forward-renderer": 229, "./render-component-handle": 231, "./renderers": 234 } ], 231: [ (function(t, e, i) { "use strict"; t("./renderers"); var n = t("./renderers/utils"), r = function(t, e) { this._device = t; this._camera = e; this.parentOpacity = 1; this.parentOpacityDirty = 0; this.worldMatDirty = 0; this.walking = !1; }; r.prototype = { constructor: r, reset: function() { var t = this._device._ctx, e = this._device._canvas, i = cc.Camera.main ? cc.Camera.main.backgroundColor : cc.color(), r = "rgba(" + i.r + ", " + i.g + ", " + i.b + ", " + i.a / 255 + ")"; t.fillStyle = r; t.setTransform(1, 0, 0, 1, 0, 0); t.clearRect(0, 0, e.width, e.height); t.fillRect(0, 0, e.width, e.height); this._device._stats.drawcalls = 0; n.context.reset(); }, terminate: function() {}, _commitComp: function(t, e) { var i = this._device._ctx, n = this._camera; i.setTransform(n.a, n.b, n.c, n.d, n.tx, n.ty); i.scale(1, -1); e.draw(i, t); } }; e.exports = r; }), { "./renderers": 234, "./renderers/utils": 243 } ], 232: [ (function(t, e, i) { "use strict"; var n = t("../../../../graphics/helper"), r = t("../../../../graphics/types"), s = t("../../../../platform/js"), o = (r.PointFlags, r.LineJoin), a = r.LineCap; function c() { this.cmds = []; this.style = { strokeStyle: "black", fillStyle: "white", lineCap: "butt", lineJoin: "miter", miterLimit: 10 }; } var l = c.prototype; s.mixin(l, { moveTo: function(t, e) { this.cmds.push([ "moveTo", [ t, e ] ]); }, lineTo: function(t, e) { this.cmds.push([ "lineTo", [ t, e ] ]); }, bezierCurveTo: function(t, e, i, n, r, s) { this.cmds.push([ "bezierCurveTo", [ t, e, i, n, r, s ] ]); }, quadraticCurveTo: function(t, e, i, n) { this.cmds.push([ "quadraticCurveTo", [ t, e, i, n ] ]); }, arc: function(t, e, i, r, s, o) { n.arc(this, t, e, i, r, s, o); }, ellipse: function(t, e, i, r) { n.ellipse(this, t, e, i, r); }, circle: function(t, e, i) { n.ellipse(this, t, e, i, i); }, rect: function(t, e, i, n) { this.moveTo(t, e); this.lineTo(t, e + n); this.lineTo(t + i, e + n); this.lineTo(t + i, e); this.close(); }, roundRect: function(t, e, i, r, s) { n.roundRect(this, t, e, i, r, s); }, clear: function(t, e) { this.cmds.length = 0; }, close: function() { this.cmds.push([ "closePath", [] ]); }, stroke: function() { this.cmds.push([ "stroke", [] ]); }, fill: function() { this.cmds.push([ "fill", [] ]); } }); s.set(l, "strokeColor", (function(t) { var e = "rgba(" + (0 | t.r) + "," + (0 | t.g) + "," + (0 | t.b) + "," + t.a / 255 + ")"; this.cmds.push([ "strokeStyle", e ]); this.style.strokeStyle = e; })); s.set(l, "fillColor", (function(t) { var e = "rgba(" + (0 | t.r) + "," + (0 | t.g) + "," + (0 | t.b) + "," + t.a / 255 + ")"; this.cmds.push([ "fillStyle", e ]); this.style.fillStyle = e; })); s.set(l, "lineWidth", (function(t) { this.cmds.push([ "lineWidth", t ]); this.style.lineWidth = t; })); s.set(l, "lineCap", (function(t) { var e = "butt"; t === a.BUTT ? e = "butt" : t === a.ROUND ? e = "round" : t === a.SQUARE && (e = "square"); this.cmds.push([ "lineCap", e ]); this.style.lineCap = e; })); s.set(l, "lineJoin", (function(t) { var e = "bevel"; t === o.BEVEL ? e = "bevel" : t === o.ROUND ? e = "round" : t === o.MITER && (e = "miter"); this.cmds.push([ "lineJoin", e ]); this.style.lineJoin = e; })); s.set(l, "miterLimit", (function(t) { this.cmds.push([ "miterLimit", t ]); this.style.miterLimit = t; })); e.exports = c; }), { "../../../../graphics/helper": 143, "../../../../graphics/types": 145, "../../../../platform/js": 221 } ], 233: [ (function(i, n, r) { "use strict"; var s = i("./impl"); n.exports = { createImpl: function() { return new s(); }, draw: function(i, n) { var r = n.node, s = r._worldMatrix, o = s.m00, a = s.m01, c = s.m04, l = s.m05, h = s.m12, u = s.m13; i.transform(o, a, c, l, h, u); i.save(); i.globalAlpha = r.opacity / 255; var _ = n._impl.style; i.strokeStyle = _.strokeStyle; i.fillStyle = _.fillStyle; i.lineWidth = _.lineWidth; i.lineJoin = _.lineJoin; i.miterLimit = _.miterLimit; for (var f = !0, d = n._impl.cmds, m = 0, p = d.length; m < p; m++) { var v = d[m], y = v[0], g = v[1]; if ("moveTo" === y && f) { i.beginPath(); f = !1; } else "fill" !== y && "stroke" !== y && "fillRect" !== y || (f = !0); "function" === ("object" === (e = typeof i[y]) ? t(i[y]) : e) ? i[y].apply(i, g) : i[y] = g; } i.restore(); return 1; }, stroke: function(t) { t._impl.stroke(); }, fill: function(t) { t._impl.fill(); } }; }), { "./impl": 232 } ], 234: [ (function(t, e, i) { "use strict"; var n = t("../../../platform/js"), r = t("../../../components/CCSprite"), s = t("../../../components/CCLabel"), o = t("../../../components/CCMask"), a = t("../../../graphics/graphics"), c = t("./sprite"), l = t("./label"), h = t("./graphics"), u = t("./mask"), _ = {}, f = {}; function d(t, e, i) { var r = n.getClassName(t); _[r] = e; i && (f[r] = i); t._assembler = e; t._postAssembler = i; } d(r, c); d(s, l); o && d(o, u.beforeHandler, u.afterHandler); a && d(a, h); e.exports = { map: _, postMap: f, addRenderer: d }; }), { "../../../components/CCLabel": 97, "../../../components/CCMask": 101, "../../../components/CCSprite": 111, "../../../graphics/graphics": 142, "../../../platform/js": 221, "./graphics": 233, "./label": 236, "./mask": 238, "./sprite": 239 } ], 235: [ (function(t, e, i) { "use strict"; var n = t("../../../utils/label/bmfont"), r = t("../../../../platform/js"), s = t("../utils"); e.exports = r.addon({ createData: function(t) { return t.requestRenderData(); }, appendQuad: function(t, e, i, n, r, s, o) { var a = t.dataLength; t.dataLength += 2; var c = t._data, l = (e.width, e.height, i.width), h = i.height, u = void 0, _ = void 0, f = void 0, d = void 0; if (n) { u = i.x; f = i.x + h; _ = i.y; d = i.y + l; c[a].u = u; c[a].v = d; c[a + 1].u = u; c[a + 1].v = _; } else { u = i.x; f = i.x + l; _ = i.y; d = i.y + h; c[a].u = u; c[a].v = _; c[a + 1].u = f; c[a + 1].v = d; } c[a].x = r; c[a].y = s - h * o; c[a + 1].x = r + l * o; c[a + 1].y = s; }, draw: function(t, e) { var i = e.node, n = i._worldMatrix, r = n.m00, o = n.m01, a = n.m04, c = n.m05, l = n.m12, h = n.m13; t.transform(r, o, a, c, l, h); t.scale(1, -1); s.context.setGlobalAlpha(t, i.opacity / 255); for (var u = e._frame._texture, _ = e._renderData._data, f = s.getColorizedImage(u, i._color), d = 0, m = _.length; d < m; d += 2) { var p = _[d].x, v = _[d].y, y = _[d + 1].x - p, g = _[d + 1].y - v; v = -v - g; var x = _[d].u, C = _[d].v, b = _[d + 1].u - x, A = _[d + 1].v - C; t.drawImage(f, x, C, b, A, p, v, y, g); } return 1; } }, n); }), { "../../../../platform/js": 221, "../../../utils/label/bmfont": 248, "../utils": 243 } ], 236: [ (function(t, e, i) { "use strict"; var n = t("../../../../components/CCLabel"), r = t("./ttf"), s = t("./bmfont"), o = { pool: [], get: function() { var t = this.pool.pop(); if (!t) { var e = document.createElement("canvas"); t = { canvas: e, context: e.getContext("2d") }; } return t; }, put: function(t) { this.pool.length >= 32 || this.pool.push(t); } }; n._canvasPool = o; e.exports = { getAssembler: function(t) { var e = r; t.font instanceof cc.BitmapFont && (e = s); return e; }, createData: function(t) { return t._assembler.createData(t); }, draw: function(t, e) { if (!e._texture) return 0; var i = e._assembler; if (!i) return 0; i.updateRenderData(e); return i.draw(t, e); } }; }), { "../../../../components/CCLabel": 97, "./bmfont": 235, "./ttf": 237 } ], 237: [ (function(t, e, i) { "use strict"; var n = t("../../../utils/label/ttf"), r = t("../../../../platform/js"), s = t("../utils"); e.exports = r.addon({ createData: function(t) { var e = t.requestRenderData(); e.dataLength = 2; return e; }, _updateVerts: function(t) { var e = t._renderData, i = t.node, n = i.width, r = i.height, s = i.anchorX * n, o = i.anchorY * r, a = e._data; a[0].x = -s; a[0].y = -o; a[1].x = n - s; a[1].y = r - o; }, _updateTexture: function(t) { n._updateTexture(t); var e = t._frame._texture; s.dropColorizedImage(e, t.node.color); }, draw: function(t, e) { var i = e.node, n = i._worldMatrix, r = n.m00, o = n.m01, a = n.m04, c = n.m05, l = n.m12, h = n.m13; t.transform(r, o, a, c, l, h); t.scale(1, -1); s.context.setGlobalAlpha(t, i.opacity / 255); var u = e._frame._texture, _ = e._renderData._data, f = u.getHtmlElementObj(), d = _[0].x, m = _[0].y, p = _[1].x - d, v = _[1].y - m; m = -m - v; t.drawImage(f, d, m, p, v); return 1; } }, n); }), { "../../../../platform/js": 221, "../../../utils/label/ttf": 251, "../utils": 243 } ], 238: [ (function(t, e, i) { "use strict"; t("../../../components/CCMask"); var n = t("./graphics"), r = { updateRenderData: function(t) {}, draw: function(t, e) { t.save(); n.draw(t, e._graphics); t.clip(); } }; e.exports = { beforeHandler: r, afterHandler: { updateRenderData: function(t) {}, draw: function(t, e) { t.restore(); } } }; }), { "../../../components/CCMask": 101, "./graphics": 233 } ], 239: [ (function(t, e, i) { "use strict"; var n = t("../../../../components/CCSprite"), r = n.Type, s = n.FillType, o = t("./simple"), a = t("./sliced"), c = t("./tiled"); 0; e.exports = { getAssembler: function(t) { switch (t.type) { case r.SIMPLE: return o; case r.SLICED: return a; case r.TILED: return c; case r.FILLED: return t._fillType, s.RADIAL, null; } }, createData: function(t) { return t._assembler.createData(t); } }; }), { "../../../../components/CCSprite": 111, "../../../webgl/assemblers/sprite/index.js": 278, "./simple": 240, "./sliced": 241, "./tiled": 242 } ], 240: [ (function(t, e, i) { "use strict"; var n = t("../utils"), r = { createData: function(t) { var e = t.requestRenderData(); e.dataLength = 2; return e; }, updateRenderData: function(t) { t._material || t._activateMaterial(); var e = t._renderData; e.uvDirty && this.updateUVs(t); e.vertDirty && this.updateVerts(t); }, updateUVs: function(t) { var e = t.spriteFrame, i = t._renderData, n = i._data, r = e._rect; e._texture; if (e._rotated) { var s = r.x, o = r.width, a = r.y, c = r.height; n[0].u = s; n[0].v = a; n[1].u = c; n[1].v = o; } else { var l = r.x, h = r.width, u = r.y, _ = r.height; n[0].u = l; n[0].v = u; n[1].u = h; n[1].v = _; } i.uvDirty = !1; }, updateVerts: function(t) { var e = t._renderData, i = t.node, n = t.spriteFrame, r = e._data, s = i.width, o = i.height, a = i.anchorX * s, c = i.anchorY * o, l = void 0, h = void 0, u = void 0, _ = void 0; if (t.trim) { l = -a; h = -c; u = s; _ = o; } else { var f = n._originalSize.width, d = n._originalSize.height, m = n._rect.width, p = n._rect.height, v = n._offset, y = s / f, g = o / d, x = v.x + (f - m) / 2, C = (v.x, v.y + (d - p) / 2); v.y; l = x * y - a; h = C * g - c; u = s; _ = o; } if (n._rotated) { r[0].y = l; r[0].x = h; r[1].y = u; r[1].x = _; } else { r[0].x = l; r[0].y = h; r[1].x = u; r[1].y = _; } e.vertDirty = !1; }, draw: function(t, e) { var i = e.node, r = e._spriteFrame, s = i._worldMatrix, o = s.m00, a = s.m01, c = s.m04, l = s.m05, h = s.m12, u = s.m13; t.transform(o, a, c, l, h, u); t.scale(1, -1); r._rotated && t.rotate(-Math.PI / 2); n.context.setGlobalAlpha(t, i.opacity / 255); var _ = r._texture, f = e._renderData._data, d = n.getColorizedImage(_, i._color), m = f[0].x, p = f[0].y, v = f[1].x, y = f[1].y; p = -p - y; var g = f[0].u, x = f[0].v, C = f[1].u, b = f[1].v; t.drawImage(d, g, x, C, b, m, p, v, y); return 1; } }; e.exports = r; }), { "../utils": 243 } ], 241: [ (function(t, e, i) { "use strict"; var n = t("../utils"), r = { createData: function(t) { var e = t.requestRenderData(); e.dataLength = 4; return e; }, updateRenderData: t("./simple").updateRenderData, updateUVs: function(t) { var e = t.spriteFrame, i = t._renderData, n = e._rect, r = (e._texture, e.insetLeft), s = e.insetRight, o = n.width - r - s, a = e.insetTop, c = e.insetBottom, l = n.height - a - c, h = i._data; if (e._rotated) { h[0].u = n.x; h[1].u = c + n.x; h[2].u = c + l + n.x; h[3].u = n.x + n.height; h[3].v = n.y; h[2].v = r + n.y; h[1].v = r + o + n.y; h[0].v = n.y + n.width; } else { h[0].u = n.x; h[1].u = r + n.x; h[2].u = r + o + n.x; h[3].u = n.x + n.width; h[3].v = n.y; h[2].v = a + n.y; h[1].v = a + l + n.y; h[0].v = n.y + n.height; } i.uvDirty = !1; }, updateVerts: function(t) { var e = t._renderData, i = e._data, n = t.node, r = n.width, s = n.height, o = n.anchorX * r, a = n.anchorY * s, c = t.spriteFrame, l = (c._rect, c.insetLeft), h = c.insetRight, u = c.insetTop, _ = c.insetBottom, f = r - l - h, d = s - u - _, m = r / (l + h), p = s / (u + _); m = isNaN(m) || m > 1 ? 1 : m; p = isNaN(p) || p > 1 ? 1 : p; f = f < 0 ? 0 : f; d = d < 0 ? 0 : d; if (c._rotated) { i[0].y = -o; i[0].x = -a; i[1].y = h * m - o; i[1].x = _ * p - a; i[2].y = i[1].y + f; i[2].x = i[1].x + d; i[3].y = r - o; i[3].x = s - a; } else { i[0].x = -o; i[0].y = -a; i[1].x = l * m - o; i[1].y = _ * p - a; i[2].x = i[1].x + f; i[2].y = i[1].y + d; i[3].x = r - o; i[3].y = s - a; } e.vertDirty = !1; }, draw: function(t, e) { var i = e.node, r = e._spriteFrame, s = i._worldMatrix, o = s.m00, a = s.m01, c = s.m04, l = s.m05, h = s.m12, u = s.m13; t.transform(o, a, c, l, h, u); t.scale(1, -1); r._rotated && t.rotate(-Math.PI / 2); n.context.setGlobalAlpha(t, i.opacity / 255); for (var _ = r._texture, f = e._renderData._data, d = n.getColorizedImage(_, i._color), m = 0, p = void 0, v = void 0, y = void 0, g = void 0, x = void 0, C = void 0, b = void 0, A = void 0, S = void 0, w = void 0, T = void 0, E = void 0, M = 0; M < 3; ++M) { g = f[M]; y = f[M + 1]; for (var B = 0; B < 3; ++B) { p = f[B]; v = f[B + 1]; x = p.x; C = g.y; b = v.x - x; C = -C - (A = y.y - C); S = p.u; w = y.v; T = v.u - S; E = g.v - w; if (T > 0 && E > 0 && b > 0 && A > 0) { t.drawImage(d, S, w, T, E, x, C, b, A); m++; } } } return m; } }; e.exports = r; }), { "../utils": 243, "./simple": 240 } ], 242: [ (function(t, e, i) { "use strict"; var n = t("../utils"), r = { createData: function(t) { return t.requestRenderData(); }, updateRenderData: function(t) { t._material || t._activateMaterial(); }, draw: function(t, e) { var i = e.node, r = i._worldMatrix, s = r.m00, o = r.m01, a = r.m04, c = r.m05, l = r.m12, h = r.m13; t.transform(s, o, a, c, l, h); t.scale(1, -1); n.context.setGlobalAlpha(t, i.opacity / 255); var u = e.spriteFrame, _ = u._rect, f = u._texture, d = _.x, m = _.y, p = u._rotated ? _.height : _.width, v = u._rotated ? _.width : _.height, y = n.getFrameCache(f, i._color, d, m, p, v), g = i.width, x = i.height, C = -i.anchorX * g, b = -i.anchorY * x; b = -b - x; t.translate(C, b); t.fillStyle = t.createPattern(y, "repeat"); t.fillRect(0, 0, g, x); return 1; } }; e.exports = r; }), { "../utils": 243 } ], 243: [ (function(t, e, i) { "use strict"; function n(t, e, i, n, r, s, o) { var a = e._image, c = t.getContext("2d"); t.width = s; t.height = o; c.globalCompositeOperation = "source-over"; c.fillStyle = "rgb(" + i.r + "," + i.g + "," + i.b + ")"; c.fillRect(0, 0, s, o); c.globalCompositeOperation = "multiply"; c.drawImage(a, n, r, s, o, 0, 0, s, o); c.globalCompositeOperation = "destination-atop"; c.drawImage(a, n, r, s, o, 0, 0, s, o); return t; } var r = { canvasMap: {}, canvasUsed: {}, canvasPool: [], checking: !1, check: function() { var t = !1; for (var e in this.canvasUsed) { t = !0; if (this.canvasUsed[e]) this.canvasUsed[e] = !1; else { var i = this.canvasMap[e]; i.width = 0; i.height = 0; this.canvasPool.length < 32 && this.canvasPool.push(i); delete this.canvasMap[e]; delete this.canvasUsed[e]; } } if (!t) { cc.director.off(cc.Director.EVENT_AFTER_DRAW, this.check, this); this.checking = !1; } }, startCheck: function() { cc.director.on(cc.Director.EVENT_AFTER_DRAW, this.check, this); this.checking = !0; }, getCanvas: function(t) { this.canvasUsed[t] = !0; return this.canvasMap[t]; }, cacheCanvas: function(t, e) { this.canvasMap[e] = t; this.canvasUsed[e] = !0; this.checking || this.startCheck(); }, dropImage: function(t) { this.canvasMap[t] && delete this.canvasMap[t]; } }; e.exports = { getColorizedImage: function(t, e) { if (!t) return null; if (0 === t.width || 0 === t.height) return t._image; var i = 16777215 & e._val; if (16777215 === i) return t._image; var s = t.url + i, o = r.getCanvas(s); if (!o) { n(o = r.canvasPool.pop() || document.createElement("canvas"), t, e, 0, 0, t.width, t.height); r.cacheCanvas(o, s); } return o; }, getFrameCache: function(t, e, i, s, o, a) { if (!t || !t.url || i < 0 || s < 0 || o <= 0 || a <= 0) return null; var c = t.url, l = !1, h = 16777215 & e._val; if (16777215 !== h) { c += h; l = !0; } if (0 !== i || 0 !== s && o !== t.width && a !== t.height) { c += "_" + i + "_" + s + "_" + o + "_" + a; l = !0; } if (!l) return t._image; var u = r.getCanvas(c); if (!u) { n(u = r.canvasPool.pop() || document.createElement("canvas"), t, e, i, s, o, a); r.cacheCanvas(u, c); } return u; }, dropColorizedImage: function(t, e) { var i = t.url + (16777215 & e._val); r.dropImage(i); } }; var s = -1, o = { setGlobalAlpha: function(t, e) { if (s !== e) { s = e; t.globalAlpha = s; } }, reset: function() { s = -1; } }; e.exports.context = o; }), {} ], 244: [ (function(t, e, i) { "use strict"; var n = h(t("../../renderer/renderers/forward-renderer")), r = h(t("../../renderer/config")), s = h(t("../../renderer/gfx")), o = h(t("../../renderer/scene/scene")), a = h(t("../../renderer/core/input-assembler")), c = h(t("../../renderer/render-data/ia-render-data")), l = h(t("../../renderer/core/pass")); function h(t) { return t && t.__esModule ? t : { default: t }; } var u = t("./render-flow"); function _(t) { return { defaultTexture: new s.default.Texture2D(t, { images: [], width: 128, height: 128, wrapS: s.default.WRAP_REPEAT, wrapT: s.default.WRAP_REPEAT, format: s.default.TEXTURE_FMT_RGB8, mipmap: !1 }) }; } cc.renderer = e.exports = { Texture2D: null, InputAssembler: a.default, IARenderData: c.default, Pass: l.default, renderEngine: null, canvas: null, device: null, scene: null, drawCalls: 0, _handle: null, _cameraNode: null, _camera: null, _forward: null, initWebGL: function(e, i) { t("./webgl/assemblers"); var a = t("./webgl/model-batcher"); this.Texture2D = s.default.Texture2D; this.canvas = e; this.device = new s.default.Device(e, i); this.scene = new o.default(); this._handle = new a(this.device, this.scene); u.init(this._handle); var c = _(this.device); this._forward = new n.default(this.device, c); r.default.addStage("shadowcast"); r.default.addStage("opaque"); r.default.addStage("transparent"); }, initCanvas: function(e) { var i = t("./canvas"), n = t("./canvas/Texture2D"), r = t("./canvas/Device"); this.Device = r; this.Texture2D = n; this.canvas = e; this.device = new r(e); this._camera = { a: 1, b: 0, c: 0, d: 1, tx: 0, ty: 0 }; this._handle = new i.RenderComponentHandle(this.device, this._camera); u.init(this._handle); this._forward = new i.ForwardRenderer(); }, updateCameraViewport: function() { if (cc.director) { var t = cc.director.getScene(); t && t.setScale(1, 1, 1); } if (cc.game.renderType === cc.game.RENDER_TYPE_CANVAS) { var e = cc.view.getViewportRect(); this.device.setViewport(e.x, e.y, e.width, e.height); this._camera.a = cc.view.getScaleX(); this._camera.d = cc.view.getScaleY(); this._camera.tx = e.x; this._camera.ty = e.y + e.height; } }, render: function(t) { this.device._stats.drawcalls = 0; if (t) { u.visit(t); this._forward.render(this.scene); this.drawCalls = this.device._stats.drawcalls; } }, clear: function() { this._handle.reset(); this._forward.clear(); } }; }), { "../../renderer/config": 336, "../../renderer/core/input-assembler": 339, "../../renderer/core/pass": 340, "../../renderer/gfx": 349, "../../renderer/render-data/ia-render-data": 368, "../../renderer/renderers/forward-renderer": 370, "../../renderer/scene/scene": 374, "./canvas": 230, "./canvas/Device": 227, "./canvas/Texture2D": 228, "./render-flow": 245, "./webgl/assemblers": 256, "./webgl/model-batcher": 281 } ], 245: [ (function(t, e, i) { "use strict"; var n = 0, r = 1, s = 2, o = r | s, a = 4, c = 8, l = 16, h = 32, u = 64, _ = 128, f = 256, d = 512, m = void 0; function p() { this._func = b; this._next = null; } var v = p.prototype; v._doNothing = function() {}; v._localTransform = function(t) { t._updateLocalMatrix(); t._renderFlag &= ~r; this._next._func(t); }; v._worldTransform = function(t) { m.worldMatDirty++; var e = t._matrix, i = t._position; e.m12 = i.x; e.m13 = i.y; e.m14 = i.z; t._mulMat(t._worldMatrix, t._parent._worldMatrix, e); t._renderFlag &= ~s; this._next._func(t); m.worldMatDirty--; }; v._opacity = function(t) { m.parentOpacityDirty++; var e = t._renderComponent; e && e._updateColor && e._updateColor(); t._renderFlag &= ~c; this._next._func(t); m.parentOpacityDirty--; }; v._updateRenderData = function(t) { var e = t._renderComponent; e._assembler.updateRenderData(e); t._renderFlag &= ~a; this._next._func(t); }; v._render = function(t) { var e = t._renderComponent; m._commitComp(e, e._assembler, t._cullingMask); this._next._func(t); }; v._customIARender = function(t) { var e = t._renderComponent; m._commitIA(e, e._assembler, t._cullingMask); this._next._func(t); }; v._children = function(t) { for (var e = m, i = e.parentOpacity, n = e.parentOpacity *= t._opacity / 255, r = (e.worldMatDirty ? s : 0) | (e.parentOpacityDirty ? c : 0), o = t._children, a = 0, l = o.length; a < l; a++) { var h = o[a]; h._renderFlag |= r; if (h._activeInHierarchy && 0 !== h._opacity) { var u = h._color._val; h._color._fastSetA(h._opacity * n); g[h._renderFlag]._func(h); h._color._val = u; } } e.parentOpacity = i; this._next._func(t); }; v._postUpdateRenderData = function(t) { var e = t._renderComponent; e._postAssembler && e._postAssembler.updateRenderData(e); t._renderFlag &= ~_; this._next._func(t); }; v._postRender = function(t) { var e = t._renderComponent; m._commitComp(e, e._postAssembler, t._cullingMask); this._next._func(t); }; var y = new p(); y._func = y._doNothing; y._next = y; var g = {}; function x(t, e) { var i = new p(); i._next = e || y; switch (t) { case n: i._func = i._doNothing; break; case r: i._func = i._localTransform; break; case s: i._func = i._worldTransform; break; case c: i._func = i._opacity; break; case a: i._func = i._updateRenderData; break; case l: i._func = i._render; break; case h: i._func = i._customIARender; break; case u: i._func = i._children; break; case _: i._func = i._postUpdateRenderData; break; case f: i._func = i._postRender; } return i; } function C(t) { for (var e = null, i = d; i > 0; ) { i & t && (e = x(i, e)); i >>= 1; } return e; } function b(t) { var e = t._renderFlag; (g[e] = C(e))._func(t); } p.flows = g; p.createFlow = x; p.visit = function(t) { m.reset(); m.walking = !0; 1 << t.groupIndex; if (t._renderFlag & s) { m.worldMatDirty++; t._calculWorldMatrix(); t._renderFlag &= ~s; g[t._renderFlag]._func(t); m.worldMatDirty--; } else g[t._renderFlag]._func(t); m.terminate(); m.walking = !1; }; p.init = function(t) { m = t; g[0] = y; for (var e = 1; e < d; e++) g[e] = new p(); }; p.FLAG_DONOTHING = n; p.FLAG_LOCAL_TRANSFORM = r; p.FLAG_WORLD_TRANSFORM = s; p.FLAG_TRANSFORM = o; p.FLAG_OPACITY = c; p.FLAG_UPDATE_RENDER_DATA = a; p.FLAG_RENDER = l; p.FLAG_CUSTOM_IA_RENDER = h; p.FLAG_CHILDREN = u; p.FLAG_POST_UPDATE_RENDER_DATA = _; p.FLAG_POST_RENDER = f; p.FLAG_FINAL = d; e.exports = cc.RenderFlow = p; }), {} ], 246: [ (function(t, e, i) { "use strict"; var n = t("../../../assets/CCRenderTexture"), r = 2; function s(t, e) { var i = new n(); i.initWithSize(t, e); i.update(); this._texture = i; this._x = r; this._y = r; this._nexty = r; this._width = t; this._height = e; this._innerTextureInfos = {}; this._innerSpriteFrames = []; } s.DEFAULT_HASH = new n()._getHash(); cc.js.mixin(s.prototype, { insertSpriteFrame: function(t) { var e = t._rect, i = t._texture, n = this._innerTextureInfos[i._id], s = e.x, o = e.y; if (n) { s += n.x; o += n.y; } else { var a = i.width, c = i.height; if (this._x + a + r > this._width) { this._x = r; this._y = this._nexty; } this._y + c + r > this._nexty && (this._nexty = this._y + c + r); if (this._nexty > this._height) return null; this._texture.drawTextureAt(i, this._x - 1, this._y); this._texture.drawTextureAt(i, this._x + 1, this._y); this._texture.drawTextureAt(i, this._x, this._y - 1); this._texture.drawTextureAt(i, this._x, this._y + 1); this._texture.drawTextureAt(i, this._x, this._y); this._innerTextureInfos[i._id] = { x: this._x, y: this._y, texture: i }; s += this._x; o += this._y; this._x += a + r; this._dirty = !0; } var l = { x: s, y: o, texture: this._texture }; this._innerSpriteFrames.push(t); return l; }, update: function() { if (this._dirty) { this._texture.update(); this._dirty = !1; } }, deleteInnerTexture: function(t) { t && delete this._innerTextureInfos[t._id]; }, reset: function() { this._x = r; this._y = r; this._nexty = r; for (var t = this._innerSpriteFrames, e = 0, i = t.length; e < i; e++) { var n = t[e]; n.isValid && n._resetDynamicAtlasFrame(); } this._innerSpriteFrames.length = 0; this._innerTextureInfos = {}; }, destroy: function() { this.reset(); this._texture.destroy(); } }); e.exports = s; }), { "../../../assets/CCRenderTexture": 66 } ], 247: [ (function(t, e, i) { "use strict"; var n = t("./atlas"), r = [], s = -1, o = 5, a = 2048, c = 8, l = 512; function h() { var t = r[++s]; if (!t) { t = new n(a, a); r.push(t); } return t; } function u() { f.reset(); } var _ = !1, f = { Atlas: n, get enabled() { return _; }, set enabled(t) { if (_ !== t) { if (t) { this.reset(); cc.director.on(cc.Director.EVENT_BEFORE_SCENE_LAUNCH, u); } else cc.director.off(cc.Director.EVENT_BEFORE_SCENE_LAUNCH, u); _ = t; } }, get maxAtlasCount() { return o; }, set maxAtlasCount(t) { o = t; }, get textureSize() { return a; }, set textureSize(t) { a = t; }, get maxFrameSize() { return l; }, set maxFrameSize(t) { l = t; }, get minFrameSize() { return c; }, set minFrameSize(t) { c = t; }, insertSpriteFrame: function(t) { 0; if (!_ || s === o || !t || t._original) return null; if (!t._texture.packable) return null; var e = r[s]; e || (e = h()); var i = e.insertSpriteFrame(t); return i || s === o ? i : (e = h()).insertSpriteFrame(t); }, reset: function() { for (var t = 0, e = r.length; t < e; t++) r[t].destroy(); r.length = 0; s = -1; }, deleteAtlasTexture: function(t) { if (t._original) { var e = t._original._texture; if (e) for (var i = 0, n = r.length; i < n; i++) r[i].deleteInnerTexture(e); } }, showDebug: !1, update: function() { if (this.enabled) for (var t = 0; t <= s; t++) r[t].update(); } }; e.exports = cc.dynamicAtlasManager = f; }), { "./atlas": 246 } ], 248: [ (function(t, e, i) { "use strict"; var n, r = t("../../../platform/CCMacro"), s = t("../../../components/CCLabel").Overflow, o = t("../../../utils/text-utils"), a = t("../utils").shareLabelInfo, c = function() { this.char = ""; this.valid = !0; this.x = 0; this.y = 0; this.line = 0; this.hash = ""; }, l = cc.rect(), h = null, u = [], _ = [], f = [], d = [], m = [], p = [], v = null, y = 0, g = 0, x = 0, C = 0, b = 0, A = 1, S = null, w = cc.size(), T = "", E = 0, M = 0, B = 0, D = 0, I = 0, P = 0, R = 0, L = !1, F = 0, O = 0, V = 0; e.exports = ((n = { updateRenderData: function(t) { if (t._renderData.vertDirty && h !== t) { h = t; this._updateFontFamily(t); this._updateProperties(t); this._updateLabelInfo(t); this._updateContent(); h._actualFontSize = E; h.node.setContentSize(w); h._renderData.vertDirty = h._renderData.uvDirty = !1; h = null; this._resetProperties(); } }, _updateFontScale: function() { A = E / M; }, _updateFontFamily: function(t) { var e = t.font; S = e.spriteFrame; v = e._fntConfig; a.fontAtlas = e._fontDefDictionary; }, _updateLabelInfo: function() { a.hash = ""; a.margin = 0; }, _updateProperties: function(t) { T = t.string.toString(); E = t.fontSize; M = v ? v.fontSize : t.fontSize; B = t.horizontalAlign; D = t.verticalAlign; I = t.spacingX; R = t.overflow; P = t._lineHeight; w.width = h.node.width; w.height = h.node.height; if (R === s.NONE) { L = !1; w.width += 2 * a.margin; w.height += 2 * a.margin; } else if (R === s.RESIZE_HEIGHT) { L = !0; w.height += 2 * a.margin; } else L = t.enableWrapText; a.lineHeight = P; a.fontSize = E; this._setupBMFontOverflowMetrics(); }, _resetProperties: function() { v = null; S = null; a.hash = ""; a.margin = 0; }, _updateContent: function() { this._updateFontScale(); this._computeHorizontalKerningForText(); this._computeVerticalKerningForText(); this._alignText(); }, _computeHorizontalKerningForText: function() { for (var t = T, e = t.length, i = v.kerningDict, n = u, r = -1, s = 0; s < e; ++s) { var o = t.charCodeAt(s), a = i[r << 16 | 65535 & o] || 0; n[s] = s < e - 1 ? a : 0; r = o; } }, _computeVerticalKerningForText: function() { var t = T, e = t.length; if (v && v.kerningVDict) for (var i = v.kerningVDict, n = _, r = f, s = -1, o = 0; o < e; ++o) { var a = t.charCodeAt(o), c = i[s << 16 | 65535 & a] || 0, l = i[a << 16 | 65535 & s] || 0; if (o < e - 1) { n[o] = c; r[o] = l; } else { n[o] = 0; r[o] = 0; } s = a; } }, _multilineTextWrap: function(t) { for (var e = T.length, i = 0, n = 0, r = 0, s = 0, c = 0, l = 0, h = 0, d = null, p = cc.v2(0, 0), x = 0; x < e; ) { var S = T.charAt(x); if ("\n" !== S) { for (var E = t(T, x, e), M = l, B = h, D = c, R = n, N = !1, k = 0; k < E; ++k) { var z = x + k; if ("\r" !== (S = T.charAt(z))) if (d = a.fontAtlas.getLetterDefinitionForChar(S, a)) { var G = R + d.offsetX * A - a.margin; if (L && V > 0 && n > 0 && G + d.w * A > V && !o.isUnicodeSpace(S)) { m.push(c); c = 0; i++; n = 0; r -= P * A + 0; N = !0; break; } p.x = G; var U = 0, j = 0; if (v && v.kerningVDict) { z < _.length && z < e && (U = _[z] * A); z + 1 < f.length && z < e - 1 && (j = f[z + 1] * A); } p.y = r - d.offsetY * A + a.margin + U + j; this._recordLetterInfo(p, S, z, i); z + 1 < u.length && z < e - 1 && (R += u[z + 1]); R += d.xAdvance * A + I - 2 * a.margin; D = p.x + d.w * A - a.margin; M < p.y && (M = p.y); B > p.y - d.h * A && (B = p.y - d.h * A); } else { this._recordPlaceholderInfo(z, S); console.log("Can't find letter definition in texture atlas " + v.atlasName + " for letter:" + S); } else this._recordPlaceholderInfo(z, S); } if (!N) { n = R; c = D; l < M && (l = M); h > B && (h = B); s < c && (s = c); x += E; } } else { m.push(c); c = 0; i++; n = 0; r -= P * A + 0; this._recordPlaceholderInfo(x, S); x++; } } m.push(c); g = (y = i + 1) * P * A; y > 1 && (g += 0 * (y - 1)); w.width = F; w.height = O; F <= 0 && (w.width = parseFloat(s.toFixed(2)) + 2 * a.margin); O <= 0 && (w.height = parseFloat(g.toFixed(2)) + 2 * a.margin); C = w.height; b = 0; l > 0 && (C = w.height + l); h < -g && (b = g + h); return !0; }, _getFirstCharLen: function() { return 1; }, _getFirstWordLen: function(t, e, i) { var n = t.charAt(e); if (o.isUnicodeCJK(n) || "\n" === n || o.isUnicodeSpace(n)) return 1; var r = 1, s = a.fontAtlas.getLetterDefinitionForChar(n, a); if (!s) return r; for (var c = s.xAdvance * A + I, l = e + 1; l < i; ++l) { n = t.charAt(l); if (!(s = a.fontAtlas.getLetterDefinitionForChar(n, a))) break; if (c + s.offsetX * A + s.w * A > V && !o.isUnicodeSpace(n) && V > 0) return r; c += s.xAdvance * A + I; if ("\n" === n || o.isUnicodeSpace(n) || o.isUnicodeCJK(n)) break; r++; } return r; }, _multilineTextWrapByWord: function() { return this._multilineTextWrap(this._getFirstWordLen); }, _multilineTextWrapByChar: function() { return this._multilineTextWrap(this._getFirstCharLen); }, _recordPlaceholderInfo: function(t, e) { if (t >= d.length) { var i = new c(); d.push(i); } d[t].char = e; d[t].hash = e.charCodeAt(0) + a.hash; d[t].valid = !1; }, _recordLetterInfo: function(t, e, i, n) { if (i >= d.length) { var r = new c(); d.push(r); } var s = e.charCodeAt(0) + a.hash; d[i].line = n; d[i].char = e; d[i].hash = s; d[i].valid = a.fontAtlas.getLetter(s).valid; d[i].x = t.x; d[i].y = t.y; }, _alignText: function() { g = 0; m.length = 0; this._multilineTextWrapByWord(); this._computeAlignmentOffset(); R === s.SHRINK && E > 0 && this._isVerticalClamp() && this._shrinkLabelToContentSize(this._isVerticalClamp); this._updateQuads() || R === s.SHRINK && this._shrinkLabelToContentSize(this._isHorizontalClamp); }, _scaleFontSizeDown: function(t) { var e = !0; if (!t) { t = .1; e = !1; } E = t; e && this._updateContent(); }, _shrinkLabelToContentSize: function(t) { for (var e = E, i = 0, n = !0; t(); ) { var r = e - ++i; n = !1; if (r <= 0) break; A = r / M; this._multilineTextWrapByWord(); this._computeAlignmentOffset(); } n || e - i >= 0 && this._scaleFontSizeDown(e - i); }, _isVerticalClamp: function() { return g > w.height; }, _isHorizontalClamp: function() { for (var t = !1, e = 0, i = T.length; e < i; ++e) { var n = d[e]; if (n.valid) { var r = a.fontAtlas.getLetter(n.hash), s = n.x + r.w * A, o = n.line; if (F > 0) if (L) { if (m[o] > w.width && (s > w.width || s < 0)) { t = !0; break; } } else if (s > w.width) { t = !0; break; } } } return t; }, _isHorizontalClamped: function(t, e) { var i = m[e], n = t > w.width || t < 0; return L ? i > w.width && n : n; }, _updateQuads: function() { var t = a.fontAtlas.getTexture(), e = h.node, i = h._renderData; i.dataLength = i.vertexCount = i.indiceCount = 0; for (var n = w, r = e._anchorPoint.x * n.width, o = e._anchorPoint.y * n.height, c = !0, u = 0, _ = T.length; u < _; ++u) { var f = d[u]; if (f.valid) { var m = a.fontAtlas.getLetter(f.hash); l.height = m.h; l.width = m.w; l.x = m.u; l.y = m.v; var v = f.y + x; if (O > 0) { if (v > C) { var y = v - C; l.y += y; l.height -= y; v -= y; } v - m.h * A < b && R === s.CLAMP && (l.height = v < b ? 0 : v - b); } var g = f.line, S = f.x + m.w / 2 * A + p[g]; if (F > 0 && this._isHorizontalClamped(S, g)) if (R === s.CLAMP) l.width = 0; else if (R === s.SHRINK) { if (w.width > m.w) { c = !1; break; } l.width = 0; } if (l.height > 0 && l.width > 0) { var E = this._determineRect(l), M = f.x + p[f.line]; this.appendQuad(i, t, l, E, M - r, v - o, A); } } } return c; }, appendQuad: function(t, e, i, n, r, s, o) {}, _determineRect: function(t) { var e = S.isRotated(), i = S._originalSize, n = S._rect, r = S._offset, s = r.x + (i.width - n.width) / 2, o = r.y - (i.height - n.height) / 2; if (e) { var a = t.x; t.x = n.x + n.height - t.y - t.height - o; t.y = a + n.y - s; t.y < 0 && (t.height = t.height + o); } else { t.x += n.x - s; t.y += n.y + o; } return e; }, _computeAlignmentOffset: function() { p.length = 0; switch (B) { case r.TextAlignment.LEFT: for (var t = 0; t < y; ++t) p.push(0); break; case r.TextAlignment.CENTER: for (var e = 0, i = m.length; e < i; e++) p.push((w.width - m[e]) / 2); break; case r.TextAlignment.RIGHT: for (var n = 0, s = m.length; n < s; n++) p.push(w.width - m[n]); } x = (w.height + g) / 2; if (D !== r.VerticalTextAlignment.TOP) { var o = (P - M) * A; D === r.VerticalTextAlignment.BOTTOM ? x -= o : x -= o / 2; } }, _setupBMFontOverflowMetrics: function() { var t = w.width, e = w.height; R === s.RESIZE_HEIGHT && (e = 0); if (R === s.NONE) { t = 0; e = 0; } F = t; O = e; V = t; } }).appendQuad = function(t, e, i, n, r, s, o) {}, n); }), { "../../../components/CCLabel": 97, "../../../platform/CCMacro": 206, "../../../utils/text-utils": 303, "../utils": 252 } ], 249: [ (function(t, e, i) { "use strict"; function n() { this._rect = null; this.uv = []; this._texture = null; this._original = null; } n.prototype = { constructor: n, getRect: function() { return cc.rect(this._rect); }, setRect: function(t) { this._rect = t; this._texture && this._calculateUV(); }, _setDynamicAtlasFrame: function(t) { if (t) { this._original = { _texture: this._texture, _x: this._rect.x, _y: this._rect.y }; this._texture = t.texture; this._rect.x = t.x; this._rect.y = t.y; this._calculateUV(); } }, _resetDynamicAtlasFrame: function() { if (this._original) { this._rect.x = this._original._x; this._rect.y = this._original._y; this._texture = this._original._texture; this._original = null; this._calculateUV(); } }, _refreshTexture: function(t) { this._texture = t; this._rect = cc.rect(0, 0, t.width, t.height); this._calculateUV(); }, _calculateUV: function() { var t = this._rect, e = this._texture, i = this.uv, n = e.width, r = e.height, s = 0 === n ? 0 : t.x / n, o = 0 === n ? 0 : (t.x + t.width) / n, a = 0 === r ? 0 : (t.y + t.height) / r, c = 0 === r ? 0 : t.y / r; i[0] = s; i[1] = a; i[2] = o; i[3] = a; i[4] = s; i[5] = c; i[6] = o; i[7] = c; } }; e.exports = n; }), {} ], 250: [ (function(t, e, i) { "use strict"; var n = t("../../../platform/js"), r = t("./bmfont"), s = t("../../../components/CCLabel"), o = t("../../../components/CCLabelOutline"), a = t("../../../utils/text-utils"), c = t("../../../components/CCComponent"), l = t("../../../assets/CCRenderTexture"), h = cc.js.isChildClassOf(o, c), u = t("../utils").getFontFamily, _ = t("../utils").shareLabelInfo, f = cc.BitmapFont.FontLetterDefinition, d = cc.BitmapFont.FontAtlas, m = cc.Color.WHITE, p = 2, v = (1 / 255).toFixed(3); function y(t, e) { this._texture = null; this._labelInfo = e; this._char = t; this._hash = null; this._data = null; this._canvas = null; this._context = null; this._width = 0; this._height = 0; this._offsetY = 0; this._hash = t.charCodeAt(0) + e.hash; } y.prototype = { constructor: y, updateRenderData: function() { this._updateProperties(); this._updateTexture(); }, _updateProperties: function() { this._texture = new cc.Texture2D(); this._data = s._canvasPool.get(); this._canvas = this._data.canvas; this._context = this._data.context; this._context.font = this._labelInfo.fontDesc; var t = a.safeMeasureText(this._context, this._char); this._width = parseFloat(t.toFixed(2)) + 2 * this._labelInfo.margin; this._height = (1 + a.BASELINE_RATIO) * this._labelInfo.fontSize + 2 * this._labelInfo.margin; this._offsetY = -this._labelInfo.fontSize * a.BASELINE_RATIO / 2; this._canvas.width !== this._width && (this._canvas.width = this._width); this._canvas.height !== this._height && (this._canvas.height = this._height); this._texture.initWithElement(this._canvas); }, _updateTexture: function() { var t = this._context, e = this._labelInfo, i = this._canvas.width, n = this._canvas.height, r = i / 2, s = n / 2 + this._labelInfo.fontSize * a.MIDDLE_RATIO, o = e.color; t.textAlign = "center"; t.textBaseline = "alphabetic"; t.clearRect(0, 0, i, n); t.fillStyle = "rgba(" + o.r + ", " + o.g + ", " + o.b + ", " + v + ")"; t.fillRect(0, 0, i, n); t.font = e.fontDesc; t.lineJoin = "round"; t.fillStyle = "rgba(" + o.r + ", " + o.g + ", " + o.b + ", 1)"; if (e.isOutlined) { var c = e.out || m; t.strokeStyle = "rgba(" + c.r + ", " + c.g + ", " + c.b + ", " + c.a / 255 + ")"; t.lineWidth = 2 * e.margin; t.strokeText(this._char, r, s); } t.fillText(this._char, r, s); this._texture.handleLoadedTexture(); }, destroy: function() { this._texture.destroy(); this._texture = null; s._canvasPool.put(this._data); } }; function g(t, e) { var i = new l(); i.initWithSize(t, e); i.update(); this._fontDefDictionary = new d(i); this._x = p; this._y = p; this._nexty = p; this._width = t; this._height = e; cc.director.on(cc.Director.EVENT_BEFORE_SCENE_LAUNCH, this.beforeSceneLoad, this); } cc.js.mixin(g.prototype, { insertLetterTexture: function(t) { var e = t._texture, i = e.width, n = e.height; if (this._x + i + p > this._width) { this._x = p; this._y = this._nexty; } this._y + n > this._nexty && (this._nexty = this._y + n + p); if (this._nexty > this._height) return null; this._fontDefDictionary._texture.drawTextureAt(e, this._x, this._y); this._dirty = !0; var r = new f(); r.u = this._x; r.v = this._y; r.texture = this._fontDefDictionary._texture; r.valid = !0; r.w = t._width; r.h = t._height; r.xAdvance = t._width; r.offsetY = t._offsetY; this._x += i + p; this._fontDefDictionary.addLetterDefinitions(t._hash, r); return r; }, update: function() { if (this._dirty) { this._fontDefDictionary._texture.update(); this._dirty = !1; } }, reset: function() { this._x = p; this._y = p; this._nexty = p; for (var t = this._fontDefDictionary._letterDefinitions, e = 0, i = t.length; e < i; e++) { var n = t[e]; n.isValid && n.destroy(); } this._fontDefDictionary.clear(); }, destroy: function() { this.reset(); this._fontDefDictionary._texture.destroy(); }, beforeSceneLoad: function() { this.destroy(); var t = new l(); t.initWithSize(this._width, this._height); t.update(); this._fontDefDictionary._texture = t; }, getLetter: function(t) { return this._fontDefDictionary._letterDefinitions[t]; }, getTexture: function() { return this._fontDefDictionary.getTexture(); }, getLetterDefinitionForChar: function(t, e) { var i = t.charCodeAt(0) + e.hash, n = this._fontDefDictionary._letterDefinitions[i]; if (!n) { var r = new y(t, e); r.updateRenderData(); n = this.insertLetterTexture(r); r.destroy(); } return n; } }); function x(t) { var e = t.color.toHEX("#rrggbb"), i = ""; t.isOutlined && (i = i + t.margin + t.out.toHEX("#rrggbb")); return "" + t.fontSize + t.fontFamily + e + i; } var C = null; e.exports = n.addon({ _getAssemblerData: function() { C || (C = new g(2048, 2048)); return C.getTexture(); }, _updateFontFamily: function(t) { _.fontAtlas = C; _.fontFamily = u(t); var e = h && t.getComponent(o); if (e && e.enabled) { _.isOutlined = !0; _.margin = e.width; _.out = e.color; _.out.a = e.color.a * t.node.color.a / 255; } else { _.isOutlined = !1; _.margin = 0; } }, _updateLabelInfo: function(t) { _.fontDesc = this._getFontDesc(); _.color = t.node.color; _.hash = x(_); }, _getFontDesc: function() { var t = _.fontSize.toString() + "px "; 0; return t += _.fontFamily; }, _computeHorizontalKerningForText: function() {}, _determineRect: function(t) { return !1; } }, r); }), { "../../../assets/CCRenderTexture": 66, "../../../components/CCComponent": 95, "../../../components/CCLabel": 97, "../../../components/CCLabelOutline": 98, "../../../platform/js": 221, "../../../utils/text-utils": 303, "../utils": 252, "./bmfont": 248 } ], 251: [ (function(t, e, i) { "use strict"; var n = t("../../../platform/CCMacro"), r = t("../../../utils/text-utils"), s = t("../../../components/CCLabel"), o = t("../../../components/CCLabelOutline"), a = t("../../../components/CCLabelShadow"), c = s.Overflow, l = t("../utils").packToDynamicAtlas, h = t("../utils").deleteFromDynamicAtlas, u = t("../utils").getFontFamily, _ = (1 / 255).toFixed(3), f = null, d = null, m = null, p = "", v = "", y = 0, g = 0, x = [], C = cc.Size.ZERO, b = 0, A = 0, S = 0, w = null, T = "", E = c.NONE, M = !1, B = null, D = cc.Color.WHITE, I = null, P = cc.Color.BLACK, R = cc.rect(), L = cc.Size.ZERO, F = cc.Size.ZERO, O = !1, V = !1, N = !1, k = 0, z = cc.Vec2.ZERO, G = 0, U = void 0; e.exports = { _getAssemblerData: function() { (U = s._canvasPool.get()).canvas.width = U.canvas.height = 1; return U; }, _resetAssemblerData: function(t) { t && s._canvasPool.put(t); }, updateRenderData: function(t) { if (t._renderData.vertDirty) { this._updateFontFamily(t); this._updateProperties(t); this._calculateLabelFont(); this._calculateSplitedStrings(); this._updateLabelDimensions(); this._calculateTextBaseline(); this._updateTexture(t); this._calDynamicAtlas(t); t._actualFontSize = y; t.node.setContentSize(F); this._updateVerts(t); t._renderData.vertDirty = t._renderData.uvDirty = !1; f = null; d = null; m = null; } }, _updateVerts: function() {}, _updatePaddingRect: function() { var t = 0, e = 0, i = 0, n = 0, r = 0; L.width = L.height = 0; if (B) { t = e = i = n = r = B.width; L.width = L.height = 2 * r; } if (I) { var s = I.blur + r; i = Math.max(i, -I._offset.x + s); n = Math.max(n, I._offset.x + s); t = Math.max(t, I._offset.y + s); e = Math.max(e, -I._offset.y + s); } if (V) { var o = g * Math.tan(.20943951); n += o; L.width += o; } R.x = i; R.y = t; R.width = i + n; R.height = t + e; }, _updateFontFamily: function(t) { T = u(t); }, _updateProperties: function(t) { var e = t._assemblerData; f = e.context; d = e.canvas; m = t._frame._original ? t._frame._original._texture : t._frame._texture; v = t.string.toString(); y = t._fontSize; k = (g = y) / 8; E = t.overflow; C.width = t.node.width; C.height = t.node.height; F = t.node.getContentSize(); b = t._lineHeight; A = t.horizontalAlign; S = t.verticalAlign; w = t.node.color; O = t._isBold; V = t._isItalic; N = t._isUnderline; M = E !== c.NONE && (E === c.RESIZE_HEIGHT || t.enableWrapText); (B = (B = o && t.getComponent(o)) && B.enabled && B.width > 0 ? B : null) && D.set(B.color); if (I = (I = a && t.getComponent(a)) && I.enabled ? I : null) { P.set(I.color); P.a = P.a * t.node.color.a / 255; } this._updatePaddingRect(); }, _calculateFillTextStartPosition: function() { var t = 0; A === n.TextAlignment.RIGHT ? t = C.width - R.width : A === n.TextAlignment.CENTER && (t = (C.width - R.width) / 2); var e = 0, i = this._getLineHeight() * (x.length - 1); e = S === n.VerticalTextAlignment.TOP ? y : S === n.VerticalTextAlignment.CENTER ? .5 * (C.height - i) + y * r.MIDDLE_RATIO - R.height / 2 : C.height - i - y * r.BASELINE_RATIO - R.height; return cc.v2(t + R.x, e + R.y); }, _setupOutline: function() { f.strokeStyle = "rgba(" + D.r + ", " + D.g + ", " + D.b + ", " + D.a / 255 + ")"; f.lineWidth = 2 * B.width; }, _setupShadow: function() { f.shadowColor = "rgba(" + P.r + ", " + P.g + ", " + P.b + ", " + P.a / 255 + ")"; f.shadowBlur = I.blur; f.shadowOffsetX = I.offset.x; f.shadowOffsetY = -I.offset.y; }, _drawUnderline: function(t) { if (B) { this._setupOutline(); f.strokeRect(z.x, z.y, t, k); } f.lineWidth = k; f.fillStyle = "rgba(" + w.r + ", " + w.g + ", " + w.b + ", " + w.a / 255 + ")"; f.fillRect(z.x, z.y, t, k); }, _updateTexture: function() { f.clearRect(0, 0, d.width, d.height); var t = B ? D : w; f.fillStyle = "rgba(" + t.r + ", " + t.g + ", " + t.b + ", " + _ + ")"; f.fillRect(0, 0, d.width, d.height); f.font = p; var e = this._calculateFillTextStartPosition(), i = this._getLineHeight(); f.lineJoin = "round"; f.fillStyle = "rgba(" + w.r + ", " + w.g + ", " + w.b + ", 1)"; var r = x.length > 1, s = this._measureText(f), o = 0, a = 0; I && this._setupShadow(); B && this._setupOutline(); for (var c = 0; c < x.length; ++c) { o = e.x; a = e.y + c * i; if (I && r) { B && f.strokeText(x[c], o, a); f.fillText(x[c], o, a); } if (N) { G = s(x[c]); A === n.TextAlignment.RIGHT ? z.x = e.x - G : A === n.TextAlignment.CENTER ? z.x = e.x - G / 2 : z.x = e.x; z.y = a; this._drawUnderline(G); } } I && r && (f.shadowColor = "transparent"); for (var l = 0; l < x.length; ++l) { o = e.x; a = e.y + l * i; B && f.strokeText(x[l], o, a); f.fillText(x[l], o, a); } I && (f.shadowColor = "transparent"); m.handleLoadedTexture(); }, _calDynamicAtlas: function(t) { if (t.cacheMode === s.CacheMode.BITMAP) { var e = t._frame; h(t, e); e._original || e.setRect(cc.rect(0, 0, d.width, d.height)); l(t, e); } }, _updateLabelDimensions: function() { var t = v.split("\n"); if (E === c.RESIZE_HEIGHT) { var e = (x.length + r.BASELINE_RATIO) * this._getLineHeight(); C.height = e + R.height; F.height = e + L.height; } else if (E === c.NONE) { x = t; for (var i = 0, n = 0, s = 0; s < t.length; ++s) { var o = r.safeMeasureText(f, t[s]); i = i > o ? i : o; } n = (x.length + r.BASELINE_RATIO) * this._getLineHeight(); var a = parseFloat(i.toFixed(2)), l = parseFloat(n.toFixed(2)); C.width = a + R.width; C.height = l + R.height; F.width = a + L.width; F.height = l + L.height; } C.width = Math.min(C.width, 2048); C.height = Math.min(C.height, 2048); d.width !== C.width && (d.width = C.width); d.height !== C.height && (d.height = C.height); }, _calculateTextBaseline: function() { this._node; var t = void 0; t = A === n.TextAlignment.RIGHT ? "right" : A === n.TextAlignment.CENTER ? "center" : "left"; f.textAlign = t; f.textBaseline = "alphabetic"; }, _calculateSplitedStrings: function() { var t = v.split("\n"); if (M) { x = []; for (var e = F.width, i = 0; i < t.length; ++i) { var n = r.safeMeasureText(f, t[i]), s = r.fragmentText(t[i], n, e, this._measureText(f)); x = x.concat(s); } } else x = t; }, _getFontDesc: function() { var t = y.toString() + "px "; t += T; O && (t = "bold " + t); V && (t = "italic " + t); return t; }, _getLineHeight: function() { var t = b; return 0 | (t = 0 === t ? y : t * y / g); }, _calculateParagraphLength: function(t, e) { for (var i = [], n = 0; n < t.length; ++n) { var s = r.safeMeasureText(e, t[n]); i.push(s); } return i; }, _measureText: function(t) { return function(e) { return r.safeMeasureText(t, e); }; }, _calculateLabelFont: function() { p = this._getFontDesc(); f.font = p; if (E === c.SHRINK) { var t = v.split("\n"), e = this._calculateParagraphLength(t, f), i = 0, n = 0, s = 0; if (M) { var o = F.width, a = F.height; if (o < 0 || a < 0) { p = this._getFontDesc(); f.font = p; return; } n = a + 1; s = o + 1; for (var l = y + 1, h = "", u = !0, _ = 0 | l; n > a || s > o; ) { u ? l = _ / 2 | 0 : _ = l = _ - 1; if (l <= 0) { cc.logID(4003); break; } y = l; p = this._getFontDesc(); f.font = p; n = 0; for (i = 0; i < t.length; ++i) { var d = 0, m = r.safeMeasureText(f, t[i]); h = r.fragmentText(t[i], m, o, this._measureText(f)); for (;d < h.length; ) { s = r.safeMeasureText(f, h[d]); n += this._getLineHeight(); ++d; } } if (u) if (n > a) _ = 0 | l; else { u = !1; n = a + 1; } } } else { n = t.length * this._getLineHeight(); for (i = 0; i < t.length; ++i) s < e[i] && (s = e[i]); var x = (C.width - R.width) / s, b = C.height / n; y = g * Math.min(1, x, b) | 0; p = this._getFontDesc(); f.font = p; } } } }; }), { "../../../components/CCLabel": 97, "../../../components/CCLabelOutline": 98, "../../../components/CCLabelShadow": 99, "../../../platform/CCMacro": 206, "../../../utils/text-utils": 303, "../utils": 252 } ], 252: [ (function(t, e, i) { "use strict"; var n = t("./dynamic-atlas/manager"), r = cc.Color.WHITE, s = { fontAtlas: null, fontSize: 0, lineHeight: 0, hAlign: 0, vAlign: 0, hash: "", fontFamily: "", fontDesc: "Arial", color: r, isOutlined: !1, out: r, margin: 0 }; e.exports = { packToDynamicAtlas: function(t, e) { if (e) { if (!e._original && n) { var i = n.insertSpriteFrame(e); i && e._setDynamicAtlasFrame(i); } t.sharedMaterials[0].getProperty("texture") !== e._texture && t._activateMaterial(!0); } }, deleteFromDynamicAtlas: function(t, e) { if (e && e._original && n) { n.deleteAtlasTexture(e); e._resetDynamicAtlasFrame(); } }, getFontFamily: function(t) { if (t.useSystemFont) return t.fontFamily; if (t.font) { if (t.font._nativeAsset) return t.font._nativeAsset; cc.loader.load(t.font.nativeUrl, (function(e, i) { t.font._nativeAsset = i; t._updateRenderData(!0); })); return "Arial"; } return "Arial"; }, shareLabelInfo: s }; }), { "./dynamic-atlas/manager": 247 } ], 253: [ (function(t, e, i) { "use strict"; e.exports = n; function n(t, e, i) { i = i || 2; var n, s, a, c, l, h, _, f = e && e.length, d = f ? e[0] * i : t.length, m = r(t, 0, d, i, !0), p = []; if (!m) return p; f && (m = u(t, e, m, i)); if (t.length > 80 * i) { n = a = t[0]; s = c = t[1]; for (var v = i; v < d; v += i) { l = t[v]; h = t[v + 1]; l < n && (n = l); h < s && (s = h); l > a && (a = l); h > c && (c = h); } _ = Math.max(a - n, c - s); } o(m, p, i, n, s, _); return p; } function r(t, e, i, n, r) { var s, o; if (r === I(t, e, i, n) > 0) for (s = e; s < i; s += n) o = M(s, t[s], t[s + 1], o); else for (s = i - n; s >= e; s -= n) o = M(s, t[s], t[s + 1], o); if (o && b(o, o.next)) { B(o); o = o.next; } return o; } function s(t, e) { if (!t) return t; e || (e = t); var i, n = t; do { i = !1; if (n.steiner || !b(n, n.next) && 0 !== C(n.prev, n, n.next)) n = n.next; else { B(n); if ((n = e = n.prev) === n.next) return null; i = !0; } } while (i || n !== e); return e; } function o(t, e, i, n, r, u, _) { if (t) { !_ && u && m(t, n, r, u); for (var f, d, p = t; t.prev !== t.next; ) { f = t.prev; d = t.next; if (u ? c(t, n, r, u) : a(t)) { e.push(f.i / i); e.push(t.i / i); e.push(d.i / i); B(t); t = d.next; p = d.next; } else if ((t = d) === p) { _ ? 1 === _ ? o(t = l(t, e, i), e, i, n, r, u, 2) : 2 === _ && h(t, e, i, n, r, u) : o(s(t), e, i, n, r, u, 1); break; } } } } function a(t) { var e = t.prev, i = t, n = t.next; if (C(e, i, n) >= 0) return !1; for (var r = t.next.next; r !== t.prev; ) { if (g(e.x, e.y, i.x, i.y, n.x, n.y, r.x, r.y) && C(r.prev, r, r.next) >= 0) return !1; r = r.next; } return !0; } function c(t, e, i, n) { var r = t.prev, s = t, o = t.next; if (C(r, s, o) >= 0) return !1; for (var a = r.x < s.x ? r.x < o.x ? r.x : o.x : s.x < o.x ? s.x : o.x, c = r.y < s.y ? r.y < o.y ? r.y : o.y : s.y < o.y ? s.y : o.y, l = r.x > s.x ? r.x > o.x ? r.x : o.x : s.x > o.x ? s.x : o.x, h = r.y > s.y ? r.y > o.y ? r.y : o.y : s.y > o.y ? s.y : o.y, u = v(a, c, e, i, n), _ = v(l, h, e, i, n), f = t.nextZ; f && f.z <= _; ) { if (f !== t.prev && f !== t.next && g(r.x, r.y, s.x, s.y, o.x, o.y, f.x, f.y) && C(f.prev, f, f.next) >= 0) return !1; f = f.nextZ; } f = t.prevZ; for (;f && f.z >= u; ) { if (f !== t.prev && f !== t.next && g(r.x, r.y, s.x, s.y, o.x, o.y, f.x, f.y) && C(f.prev, f, f.next) >= 0) return !1; f = f.prevZ; } return !0; } function l(t, e, i) { var n = t; do { var r = n.prev, s = n.next.next; if (!b(r, s) && A(r, n, n.next, s) && w(r, s) && w(s, r)) { e.push(r.i / i); e.push(n.i / i); e.push(s.i / i); B(n); B(n.next); n = t = s; } n = n.next; } while (n !== t); return n; } function h(t, e, i, n, r, a) { var c = t; do { for (var l = c.next.next; l !== c.prev; ) { if (c.i !== l.i && x(c, l)) { var h = E(c, l); c = s(c, c.next); h = s(h, h.next); o(c, e, i, n, r, a); o(h, e, i, n, r, a); return; } l = l.next; } c = c.next; } while (c !== t); } function u(t, e, i, n) { var o, a, c, l = []; for (o = 0, a = e.length; o < a; o++) { (c = r(t, e[o] * n, o < a - 1 ? e[o + 1] * n : t.length, n, !1)) === c.next && (c.steiner = !0); l.push(y(c)); } l.sort(_); for (o = 0; o < l.length; o++) { f(l[o], i); i = s(i, i.next); } return i; } function _(t, e) { return t.x - e.x; } function f(t, e) { if (e = d(t, e)) { var i = E(e, t); s(i, i.next); } } function d(t, e) { var i, n = e, r = t.x, s = t.y, o = -Infinity; do { if (s <= n.y && s >= n.next.y) { var a = n.x + (s - n.y) * (n.next.x - n.x) / (n.next.y - n.y); if (a <= r && a > o) { o = a; if (a === r) { if (s === n.y) return n; if (s === n.next.y) return n.next; } i = n.x < n.next.x ? n : n.next; } } n = n.next; } while (n !== e); if (!i) return null; if (r === o) return i.prev; var c, l = i, h = i.x, u = i.y, _ = Infinity; n = i.next; for (;n !== l; ) { if (r >= n.x && n.x >= h && g(s < u ? r : o, s, h, u, s < u ? o : r, s, n.x, n.y) && ((c = Math.abs(s - n.y) / (r - n.x)) < _ || c === _ && n.x > i.x) && w(n, t)) { i = n; _ = c; } n = n.next; } return i; } function m(t, e, i, n) { var r = t; do { null === r.z && (r.z = v(r.x, r.y, e, i, n)); r.prevZ = r.prev; r.nextZ = r.next; r = r.next; } while (r !== t); r.prevZ.nextZ = null; r.prevZ = null; p(r); } function p(t) { var e, i, n, r, s, o, a, c, l = 1; do { i = t; t = null; s = null; o = 0; for (;i; ) { o++; n = i; a = 0; for (e = 0; e < l; e++) { a++; if (!(n = n.nextZ)) break; } c = l; for (;a > 0 || c > 0 && n; ) { if (0 === a) { r = n; n = n.nextZ; c--; } else if (0 !== c && n) if (i.z <= n.z) { r = i; i = i.nextZ; a--; } else { r = n; n = n.nextZ; c--; } else { r = i; i = i.nextZ; a--; } s ? s.nextZ = r : t = r; r.prevZ = s; s = r; } i = n; } s.nextZ = null; l *= 2; } while (o > 1); return t; } function v(t, e, i, n, r) { return (t = 1431655765 & ((t = 858993459 & ((t = 252645135 & ((t = 16711935 & ((t = 32767 * (t - i) / r) | t << 8)) | t << 4)) | t << 2)) | t << 1)) | (e = 1431655765 & ((e = 858993459 & ((e = 252645135 & ((e = 16711935 & ((e = 32767 * (e - n) / r) | e << 8)) | e << 4)) | e << 2)) | e << 1)) << 1; } function y(t) { var e = t, i = t; do { e.x < i.x && (i = e); e = e.next; } while (e !== t); return i; } function g(t, e, i, n, r, s, o, a) { return (r - o) * (e - a) - (t - o) * (s - a) >= 0 && (t - o) * (n - a) - (i - o) * (e - a) >= 0 && (i - o) * (s - a) - (r - o) * (n - a) >= 0; } function x(t, e) { return t.next.i !== e.i && t.prev.i !== e.i && !S(t, e) && w(t, e) && w(e, t) && T(t, e); } function C(t, e, i) { return (e.y - t.y) * (i.x - e.x) - (e.x - t.x) * (i.y - e.y); } function b(t, e) { return t.x === e.x && t.y === e.y; } function A(t, e, i, n) { return !!(b(t, e) && b(i, n) || b(t, n) && b(i, e)) || C(t, e, i) > 0 != C(t, e, n) > 0 && C(i, n, t) > 0 != C(i, n, e) > 0; } function S(t, e) { var i = t; do { if (i.i !== t.i && i.next.i !== t.i && i.i !== e.i && i.next.i !== e.i && A(i, i.next, t, e)) return !0; i = i.next; } while (i !== t); return !1; } function w(t, e) { return C(t.prev, t, t.next) < 0 ? C(t, e, t.next) >= 0 && C(t, t.prev, e) >= 0 : C(t, e, t.prev) < 0 || C(t, t.next, e) < 0; } function T(t, e) { var i = t, n = !1, r = (t.x + e.x) / 2, s = (t.y + e.y) / 2; do { i.y > s != i.next.y > s && r < (i.next.x - i.x) * (s - i.y) / (i.next.y - i.y) + i.x && (n = !n); i = i.next; } while (i !== t); return n; } function E(t, e) { var i = new D(t.i, t.x, t.y), n = new D(e.i, e.x, e.y), r = t.next, s = e.prev; t.next = e; e.prev = t; i.next = r; r.prev = i; n.next = i; i.prev = n; s.next = n; n.prev = s; return n; } function M(t, e, i, n) { var r = new D(t, e, i); if (n) { r.next = n.next; r.prev = n; n.next.prev = r; n.next = r; } else { r.prev = r; r.next = r; } return r; } function B(t) { t.next.prev = t.prev; t.prev.next = t.next; t.prevZ && (t.prevZ.nextZ = t.nextZ); t.nextZ && (t.nextZ.prevZ = t.prevZ); } function D(t, e, i) { this.i = t; this.x = e; this.y = i; this.prev = null; this.next = null; this.z = null; this.prevZ = null; this.nextZ = null; this.steiner = !1; } n.deviation = function(t, e, i, n) { var r = e && e.length, s = r ? e[0] * i : t.length, o = Math.abs(I(t, 0, s, i)); if (r) for (var a = 0, c = e.length; a < c; a++) { var l = e[a] * i, h = a < c - 1 ? e[a + 1] * i : t.length; o -= Math.abs(I(t, l, h, i)); } var u = 0; for (a = 0; a < n.length; a += 3) { var _ = n[a] * i, f = n[a + 1] * i, d = n[a + 2] * i; u += Math.abs((t[_] - t[d]) * (t[f + 1] - t[_ + 1]) - (t[_] - t[f]) * (t[d + 1] - t[_ + 1])); } return 0 === o && 0 === u ? 0 : Math.abs((u - o) / o); }; function I(t, e, i, n) { for (var r = 0, s = e, o = i - n; s < i; s += n) { r += (t[o] - t[s]) * (t[s + 1] + t[o + 1]); o = s; } return r; } n.flatten = function(t) { for (var e = t[0][0].length, i = { vertices: [], holes: [], dimensions: e }, n = 0, r = 0; r < t.length; r++) { for (var s = 0; s < t[r].length; s++) for (var o = 0; o < e; o++) i.vertices.push(t[r][s][o]); if (r > 0) { n += t[r - 1].length; i.holes.push(n); } } return i; }; }), {} ], 254: [ (function(t, e, i) { "use strict"; var n = s(t("../../../../../renderer/core/input-assembler")), r = s(t("../../../../../renderer/render-data/ia-render-data")); function s(t) { return t && t.__esModule ? t : { default: t }; } var o = t("../../../../graphics/helper"), a = t("../../../../graphics/types").PointFlags, c = t("../../mesh-buffer"), l = t("../../vertex-format").vfmtPosColor, h = t("../../../index"), u = cc.Class({ name: "cc.GraphicsPoint", extends: cc.Vec2, ctor: function(t, e) { this.reset(); }, reset: function() { this.dx = 0; this.dy = 0; this.dmx = 0; this.dmy = 0; this.flags = 0; this.len = 0; } }); function _() { this.reset(); } cc.js.mixin(_.prototype, { reset: function() { this.closed = !1; this.nbevel = 0; this.complex = !0; this.points ? this.points.length = 0 : this.points = []; } }); function f(t) { this._tessTol = .25; this._distTol = .01; this._updatePathOffset = !1; this._paths = null; this._pathLength = 0; this._pathOffset = 0; this._points = null; this._pointsOffset = 0; this._commandx = 0; this._commandy = 0; this._paths = []; this._points = []; this._renderDatas = []; this._dataOffset = 0; } cc.js.mixin(f.prototype, { moveTo: function(t, e) { if (this._updatePathOffset) { this._pathOffset = this._pathLength; this._updatePathOffset = !1; } this._addPath(); this._addPoint(t, e, a.PT_CORNER); this._commandx = t; this._commandy = e; }, lineTo: function(t, e) { this._addPoint(t, e, a.PT_CORNER); this._commandx = t; this._commandy = e; }, bezierCurveTo: function(t, e, i, n, r, s) { var c = this._curPath, l = c.points[c.points.length - 1]; if (l.x !== t || l.y !== e || i !== r || n !== s) { o.tesselateBezier(this, l.x, l.y, t, e, i, n, r, s, 0, a.PT_CORNER); this._commandx = r; this._commandy = s; } else this.lineTo(r, s); }, quadraticCurveTo: function(t, e, i, n) { var r = this._commandx, s = this._commandy; this.bezierCurveTo(r + 2 / 3 * (t - r), s + 2 / 3 * (e - s), i + 2 / 3 * (t - i), n + 2 / 3 * (e - n), i, n); }, arc: function(t, e, i, n, r, s) { o.arc(this, t, e, i, n, r, s); }, ellipse: function(t, e, i, n) { o.ellipse(this, t, e, i, n); this._curPath.complex = !1; }, circle: function(t, e, i) { o.ellipse(this, t, e, i, i); this._curPath.complex = !1; }, rect: function(t, e, i, n) { this.moveTo(t, e); this.lineTo(t, e + n); this.lineTo(t + i, e + n); this.lineTo(t + i, e); this.close(); this._curPath.complex = !1; }, roundRect: function(t, e, i, n, r) { o.roundRect(this, t, e, i, n, r); this._curPath.complex = !1; }, clear: function(t, e) { this._pathLength = 0; this._pathOffset = 0; this._pointsOffset = 0; this._dataOffset = 0; this._curPath = null; var i = this._renderDatas; if (e) { this._paths.length = 0; this._points.length = 0; for (var n = 0, r = i.length; n < r; n++) { var s = i[n]; s.meshbuffer.destroy(); s.meshbuffer = null; } i.length = 0; } else for (var o = 0, a = i.length; o < a; o++) { i[o].meshbuffer.reset(); } }, close: function() { this._curPath.closed = !0; }, _addPath: function() { var t = this._pathLength, e = this._paths[t]; if (e) e.reset(); else { e = new _(); this._paths.push(e); } this._pathLength++; this._curPath = e; return e; }, _addPoint: function(t, e, i) { var n = this._curPath; if (n) { var r, s = this._points, o = n.points; if (r = s[this._pointsOffset++]) { r.x = t; r.y = e; } else { r = new u(t, e); s.push(r); } r.flags = i; o.push(r); } }, requestRenderData: function() { var t = new r.default(), e = new c(h._handle, l); t.meshbuffer = e; this._renderDatas.push(t); var i = new n.default(); i._vertexBuffer = e._vb; i._indexBuffer = e._ib; i._start = 0; t.ia = i; return t; }, getRenderDatas: function() { 0 === this._renderDatas.length && this.requestRenderData(); return this._renderDatas; } }); e.exports = f; }), { "../../../../../renderer/core/input-assembler": 339, "../../../../../renderer/render-data/ia-render-data": 368, "../../../../graphics/helper": 143, "../../../../graphics/types": 145, "../../../index": 244, "../../mesh-buffer": 280, "../../vertex-format": 284 } ], 255: [ (function(t, e, i) { "use strict"; var n = t("../../../../graphics/graphics"), r = t("../../../../graphics/types").PointFlags, s = n.LineJoin, o = n.LineCap, a = t("./earcut"), c = t("./impl"), l = Math.PI, h = Math.min, u = Math.max, _ = Math.ceil, f = Math.acos, d = Math.cos, m = Math.sin, p = Math.atan2, v = (Math.abs, null), y = null, g = 0; function x(t, e, i) { var n = 2 * f(t / (t + i)); return u(2, _(e / n)); } function C(t, e, i) { return t < e ? e : t > i ? i : t; } var b = { createImpl: function(t) { return new c(t); }, updateRenderData: function(t) { for (var e = t._impl.getRenderDatas(), i = 0, n = e.length; i < n; i++) e[i].material = t.sharedMaterials[0]; }, fillBuffers: function(t, e) { e._flush(); var i = e.node; e.node = t.node; this.renderIA(t, e); e.node = i; }, renderIA: function(t, e) { for (var i = t._impl.getRenderDatas(), n = 0, r = i.length; n < r; n++) { var s = i[n], o = s.meshbuffer; s.ia._count = o.indiceStart; e._flushIA(s); o.uploadData(); } }, genRenderData: function(t, e) { var i = y.getRenderDatas(), n = i[y._dataOffset], r = n.meshbuffer, s = r.vertexStart + e; if (s > 65535 || 3 * s > 131070) { ++y._dataOffset; s = e; if (y._dataOffset < i.length) n = i[y._dataOffset]; else { n = y.requestRenderData(t); i[y._dataOffset] = n; } n.material = t.sharedMaterials[0]; r = n.meshbuffer; } s > r.vertexOffset && r.requestStatic(e, 3 * e); return n; }, stroke: function(t) { g = t._strokeColor._val; this._flattenPaths(t._impl); this._expandStroke(t); t._impl._updatePathOffset = !0; }, fill: function(t) { g = t._fillColor._val; this._expandFill(t); t._impl._updatePathOffset = !0; }, _expandStroke: function(t) { var e = .5 * t.lineWidth, i = t.lineCap, n = t.lineJoin, a = t.miterLimit; y = t._impl; var c = x(e, l, y._tessTol); this._calculateJoins(y, e, n, a); for (var h = y._paths, u = 0, _ = y._pathOffset, f = y._pathLength; _ < f; _++) { var d = h[_], m = d.points.length; n === s.ROUND ? u += 2 * (m + d.nbevel * (c + 2) + 1) : u += 2 * (m + 5 * d.nbevel + 1); d.closed || (i === o.ROUND ? u += 2 * (2 * c + 2) : u += 12); } for (var p = (v = this.genRenderData(t, u)).meshbuffer, g = p._vData, C = p._iData, b = y._pathOffset, A = y._pathLength; b < A; b++) { var S, w = h[b], T = w.points, E = T.length, M = p.vertexStart, B = void 0, D = void 0, I = void 0, P = void 0; if (S = w.closed) { B = T[E - 1]; D = T[0]; I = 0; P = E; } else { B = T[0]; D = T[1]; I = 1; P = E - 1; } if (!S) { var R = D.sub(B); R.normalizeSelf(); var L = R.x, F = R.y; i === o.BUTT ? this._buttCap(B, L, F, e, 0) : i === o.SQUARE ? this._buttCap(B, L, F, e, e) : i === o.ROUND && this._roundCapStart(B, L, F, e, c); } for (var O = I; O < P; ++O) { if (n === s.ROUND) this._roundJoin(B, D, e, e, c); else if (0 != (D.flags & (r.PT_BEVEL | r.PT_INNERBEVEL))) this._bevelJoin(B, D, e, e); else { this._vset(D.x + D.dmx * e, D.y + D.dmy * e); this._vset(D.x - D.dmx * e, D.y - D.dmy * e); } B = D; D = T[O + 1]; } if (S) { var V = 3 * M; this._vset(g[V], g[V + 1]); this._vset(g[V + 3], g[V + 4]); } else { var N = D.sub(B); N.normalizeSelf(); var k = N.x, z = N.y; i === o.BUTT ? this._buttCap(D, k, z, e, 0) : i === o.BUTT || i === o.SQUARE ? this._buttCap(D, k, z, e, e) : i === o.ROUND && this._roundCapEnd(D, k, z, e, c); } for (var G = p.indiceStart, U = M + 2, j = p.vertexStart; U < j; U++) { C[G++] = U - 2; C[G++] = U - 1; C[G++] = U; } p.indiceStart = G; } v = null; y = null; }, _expandFill: function(t) { for (var e = (y = t._impl)._paths, i = 0, n = y._pathOffset, r = y._pathLength; n < r; n++) { i += e[n].points.length; } for (var s = (v = this.genRenderData(t, i)).meshbuffer, o = s._vData, c = s._iData, l = y._pathOffset, h = y._pathLength; l < h; l++) { var u = e[l], _ = u.points, f = _.length; if (0 !== f) { for (var d = s.vertexStart, m = 0; m < f; ++m) this._vset(_[m].x, _[m].y); var p = s.indiceStart; if (u.complex) { for (var g = [], x = d, C = s.vertexStart; x < C; x++) { var b = 3 * x; g.push(o[b]); g.push(o[b + 1]); } var A = a(g, null, 2); if (!A || 0 === A.length) continue; for (var S = 0, w = A.length; S < w; S++) c[p++] = A[S] + d; } else for (var T = d, E = d + 2, M = s.vertexStart; E < M; E++) { c[p++] = T; c[p++] = E - 1; c[p++] = E; } s.indiceStart = p; } } v = null; y = null; }, _calculateJoins: function(t, e, i, n) { var o = 0; e > 0 && (o = 1 / e); for (var a = t._paths, c = t._pathOffset, l = t._pathLength; c < l; c++) { var _ = a[c], f = _.points, d = f.length, m = f[d - 1], p = f[0]; _.nbevel = 0; for (var v = 0; v < d; v++) { var y, g, x = m.dy, C = -m.dx, b = p.dy, A = -p.dx; p.dmx = .5 * (x + b); p.dmy = .5 * (C + A); if ((y = p.dmx * p.dmx + p.dmy * p.dmy) > 1e-6) { var S = 1 / y; S > 600 && (S = 600); p.dmx *= S; p.dmy *= S; } if (p.dx * m.dy - m.dx * p.dy > 0) { 0; p.flags |= r.PT_LEFT; } y * (g = u(11, h(m.len, p.len) * o)) * g < 1 && (p.flags |= r.PT_INNERBEVEL); p.flags & r.PT_CORNER && (y * n * n < 1 || i === s.BEVEL || i === s.ROUND) && (p.flags |= r.PT_BEVEL); 0 != (p.flags & (r.PT_BEVEL | r.PT_INNERBEVEL)) && _.nbevel++; m = p; p = f[v + 1]; } } }, _flattenPaths: function(t) { for (var e = t._paths, i = t._pathOffset, n = t._pathLength; i < n; i++) { var r = e[i], s = r.points, o = s[s.length - 1], a = s[0]; if (o.equals(a)) { r.closed = !0; s.pop(); o = s[s.length - 1]; } for (var c = 0, l = s.length; c < l; c++) { var h = a.sub(o); o.len = h.mag(); (h.x || h.y) && h.normalizeSelf(); o.dx = h.x; o.dy = h.y; o = a; a = s[c + 1]; } } }, _chooseBevel: function(t, e, i, n) { var r = i.x, s = i.y, o = void 0, a = void 0, c = void 0, l = void 0; if (0 !== t) { o = r + e.dy * n; a = s - e.dx * n; c = r + i.dy * n; l = s - i.dx * n; } else { o = c = r + i.dmx * n; a = l = s + i.dmy * n; } return [ o, a, c, l ]; }, _buttCap: function(t, e, i, n, r) { var s = t.x - e * r, o = t.y - i * r, a = i, c = -e; this._vset(s + a * n, o + c * n); this._vset(s - a * n, o - c * n); }, _roundCapStart: function(t, e, i, n, r) { for (var s = t.x, o = t.y, a = i, c = -e, h = 0; h < r; h++) { var u = h / (r - 1) * l, _ = d(u) * n, f = m(u) * n; this._vset(s - a * _ - e * f, o - c * _ - i * f); this._vset(s, o); } this._vset(s + a * n, o + c * n); this._vset(s - a * n, o - c * n); }, _roundCapEnd: function(t, e, i, n, r) { var s = t.x, o = t.y, a = i, c = -e; this._vset(s + a * n, o + c * n); this._vset(s - a * n, o - c * n); for (var h = 0; h < r; h++) { var u = h / (r - 1) * l, _ = d(u) * n, f = m(u) * n; this._vset(s, o); this._vset(s - a * _ + e * f, o - c * _ + i * f); } }, _roundJoin: function(t, e, i, n, s) { var o = t.dy, a = -t.dx, c = e.dy, h = -e.dx, u = e.x, f = e.y; if (0 != (e.flags & r.PT_LEFT)) { var v = this._chooseBevel(e.flags & r.PT_INNERBEVEL, t, e, i), y = v[0], g = v[1], x = v[2], b = v[3], A = p(-a, -o), S = p(-h, -c); S > A && (S -= 2 * l); this._vset(y, g); this._vset(u - o * n, e.y - a * n); for (var w = C(_((A - S) / l) * s, 2, s), T = 0; T < w; T++) { var E = A + T / (w - 1) * (S - A), M = u + d(E) * n, B = f + m(E) * n; this._vset(u, f); this._vset(M, B); } this._vset(x, b); this._vset(u - c * n, f - h * n); } else { var D = this._chooseBevel(e.flags & r.PT_INNERBEVEL, t, e, -n), I = D[0], P = D[1], R = D[2], L = D[3], F = p(a, o), O = p(h, c); O < F && (O += 2 * l); this._vset(u + o * n, f + a * n); this._vset(I, P); for (var V = C(_((O - F) / l) * s, 2, s), N = 0; N < V; N++) { var k = F + N / (V - 1) * (O - F), z = u + d(k) * i, G = f + m(k) * i; this._vset(z, G); this._vset(u, f); } this._vset(u + c * n, f + h * n); this._vset(R, L); } }, _bevelJoin: function(t, e, i, n) { var s = void 0, o = void 0, a = void 0, c = void 0, l = void 0, h = void 0, u = void 0, _ = void 0, f = t.dy, d = -t.dx, m = e.dy, p = -e.dx; if (e.flags & r.PT_LEFT) { var v = this._chooseBevel(e.flags & r.PT_INNERBEVEL, t, e, i); l = v[0]; h = v[1]; u = v[2]; _ = v[3]; this._vset(l, h); this._vset(e.x - f * n, e.y - d * n); this._vset(u, _); this._vset(e.x - m * n, e.y - p * n); } else { var y = this._chooseBevel(e.flags & r.PT_INNERBEVEL, t, e, -n); s = y[0]; o = y[1]; a = y[2]; c = y[3]; this._vset(e.x + f * i, e.y + d * i); this._vset(s, o); this._vset(e.x + m * i, e.y + p * i); this._vset(a, c); } }, _vset: function(t, e) { var i = v.meshbuffer, n = 3 * i.vertexStart, r = i._vData, s = i._uintVData; r[n] = t; r[n + 1] = e; s[n + 2] = g; i.vertexStart++; i._dirty = !0; } }; n._assembler = b; e.exports = b; }), { "../../../../graphics/graphics": 142, "../../../../graphics/types": 145, "./earcut": 253, "./impl": 254 } ], 256: [ (function(t, e, i) { "use strict"; t("./sprite"); t("./mask-assembler"); t("./graphics"); t("./label"); t("./motion-streak"); }), { "./graphics": 255, "./label": 263, "./mask-assembler": 264, "./motion-streak": 265, "./sprite": 278 } ], 257: [ (function(t, e, i) { "use strict"; var n = t("../../../../../platform/js"), r = t("../../../../utils/label/bmfont"), s = t("../../utils").fillMeshVertices; e.exports = n.addon({ createData: function(t) { return t.requestRenderData(); }, fillBuffers: function(t, e) { var i = t.node; s(i, e._meshBuffer, t._renderData, i._color._val); }, appendQuad: function(t, e, i, n, r, s, o) { var a = t.dataLength; t.dataLength += 4; t.vertexCount = t.dataLength; t.indiceCount = t.dataLength / 2 * 3; var c = t._data, l = e.width, h = e.height, u = i.width, _ = i.height, f = void 0, d = void 0, m = void 0, p = void 0; if (n) { f = i.x / l; m = (i.x + _) / l; d = (i.y + u) / h; p = i.y / h; c[a].u = f; c[a].v = p; c[a + 1].u = f; c[a + 1].v = d; c[a + 2].u = m; c[a + 2].v = p; c[a + 3].u = m; c[a + 3].v = d; } else { f = i.x / l; m = (i.x + u) / l; d = (i.y + _) / h; p = i.y / h; c[a].u = f; c[a].v = d; c[a + 1].u = m; c[a + 1].v = d; c[a + 2].u = f; c[a + 2].v = p; c[a + 3].u = m; c[a + 3].v = p; } c[a].x = r; c[a].y = s - _ * o; c[a + 1].x = r + u * o; c[a + 1].y = s - _ * o; c[a + 2].x = r; c[a + 2].y = s; c[a + 3].x = r + u * o; c[a + 3].y = s; } }, r); }), { "../../../../../platform/js": 221, "../../../../utils/label/bmfont": 248, "../../utils": 279 } ], 258: [ (function(t, e, i) { "use strict"; var n = t("../../../../../platform/js"), r = t("./bmfont"), s = t("../../../../utils/label/letter-font"), o = t("../../utils").fillMeshVertices, a = cc.color(255, 255, 255, 255); e.exports = n.addon({ createData: function(t) { return t.requestRenderData(); }, fillBuffers: function(t, e) { var i = t.node; a._fastSetA(i.color.a); o(i, e._meshBuffer, t._renderData, a._val); }, appendQuad: r.appendQuad }, s); }), { "../../../../../platform/js": 221, "../../../../utils/label/letter-font": 250, "../../utils": 279, "./bmfont": 257 } ], 259: [ (function(t, e, i) { "use strict"; var n = t("../../../../../platform/js"), r = t("../../../../utils/label/ttf"), s = t("../../../../../components/CCLabelShadow"), o = t("../../utils").fillMeshVertices, a = cc.color(255, 255, 255, 255); e.exports = n.addon({ createData: function(t) { var e = t.requestRenderData(); e.dataLength = 4; e.vertexCount = 4; e.indiceCount = 6; return e; }, fillBuffers: function(t, e) { var i = t.node; a._fastSetA(i.color.a); o(i, e._meshBuffer, t._renderData, a._val); }, _updateVerts: function(t) { var e = t._renderData, i = t._frame.uv, n = t.node, r = t._ttfTexture.width, o = t._ttfTexture.height, a = n.anchorX * n.width, c = n.anchorY * n.height, l = s && t.getComponent(s); if (l && l._enabled) { var h = (r - n.width) / 2, u = (o - n.height) / 2, _ = l.offset; -_.x > h ? a += r - n.width : h > _.x && (a += h - _.x); -_.y > u ? c += o - n.height : u > _.y && (c += u - _.y); } var f = e._data; f[0].x = -a; f[0].y = -c; f[1].x = r - a; f[1].y = -c; f[2].x = -a; f[2].y = o - c; f[3].x = r - a; f[3].y = o - c; f[0].u = i[0]; f[0].v = i[1]; f[1].u = i[2]; f[1].v = i[3]; f[2].u = i[4]; f[2].v = i[5]; f[3].u = i[6]; f[3].v = i[7]; } }, r); }), { "../../../../../components/CCLabelShadow": 99, "../../../../../platform/js": 221, "../../../../utils/label/ttf": 251, "../../utils": 279 } ], 260: [ (function(t, e, i) { "use strict"; var n = t("../../../../../platform/js"), r = t("../2d/bmfont"), s = t("../../utils").fillMeshVertices3D; e.exports = n.addon({ fillBuffers: function(t, e) { var i = t.node; s(i, e._meshBuffer3D, t._renderData, i._color._val); } }, r); }), { "../../../../../platform/js": 221, "../../utils": 279, "../2d/bmfont": 257 } ], 261: [ (function(t, e, i) { "use strict"; var n = t("../../../../../platform/js"), r = t("../2d/letter"), s = t("../../utils").fillMeshVertices3D, o = cc.color(255, 255, 255, 255); e.exports = n.addon({ fillBuffers: function(t, e) { var i = t.node; o._fastSetA(i.color.a); s(t.node, e._meshBuffer3D, t._renderData, o._val); } }, r); }), { "../../../../../platform/js": 221, "../../utils": 279, "../2d/letter": 258 } ], 262: [ (function(t, e, i) { "use strict"; var n = t("../../../../../platform/js"), r = t("../2d/ttf"), s = t("../../utils").fillMeshVertices3D, o = cc.color(255, 255, 255, 255); e.exports = n.addon({ fillBuffers: function(t, e) { var i = t.node; o._fastSetA(i.color.a); s(t.node, e._meshBuffer3D, t._renderData, o._val); } }, r); }), { "../../../../../platform/js": 221, "../../utils": 279, "../2d/ttf": 259 } ], 263: [ (function(t, e, i) { "use strict"; var n = t("../../../../components/CCLabel"), r = t("./2d/ttf"), s = t("./2d/bmfont"), o = t("./2d/letter"), a = t("./3d/ttf"), c = t("./3d/bmfont"), l = t("./3d/letter"), h = { pool: [], get: function() { var t = this.pool.pop(); if (!t) { var e = document.createElement("canvas"); t = { canvas: e, context: e.getContext("2d") }; } return t; }, put: function(t) { this.pool.length >= 32 || this.pool.push(t); } }, u = { getAssembler: function(t) { var e = t.node.is3DNode, i = e ? a : r; t.font instanceof cc.BitmapFont ? i = e ? c : s : t.cacheMode === n.CacheMode.CHAR && (cc.sys.browserType === cc.sys.BROWSER_TYPE_WECHAT_GAME_SUB ? cc.warn("sorry, subdomain does not support CHAR mode currently!") : i = e ? l : o); return i; }, updateRenderData: function(t) { return t.__allocedDatas; } }; n._assembler = u; n._canvasPool = h; e.exports = u; }), { "../../../../components/CCLabel": 97, "./2d/bmfont": 257, "./2d/letter": 258, "./2d/ttf": 259, "./3d/bmfont": 260, "./3d/letter": 261, "./3d/ttf": 262 } ], 264: [ (function(t, e, i) { "use strict"; var n = t("../../../components/CCMask"), r = t("../../render-flow"), s = t("./sprite/2d/simple"), o = t("./graphics"), a = t("../../../../renderer/gfx"), c = t("../vertex-format").vfmtPos, l = 8, h = []; function u() { return 1 << h.length - 1; } function _() { for (var t = 0, e = 0; e < h.length; ++e) t += 1 << e; return t; } function f(t, e, i, n, r, s) { for (var o = t.effect.getDefaultTechnique().passes, c = a.STENCIL_OP_KEEP, l = a.STENCIL_OP_KEEP, h = 0; h < o.length; ++h) { var u = o[h]; u.setStencilFront(a.STENCIL_ENABLE, e, n, r, i, c, l, s); u.setStencilBack(a.STENCIL_ENABLE, e, n, r, i, c, l, s); } } function d(t) { h.length + 1 > l && cc.errorID(9e3, l); h.push(t); } function m(t, e) { 0 === h.length && cc.errorID(9001); h.pop(); 0 === h.length ? e._flushMaterial(t._exitMaterial) : y(e); } function p(t, e) { var i = a.DS_FUNC_NEVER, n = u(), r = n, s = n, o = t.inverted ? a.STENCIL_OP_REPLACE : a.STENCIL_OP_ZERO; f(t._clearMaterial, i, o, n, r, s); var l = e.getBuffer("mesh", c), h = l.request(4, 6), _ = h.indiceOffset, d = h.byteOffset >> 2, m = h.vertexOffset, p = l._vData, v = l._iData; p[d++] = -1; p[d++] = -1; p[d++] = -1; p[d++] = 1; p[d++] = 1; p[d++] = 1; p[d++] = 1; p[d++] = -1; v[_++] = m; v[_++] = m + 3; v[_++] = m + 1; v[_++] = m + 1; v[_++] = m + 3; v[_++] = m + 2; e.node = e._dummyNode; e.material = t._clearMaterial; e._flush(); } function v(t, e) { var i = a.DS_FUNC_NEVER, r = u(), c = r, l = r, h = t.inverted ? a.STENCIL_OP_ZERO : a.STENCIL_OP_REPLACE; f(t.sharedMaterials[0], i, h, r, c, l); e.node = t.node; e.material = t.sharedMaterials[0]; if (t._type === n.Type.IMAGE_STENCIL) { s.fillBuffers(t, e); e._flush(); } else o.fillBuffers(t._graphics, e); } function y(t) { var e = a.DS_FUNC_EQUAL, i = a.STENCIL_OP_KEEP, n = _(), r = n, s = u(), o = h[h.length - 1]; f(o._enableMaterial, e, i, n, r, s); t._flushMaterial(o._enableMaterial); } var g = { updateRenderData: function(t) { t._renderData || (t._type === n.Type.IMAGE_STENCIL ? t._renderData = s.createData(t) : t._renderData = t.requestRenderData()); var e = t._renderData; if (t._type === n.Type.IMAGE_STENCIL) if (t.spriteFrame) { var i = t.node._contentSize, r = t.node._anchorPoint; e.updateSizeNPivot(i.width, i.height, r.x, r.y); e.dataLength = 4; s.updateRenderData(t); e.material = t.sharedMaterials[0]; } else t.setMaterial(0, null); else { t._graphics.setMaterial(0, t.sharedMaterials[0]); o.updateRenderData(t._graphics); } }, fillBuffers: function(t, e) { if (t._type !== n.Type.IMAGE_STENCIL || t.spriteFrame) { d(t); p(t, e); v(t, e); y(e); } t.node._renderFlag |= r.FLAG_UPDATE_RENDER_DATA; } }, x = { fillBuffers: function(t, e) { (t._type !== n.Type.IMAGE_STENCIL || t.spriteFrame) && m(t, e); t.node._renderFlag |= r.FLAG_UPDATE_RENDER_DATA; } }; n._assembler = g; n._postAssembler = x; e.exports = { front: g, end: x }; }), { "../../../../renderer/gfx": 349, "../../../components/CCMask": 101, "../../render-flow": 245, "../vertex-format": 284, "./graphics": 255, "./sprite/2d/simple": 269 } ], 265: [ (function(t, e, i) { "use strict"; var n = t("../../../components/CCMotionStreak"), r = t("../../render-flow"); function s(t, e) { this.point = t || cc.v2(); this.dir = e || cc.v2(); this.distance = 0; this.time = 0; } s.prototype.setPoint = function(t, e) { this.point.x = t; this.point.y = e; }; s.prototype.setDir = function(t, e) { this.dir.x = t; this.dir.y = e; }; cc.v2(), cc.v2(); var o = cc.v2(), a = cc.v2(); function c(t, e) { t.x = -e.y; t.y = e.x; return t; } var l = { updateRenderData: function(t) { var e = cc.director.getDeltaTime(); this.update(t, e); var i = t._renderData, n = t.node._contentSize, r = t.node._anchorPoint; i.updateSizeNPivot(n.width, n.height, r.x, r.y); i.material = t.sharedMaterials[0]; }, update: function(t, e) { var i = t._renderData; i || (i = t._renderData = t.requestRenderData()); 0; var n = t._stroke / 2, r = t.node._worldMatrix, l = (r.m00, r.m01, r.m04, r.m05, r.m12), h = r.m13, u = t._points, _ = void 0; if (u.length > 1) { var f = u[0].point.x - l, d = u[0].point.y - h; f * f + d * d < t.minSeg && (_ = u[0]); } if (!_) { _ = new s(); u.splice(0, 0, _); } _.setPoint(l, h); _.time = t._fadeTime + e; i.dataLength = 0; if (!(u.length < 2)) { var m = i._data, p = t._color, v = p.r, y = p.g, g = p.b, x = p.a, C = u[1]; C.distance = _.point.sub(C.point, a).mag(); a.normalizeSelf(); C.setDir(a.x, a.y); _.setDir(a.x, a.y); for (var b = t._fadeTime, A = !1, S = u.length - 1; S >= 0; S--) { var w = u[S], T = w.point, E = w.dir; w.time -= e; if (w.time < 0) u.splice(S, 1); else { var M = w.time / b, B = u[S - 1]; if (!A) { if (!B) { u.splice(S, 1); continue; } T.x = B.point.x - E.x * M; T.y = B.point.y - E.y * M; } A = !0; c(o, E); i.dataLength += 2; var D = (M * x << 24 >>> 0) + (g << 16) + (y << 8) + v, I = m.length - 1; m[I].x = T.x - o.x * n; m[I].y = T.y - o.y * n; m[I].u = 0; m[I].v = M; m[I].color = D; m[--I].x = T.x + o.x * n; m[I].y = T.y + o.y * n; m[I].u = 1; m[I].v = M; m[I].color = D; } } i.vertexCount = i.dataLength; i.indiceCount = i.vertexCount <= 2 ? 0 : 3 * (i.vertexCount - 2); } }, fillBuffers: function(t, e) { t.node; for (var i = t._renderData, n = i._data, s = e._meshBuffer, o = i.vertexCount, a = s.request(o, i.indiceCount), c = a.indiceOffset, l = a.byteOffset >> 2, h = a.vertexOffset, u = s._vData, _ = s._uintVData, f = s._iData, d = void 0, m = 0, p = i.vertexCount; m < p; m++) { d = n[m]; u[l++] = d.x; u[l++] = d.y; u[l++] = d.u; u[l++] = d.v; _[l++] = d.color; } for (var v = 0, y = i.vertexCount; v < y; v += 2) { var g = h + v; f[c++] = g; f[c++] = g + 2; f[c++] = g + 1; f[c++] = g + 1; f[c++] = g + 2; f[c++] = g + 3; } t.node._renderFlag |= r.FLAG_UPDATE_RENDER_DATA; } }; e.exports = n._assembler = l; }), { "../../../components/CCMotionStreak": 102, "../../render-flow": 245 } ], 266: [ (function(t, e, i) { "use strict"; var n = t("../../../../../components/CCSprite").FillType, r = t("../../../../utils/utils").packToDynamicAtlas, s = t("../../utils").fillVerticesWithoutCalc; e.exports = { updateRenderData: function(t) { r(t, t._spriteFrame); var e = t._renderData; if (e && t.spriteFrame) { var i = e.uvDirty, n = e.vertDirty; if (!i && !n) return t.__allocedDatas; var s = t._fillStart, o = t._fillRange; if (o < 0) { s += o; o = -o; } o = s + o; s = (s = s > 1 ? 1 : s) < 0 ? 0 : s; o = (o = o > 1 ? 1 : o) < 0 ? 0 : o; var a = s + (o = (o -= s) < 0 ? 0 : o); a = a > 1 ? 1 : a; i && this.updateUVs(t, s, a); if (n) { this.updateVerts(t, s, a); this.updateWorldVerts(t); } } }, updateUVs: function(t, e, i) { var r = t._spriteFrame, s = t._renderData, o = s._data, a = r._texture.width, c = r._texture.height, l = r._rect, h = void 0, u = void 0, _ = void 0, f = void 0, d = void 0, m = void 0, p = void 0, v = void 0, y = void 0, g = void 0, x = void 0, C = void 0; if (r._rotated) { h = l.x / a; u = (l.y + l.width) / c; _ = (l.x + l.height) / a; f = l.y / c; d = p = h; y = x = _; v = C = u; m = g = f; } else { h = l.x / a; u = (l.y + l.height) / c; _ = (l.x + l.width) / a; f = l.y / c; d = y = h; p = x = _; m = v = u; g = C = f; } switch (t._fillType) { case n.HORIZONTAL: o[0].u = d + (p - d) * e; o[0].v = m + (v - m) * e; o[1].u = d + (p - d) * i; o[1].v = m + (v - m) * i; o[2].u = y + (x - y) * e; o[2].v = g + (C - g) * e; o[3].u = y + (x - y) * i; o[3].v = g + (C - g) * i; break; case n.VERTICAL: o[0].u = d + (y - d) * e; o[0].v = m + (g - m) * e; o[1].u = p + (x - p) * e; o[1].v = v + (C - v) * e; o[2].u = d + (y - d) * i; o[2].v = m + (g - m) * i; o[3].u = p + (x - p) * i; o[3].v = v + (C - v) * i; break; default: cc.errorID(2626); } s.uvDirty = !1; }, updateVerts: function(t, e, i) { var r = t._renderData, s = r._data, o = t.node, a = o.width, c = o.height, l = o.anchorX * a, h = o.anchorY * c, u = -l, _ = -h, f = a - l, d = c - h, m = void 0; switch (t._fillType) { case n.HORIZONTAL: m = u + (f - u) * i; u = u + (f - u) * e; f = m; break; case n.VERTICAL: m = _ + (d - _) * i; _ = _ + (d - _) * e; d = m; break; default: cc.errorID(2626); } s[4].x = u; s[4].y = _; s[5].x = f; s[5].y = _; s[6].x = u; s[6].y = d; s[7].x = f; s[7].y = d; r.vertDirty = !1; }, createData: function(t) { var e = t.requestRenderData(); e.dataLength = 8; e.vertexCount = 4; e.indiceCount = 6; for (var i = e._data, n = 0; n < i.length; n++) i[n].z = 0; return e; }, updateWorldVerts: function(t) { for (var e = t.node, i = t._renderData._data, n = e._worldMatrix, r = n.m00, s = n.m01, o = n.m04, a = n.m05, c = n.m12, l = n.m13, h = 0; h < 4; h++) { var u = i[h + 4], _ = i[h]; _.x = u.x * r + u.y * o + c; _.y = u.x * s + u.y * a + l; } }, fillBuffers: function(t, e) { e.worldMatDirty && this.updateWorldVerts(t); var i = e._meshBuffer, n = t.node, r = s(n, i, t._renderData, n._color._val), o = i._iData, a = r.indiceOffset, c = r.vertexOffset; o[a++] = c; o[a++] = c + 1; o[a++] = c + 2; o[a++] = c + 1; o[a++] = c + 3; o[a++] = c + 2; } }; }), { "../../../../../components/CCSprite": 111, "../../../../utils/utils": 252, "../../utils": 279 } ], 267: [ (function(t, e, i) { "use strict"; var n = t("../../utils").fillVerticesWithoutCalc, r = t("../../../../utils/utils").packToDynamicAtlas; e.exports = { createData: function(t) { return t.requestRenderData(); }, updateRenderData: function(t) { r(t, t._spriteFrame); var e = t._renderData, i = t.spriteFrame; if (e && i) { var n = i.vertices; if (n) { if (e.vertexCount !== n.x.length) { e.vertexCount = n.x.length; e.dataLength = 2 * e.vertexCount; e.uvDirty = e.vertDirty = !0; } e.indiceCount = n.triangles.length; e.uvDirty && this.updateUVs(t); if (e.vertDirty) { this.updateVerts(t); this.updateWorldVerts(t); } } } }, updateUVs: function(t) { for (var e = t.spriteFrame.vertices, i = e.nu, n = e.nv, r = t._renderData, s = r._data, o = 0, a = i.length; o < a; o++) { var c = s[o]; c.u = i[o]; c.v = n[o]; } r.uvDirty = !1; }, updateVerts: function(t) { var e = t.node, i = Math.abs(e.width), n = Math.abs(e.height), r = e.anchorX * i, s = e.anchorY * n, o = t.spriteFrame, a = o.vertices, c = a.x, l = a.y, h = o._originalSize.width, u = o._originalSize.height, _ = o._rect.width, f = o._rect.height, d = o._offset.x + (h - _) / 2, m = o._offset.y + (u - f) / 2, p = i / (t.trim ? _ : h), v = n / (t.trim ? f : u), y = t._renderData, g = y._data; if (t.trim) for (var x = 0, C = c.length; x < C; x++) { var b = g[x + C]; b.x = (c[x] - d) * p - r; b.y = (u - l[x] - m) * v - s; } else for (var A = 0, S = c.length; A < S; A++) { var w = g[A + S]; w.x = c[A] * p - r; w.y = (u - l[A]) * v - s; } y.vertDirty = !1; }, updateWorldVerts: function(t) { for (var e = t.node, i = t._renderData, n = i._data, r = e._worldMatrix, s = r.m00, o = r.m01, a = r.m04, c = r.m05, l = r.m12, h = r.m13, u = 0, _ = i.vertexCount; u < _; u++) { var f = n[u + _], d = n[u]; d.x = f.x * s + f.y * a + l; d.y = f.x * o + f.y * c + h; } }, fillBuffers: function(t, e) { var i = t.spriteFrame.vertices; if (i) { e.worldMatDirty && this.updateWorldVerts(t); for (var r = e._meshBuffer, s = t.node, o = n(s, r, t._renderData, s._color._val), a = r._iData, c = o.indiceOffset, l = o.vertexOffset, h = i.triangles, u = 0, _ = h.length; u < _; u++) a[c++] = l + h[u]; } } }; }), { "../../../../utils/utils": 252, "../../utils": 279 } ], 268: [ (function(t, e, i) { "use strict"; var n = t("../../utils").fillVertices, r = t("../../../../utils/utils").packToDynamicAtlas, s = 2 * Math.PI, o = [ cc.v2(0, 0), cc.v2(0, 0), cc.v2(0, 0), cc.v2(0, 0) ], a = [ 0, 0, 0, 0 ], c = [ 0, 0, 0, 0, 0, 0, 0, 0 ], l = [ cc.v2(0, 0), cc.v2(0, 0), cc.v2(0, 0), cc.v2(0, 0) ], h = [ cc.v2(0, 0), cc.v2(0, 0), cc.v2(0, 0), cc.v2(0, 0) ], u = cc.v2(0, 0), _ = []; function f(t, e, i, n, r, s, o) { var a = Math.sin(s), c = Math.cos(s), l = void 0, h = void 0; if (0 !== Math.cos(s)) { l = a / c; if ((t - r.x) * c > 0) { var u = r.y + l * (t - r.x); o[0].x = t; o[0].y = u; } if ((e - r.x) * c > 0) { var _ = r.y + l * (e - r.x); o[2].x = e; o[2].y = _; } } if (0 !== Math.sin(s)) { h = c / a; if ((n - r.y) * a > 0) { var f = r.x + h * (n - r.y); o[3].x = f; o[3].y = n; } if ((i - r.y) * a > 0) { var d = r.x + h * (i - r.y); o[1].x = d; o[1].y = i; } } } function d(t) { var e = t.node, i = e.width, n = e.height, r = e.anchorX * i, s = e.anchorY * n, c = -r, l = -s, h = i - r, f = n - s, d = a; d[0] = c; d[1] = l; d[2] = h; d[3] = f; var m = t._fillCenter, p = u.x = Math.min(Math.max(0, m.x), 1) * (h - c) + c, v = u.y = Math.min(Math.max(0, m.y), 1) * (f - l) + l; o[0].x = o[3].x = c; o[1].x = o[2].x = h; o[0].y = o[1].y = l; o[2].y = o[3].y = f; _.length = 0; p !== d[0] && (_[0] = [ 3, 0 ]); p !== d[2] && (_[2] = [ 1, 2 ]); v !== d[1] && (_[1] = [ 0, 1 ]); v !== d[3] && (_[3] = [ 2, 3 ]); } function m(t) { var e = t._texture.width, i = t._texture.height, n = t._rect, r = void 0, s = void 0, o = void 0, a = void 0, l = c; if (t._rotated) { r = n.x / e; s = (n.x + n.height) / e; o = n.y / i; a = (n.y + n.width) / i; l[0] = l[2] = r; l[4] = l[6] = s; l[3] = l[7] = a; l[1] = l[5] = o; } else { r = n.x / e; s = (n.x + n.width) / e; o = n.y / i; a = (n.y + n.height) / i; l[0] = l[4] = r; l[2] = l[6] = s; l[1] = l[3] = a; l[5] = l[7] = o; } } function p(t, e) { var i, n; i = e.x - t.x; n = e.y - t.y; if (0 !== i || 0 !== n) { if (0 === i) return n > 0 ? .5 * Math.PI : 1.5 * Math.PI; var r = Math.atan(n / i); i < 0 && (r += Math.PI); return r; } } function v(t, e, i, n, r) { var s = a, o = s[0], c = s[1], l = s[2], h = s[3]; t[e].x = i.x; t[e].y = i.y; t[e + 1].x = n.x; t[e + 1].y = n.y; t[e + 2].x = r.x; t[e + 2].y = r.y; y((i.x - o) / (l - o), (i.y - c) / (h - c), t, e); y((n.x - o) / (l - o), (n.y - c) / (h - c), t, e + 1); y((r.x - o) / (l - o), (r.y - c) / (h - c), t, e + 2); } function y(t, e, i, n) { var r = c, s = r[0] + (r[2] - r[0]) * t, o = r[4] + (r[6] - r[4]) * t, a = r[1] + (r[3] - r[1]) * t, l = r[5] + (r[7] - r[5]) * t, h = i[n]; h.u = s + (o - s) * e; h.v = a + (l - a) * e; } e.exports = { createData: function(t) { return t.requestRenderData(); }, updateRenderData: function(t) { var e = t._renderData, i = t.spriteFrame; if (e && i && (e.vertDirty || e.uvDirty)) { var n = e._data; r(t, i); var c = t._fillStart, y = t._fillRange; if (y < 0) { c += y; y = -y; } for (;c >= 1; ) c -= 1; for (;c < 0; ) c += 1; var g = (c *= s) + (y *= s); d(t); m(i); f(a[0], a[2], a[1], a[3], u, c, l); f(a[0], a[2], a[1], a[3], u, c + y, h); for (var x = 0, C = 0; C < 4; ++C) { var b = _[C]; if (b) if (y >= s) { e.dataLength = x + 3; v(n, x, u, o[b[0]], o[b[1]]); x += 3; } else { var A = p(u, o[b[0]]), S = p(u, o[b[1]]); S < A && (S += s); A -= s; S -= s; for (var w = 0; w < 3; ++w) { if (A >= g) ; else if (A >= c) { e.dataLength = x + 3; v(n, x, u, o[b[0]], S >= g ? h[C] : o[b[1]]); x += 3; } else if (S <= c) ; else if (S <= g) { e.dataLength = x + 3; v(n, x, u, l[C], o[b[1]]); x += 3; } else { e.dataLength = x + 3; v(n, x, u, l[C], h[C]); x += 3; } A += s; S += s; } } } e.indiceCount = e.vertexCount = x; e.vertDirty = e.uvDirty = !1; } }, fillBuffers: function(t, e) { for (var i = t.node, r = i._color._val, s = e._meshBuffer, o = t._renderData, a = n(i, s, o, r), c = a.indiceOffset, l = a.vertexOffset, h = s._iData, u = 0; u < o.dataLength; u++) h[c + u] = l + u; } }; }), { "../../../../utils/utils": 252, "../../utils": 279 } ], 269: [ (function(t, e, i) { "use strict"; var n = t("../../../../utils/utils").packToDynamicAtlas; e.exports = { updateRenderData: function(t) { n(t, t._spriteFrame); var e = t._renderData; e && t.spriteFrame && e.vertDirty && this.updateVerts(t); }, fillBuffers: function(t, e) { var i = t._renderData._data, n = t.node, r = n._color._val, s = n._worldMatrix, o = s.m00, a = s.m01, c = s.m04, l = s.m05, h = s.m12, u = s.m13, _ = e._meshBuffer, f = _.request(4, 6), d = f.indiceOffset, m = f.byteOffset >> 2, p = f.vertexOffset, v = _._vData, y = _._uintVData, g = _._iData, x = t._spriteFrame.uv; v[m + 2] = x[0]; v[m + 3] = x[1]; v[m + 7] = x[2]; v[m + 8] = x[3]; v[m + 12] = x[4]; v[m + 13] = x[5]; v[m + 17] = x[6]; v[m + 18] = x[7]; var C = i[0], b = i[3], A = C.x, S = b.x, w = C.y, T = b.y, E = o * A, M = o * S, B = a * A, D = a * S, I = c * w, P = c * T, R = l * w, L = l * T; v[m] = E + I + h; v[m + 1] = B + R + u; v[m + 5] = M + I + h; v[m + 6] = D + R + u; v[m + 10] = E + P + h; v[m + 11] = B + L + u; v[m + 15] = M + P + h; v[m + 16] = D + L + u; y[m + 4] = r; y[m + 9] = r; y[m + 14] = r; y[m + 19] = r; g[d++] = p; g[d++] = p + 1; g[d++] = p + 2; g[d++] = p + 1; g[d++] = p + 3; g[d++] = p + 2; }, createData: function(t) { var e = t.requestRenderData(); e.dataLength = 4; e.vertexCount = 4; e.indiceCount = 6; return e; }, updateVerts: function(t) { var e = t._renderData, i = t.node, n = e._data, r = i.width, s = i.height, o = i.anchorX * r, a = i.anchorY * s, c = void 0, l = void 0, h = void 0, u = void 0; if (t.trim) { c = -o; l = -a; h = r - o; u = s - a; } else { var _ = t.spriteFrame, f = _._originalSize.width, d = _._originalSize.height, m = _._rect.width, p = _._rect.height, v = _._offset, y = r / f, g = s / d, x = v.x + (f - m) / 2, C = v.x - (f - m) / 2, b = v.y + (d - p) / 2, A = v.y - (d - p) / 2; c = x * y - o; l = b * g - a; h = r + C * y - o; u = s + A * g - a; } n[0].x = c; n[0].y = l; n[3].x = h; n[3].y = u; e.vertDirty = !1; } }; }), { "../../../../utils/utils": 252 } ], 270: [ (function(t, e, i) { "use strict"; var n = t("../../../../utils/utils").packToDynamicAtlas; e.exports = { createData: function(t) { var e = t.requestRenderData(); e.dataLength = 20; e.vertexCount = 16; e.indiceCount = 54; return e; }, updateRenderData: function(t) { n(t, t._spriteFrame); var e = t._renderData; if (e && t.spriteFrame) { if (e.vertDirty) { this.updateVerts(t); this.updateWorldVerts(t); } } }, updateVerts: function(t) { var e = t._renderData, i = e._data, n = t.node, r = n.width, s = n.height, o = n.anchorX * r, a = n.anchorY * s, c = t.spriteFrame, l = c.insetLeft, h = c.insetRight, u = c.insetTop, _ = c.insetBottom, f = r - l - h, d = s - u - _, m = r / (l + h), p = s / (u + _); m = isNaN(m) || m > 1 ? 1 : m; p = isNaN(p) || p > 1 ? 1 : p; f = f < 0 ? 0 : f; d = d < 0 ? 0 : d; i[0].x = -o; i[0].y = -a; i[1].x = l * m - o; i[1].y = _ * p - a; i[2].x = i[1].x + f; i[2].y = i[1].y + d; i[3].x = r - o; i[3].y = s - a; e.vertDirty = !1; }, fillBuffers: function(t, e) { e.worldMatDirty && this.updateWorldVerts(t); for (var i = t._renderData, n = t.node._color._val, r = i._data, s = e._meshBuffer, o = i.vertexCount, a = t.spriteFrame.uvSliced, c = s.request(o, i.indiceCount), l = c.indiceOffset, h = c.byteOffset >> 2, u = c.vertexOffset, _ = s._vData, f = s._uintVData, d = s._iData, m = 4; m < 20; ++m) { var p = r[m], v = a[m - 4]; _[h++] = p.x; _[h++] = p.y; _[h++] = v.u; _[h++] = v.v; f[h++] = n; } for (var y = 0; y < 3; ++y) for (var g = 0; g < 3; ++g) { var x = u + 4 * y + g; d[l++] = x; d[l++] = x + 1; d[l++] = x + 4; d[l++] = x + 1; d[l++] = x + 5; d[l++] = x + 4; } }, updateWorldVerts: function(t) { for (var e = t.node, i = t._renderData._data, n = e._worldMatrix, r = n.m00, s = n.m01, o = n.m04, a = n.m05, c = n.m12, l = n.m13, h = 0; h < 4; ++h) for (var u = i[h], _ = 0; _ < 4; ++_) { var f = i[_], d = i[4 + 4 * h + _]; d.x = f.x * r + u.y * o + c; d.y = f.x * s + u.y * a + l; } } }; }), { "../../../../utils/utils": 252 } ], 271: [ (function(t, e, i) { "use strict"; var n = t("../../../../utils/utils").packToDynamicAtlas; e.exports = { vertexOffset: 5, uvOffset: 2, colorOffset: 4, createData: function(t) { return t.requestRenderData(); }, updateRenderData: function(t) { n(t, t._spriteFrame); var e = t._renderData, i = t.spriteFrame; if (i && e && (e.uvDirty || e.vertDirty)) { var r = t.node, s = Math.abs(r.width), o = Math.abs(r.height), a = r.anchorX * s, c = r.anchorY * o, l = i._rect, h = l.width, u = l.height, _ = s / h, f = o / u, d = Math.ceil(f), m = Math.ceil(_), p = e._data; e.dataLength = Math.max(8, d + 1, m + 1); for (var v = 0; v <= m; ++v) p[v].x = Math.min(h * v, s) - a; for (var y = 0; y <= d; ++y) p[y].y = Math.min(u * y, o) - c; e.vertexCount = d * m * 4; e.indiceCount = d * m * 6; e.uvDirty = !1; e.vertDirty = !1; } }, fillVertices: function(t, e, i, n, r, s) { for (var o = i.m00, a = i.m01, c = i.m04, l = i.m05, h = i.m12, u = i.m13, _ = void 0, f = void 0, d = void 0, m = void 0, p = 0, v = n; p < v; ++p) { d = s[p].y; m = s[p + 1].y; for (var y = 0, g = r; y < g; ++y) { _ = s[y].x; f = s[y + 1].x; t[e] = _ * o + d * c + h; t[e + 1] = _ * a + d * l + u; t[e + 5] = f * o + d * c + h; t[e + 6] = f * a + d * l + u; t[e + 10] = _ * o + m * c + h; t[e + 11] = _ * a + m * l + u; t[e + 15] = f * o + m * c + h; t[e + 16] = f * a + m * l + u; e += 20; } } }, fillBuffers: function(t, e) { var i = t.node, n = i.is3DNode, r = i._color._val, s = t._renderData, o = s._data, a = n ? e._meshBuffer3D : e._meshBuffer, c = a.request(s.vertexCount, s.indiceCount), l = c.indiceOffset, h = c.byteOffset >> 2, u = c.vertexOffset, _ = a._vData, f = a._uintVData, d = a._iData, m = t.spriteFrame._rotated, p = t.spriteFrame.uv, v = t.spriteFrame._rect, y = Math.abs(i.width), g = Math.abs(i.height), x = y / v.width, C = g / v.height, b = Math.ceil(C), A = Math.ceil(x), S = i._worldMatrix; this.fillVertices(_, h, S, b, A, o); for (var w = this.vertexOffset, T = this.uvOffset, E = this.colorOffset, M = w, B = 2 * w, D = 3 * w, I = 4 * w, P = void 0, R = void 0, L = 0, F = b; L < F; ++L) { R = Math.min(1, C - L); for (var O = 0, V = A; O < V; ++O) { P = Math.min(1, x - O); var N = h + T, k = N + 1; if (m) { _[N] = p[0]; _[k] = p[1]; _[N + M] = p[0]; _[k + M] = p[1] + (p[7] - p[1]) * P; _[N + B] = p[0] + (p[6] - p[0]) * R; _[k + B] = p[1]; _[N + D] = _[N + B]; _[k + D] = _[k + M]; } else { _[N] = p[0]; _[k] = p[1]; _[N + M] = p[0] + (p[6] - p[0]) * P; _[k + M] = p[1]; _[N + B] = p[0]; _[k + B] = p[1] + (p[7] - p[1]) * R; _[N + D] = _[N + M]; _[k + D] = _[k + B]; } f[h + E] = r; f[h + E + M] = r; f[h + E + B] = r; f[h + E + D] = r; h += I; } } for (var z = s.indiceCount, G = 0; G < z; G += 6) { d[l++] = u; d[l++] = u + 1; d[l++] = u + 2; d[l++] = u + 1; d[l++] = u + 3; d[l++] = u + 2; u += 4; } } }; }), { "../../../../utils/utils": 252 } ], 272: [ (function(t, e, i) { "use strict"; var n = t("../../../../../platform/js"), r = t("../2d/bar-filled"), s = t("../../utils").fillVerticesWithoutCalc3D, o = cc.vmath.vec3; e.exports = n.addon({ updateWorldVerts: function(t) { for (var e = t.node, i = t._renderData._data, n = e._worldMatrix, r = 0; r < 4; r++) { var s = i[r + 4], a = i[r]; o.transformMat4(a, s, n); } }, fillBuffers: function(t, e) { e.worldMatDirty && this.updateWorldVerts(t); var i = e._meshBuffer3D, n = t.node, r = s(n, i, t._renderData, n._color._val), o = i._iData, a = r.indiceOffset, c = r.vertexOffset; o[a++] = c; o[a++] = c + 1; o[a++] = c + 2; o[a++] = c + 1; o[a++] = c + 3; o[a++] = c + 2; } }, r); }), { "../../../../../platform/js": 221, "../../utils": 279, "../2d/bar-filled": 266 } ], 273: [ (function(t, e, i) { "use strict"; var n = t("../../../../../platform/js"), r = t("../2d/mesh"), s = t("../../utils").fillVerticesWithoutCalc3D, o = cc.vmath.vec3, a = o.create(); e.exports = n.addon({ updateWorldVerts: function(t) { for (var e = t.node, i = t._renderData, n = i._data, r = e._worldMatrix, s = 0, c = i.vertexCount; s < c; s++) { var l = n[s + c], h = n[s]; o.set(a, l.x, l.y, 0); o.transformMat4(h, a, r); } }, fillBuffers: function(t, e) { var i = t.spriteFrame.vertices; if (i) { e.worldMatDirty && this.updateWorldVerts(t); for (var n = e._meshBuffer3D, r = t.node, o = s(r, n, t._renderData, r._color._val), a = n._iData, c = o.indiceOffset, l = o.vertexOffset, h = i.triangles, u = 0, _ = h.length; u < _; u++) a[c++] = l + h[u]; } } }, r); }), { "../../../../../platform/js": 221, "../../utils": 279, "../2d/mesh": 267 } ], 274: [ (function(t, e, i) { "use strict"; var n = t("../../../../../platform/js"), r = t("../2d/radial-filled"), s = t("../../utils").fillVertices3D; e.exports = n.addon({ fillBuffers: function(t, e) { for (var i = t.node, n = i._color._val, r = e._meshBuffer3D, o = t._renderData, a = s(i, r, o, n), c = a.indiceOffset, l = a.vertexOffset, h = r._iData, u = 0; u < o.dataLength; u++) h[c + u] = l + u; } }, r); }), { "../../../../../platform/js": 221, "../../utils": 279, "../2d/radial-filled": 268 } ], 275: [ (function(t, e, i) { "use strict"; var n = t("../../../../../platform/js"), r = t("../2d/simple"), s = cc.vmath.vec3; e.exports = n.addon({ fillBuffers: (function() { for (var t = [], e = 0; e < 4; e++) t.push(s.create()); return function(e, i) { var n = e._renderData._data, r = e.node, o = r._color._val, a = r._worldMatrix, c = i._meshBuffer3D, l = c.request(4, 6), h = l.byteOffset >> 2, u = l.indiceOffset, _ = l.vertexOffset, f = c._vData, d = c._uintVData, m = c._iData, p = n[0], v = n[3]; s.set(t[0], p.x, p.y, 0); s.set(t[1], v.x, p.y, 0); s.set(t[2], p.x, v.y, 0); s.set(t[3], v.x, v.y, 0); for (var y = e._spriteFrame.uv, g = 0; g < 4; g++) { var x = t[g]; s.transformMat4(x, x, a); f[h++] = x.x; f[h++] = x.y; f[h++] = x.z; var C = 2 * g; f[h++] = y[0 + C]; f[h++] = y[1 + C]; d[h++] = o; } m[u++] = _; m[u++] = _ + 1; m[u++] = _ + 2; m[u++] = _ + 1; m[u++] = _ + 3; m[u++] = _ + 2; }; })() }, r); }), { "../../../../../platform/js": 221, "../2d/simple": 269 } ], 276: [ (function(t, e, i) { "use strict"; var n = t("../../../../../platform/js"), r = t("../2d/sliced"), s = cc.vmath.vec3, o = s.create(); e.exports = n.addon({ fillBuffers: function(t, e) { e.worldMatDirty && this.updateWorldVerts(t); for (var i = t._renderData, n = t.node._color._val, r = i._data, s = e._meshBuffer3D, o = i.vertexCount, a = t.spriteFrame.uvSliced, c = s.request(o, i.indiceCount), l = c.byteOffset >> 2, h = c.indiceOffset, u = c.vertexOffset, _ = s._vData, f = s._uintVData, d = s._iData, m = 4; m < 20; ++m) { var p = r[m], v = a[m - 4]; _[l++] = p.x; _[l++] = p.y; _[l++] = p.z; _[l++] = v.u; _[l++] = v.v; f[l++] = n; } for (var y = 0; y < 3; ++y) for (var g = 0; g < 3; ++g) { var x = u + 4 * y + g; d[h++] = x; d[h++] = x + 1; d[h++] = x + 4; d[h++] = x + 1; d[h++] = x + 5; d[h++] = x + 4; } }, updateWorldVerts: function(t) { for (var e = t.node, i = t._renderData._data, n = e._worldMatrix, r = 0; r < 4; ++r) for (var a = i[r], c = 0; c < 4; ++c) { var l = i[c], h = i[4 + 4 * r + c]; s.set(o, l.x, a.y, 0); s.transformMat4(h, o, n); } } }, r); }), { "../../../../../platform/js": 221, "../2d/sliced": 270 } ], 277: [ (function(t, e, i) { "use strict"; var n = t("../../../../../platform/js"), r = t("../2d/tiled"), s = cc.vmath.vec3; e.exports = n.addon({ vertexOffset: 6, uvOffset: 3, colorOffset: 5, fillVertices: (function() { for (var t = [], e = 0; e < 4; e++) t.push(s.create()); return function(e, i, n, r, o, a) { for (var c = void 0, l = void 0, h = void 0, u = void 0, _ = 0, f = r; _ < f; ++_) { h = a[_].y; u = a[_ + 1].y; for (var d = 0, m = o; d < m; ++d) { c = a[d].x; l = a[d + 1].x; s.set(t[0], c, h, 0); s.set(t[1], l, h, 0); s.set(t[2], c, u, 0); s.set(t[3], l, u, 0); for (var p = 0; p < 4; p++) { var v = t[p]; s.transformMat4(v, v, n); var y = 6 * p; e[i + y] = v.x; e[i + y + 1] = v.y; e[i + y + 2] = v.z; } i += 24; } } }; })() }, r); }), { "../../../../../platform/js": 221, "../2d/tiled": 271 } ], 278: [ (function(t, e, i) { "use strict"; var n = t("../../../../components/CCSprite"), r = n.Type, s = n.FillType, o = t("./2d/simple"), a = t("./2d/sliced"), c = t("./2d/tiled"), l = t("./2d/radial-filled"), h = t("./2d/bar-filled"), u = t("./2d/mesh"), _ = t("./3d/simple"), f = t("./3d/sliced"), d = t("./3d/tiled"), m = t("./3d/radial-filled"), p = t("./3d/bar-filled"), v = t("./3d/mesh"), y = { getAssembler: function(t) { var e = t.node.is3DNode, i = e ? _ : o; switch (t.type) { case r.SLICED: i = e ? f : a; break; case r.TILED: i = e ? d : c; break; case r.FILLED: i = t._fillType === s.RADIAL ? e ? m : l : e ? p : h; break; case r.MESH: i = e ? v : u; } return i; }, updateRenderData: function(t) { return t.__allocedDatas; } }; n._assembler = y; e.exports = y; }), { "../../../../components/CCSprite": 111, "./2d/bar-filled": 266, "./2d/mesh": 267, "./2d/radial-filled": 268, "./2d/simple": 269, "./2d/sliced": 270, "./2d/tiled": 271, "./3d/bar-filled": 272, "./3d/mesh": 273, "./3d/radial-filled": 274, "./3d/simple": 275, "./3d/sliced": 276, "./3d/tiled": 277 } ], 279: [ (function(t, e, i) { "use strict"; var n = cc.vmath.vec3, r = n.create(); e.exports = { fillVertices: function(t, e, i, n) { for (var r = i.vertexCount, s = e.request(r, i.indiceCount), o = s.byteOffset >> 2, a = e._vData, c = e._uintVData, l = t._worldMatrix, h = l.m00, u = l.m01, _ = l.m04, f = l.m05, d = l.m12, m = l.m13, p = i._data, v = 0; v < r; v++) { var y = p[v]; a[o++] = y.x * h + y.y * _ + d; a[o++] = y.x * u + y.y * f + m; a[o++] = y.u; a[o++] = y.v; c[o++] = n; } return s; }, fillMeshVertices: function(t, e, i, n) { for (var r = i.vertexCount, s = e.request(r, i.indiceCount), o = s.indiceOffset, a = s.byteOffset >> 2, c = s.vertexOffset, l = e._vData, h = e._uintVData, u = e._iData, _ = t._worldMatrix, f = _.m00, d = _.m01, m = _.m04, p = _.m05, v = _.m12, y = _.m13, g = i._data, x = 0; x < r; x++) { var C = g[x]; l[a++] = C.x * f + C.y * m + v; l[a++] = C.x * d + C.y * p + y; l[a++] = C.u; l[a++] = C.v; h[a++] = n; } for (var b = 0, A = r / 4; b < A; b++) { var S = c + 4 * b; u[o++] = S; u[o++] = S + 1; u[o++] = S + 2; u[o++] = S + 1; u[o++] = S + 3; u[o++] = S + 2; } return s; }, fillVertices3D: function(t, e, i, s) { for (var o = i.vertexCount, a = e.request(o, i.indiceCount), c = a.byteOffset >> 2, l = e._vData, h = e._uintVData, u = t._worldMatrix, _ = i._data, f = 0; f < o; f++) { var d = _[f]; n.set(r, d.x, d.y, 0); n.transformMat4(r, r, u); l[c++] = r.x; l[c++] = r.y; l[c++] = r.z; l[c++] = d.u; l[c++] = d.v; h[c++] = s; } return a; }, fillMeshVertices3D: function(t, e, i, s) { for (var o = i.vertexCount, a = e.request(o, i.indiceCount), c = a.indiceOffset, l = a.vertexOffset, h = a.byteOffset >> 2, u = e._vData, _ = e._uintVData, f = e._iData, d = t._worldMatrix, m = i._data, p = 0; p < o; p++) { var v = m[p]; n.set(r, v.x, v.y, 0); n.transformMat4(r, r, d); u[h++] = r.x; u[h++] = r.y; u[h++] = r.z; u[h++] = v.u; u[h++] = v.v; _[h++] = s; } for (var y = 0, g = o / 4; y < g; y++) { var x = l + 4 * y; f[c++] = x; f[c++] = x + 1; f[c++] = x + 2; f[c++] = x + 1; f[c++] = x + 3; f[c++] = x + 2; } return a; }, fillVerticesWithoutCalc: function(t, e, i, n) { for (var r = i.vertexCount, s = e.request(r, i.indiceCount), o = s.byteOffset >> 2, a = e._vData, c = e._uintVData, l = i._data, h = 0; h < r; h++) { var u = l[h]; a[o++] = u.x; a[o++] = u.y; a[o++] = u.u; a[o++] = u.v; c[o++] = n; } return s; }, fillVerticesWithoutCalc3D: function(t, e, i, n) { for (var r = i.vertexCount, s = e.request(r, i.indiceCount).byteOffset >> 2, o = e._vData, a = e._uintVData, c = i._data, l = 0; l < r; l++) { var h = c[l]; o[s++] = h.x; o[s++] = h.y; o[s++] = h.z; o[s++] = h.u; o[s++] = h.v; a[s++] = n; } } }; }), {} ], 280: [ (function(t, e, i) { "use strict"; var n = (function(t) { return t && t.__esModule ? t : { default: t }; })(t("../../../renderer/gfx")); var r = cc.Class({ name: "cc.MeshBuffer", ctor: function(t, e) { this.byteStart = 0; this.byteOffset = 0; this.indiceStart = 0; this.indiceOffset = 0; this.vertexStart = 0; this.vertexOffset = 0; this._vertexFormat = e; this._vertexBytes = this._vertexFormat._bytes; this._arrOffset = 0; this._vbArr = []; this._vb = new n.default.VertexBuffer(t._device, e, n.default.USAGE_DYNAMIC, new ArrayBuffer(), 0); this._vbArr[0] = this._vb; this._ibArr = []; this._ib = new n.default.IndexBuffer(t._device, n.default.INDEX_FMT_UINT16, n.default.USAGE_STATIC, new ArrayBuffer(), 0); this._ibArr[0] = this._ib; this._vData = null; this._uintVData = null; this._iData = null; this._batcher = t; if (cc.sys.os === cc.sys.OS_IOS && cc.sys.isBrowser && cc.sys.isMobile && /iPhone OS 14/.test(window.navigator.userAgent)) { this._initVDataCount = 256 * e._bytes * 4; this._initIDataCount = 76800; } else { this._initVDataCount = 256 * e._bytes; this._initIDataCount = 1536; } this._offsetInfo = { byteOffset: 0, vertexOffset: 0, indiceOffset: 0 }; this._reallocBuffer(); }, uploadData: function() { if (0 !== this.byteOffset && this._dirty) { var t = new Float32Array(this._vData.buffer, 0, this.byteOffset >> 2), e = new Uint16Array(this._iData.buffer, 0, this.indiceOffset); this._vb.update(0, t); this._ib.update(0, e); this._dirty = !1; } }, switchBuffer: function() { var t = ++this._arrOffset; this.byteStart = 0; this.byteOffset = 0; this.vertexStart = 0; this.vertexOffset = 0; this.indiceStart = 0; this.indiceOffset = 0; if (t < this._vbArr.length) { this._vb = this._vbArr[t]; this._ib = this._ibArr[t]; } else { this._vb = new n.default.VertexBuffer(this._batcher._device, this._vertexFormat, n.default.USAGE_DYNAMIC, new ArrayBuffer(), 0); this._vbArr[t] = this._vb; this._vb._bytes = this._vData.byteLength; this._ib = new n.default.IndexBuffer(this._batcher._device, n.default.INDEX_FMT_UINT16, n.default.USAGE_STATIC, new ArrayBuffer(), 0); this._ibArr[t] = this._ib; this._ib._bytes = this._iData.byteLength; } }, checkAndSwitchBuffer: function(t) { if (this.vertexOffset + t > 65535) { this.uploadData(); this._batcher._flush(); cc.sys.os === cc.sys.OS_IOS && cc.sys.isBrowser && cc.sys.isMobile && /iPhone OS 14/.test(window.navigator.userAgent) || this.switchBuffer(); } }, requestStatic: function(t, e) { this.checkAndSwitchBuffer(t); var i = this.byteOffset + t * this._vertexBytes, n = this.indiceOffset + e, r = this._vData.byteLength, s = this._iData.length; if (i > r || n > s) { for (;r < i || s < n; ) { this._initVDataCount *= 2; this._initIDataCount *= 2; r = 4 * this._initVDataCount; s = this._initIDataCount; } this._reallocBuffer(); } var o = this._offsetInfo; o.vertexOffset = this.vertexOffset; this.vertexOffset += t; o.indiceOffset = this.indiceOffset; this.indiceOffset += e; o.byteOffset = this.byteOffset; this.byteOffset = i; this._dirty = !0; }, request: function(t, e) { if (this._batcher._buffer !== this) { this._batcher._flush(); this._batcher._buffer = this; } this.requestStatic(t, e); return this._offsetInfo; }, _reallocBuffer: function() { this._reallocVData(!0); this._reallocIData(!0); }, _reallocVData: function(t) { var e = void 0; this._vData && (e = new Uint8Array(this._vData.buffer)); this._vData = new Float32Array(this._initVDataCount); this._uintVData = new Uint32Array(this._vData.buffer); var i = new Uint8Array(this._uintVData.buffer); if (e && t) for (var n = 0, r = e.length; n < r; n++) i[n] = e[n]; this._vb._bytes = this._vData.byteLength; }, _reallocIData: function(t) { var e = this._iData; this._iData = new Uint16Array(this._initIDataCount); if (e && t) for (var i = this._iData, n = 0, r = e.length; n < r; n++) i[n] = e[n]; this._ib._bytes = this._iData.byteLength; }, reset: function() { this._arrOffset = 0; this._vb = this._vbArr[0]; this._ib = this._ibArr[0]; this.byteStart = 0; this.byteOffset = 0; this.indiceStart = 0; this.indiceOffset = 0; this.vertexStart = 0; this.vertexOffset = 0; this._dirty = !1; }, destroy: function() { for (var t = 0; t < this._vbArr.length; t++) { this._vbArr[t].destroy(); } this._vbArr = null; for (var e = 0; e < this._ibArr.length; e++) { this._ibArr[e].destroy(); } this._ibArr = null; this._ib = null; this._vb = null; } }); cc.MeshBuffer = e.exports = r; }), { "../../../renderer/gfx": 349 } ], 281: [ (function(t, e, i) { "use strict"; var n = o(t("../../../renderer/core/input-assembler")), r = o(t("../../../renderer/memop/recycle-pool")), s = o(t("../../../renderer/scene/model")); function o(t) { return t && t.__esModule ? t : { default: t }; } var a = t("./vertex-format"), c = a.vfmtPosUvColor, l = a.vfmt3D, h = t("./quad-buffer"), u = t("./mesh-buffer"), _ = t("./spine-buffer"), f = t("../../assets/material/CCMaterial"), d = new (t("../../platform/id-generater"))("VertextFormat"), m = {}, p = new f(), v = new n.default(); v._count = 0; var y = function(t, e) { this._renderScene = e; this._device = t; this.walking = !1; this.material = p; this.cullingMask = 1; this._iaPool = new r.default(function() { return new n.default(); }, 16); this._modelPool = new r.default(function() { return new s.default(); }, 16); this._quadBuffer = this.getBuffer("quad", c); this._meshBuffer = this.getBuffer("mesh", c); this._quadBuffer3D = this.getBuffer("quad", l); this._meshBuffer3D = this.getBuffer("mesh", l); this._buffer = this._quadBuffer; this._batchedModels = []; this._dummyNode = new cc.Node(); this._sortKey = 0; this.node = this._dummyNode; this.parentOpacity = 1; this.parentOpacityDirty = 0; this.worldMatDirty = 0; this.customProperties = null; }, g = cc.sys.os === cc.sys.OS_IOS && cc.sys.isBrowser && cc.sys.isMobile && /iPhone OS 14/.test(window.navigator.userAgent); y.prototype = { constructor: y, reset: function() { this._iaPool.reset(); for (var t = this._renderScene, e = this._batchedModels, i = 0; i < e.length; ++i) { e[i].setInputAssembler(null); e[i].setEffect(null); t.removeModel(e[i]); } this._modelPool.reset(); e.length = 0; this._sortKey = 0; for (var n in m) m[n].reset(); this._buffer = this._quadBuffer; this.node = this._dummyNode; this.material = p; this.cullingMask = 1; this.parentOpacity = 1; this.parentOpacityDirty = 0; this.worldMatDirty = 0; this.customProperties = null; }, _flushMaterial: function(t) { this.material = t; var e = t.effect; if (e) { var i = this._modelPool.add(); this._batchedModels.push(i); i.sortKey = this._sortKey++; i._cullingMask = this.cullingMask; i.setNode(this.node); i.setEffect(e, null); i.setInputAssembler(v); this._renderScene.addModel(i); } }, _flush: function() { var t = this.material, e = this._buffer, i = e.indiceStart, n = e.indiceOffset - i; if (this.walking && t && !(n <= 0)) { var r = t.effect; if (r) { var s = this._iaPool.add(); s._vertexBuffer = e._vb; s._indexBuffer = e._ib; s._start = i; s._count = n; var o = this._modelPool.add(); this._batchedModels.push(o); o.sortKey = this._sortKey++; o._cullingMask = this.cullingMask; o.setNode(this.node); o.setEffect(r, this.customProperties); o.setInputAssembler(s); this._renderScene.addModel(o); if (g) { e.uploadData(); e.switchBuffer(); } else { e.byteStart = e.byteOffset; e.indiceStart = e.indiceOffset; e.vertexStart = e.vertexOffset; } } } }, _flushIA: function(t) { var e = t.material; if (t.ia && e) { this.material = e; var i = e.effect; if (i) { var n = this._modelPool.add(); this._batchedModels.push(n); n.sortKey = this._sortKey++; n._cullingMask = this.cullingMask; n.setNode(this.node); n.setEffect(i, this.customProperties); n.setInputAssembler(t.ia); this._renderScene.addModel(n); } } }, _commitComp: function(t, e, i) { var n = t.sharedMaterials[0]; if (n && n.getHash() !== this.material.getHash() || this.cullingMask !== i) { this._flush(); this.node = n.getDefine("_USE_MODEL") ? t.node : this._dummyNode; this.material = n; this.cullingMask = i; } e.fillBuffers(t, this); }, _commitIA: function(t, e, i) { this._flush(); this.cullingMask = i; this.material = t.sharedMaterials[0] || p; this.node = this.material.getDefine("_USE_MODEL") ? t.node : this._dummyNode; e.renderIA(t, this); }, terminate: function() { cc.dynamicAtlasManager && cc.dynamicAtlasManager.enabled && cc.dynamicAtlasManager.update(); this._flush(); for (var t in m) m[t].uploadData(); }, getBuffer: function(t, e) { e.name || (e.name = d.getNewId()); var i = t + e.name, n = m[i]; if (!n) { if ("mesh" === t) n = new u(this, e); else if ("quad" === t) n = new h(this, e); else { if ("spine" !== t) { cc.error("Not support buffer type [" + t + "]"); return null; } n = new _(this, e); } m[i] = n; } return n; } }; e.exports = y; }), { "../../../renderer/core/input-assembler": 339, "../../../renderer/memop/recycle-pool": 364, "../../../renderer/scene/model": 373, "../../assets/material/CCMaterial": 75, "../../platform/id-generater": 217, "./mesh-buffer": 280, "./quad-buffer": 282, "./spine-buffer": 283, "./vertex-format": 284 } ], 282: [ (function(t, e, i) { "use strict"; var n = t("./mesh-buffer"), r = cc.Class({ name: "cc.QuadBuffer", extends: n, _fillQuadBuffer: function() { for (var t = this._initIDataCount / 6, e = this._iData, i = 0, n = 0; i < t; i++) { var r = 4 * i; e[n++] = r; e[n++] = r + 1; e[n++] = r + 2; e[n++] = r + 1; e[n++] = r + 3; e[n++] = r + 2; } var s = new Uint16Array(this._iData.buffer, 0, 6 * t); this._ib.update(0, s); }, uploadData: function() { if (0 !== this.byteOffset && this._dirty) { var t = new Float32Array(this._vData.buffer, 0, this.byteOffset >> 2); this._vb.update(0, t); this._dirty = !1; } }, switchBuffer: function() { this._super(); if (this.indiceOffset > 0) { var t = new Uint16Array(this._iData.buffer, 0, this.indiceOffset); this._ib.update(0, t); } }, _reallocBuffer: function() { this._reallocVData(!0); this._reallocIData(); this._fillQuadBuffer(); } }); cc.QuadBuffer = e.exports = r; }), { "./mesh-buffer": 280 } ], 283: [ (function(t, e, i) { "use strict"; var n = cc.Class({ name: "cc.SpineBuffer", extends: t("./mesh-buffer"), requestStatic: function(t, e) { this.checkAndSwitchBuffer(t); var i = this.byteOffset + t * this._vertexBytes, n = this.indiceOffset + e, r = this._vData.byteLength, s = this._iData.length; if (i > r || n > s) { for (;r < i || s < n; ) { this._initVDataCount *= 2; this._initIDataCount *= 2; r = 4 * this._initVDataCount; s = this._initIDataCount; } this._reallocBuffer(); } var o = this._offsetInfo; o.vertexOffset = this.vertexOffset; o.indiceOffset = this.indiceOffset; o.byteOffset = this.byteOffset; }, adjust: function(t, e) { this.vertexOffset += t; this.indiceOffset += e; this.byteOffset = this.byteOffset + t * this._vertexBytes; this._dirty = !0; } }); cc.SpineBuffer = e.exports = n; }), { "./mesh-buffer": 280 } ], 284: [ (function(t, e, i) { "use strict"; var n = (function(t) { return t && t.__esModule ? t : { default: t }; })(t("../../../renderer/gfx")); var r = new n.default.VertexFormat([ { name: n.default.ATTR_POSITION, type: n.default.ATTR_TYPE_FLOAT32, num: 3 }, { name: n.default.ATTR_UV0, type: n.default.ATTR_TYPE_FLOAT32, num: 2 }, { name: n.default.ATTR_COLOR, type: n.default.ATTR_TYPE_UINT8, num: 4, normalize: !0 } ]); r.name = "vfmt3D"; n.default.VertexFormat.XYZ_UV_Color = r; var s = new n.default.VertexFormat([ { name: n.default.ATTR_POSITION, type: n.default.ATTR_TYPE_FLOAT32, num: 2 }, { name: n.default.ATTR_UV0, type: n.default.ATTR_TYPE_FLOAT32, num: 2 }, { name: n.default.ATTR_COLOR, type: n.default.ATTR_TYPE_UINT8, num: 4, normalize: !0 } ]); s.name = "vfmtPosUvColor"; n.default.VertexFormat.XY_UV_Color = s; var o = new n.default.VertexFormat([ { name: n.default.ATTR_POSITION, type: n.default.ATTR_TYPE_FLOAT32, num: 2 }, { name: n.default.ATTR_UV0, type: n.default.ATTR_TYPE_FLOAT32, num: 2 }, { name: n.default.ATTR_COLOR, type: n.default.ATTR_TYPE_UINT8, num: 4, normalize: !0 }, { name: n.default.ATTR_COLOR0, type: n.default.ATTR_TYPE_UINT8, num: 4, normalize: !0 } ]); o.name = "vfmtPosUvTwoColor"; n.default.VertexFormat.XY_UV_Two_Color = o; var a = new n.default.VertexFormat([ { name: n.default.ATTR_POSITION, type: n.default.ATTR_TYPE_FLOAT32, num: 2 }, { name: n.default.ATTR_UV0, type: n.default.ATTR_TYPE_FLOAT32, num: 2 } ]); a.name = "vfmtPosUv"; n.default.VertexFormat.XY_UV = a; var c = new n.default.VertexFormat([ { name: n.default.ATTR_POSITION, type: n.default.ATTR_TYPE_FLOAT32, num: 2 }, { name: n.default.ATTR_COLOR, type: n.default.ATTR_TYPE_UINT8, num: 4, normalize: !0 } ]); c.name = "vfmtPosColor"; n.default.VertexFormat.XY_Color = c; var l = new n.default.VertexFormat([ { name: n.default.ATTR_POSITION, type: n.default.ATTR_TYPE_FLOAT32, num: 2 } ]); l.name = "vfmtPos"; n.default.VertexFormat.XY = l; e.exports = { vfmt3D: r, vfmtPosUvColor: s, vfmtPosUvTwoColor: o, vfmtPosUv: a, vfmtPosColor: c, vfmtPos: l }; }), { "../../../renderer/gfx": 349 } ], 285: [ (function(t, e, i) { "use strict"; t("../platform/CCSys"); var n = /(\.[^\.\/\?\\]*)(\?.*)?$/, r = /((.*)(\/|\\|\\\\))?(.*?\..*$)?/, s = /[^\.\/]+\/\.\.\//; cc.path = { join: function() { for (var t = arguments.length, e = "", i = 0; i < t; i++) e = (e + ("" === e ? "" : "/") + arguments[i]).replace(/(\/|\\\\)$/, ""); return e; }, extname: function(t) { var e = n.exec(t); return e ? e[1] : ""; }, mainFileName: function(t) { if (t) { var e = t.lastIndexOf("."); if (-1 !== e) return t.substring(0, e); } return t; }, basename: function(t, e) { var i = t.indexOf("?"); i > 0 && (t = t.substring(0, i)); var n = /(\/|\\)([^\/\\]+)$/g.exec(t.replace(/(\/|\\)$/, "")); if (!n) return null; var r = n[2]; return e && t.substring(t.length - e.length).toLowerCase() === e.toLowerCase() ? r.substring(0, r.length - e.length) : r; }, dirname: function(t) { var e = r.exec(t); return e ? e[2] : ""; }, changeExtname: function(t, e) { e = e || ""; var i = t.indexOf("?"), n = ""; if (i > 0) { n = t.substring(i); t = t.substring(0, i); } return (i = t.lastIndexOf(".")) < 0 ? t + e + n : t.substring(0, i) + e + n; }, changeBasename: function(t, e, i) { if (0 === e.indexOf(".")) return this.changeExtname(t, e); var n = t.indexOf("?"), r = "", s = i ? this.extname(t) : ""; if (n > 0) { r = t.substring(n); t = t.substring(0, n); } n = (n = t.lastIndexOf("/")) <= 0 ? 0 : n + 1; return t.substring(0, n) + e + s + r; }, _normalize: function(t) { var e = t = String(t); do { e = t; t = t.replace(s, ""); } while (e.length !== t.length); return t; }, sep: cc.sys.os === cc.sys.OS_WINDOWS ? "\\" : "/", stripSep: function(t) { return t.replace(/[\/\\]$/, ""); } }; e.exports = cc.path; }), { "../platform/CCSys": 210 } ], 286: [ (function(t, e, i) { "use strict"; var n = function(t, e, i, n, r, s) { this.a = t; this.b = e; this.c = i; this.d = n; this.tx = r; this.ty = s; }; n.create = function(t, e, i, n, r, s) { return { a: t, b: e, c: i, d: n, tx: r, ty: s }; }; n.identity = function() { return { a: 1, b: 0, c: 0, d: 1, tx: 0, ty: 0 }; }; n.clone = function(t) { return { a: t.a, b: t.b, c: t.c, d: t.d, tx: t.tx, ty: t.ty }; }; n.concat = function(t, e, i) { var n = e.a, r = e.b, s = e.c, o = e.d, a = e.tx, c = e.ty; t.a = n * i.a + r * i.c; t.b = n * i.b + r * i.d; t.c = s * i.a + o * i.c; t.d = s * i.b + o * i.d; t.tx = a * i.a + c * i.c + i.tx; t.ty = a * i.b + c * i.d + i.ty; return t; }; n.invert = function(t, e) { var i = e.a, n = e.b, r = e.c, s = e.d, o = 1 / (i * s - n * r), a = e.tx, c = e.ty; t.a = o * s; t.b = -o * n; t.c = -o * r; t.d = o * i; t.tx = o * (r * c - s * a); t.ty = o * (n * a - i * c); return t; }; n.fromMat4 = function(t, e) { t.a = e.m00; t.b = e.m01; t.c = e.m04; t.d = e.m05; t.tx = e.m12; t.ty = e.m13; return t; }; n.transformVec2 = function(t, e, i, n) { var r, s; if (void 0 === n) { n = i; r = e.x; s = e.y; } else { r = e; s = i; } t.x = n.a * r + n.c * s + n.tx; t.y = n.b * r + n.d * s + n.ty; return t; }; n.transformSize = function(t, e, i) { t.width = i.a * e.width + i.c * e.height; t.height = i.b * e.width + i.d * e.height; return t; }; n.transformRect = function(t, e, i) { var n = e.x, r = e.y, s = n + e.width, o = r + e.height, a = i.a * n + i.c * r + i.tx, c = i.b * n + i.d * r + i.ty, l = i.a * s + i.c * r + i.tx, h = i.b * s + i.d * r + i.ty, u = i.a * n + i.c * o + i.tx, _ = i.b * n + i.d * o + i.ty, f = i.a * s + i.c * o + i.tx, d = i.b * s + i.d * o + i.ty, m = Math.min(a, l, u, f), p = Math.max(a, l, u, f), v = Math.min(c, h, _, d), y = Math.max(c, h, _, d); t.x = m; t.y = v; t.width = p - m; t.height = y - v; return t; }; n.transformObb = function(t, e, i, n, r, s) { var o = r.x, a = r.y, c = r.width, l = r.height, h = s.a * o + s.c * a + s.tx, u = s.b * o + s.d * a + s.ty, _ = s.a * c, f = s.b * c, d = s.c * l, m = s.d * l; e.x = h; e.y = u; i.x = _ + h; i.y = f + u; t.x = d + h; t.y = m + u; n.x = _ + d + h; n.y = f + m + u; }; cc.AffineTransform = e.exports = n; }), {} ], 287: [ (function(i, n, r) { "use strict"; var s = i("../platform/CCObject").Flags, o = i("./misc"), a = i("../platform/js"), c = i("../platform/id-generater"), l = i("../event-manager"), h = i("../renderer/render-flow"), u = s.Destroying, _ = s.DontDestroy, f = s.Deactivating, d = new c("Node"); function m(i) { if (!i) { cc.errorID(3804); return null; } return "string" === ("object" === (e = typeof i) ? t(i) : e) ? a.getClassByName(i) : i; } function p(t, e) { if (e._sealed) for (var i = 0; i < t._components.length; ++i) { var n = t._components[i]; if (n.constructor === e) return n; } else for (var r = 0; r < t._components.length; ++r) { var s = t._components[r]; if (s instanceof e) return s; } return null; } function v(t, e, i) { if (e._sealed) for (var n = 0; n < t._components.length; ++n) { var r = t._components[n]; r.constructor === e && i.push(r); } else for (var s = 0; s < t._components.length; ++s) { var o = t._components[s]; o instanceof e && i.push(o); } } function y(t, e) { for (var i = 0; i < t.length; ++i) { var n = t[i], r = p(n, e); if (r) return r; if (n._children.length > 0 && (r = y(n._children, e))) return r; } return null; } function g(t, e, i) { for (var n = 0; n < t.length; ++n) { var r = t[n]; v(r, e, i); r._children.length > 0 && g(r._children, e, i); } } var x = cc.Class({ name: "cc._BaseNode", extends: cc.Object, properties: { _parent: null, _children: [], _active: !0, _level: 0, _components: [], _prefab: null, _persistNode: { get: function() { return (this._objFlags & _) > 0; }, set: function(t) { t ? this._objFlags |= _ : this._objFlags &= ~_; } }, name: { get: function() { return this._name; }, set: function(t) { 0; this._name = t; } }, uuid: { get: function() { return this._id; } }, children: { get: function() { return this._children; } }, childrenCount: { get: function() { return this._children.length; } }, active: { get: function() { return this._active; }, set: function(t) { t = !!t; if (this._active !== t) { this._active = t; var e = this._parent; if (e) { e._activeInHierarchy && cc.director._nodeActivator.activateNode(this, t); } } } }, activeInHierarchy: { get: function() { return this._activeInHierarchy; } } }, ctor: function(t) { this._name = void 0 !== t ? t : "New Node"; this._activeInHierarchy = !1; this._id = d.getNewId(); cc.director._scheduler && cc.director._scheduler.enableForTarget(this); this.__eventTargets = []; this._renderFlag = h.FLAG_TRANSFORM; }, getParent: function() { return this._parent; }, setParent: function(t) { if (this._parent !== t) { 0; var e = this._parent; 0; this._parent = t || null; this._onSetParent(t); if (t) { 0; this._level = t._level + 1; l._setDirtyForNode(this); t._children.push(this); t.emit && t.emit("child-added", this); t._renderFlag |= h.FLAG_CHILDREN; } if (e) { if (!(e._objFlags & u)) { var i = e._children.indexOf(this); 0; e._children.splice(i, 1); e.emit && e.emit("child-removed", this); this._onHierarchyChanged(e); 0 === e._children.length && (e._renderFlag &= ~h.FLAG_CHILDREN); } } else t && this._onHierarchyChanged(null); } }, attr: function(t) { a.mixin(this, t); }, getChildByUuid: function(t) { if (!t) { cc.log("Invalid uuid"); return null; } for (var e = this._children, i = 0, n = e.length; i < n; i++) if (e[i]._id === t) return e[i]; return null; }, getChildByName: function(t) { if (!t) { cc.log("Invalid name"); return null; } for (var e = this._children, i = 0, n = e.length; i < n; i++) if (e[i]._name === t) return e[i]; return null; }, addChild: function(t) { 0; cc.assertID(t, 1606); cc.assertID(null === t._parent, 1605); t.setParent(this); }, insertChild: function(t, e) { t.parent = this; t.setSiblingIndex(e); }, getSiblingIndex: function() { return this._parent ? this._parent._children.indexOf(this) : 0; }, setSiblingIndex: function(t) { if (this._parent) if (this._parent._objFlags & f) cc.errorID(3821); else { var e = this._parent._children; t = -1 !== t ? t : e.length - 1; var i = e.indexOf(this); if (t !== i) { e.splice(i, 1); t < e.length ? e.splice(t, 0, this) : e.push(this); this._onSiblingIndexChanged && this._onSiblingIndexChanged(t); } } }, walk: function(t, e) { var i, n, r, s, o = cc._BaseNode, a = 1, c = o._stacks[o._stackId]; if (!c) { c = []; o._stacks.push(c); } o._stackId++; c.length = 0; c[0] = this; var l = null; s = !1; for (;a; ) if (n = c[--a]) { !s && t ? t(n) : s && e && e(n); c[a] = null; if (s) { s = !1; if (i) if (i[++r]) { c[a] = i[r]; a++; } else if (l) { c[a] = l; a++; s = !0; if (l._parent) { r = (i = l._parent._children).indexOf(l); l = l._parent; } else { l = null; i = null; } if (r < 0) break; } } else if (n._children.length > 0) { l = n; i = n._children; r = 0; c[a] = i[r]; a++; } else { c[a] = n; a++; s = !0; } } c.length = 0; o._stackId--; }, cleanup: function() {}, removeFromParent: function(t) { if (this._parent) { void 0 === t && (t = !0); this._parent.removeChild(this, t); } }, removeChild: function(t, e) { if (this._children.indexOf(t) > -1) { (e || void 0 === e) && t.cleanup(); t.parent = null; } }, removeAllChildren: function(t) { var e = this._children; void 0 === t && (t = !0); for (var i = e.length - 1; i >= 0; i--) { var n = e[i]; if (n) { t && n.cleanup(); n.parent = null; } } this._children.length = 0; }, isChildOf: function(t) { var e = this; do { if (e === t) return !0; e = e._parent; } while (e); return !1; }, getComponent: function(t) { var e = m(t); return e ? p(this, e) : null; }, getComponents: function(t) { var e = m(t), i = []; e && v(this, e, i); return i; }, getComponentInChildren: function(t) { var e = m(t); return e ? y(this._children, e) : null; }, getComponentsInChildren: function(t) { var e = m(t), i = []; if (e) { v(this, e, i); g(this._children, e, i); } return i; }, _checkMultipleComp: !1, addComponent: function(i) { 0; var n; if ("string" === ("object" === (e = typeof i) ? t(i) : e)) { if (!(n = a.getClassByName(i))) { cc.errorID(3807, i); cc._RFpeek() && cc.errorID(3808, i); return null; } } else { if (!i) { cc.errorID(3804); return null; } n = i; } if ("function" !== ("object" === (e = typeof n) ? t(n) : e)) { cc.errorID(3809); return null; } if (!a.isChildClassOf(n, cc.Component)) { cc.errorID(3810); return null; } 0; var r = n._requireComponent; if (r && !this.getComponent(r)) { if (!this.addComponent(r)) return null; } var s = new n(); s.node = this; this._components.push(s); 0; this._activeInHierarchy && cc.director._nodeActivator.activateComp(s); return s; }, _addComponentAt: !1, removeComponent: function(t) { if (t) { t instanceof cc.Component || (t = this.getComponent(t)); t && t.destroy(); } else cc.errorID(3813); }, _getDependComponent: !1, _removeComponent: function(t) { if (t) { if (!(this._objFlags & u)) { var e = this._components.indexOf(t); if (-1 !== e) { this._components.splice(e, 1); 0; } else t.node !== this && cc.errorID(3815); } } else cc.errorID(3814); }, destroy: function() { cc.Object.prototype.destroy.call(this) && (this.active = !1); }, destroyAllChildren: function() { for (var t = this._children, e = 0; e < t.length; ++e) t[e].destroy(); }, _onSetParent: function(t) {}, _onPostActivated: function() {}, _onBatchRestored: function() {}, _onBatchCreated: function() {}, _onHierarchyChanged: function(t) { var e = this._parent; if (this._persistNode && !(e instanceof cc.Scene)) { cc.game.removePersistRootNode(this); 0; } var i = this._active && !(!e || !e._activeInHierarchy); this._activeInHierarchy !== i && cc.director._nodeActivator.activateNode(this, i); }, _instantiate: function(t) { t || (t = cc.instantiate._clone(this, this)); var e = this._prefab; e && this === e.root && e.sync; t._parent = null; t._onBatchRestored(); return t; }, _registerIfAttached: !1, _onPreDestroy: function() { var t, e; this._objFlags |= u; var i = this._parent, n = i && i._objFlags & u; 0; var r = this._children; for (t = 0, e = r.length; t < e; ++t) r[t]._destroyImmediate(); for (t = 0, e = this._components.length; t < e; ++t) { this._components[t]._destroyImmediate(); } var s = this.__eventTargets; for (t = 0, e = s.length; t < e; ++t) { var o = s[t]; o && o.targetOff(this); } s.length = 0; this._persistNode && cc.game.removePersistRootNode(this); if (!n && i) { var a = i._children.indexOf(this); i._children.splice(a, 1); i.emit && i.emit("child-removed", this); } return n; }, onRestore: !1 }); x.idGenerater = d; x._stacks = [ [] ]; x._stackId = 0; x.prototype._onPreDestroyBase = x.prototype._onPreDestroy; 0; x.prototype._onHierarchyChangedBase = x.prototype._onHierarchyChanged; 0; o.propertyDefine(x, [ "parent", "name", "children", "childrenCount" ], {}); 0; cc._BaseNode = n.exports = x; }), { "../event-manager": 131, "../platform/CCObject": 207, "../platform/id-generater": 217, "../platform/js": 221, "../renderer/render-flow": 245, "./misc": 297 } ], 288: [ (function(t, e, i) { "use strict"; var n = 1e-6; e.exports = { binarySearchEpsilon: function(t, e) { for (var i = 0, r = t.length - 1, s = r >>> 1; i <= r; s = i + r >>> 1) { var o = t[s]; if (o > e + n) r = s - 1; else { if (!(o < e - n)) return s; i = s + 1; } } return ~i; } }; }), {} ], 289: [ (function(t, e, i) { "use strict"; var n = t("../components/CCRenderComponent"), r = t("../platform/CCMacro").BlendFactor, s = t("../../renderer/gfx"), o = cc.Class({ properties: { _srcBlendFactor: r.SRC_ALPHA, _dstBlendFactor: r.ONE_MINUS_SRC_ALPHA, srcBlendFactor: { get: function() { return this._srcBlendFactor; }, set: function(t) { if (this._srcBlendFactor !== t) { this._srcBlendFactor = t; this._updateBlendFunc(); } }, animatable: !1, type: r, tooltip: !1, visible: !0 }, dstBlendFactor: { get: function() { return this._dstBlendFactor; }, set: function(t) { if (this._dstBlendFactor !== t) { this._dstBlendFactor = t; this._updateBlendFunc(); } }, animatable: !1, type: r, tooltip: !1, visible: !0 } }, setMaterial: function(t, e) { n.prototype.setMaterial.call(this, t, e); e && this._updateMaterialBlendFunc(e); }, _updateBlendFunc: function() { for (var t = this._materials, e = 0; e < t.length; e++) { var i = t[e]; this._updateMaterialBlendFunc(i); } }, _updateMaterialBlendFunc: function(t) { for (var e = t._effect.getDefaultTechnique().passes, i = 0; i < e.length; i++) { e[i].setBlend(!0, s.BLEND_FUNC_ADD, this._srcBlendFactor, this._dstBlendFactor, s.BLEND_FUNC_ADD, this._srcBlendFactor, this._dstBlendFactor); } t.setDirty(!0); } }); e.exports = cc.BlendFunc = o; }), { "../../renderer/gfx": 349, "../components/CCRenderComponent": 106, "../platform/CCMacro": 206 } ], 290: [ (function(t, e, i) { "use strict"; var n = t("./misc").BASE64_VALUES, r = "0123456789abcdef".split(""), s = [ "", "", "", "" ], o = s.concat(s, "-", s, "-", s, "-", s, "-", s, s, s), a = o.map((function(t, e) { return "-" === t ? NaN : e; })).filter(isFinite); e.exports = function(t) { if (22 !== t.length) return t; o[0] = t[0]; o[1] = t[1]; for (var e = 2, i = 2; e < 22; e += 2) { var s = n[t.charCodeAt(e)], c = n[t.charCodeAt(e + 1)]; o[a[i++]] = r[s >> 2]; o[a[i++]] = r[(3 & s) << 2 | c >> 4]; o[a[i++]] = r[15 & c]; } return o.join(""); }; 0; }), { "./misc": 297 } ], 291: [ (function(t, e, i) { "use strict"; cc.find = e.exports = function(t, e) { if (null == t) { cc.errorID(5600); return null; } if (e) 0; else { var i = cc.director.getScene(); if (!i) { 0; return null; } 0; e = i; } for (var n = e, r = "/" !== t[0] ? 0 : 1, s = t.split("/"), o = r; o < s.length; o++) { var a = s[o], c = n._children; n = null; for (var l = 0, h = c.length; l < h; ++l) { var u = c[l]; if (u.name === a) { n = u; break; } } if (!n) return null; } return n; }; }), {} ], 292: [ (function(t, e, i) { "use strict"; var n = t("../assets/material/CCMaterial"); function r() { this._graySpriteMaterial = null; this._spriteMaterial = null; } r.prototype._switchGrayMaterial = function(t, e) { if (cc.game.renderType !== cc.game.RENDER_TYPE_CANVAS) { var i = void 0; if (t) { (i = this._graySpriteMaterial) || (i = n.getBuiltinMaterial("2d-gray-sprite")); i = this._graySpriteMaterial = n.getInstantiatedMaterial(i, e); } else { (i = this._spriteMaterial) || (i = n.getBuiltinMaterial("2d-sprite", e)); i = this._spriteMaterial = n.getInstantiatedMaterial(i, e); } e.setMaterial(0, i); } }; e.exports = r; }), { "../assets/material/CCMaterial": 75 } ], 293: [ (function(t, e, i) { "use strict"; var n = /^(click)(\s)*=|(param)(\s)*=/, r = /(\s)*src(\s)*=|(\s)*height(\s)*=|(\s)*width(\s)*=|(\s)*click(\s)*=|(\s)*param(\s)*=/, s = function() { this._parsedObject = {}; this._specialSymbolArray = []; this._specialSymbolArray.push([ /</g, "<" ]); this._specialSymbolArray.push([ />/g, ">" ]); this._specialSymbolArray.push([ /&/g, "&" ]); this._specialSymbolArray.push([ /"/g, '"' ]); this._specialSymbolArray.push([ /'/g, "'" ]); }; s.prototype = { constructor: s, parse: function(t) { this._resultObjectArray = []; this._stack = []; for (var e = 0, i = t.length; e < i; ) { var n = t.indexOf("<", e); if (n < 0) { this._stack.pop(); this._processResult(t.substring(e)); e = i; } else { this._processResult(t.substring(e, n)); var r = t.indexOf(">", e); -1 === r ? r = n : "/" === t.charAt(n + 1) ? this._stack.pop() : this._addToStack(t.substring(n + 1, r)); e = r + 1; } } return this._resultObjectArray; }, _attributeToObject: function(t) { var e, i, n, s, o = {}, a = (t = t.trim()).match(/^(color|size)(\s)*=/); if (a) { e = a[0]; if ("" === (t = t.substring(e.length).trim())) return o; i = t.indexOf(" "); switch (e[0]) { case "c": o.color = i > -1 ? t.substring(0, i).trim() : t; break; case "s": o.size = parseInt(t); } if (i > -1) { s = t.substring(i + 1).trim(); n = this._processEventHandler(s); o.event = n; } return o; } if ((a = t.match(/^(br(\s)*\/)/)) && a[0].length > 0 && (e = a[0].trim()).startsWith("br") && "/" === e[e.length - 1]) { o.isNewLine = !0; this._resultObjectArray.push({ text: "", style: { newline: !0 } }); return o; } if ((a = t.match(/^(img(\s)*src(\s)*=[^>]+\/)/)) && a[0].length > 0 && (e = a[0].trim()).startsWith("img") && "/" === e[e.length - 1]) { a = t.match(r); for (var c, l = !1; a; ) { e = (t = t.substring(t.indexOf(a[0]))).substr(0, a[0].length); u = (i = (c = t.substring(e.length).trim()).indexOf(" ")) > -1 ? c.substr(0, i) : c; e = (e = e.replace(/[^a-zA-Z]/g, "").trim()).toLocaleLowerCase(); t = c.substring(i).trim(); if ("src" === e) { o.isImage = !0; u.endsWith("/") && (u = u.substring(0, u.length - 1)); if (0 === u.indexOf("'")) { l = !0; u = u.substring(1, u.length - 1); } else if (0 === u.indexOf('"')) { l = !0; u = u.substring(1, u.length - 1); } o.src = u; } else "height" === e ? o.imageHeight = parseInt(u) : "width" === e ? o.imageWidth = parseInt(u) : "click" === e && (o.event = this._processEventHandler(e + "=" + u)); o.event && "param" === e && (o.event.param = u.replace(/^\"|\"$/g, "")); a = t.match(r); } l && o.isImage && this._resultObjectArray.push({ text: "", style: o }); return {}; } if (a = t.match(/^(outline(\s)*[^>]*)/)) { var h = { color: "#ffffff", width: 1 }; if (t = a[0].substring("outline".length).trim()) { var u, _ = /(\s)*color(\s)*=|(\s)*width(\s)*=|(\s)*click(\s)*=|(\s)*param(\s)*=/; a = t.match(_); for (;a; ) { e = (t = t.substring(t.indexOf(a[0]))).substr(0, a[0].length); u = (i = (c = t.substring(e.length).trim()).indexOf(" ")) > -1 ? c.substr(0, i) : c; e = (e = e.replace(/[^a-zA-Z]/g, "").trim()).toLocaleLowerCase(); t = c.substring(i).trim(); "click" === e ? o.event = this._processEventHandler(e + "=" + u) : "color" === e ? h.color = u : "width" === e && (h.width = parseInt(u)); o.event && "param" === e && (o.event.param = u.replace(/^\"|\"$/g, "")); a = t.match(_); } } o.outline = h; } if ((a = t.match(/^(on|u|b|i)(\s)*/)) && a[0].length > 0) { e = a[0]; t = t.substring(e.length).trim(); switch (e[0]) { case "u": o.underline = !0; break; case "i": o.italic = !0; break; case "b": o.bold = !0; } if ("" === t) return o; n = this._processEventHandler(t); o.event = n; } return o; }, _processEventHandler: function(t) { for (var e = 0, i = {}, r = t.match(n), s = !1; r; ) { var o = r[0], a = ""; s = !1; if ('"' === (t = t.substring(o.length).trim()).charAt(0)) { if ((e = t.indexOf('"', 1)) > -1) { a = t.substring(1, e).trim(); s = !0; } e++; } else if ("'" === t.charAt(0)) { if ((e = t.indexOf("'", 1)) > -1) { a = t.substring(1, e).trim(); s = !0; } e++; } else { var c = t.match(/(\S)+/); e = (a = c ? c[0] : "").length; } s && (i[o = o.substring(0, o.length - 1).trim()] = a); r = (t = t.substring(e).trim()).match(n); } return i; }, _addToStack: function(t) { var e = this._attributeToObject(t); if (0 === this._stack.length) this._stack.push(e); else { if (e.isNewLine || e.isImage) return; var i = this._stack[this._stack.length - 1]; for (var n in i) e[n] || (e[n] = i[n]); this._stack.push(e); } }, _processResult: function(t) { if ("" !== t) { t = this._escapeSpecialSymbol(t); this._stack.length > 0 ? this._resultObjectArray.push({ text: t, style: this._stack[this._stack.length - 1] }) : this._resultObjectArray.push({ text: t }); } }, _escapeSpecialSymbol: function(t) { for (var e = 0; e < this._specialSymbolArray.length; ++e) { var i = this._specialSymbolArray[e][0], n = this._specialSymbolArray[e][1]; t = t.replace(i, n); } return t; } }; 0; e.exports = s; }), {} ], 294: [ (function(t, e, i) { "use strict"; t("./CCPath"); t("./profiler/CCProfiler"); t("./find"); t("./mutable-forward-iterator"); }), { "./CCPath": 285, "./find": 291, "./mutable-forward-iterator": 298, "./profiler/CCProfiler": 300 } ], 295: [ (function(t, e, i) { "use strict"; var n = t("../vmath"), r = t("../platform/js"), s = new r.Pool(128); s.get = function() { var t = this._get(); t ? n.mat4.identity(t) : t = n.mat4.create(); return t; }; var o = new r.Pool(64); o.get = function() { var t = this._get(); if (t) { t.x = t.y = t.z = 0; t.w = 1; } else t = n.quat.create(); return t; }; e.exports = { mat4: s, quat: o }; }), { "../platform/js": 221, "../vmath": 317 } ], 296: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.postLoadMesh = function(t, e) { if (t.loaded || !t.nativeUrl) { e && e(); return; } cc.loader.load(t.nativeUrl, (function(i, n) { n && (t._nativeAsset = n); e && e(i); })); }; }), {} ], 297: [ (function(t, e, i) { "use strict"; var n = t("../platform/js"), r = { propertyDefine: function(t, e, i) { function r(t, e, i, r) { var s = Object.getOwnPropertyDescriptor(t, e); if (s) { s.get && (t[i] = s.get); s.set && r && (t[r] = s.set); } else { var o = t[i]; n.getset(t, e, o, t[r]); } } for (var s, o = t.prototype, a = 0; a < e.length; a++) { var c = (s = e[a])[0].toUpperCase() + s.slice(1); r(o, s, "get" + c, "set" + c); } for (s in i) { var l = i[s]; r(o, s, l[0], l[1]); } }, NextPOT: function(t) { t -= 1; t |= t >> 1; t |= t >> 2; t |= t >> 4; t |= t >> 8; return (t |= t >> 16) + 1; } }; 0; r.BUILTIN_CLASSID_RE = /^(?:cc|dragonBones|sp|ccsg)\..+/; for (var s = new Array(123), o = 0; o < 123; ++o) s[o] = 64; for (var a = 0; a < 64; ++a) s["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charCodeAt(a)] = a; r.BASE64_VALUES = s; r.pushToMap = function(t, e, i, n) { var r = t[e]; if (r) if (Array.isArray(r)) if (n) { r.push(r[0]); r[0] = i; } else r.push(i); else t[e] = n ? [ i, r ] : [ r, i ]; else t[e] = i; }; r.clampf = function(t, e, i) { if (e > i) { var n = e; e = i; i = n; } return t < e ? e : t < i ? t : i; }; r.clamp01 = function(t) { return t < 0 ? 0 : t < 1 ? t : 1; }; r.lerp = function(t, e, i) { return t + (e - t) * i; }; r.degreesToRadians = function(t) { return t * cc.macro.RAD; }; r.radiansToDegrees = function(t) { return t * cc.macro.DEG; }; cc.misc = e.exports = r; }), { "../platform/js": 221 } ], 298: [ (function(t, e, i) { "use strict"; function n(t) { this.i = 0; this.array = t; } var r = n.prototype; r.remove = function(t) { var e = this.array.indexOf(t); e >= 0 && this.removeAt(e); }; r.removeAt = function(t) { this.array.splice(t, 1); t <= this.i && --this.i; }; r.fastRemove = function(t) { var e = this.array.indexOf(t); e >= 0 && this.fastRemoveAt(e); }; r.fastRemoveAt = function(t) { var e = this.array; e[t] = e[e.length - 1]; --e.length; t <= this.i && --this.i; }; r.push = function(t) { this.array.push(t); }; e.exports = n; }), {} ], 299: [ (function(t, e, i) { "use strict"; var n = t("../vmath"); cc._PrefabInfo = cc.Class({ name: "cc.PrefabInfo", properties: { root: null, asset: null, fileId: "", sync: !1, _synced: { default: !1, serializable: !1 } } }); e.exports = { syncWithPrefab: function(t) { var e = t._prefab; e._synced = !0; if (e.asset) { var i = t._objFlags, r = t._parent, s = t._id, o = t._name, a = t._active, c = t._position.x, l = t._position.y, h = t._position.z, u = t._eulerAngles.x, _ = t._eulerAngles.y, f = t._eulerAngles.z, d = t._quat, m = t._localZOrder, p = t._globalZOrder; cc.game._isCloning = !0; e.asset._doInstantiate(t); cc.game._isCloning = !1; t._objFlags = i; t._parent = r; t._id = s; t._prefab = e; t._name = o; t._active = a; t._position.x = c; t._position.y = l; t._position.z = h; n.quat.copy(t._quat, d); t._localZOrder = m; t._globalZOrder = p; t._eulerAngles.x = u; t._eulerAngles.y = _; t._eulerAngles.z = f; } else { cc.errorID(3701, t.name); t._prefab = null; } } }; }), { "../vmath": 317 } ], 300: [ (function(t, e, i) { "use strict"; var n = t("../../platform/CCMacro"), r = t("./perf-counter"), s = !1, o = 15, a = null, c = null, l = null; function h() { if (!a) { a = { frame: { desc: "Frame time (ms)", min: 0, max: 50, average: 500 }, fps: { desc: "Framerate (FPS)", below: 30, average: 500 }, draws: { desc: "Draw call" }, logic: { desc: "Game Logic (ms)", min: 0, max: 50, average: 500, color: "#080" }, render: { desc: "Renderer (ms)", min: 0, max: 50, average: 500, color: "#f90" }, mode: { desc: cc.game.renderType === cc.game.RENDER_TYPE_WEBGL ? "WebGL" : "Canvas", min: 1 } }; var t = performance.now(); for (var e in a) a[e]._counter = new r(e, a[e], t); } } function u() { if (!c || !c.isValid) { (c = new cc.Node("PROFILER-NODE")).x = c.y = 10; c.groupIndex = cc.Node.BuiltinGroupIndex.DEBUG; cc.Camera._setupDebugCamera(); c.zIndex = n.MAX_ZINDEX; cc.game.addPersistRootNode(c); var t = new cc.Node("LEFT-PANEL"); t.anchorX = t.anchorY = 0; var e = t.addComponent(cc.Label); e.fontSize = o; e.lineHeight = o; t.parent = c; var i = new cc.Node("RIGHT-PANEL"); i.anchorX = 1; i.anchorY = 0; i.x = 200; var r = i.addComponent(cc.Label); r.horizontalAlign = cc.Label.HorizontalAlign.RIGHT; r.fontSize = o; r.lineHeight = o; i.parent = c; if (cc.sys.browserType !== cc.sys.BROWSER_TYPE_BAIDU_GAME_SUB && cc.sys.browserType !== cc.sys.BROWSER_TYPE_WECHAT_GAME_SUB) { e.cacheMode = cc.Label.CacheMode.CHAR; r.cacheMode = cc.Label.CacheMode.CHAR; } l = { left: e, right: r }; } } function _() { u(); var t = cc.director._lastUpdate; a.frame._counter.start(t); a.logic._counter.start(t); } function f() { var t = performance.now(); cc.director.isPaused() ? a.frame._counter.start(t) : a.logic._counter.end(t); a.render._counter.start(t); } function d() { var t = performance.now(); a.render._counter.end(t); a.draws._counter.value = cc.renderer.drawCalls; a.frame._counter.end(t); a.fps._counter.frame(t); var e = "", i = ""; for (var n in a) { var r = a[n]; r._counter.sample(t); e += r.desc + "\n"; i += r._counter.human() + "\n"; } if (l) { l.left.string = e; l.right.string = i; } } cc.profiler = e.exports = { isShowingStats: function() { return s; }, hideStats: function() { if (s) { c && (c.active = !1); cc.director.off(cc.Director.EVENT_BEFORE_UPDATE, _); cc.director.off(cc.Director.EVENT_AFTER_UPDATE, f); cc.director.off(cc.Director.EVENT_AFTER_DRAW, d); s = !1; } }, showStats: function() { if (!s) { h(); c && (c.active = !0); cc.director.on(cc.Director.EVENT_BEFORE_UPDATE, _); cc.director.on(cc.Director.EVENT_AFTER_UPDATE, f); cc.director.on(cc.Director.EVENT_AFTER_DRAW, d); s = !0; } } }; }), { "../../platform/CCMacro": 206, "./perf-counter": 302 } ], 301: [ (function(t, e, i) { "use strict"; var n = cc.Class({ name: "cc.Counter", ctor: function(t, e, i) { this._id = t; this._opts = e || {}; this._value = 0; this._total = 0; this._averageValue = 0; this._accumValue = 0; this._accumSamples = 0; this._accumStart = i; }, properties: { value: { get: function() { return this._value; }, set: function(t) { this._value = t; } } }, _average: function(t, e) { if (this._opts.average) { this._accumValue += t; ++this._accumSamples; var i = e; if (i - this._accumStart >= this._opts.average) { this._averageValue = this._accumValue / this._accumSamples; this._accumValue = 0; this._accumStart = i; this._accumSamples = 0; } } }, sample: function(t) { this._average(this._value, t); }, human: function() { var t = this._opts.average ? this._averageValue : this._value; return Math.round(100 * t) / 100; }, alarm: function() { return this._opts.below && this._value < this._opts.below || this._opts.over && this._value > this._opts.over; } }); e.exports = n; }), {} ], 302: [ (function(t, e, i) { "use strict"; var n = t("./counter"), r = cc.Class({ name: "cc.PerfCounter", extends: n, ctor: function(t, e, i) { this._time = i; }, start: function(t) { this._time = t; }, end: function(t) { this._value = t - this._time; this._average(this._value); }, tick: function() { this.end(); this.start(); }, frame: function(t) { var e = t, i = e - this._time; this._total++; if (i > (this._opts.average || 1e3)) { this._value = 1e3 * this._total / i; this._total = 0; this._time = e; this._average(this._value); } } }); e.exports = r; }), { "./counter": 301 } ], 303: [ (function(t, e, i) { "use strict"; var n = .26; 0; var r = { BASELINE_RATIO: n, MIDDLE_RATIO: (n + 1) / 2 - n, label_wordRex: /([a-zA-Z0-9ÄÖÜäöüßéèçàùêâîôûа-яА-ЯЁё]+|\S)/, label_symbolRex: /^[!,.:;'}\]%\?>、‘“》?。,!]/, label_lastWordRex: /([a-zA-Z0-9ÄÖÜäöüßéèçàùêâîôûаíìÍÌïÁÀáàÉÈÒÓòóŐőÙÚŰúűñÑæÆœŒÃÂãÔõěščřžýáíéóúůťďňĚŠČŘŽÁÍÉÓÚŤżźśóńłęćąŻŹŚÓŃŁĘĆĄ-яА-ЯЁё]+|\S)$/, label_lastEnglish: /[a-zA-Z0-9ÄÖÜäöüßéèçàùêâîôûаíìÍÌïÁÀáàÉÈÒÓòóŐőÙÚŰúűñÑæÆœŒÃÂãÔõěščřžýáíéóúůťďňĚŠČŘŽÁÍÉÓÚŤżźśóńłęćąŻŹŚÓŃŁĘĆĄ-яА-ЯЁё]+$/, label_firstEnglish: /^[a-zA-Z0-9ÄÖÜäöüßéèçàùêâîôûаíìÍÌïÁÀáàÉÈÒÓòóŐőÙÚŰúűñÑæÆœŒÃÂãÔõěščřžýáíéóúůťďňĚŠČŘŽÁÍÉÓÚŤżźśóńłęćąŻŹŚÓŃŁĘĆĄ-яА-ЯЁё]/, label_firstEmoji: /^[\uD83C\uDF00-\uDFFF\uDC00-\uDE4F]/, label_lastEmoji: /([\uDF00-\uDFFF\uDC00-\uDE4F]+|\S)$/, label_wrapinspection: !0, __CHINESE_REG: /^[\u4E00-\u9FFF\u3400-\u4DFF]+$/, __JAPANESE_REG: /[\u3000-\u303F]|[\u3040-\u309F]|[\u30A0-\u30FF]|[\uFF00-\uFFEF]|[\u4E00-\u9FAF]|[\u2605-\u2606]|[\u2190-\u2195]|\u203B/g, __KOREAN_REG: /^[\u1100-\u11FF]|[\u3130-\u318F]|[\uA960-\uA97F]|[\uAC00-\uD7AF]|[\uD7B0-\uD7FF]+$/, isUnicodeCJK: function(t) { return this.__CHINESE_REG.test(t) || this.__JAPANESE_REG.test(t) || this.__KOREAN_REG.test(t); }, isUnicodeSpace: function(t) { return (t = t.charCodeAt(0)) >= 9 && t <= 13 || 32 === t || 133 === t || 160 === t || 5760 === t || t >= 8192 && t <= 8202 || 8232 === t || 8233 === t || 8239 === t || 8287 === t || 12288 === t; }, safeMeasureText: function(t, e) { var i = t.measureText(e); return i && i.width || 0; }, fragmentText: function(t, e, i, n) { var r = []; if (0 === t.length || i < 0) { r.push(""); return r; } for (var s = t; e > i && s.length > 1; ) { for (var o = s.length * (i / e) | 0, a = s.substring(o), c = e - n(a), l = a, h = 0, u = 0; c > i && u++ < 10; ) { o *= i / c; o |= 0; c = e - n(a = s.substring(o)); } u = 0; for (;c <= i && u++ < 10; ) { if (a) { var _ = this.label_wordRex.exec(a); h = _ ? _[0].length : 1; l = a; } o += h; c = e - n(a = s.substring(o)); } if (0 === (o -= h)) { o = 1; l = l.substring(1); } var f, d = s.substring(0, 0 + o); if (this.label_wrapinspection && this.label_symbolRex.test(l || a)) { 0 === (o -= (f = this.label_lastWordRex.exec(d)) ? f[0].length : 0) && (o = 1); l = s.substring(o); d = s.substring(0, 0 + o); } if (this.label_firstEmoji.test(l) && (f = this.label_lastEmoji.exec(d)) && d !== f[0]) { o -= f[0].length; l = s.substring(o); d = s.substring(0, 0 + o); } if (this.label_firstEnglish.test(l) && (f = this.label_lastEnglish.exec(d)) && d !== f[0]) { o -= f[0].length; l = s.substring(o); d = s.substring(0, 0 + o); } 0 === r.length ? r.push(d) : (d = d.trimLeft()).length > 0 && r.push(d); e = n(s = l || a); } 0 === r.length ? r.push(s) : (s = s.trimLeft()).length > 0 && r.push(s); return r; } }; e.exports = r; }), {} ], 304: [ (function(t, e, i) { "use strict"; var n = t("../assets/CCTexture2D"), r = { loadImage: function(t, e, i) { cc.assertID(t, 3103); var r = cc.loader.getRes(t); if (r) { if (r.loaded) { e && e.call(i, null, r); return r; } r.once("load", (function() { e && e.call(i, null, r); }), i); return r; } (r = new n()).url = t; cc.loader.load({ url: t, texture: r }, (function(t, n) { if (t) return e && e.call(i, t || new Error("Unknown error")); n.handleLoadedTexture(); e && e.call(i, null, n); })); return r; }, cacheImage: function(t, e) { if (t && e) { var i = new n(); i.initWithElement(e); var r = { id: t, url: t, error: null, content: i, complete: !1 }; cc.loader.flowOut(r); return i; } }, postLoadTexture: function(t, e) { t.loaded ? e && e() : t.url ? cc.loader.load({ url: t.url, skips: [ "Loader" ] }, (function(i, n) { if (n) { 0; t.loaded || (t._nativeAsset = n); } e && e(i); })) : e && e(); } }; cc.textureUtil = e.exports = r; }), { "../assets/CCTexture2D": 73 } ], 305: [ (function(i, n, r) { "use strict"; var s = i("./value-type"), o = i("../platform/js"), a = (function() { function n(i, n, r, s) { if ("object" === ("object" === (e = typeof i) ? t(i) : e)) { n = i.g; r = i.b; s = i.a; i = i.r; } i = i || 0; n = n || 0; r = r || 0; s = "number" === ("object" === (e = typeof s) ? t(s) : e) ? s : 255; this._val = (s << 24 >>> 0) + (r << 16) + (n << 8) + i; } o.extend(n, s); i("../platform/CCClass").fastDefine("cc.Color", n, { r: 0, g: 0, b: 0, a: 255 }); var r = { WHITE: [ 255, 255, 255, 255 ], BLACK: [ 0, 0, 0, 255 ], TRANSPARENT: [ 0, 0, 0, 0 ], GRAY: [ 127.5, 127.5, 127.5 ], RED: [ 255, 0, 0 ], GREEN: [ 0, 255, 0 ], BLUE: [ 0, 0, 255 ], YELLOW: [ 255, 235, 4 ], ORANGE: [ 255, 127, 0 ], CYAN: [ 0, 255, 255 ], MAGENTA: [ 255, 0, 255 ] }; for (var a in r) o.get(n, a, (function(t) { return function() { return new n(t[0], t[1], t[2], t[3]); }; })(r[a])); var c = n.prototype; c.clone = function() { var t = new n(); t._val = this._val; return t; }; c.equals = function(t) { return t && this._val === t._val; }; c.lerp = function(t, e, i) { i = i || new n(); var r = this.r, s = this.g, o = this.b, a = this.a; i.r = r + (t.r - r) * e; i.g = s + (t.g - s) * e; i.b = o + (t.b - o) * e; i.a = a + (t.a - a) * e; return i; }; c.toString = function() { return "rgba(" + this.r.toFixed() + ", " + this.g.toFixed() + ", " + this.b.toFixed() + ", " + this.a.toFixed() + ")"; }; c.getR = function() { return 255 & this._val; }; c.setR = function(t) { t = ~~cc.misc.clampf(t, 0, 255); this._val = (4294967040 & this._val | t) >>> 0; return this; }; c.getG = function() { return (65280 & this._val) >> 8; }; c.setG = function(t) { t = ~~cc.misc.clampf(t, 0, 255); this._val = (4294902015 & this._val | t << 8) >>> 0; return this; }; c.getB = function() { return (16711680 & this._val) >> 16; }; c.setB = function(t) { t = ~~cc.misc.clampf(t, 0, 255); this._val = (4278255615 & this._val | t << 16) >>> 0; return this; }; c.getA = function() { return (4278190080 & this._val) >>> 24; }; c.setA = function(t) { t = ~~cc.misc.clampf(t, 0, 255); this._val = (16777215 & this._val | t << 24) >>> 0; return this; }; c._fastSetA = function(t) { this._val = (16777215 & this._val | t << 24) >>> 0; }; o.getset(c, "r", c.getR, c.setR, !0); o.getset(c, "g", c.getG, c.setG, !0); o.getset(c, "b", c.getB, c.setB, !0); o.getset(c, "a", c.getA, c.setA, !0); c.toCSS = function(t) { return "rgba" === t ? "rgba(" + (0 | this.r) + "," + (0 | this.g) + "," + (0 | this.b) + "," + (this.a / 255).toFixed(2) + ")" : "rgb" === t ? "rgb(" + (0 | this.r) + "," + (0 | this.g) + "," + (0 | this.b) + ")" : "#" + this.toHEX(t); }; c.fromHEX = function(t) { t = 0 === t.indexOf("#") ? t.substring(1) : t; var e = parseInt(t.substr(0, 2), 16) || 0, i = parseInt(t.substr(2, 2), 16) || 0, n = parseInt(t.substr(4, 2), 16) || 0, r = parseInt(t.substr(6, 2), 16) || 255; this._val = (r << 24 >>> 0) + (n << 16) + (i << 8) + e; return this; }; c.toHEX = function(t) { var e = [ (this.r < 16 ? "0" : "") + (0 | this.r).toString(16), (this.g < 16 ? "0" : "") + (0 | this.g).toString(16), (this.b < 16 ? "0" : "") + (0 | this.b).toString(16) ], i = -1; if ("#rgb" === t) for (i = 0; i < e.length; ++i) e[i].length > 1 && (e[i] = e[i][0]); else if ("#rrggbb" === t) for (i = 0; i < e.length; ++i) 1 === e[i].length && (e[i] = "0" + e[i]); else "#rrggbbaa" === t && e.push((this.a < 16 ? "0" : "") + (0 | this.a).toString(16)); return e.join(""); }; c.toRGBValue = function() { return 16777215 & this._val; }; c.fromHSV = function(t, e, i) { var n, r, s; if (0 === e) n = r = s = i; else if (0 === i) n = r = s = 0; else { 1 === t && (t = 0); t *= 6; e = e; i = i; var o = Math.floor(t), a = t - o, c = i * (1 - e), l = i * (1 - e * a), h = i * (1 - e * (1 - a)); switch (o) { case 0: n = i; r = h; s = c; break; case 1: n = l; r = i; s = c; break; case 2: n = c; r = i; s = h; break; case 3: n = c; r = l; s = i; break; case 4: n = h; r = c; s = i; break; case 5: n = i; r = c; s = l; } } n *= 255; r *= 255; s *= 255; this._val = (this.a << 24 >>> 0) + (s << 16) + (r << 8) + n; return this; }; c.toHSV = function() { var t = this.r / 255, e = this.g / 255, i = this.b / 255, n = { h: 0, s: 0, v: 0 }, r = Math.max(t, e, i), s = Math.min(t, e, i), o = 0; n.v = r; n.s = r ? (r - s) / r : 0; if (n.s) { o = r - s; n.h = t === r ? (e - i) / o : e === r ? 2 + (i - t) / o : 4 + (t - e) / o; n.h /= 6; n.h < 0 && (n.h += 1); } else n.h = 0; return n; }; c.set = function(t) { if (t._val) this._val = t._val; else { this.r = t.r; this.g = t.g; this.b = t.b; this.a = t.a; } }; return n; })(); cc.Color = a; cc.color = function(i, n, r, s) { if ("string" === ("object" === (e = typeof i) ? t(i) : e)) { return new cc.Color().fromHEX(i); } return "object" === ("object" === (e = typeof i) ? t(i) : e) ? new cc.Color(i.r, i.g, i.b, i.a) : new cc.Color(i, n, r, s); }; n.exports = cc.Color; }), { "../platform/CCClass": 201, "../platform/js": 221, "./value-type": 311 } ], 306: [ (function(t, e, i) { "use strict"; t("./value-type"); cc.vmath = t("../vmath").default; e.exports = { Vec2: t("./vec2"), Vec3: t("./vec3"), Vec4: t("./vec4"), Quat: t("./quat"), Mat4: t("./mat4"), Size: t("./size"), Rect: t("./rect"), Color: t("./color") }; }), { "../vmath": 317, "./color": 305, "./mat4": 307, "./quat": 308, "./rect": 309, "./size": 310, "./value-type": 311, "./vec2": 312, "./vec3": 313, "./vec4": 314 } ], 307: [ (function(t, e, i) { "use strict"; var n = t("../vmath"), r = t("./value-type"), s = t("../platform/js"), o = t("../platform/CCClass"); function a(t, e, i, n, r, s, o, a, c, l, h, u, _, f, d, m) { var p = this; p.m00 = t; p.m01 = e; p.m02 = i; p.m03 = n; p.m04 = r; p.m05 = s; p.m06 = o; p.m07 = a; p.m08 = c; p.m09 = l; p.m10 = h; p.m11 = u; p.m12 = _; p.m13 = f; p.m14 = d; p.m15 = m; } s.extend(a, r); o.fastDefine("cc.Mat4", a, { m00: 1, m01: 0, m02: 0, m03: 0, m04: 0, m05: 1, m06: 0, m07: 0, m08: 0, m09: 0, m10: 1, m11: 0, m12: 0, m13: 0, m14: 0, m15: 1 }); s.mixin(a.prototype, { clone: function() { var t = this; return new a(t.m00, t.m01, t.m02, t.m03, t.m04, t.m05, t.m06, t.m07, t.m08, t.m09, t.m10, t.m11, t.m12, t.m13, t.m14, t.m15); }, set: function(t) { var e = this; e.m00 = t.m00; e.m01 = t.m01; e.m02 = t.m02; e.m03 = t.m03; e.m04 = t.m04; e.m05 = t.m05; e.m06 = t.m06; e.m07 = t.m07; e.m08 = t.m08; e.m09 = t.m09; e.m10 = t.m10; e.m11 = t.m11; e.m12 = t.m12; e.m13 = t.m13; e.m14 = t.m14; e.m15 = t.m15; return this; }, equals: function(t) { return n.mat4.exactEquals(this, t); }, fuzzyEquals: function(t) { return n.mat4.equals(this, t); }, toString: function() { var t = this; return "[\n" + t.m00 + ", " + t.m01 + ", " + t.m02 + ", " + t.m03 + ",\n" + t.m04 + ", " + t.m05 + ", " + t.m06 + ", " + t.m07 + ",\n" + t.m08 + ", " + t.m09 + ", " + t.m10 + ", " + t.m11 + ",\n" + t.m12 + ", " + t.m13 + ", " + t.m14 + ", " + t.m15 + "\n]"; }, identity: function() { return n.mat4.identity(this); }, transpose: function(t) { t = t || new cc.Mat4(); return n.mat4.transpose(t, this); }, invert: function(t) { t = t || new cc.Mat4(); return n.mat4.invert(t, this); }, adjoint: function(t) { t = t || new cc.Mat4(); return n.mat4.adjoint(t, this); }, determinant: function() { return n.mat4.determinant(this); }, add: function(t, e) { e = e || new cc.Mat4(); return n.mat4.add(e, this, t); }, sub: function(t, e) { e = e || new cc.Mat4(); return n.mat4.subtract(e, this, t); }, mul: function(t, e) { e = e || new cc.Mat4(); return n.mat4.multiply(e, this, t); }, mulScalar: function(t, e) { e = e || new cc.Mat4(); return n.mat4.mulScalar(e, this, t); }, translate: function(t, e) { e = e || new cc.Mat4(); return n.mat4.translate(e, this, t); }, scale: function(t, e) { e = e || new cc.Mat4(); return n.mat4.scale(e, this, t); }, rotate: function(t, e, i) { i = i || new cc.Mat4(); return n.mat4.rotate(i, this, t, e); }, getTranslation: function(t) { t = t || new cc.Vec3(); return n.mat4.getTranslation(t, this); }, getScale: function(t) { t = t || new cc.Vec3(); return n.mat4.getScaling(t, this); }, getRotation: function(t) { t = t || new cc.Quat(); return n.mat4.getRotation(t, this); }, fromRTS: function(t, e, i) { return n.mat4.fromRTS(this, t, e, i); }, fromQuat: function(t) { return n.mat4.fromQuat(this, t); } }); cc.mat4 = function(t, e, i, r, s, o, c, l, h, u, _, f, d, m, p, v) { var y = new a(t, e, i, r, s, o, c, l, h, u, _, f, d, m, p, v); void 0 === t && n.mat4.identity(y); return y; }; e.exports = cc.Mat4 = a; }), { "../platform/CCClass": 201, "../platform/js": 221, "../vmath": 317, "./value-type": 311 } ], 308: [ (function(i, n, r) { "use strict"; var s = i("./value-type"), o = i("../platform/js"), a = i("../platform/CCClass"), c = i("../vmath/quat"); function l(i, n, r, s) { if (i && "object" === ("object" === (e = typeof i) ? t(i) : e)) { r = i.z; n = i.y; s = i.w; i = i.x; } this.x = i || 0; this.y = n || 0; this.z = r || 0; this.w = s || 1; } o.extend(l, s); a.fastDefine("cc.Quat", l, { x: 0, y: 0, z: 0, w: 1 }); var h = l.prototype; h.clone = function() { return new l(this.x, this.y, this.z, this.w); }; h.set = function(t) { this.x = t.x; this.y = t.y; this.z = t.z; this.w = t.w; return this; }; h.equals = function(t) { return t && this.x === t.x && this.y === t.y && this.z === t.z && this.w === t.w; }; h.toEuler = function(t) { c.toEuler(t, this); return t; }; h.fromEuler = function(t) { c.fromEuler(this, t.x, t.y, t.z); return this; }; h.lerp = function(t, e, i) { i = i || new cc.Quat(); c.slerp(i, this, t, e); return i; }; h.mul = function(t, e) { e = e || new cc.Quat(); c.mul(e, this, t); return e; }; h.rotateAround = function(t, e, i, n) { n = n || new cc.Quat(); return c.rotateAround(n, t, e, i); }; cc.quat = function(t, e, i, n) { return new l(t, e, i, n); }; n.exports = cc.Quat = l; }), { "../platform/CCClass": 201, "../platform/js": 221, "../vmath/quat": 322, "./value-type": 311 } ], 309: [ (function(i, n, r) { "use strict"; var s = i("./value-type"), o = i("../platform/js"); function a(i, n, r, s) { if (i && "object" === ("object" === (e = typeof i) ? t(i) : e)) { n = i.y; r = i.width; s = i.height; i = i.x; } this.x = i || 0; this.y = n || 0; this.width = r || 0; this.height = s || 0; } o.extend(a, s); i("../platform/CCClass").fastDefine("cc.Rect", a, { x: 0, y: 0, width: 0, height: 0 }); a.fromMinMax = function(t, e) { var i = Math.min(t.x, e.x), n = Math.min(t.y, e.y); return new a(i, n, Math.max(t.x, e.x) - i, Math.max(t.y, e.y) - n); }; var c = a.prototype; c.clone = function() { return new a(this.x, this.y, this.width, this.height); }; c.equals = function(t) { return t && this.x === t.x && this.y === t.y && this.width === t.width && this.height === t.height; }; c.lerp = function(t, e, i) { i = i || new a(); var n = this.x, r = this.y, s = this.width, o = this.height; i.x = n + (t.x - n) * e; i.y = r + (t.y - r) * e; i.width = s + (t.width - s) * e; i.height = o + (t.height - o) * e; return i; }; c.set = function(t) { this.x = t.x; this.y = t.y; this.width = t.width; this.height = t.height; }; c.intersects = function(t) { var e = this.x + this.width, i = this.y + this.height, n = t.x + t.width, r = t.y + t.height; return !(e < t.x || n < this.x || i < t.y || r < this.y); }; c.intersection = function(t, e) { var i = this.x, n = this.y, r = this.x + this.width, s = this.y + this.height, o = e.x, a = e.y, c = e.x + e.width, l = e.y + e.height; t.x = Math.max(i, o); t.y = Math.max(n, a); t.width = Math.min(r, c) - t.x; t.height = Math.min(s, l) - t.y; return t; }; c.contains = function(t) { return this.x <= t.x && this.x + this.width >= t.x && this.y <= t.y && this.y + this.height >= t.y; }; c.containsRect = function(t) { return this.x <= t.x && this.x + this.width >= t.x + t.width && this.y <= t.y && this.y + this.height >= t.y + t.height; }; c.union = function(t, e) { var i = this.x, n = this.y, r = this.width, s = this.height, o = e.x, a = e.y, c = e.width, l = e.height; t.x = Math.min(i, o); t.y = Math.min(n, a); t.width = Math.max(i + r, o + c) - t.x; t.height = Math.max(n + s, a + l) - t.y; return t; }; c.transformMat4 = function(t, e) { var i = this.x, n = this.y, r = i + this.width, s = n + this.height, o = e.m00 * i + e.m04 * n + e.m12, a = e.m01 * i + e.m05 * n + e.m13, c = e.m00 * r + e.m04 * n + e.m12, l = e.m01 * r + e.m05 * n + e.m13, h = e.m00 * i + e.m04 * s + e.m12, u = e.m01 * i + e.m05 * s + e.m13, _ = e.m00 * r + e.m04 * s + e.m12, f = e.m01 * r + e.m05 * s + e.m13, d = Math.min(o, c, h, _), m = Math.max(o, c, h, _), p = Math.min(a, l, u, f), v = Math.max(a, l, u, f); t.x = d; t.y = p; t.width = m - d; t.height = v - p; return t; }; c.toString = function() { return "(" + this.x.toFixed(2) + ", " + this.y.toFixed(2) + ", " + this.width.toFixed(2) + ", " + this.height.toFixed(2) + ")"; }; o.getset(c, "xMin", (function() { return this.x; }), (function(t) { this.width += this.x - t; this.x = t; })); o.getset(c, "yMin", (function() { return this.y; }), (function(t) { this.height += this.y - t; this.y = t; })); o.getset(c, "xMax", (function() { return this.x + this.width; }), (function(t) { this.width = t - this.x; })); o.getset(c, "yMax", (function() { return this.y + this.height; }), (function(t) { this.height = t - this.y; })); o.getset(c, "center", (function() { return new cc.Vec2(this.x + .5 * this.width, this.y + .5 * this.height); }), (function(t) { this.x = t.x - .5 * this.width; this.y = t.y - .5 * this.height; })); o.getset(c, "origin", (function() { return new cc.Vec2(this.x, this.y); }), (function(t) { this.x = t.x; this.y = t.y; })); o.getset(c, "size", (function() { return new cc.Size(this.width, this.height); }), (function(t) { this.width = t.width; this.height = t.height; })); cc.Rect = a; cc.rect = function(t, e, i, n) { return new a(t, e, i, n); }; n.exports = cc.Rect; }), { "../platform/CCClass": 201, "../platform/js": 221, "./value-type": 311 } ], 310: [ (function(i, n, r) { "use strict"; var s = i("./value-type"), o = i("../platform/js"); function a(i, n) { if (i && "object" === ("object" === (e = typeof i) ? t(i) : e)) { n = i.height; i = i.width; } this.width = i || 0; this.height = n || 0; } o.extend(a, s); i("../platform/CCClass").fastDefine("cc.Size", a, { width: 0, height: 0 }); o.get(a, "ZERO", (function() { return new a(0, 0); })); var c = a.prototype; c.clone = function() { return new a(this.width, this.height); }; c.equals = function(t) { return t && this.width === t.width && this.height === t.height; }; c.lerp = function(t, e, i) { i = i || new a(); var n = this.width, r = this.height; i.width = n + (t.width - n) * e; i.height = r + (t.height - r) * e; return i; }; c.set = function(t) { this.width = t.width; this.height = t.height; }; c.toString = function() { return "(" + this.width.toFixed(2) + ", " + this.height.toFixed(2) + ")"; }; cc.size = function(t, e) { return new a(t, e); }; cc.Size = n.exports = a; }), { "../platform/CCClass": 201, "../platform/js": 221, "./value-type": 311 } ], 311: [ (function(t, e, i) { "use strict"; var n = t("../platform/js"); function r() {} n.setClassName("cc.ValueType", r); var s = r.prototype; 0; s.toString = function() { return "" + {}; }; cc.ValueType = e.exports = r; }), { "../platform/js": 221 } ], 312: [ (function(i, n, r) { "use strict"; var s = i("../vmath"), o = i("./value-type"), a = i("../platform/js"), c = i("../platform/CCClass"), l = i("../utils/misc"); function h(i, n) { if (i && "object" === ("object" === (e = typeof i) ? t(i) : e)) { n = i.y; i = i.x; } this.x = i || 0; this.y = n || 0; } a.extend(h, o); c.fastDefine("cc.Vec2", h, { x: 0, y: 0 }); var u = h.prototype; a.value(u, "z", 0, !0); u.clone = function() { return new h(this.x, this.y); }; u.set = function(t) { this.x = t.x; this.y = t.y; return this; }; u.equals = function(t) { return t && this.x === t.x && this.y === t.y; }; u.fuzzyEquals = function(t, e) { return this.x - e <= t.x && t.x <= this.x + e && this.y - e <= t.y && t.y <= this.y + e; }; u.toString = function() { return "(" + this.x.toFixed(2) + ", " + this.y.toFixed(2) + ")"; }; u.lerp = function(t, e, i) { i = i || new h(); var n = this.x, r = this.y; i.x = n + (t.x - n) * e; i.y = r + (t.y - r) * e; return i; }; u.clampf = function(t, e) { this.x = l.clampf(this.x, t.x, e.x); this.y = l.clampf(this.y, t.y, e.y); return this; }; u.addSelf = function(t) { this.x += t.x; this.y += t.y; return this; }; u.add = function(t, e) { (e = e || new h()).x = this.x + t.x; e.y = this.y + t.y; return e; }; u.subSelf = function(t) { this.x -= t.x; this.y -= t.y; return this; }; u.sub = function(t, e) { (e = e || new h()).x = this.x - t.x; e.y = this.y - t.y; return e; }; u.mulSelf = function(t) { this.x *= t; this.y *= t; return this; }; u.mul = function(t, e) { (e = e || new h()).x = this.x * t; e.y = this.y * t; return e; }; u.scaleSelf = function(t) { this.x *= t.x; this.y *= t.y; return this; }; u.scale = function(t, e) { (e = e || new h()).x = this.x * t.x; e.y = this.y * t.y; return e; }; u.divSelf = function(t) { this.x /= t; this.y /= t; return this; }; u.div = function(t, e) { (e = e || new h()).x = this.x / t; e.y = this.y / t; return e; }; u.negSelf = function() { this.x = -this.x; this.y = -this.y; return this; }; u.neg = function(t) { (t = t || new h()).x = -this.x; t.y = -this.y; return t; }; u.dot = function(t) { return this.x * t.x + this.y * t.y; }; u.cross = function(t) { return this.x * t.y - this.y * t.x; }; u.mag = function() { return Math.sqrt(this.x * this.x + this.y * this.y); }; u.magSqr = function() { return this.x * this.x + this.y * this.y; }; u.normalizeSelf = function() { var t = this.x * this.x + this.y * this.y; if (1 === t) return this; if (0 === t) return this; var e = 1 / Math.sqrt(t); this.x *= e; this.y *= e; return this; }; u.normalize = function(t) { (t = t || new h()).x = this.x; t.y = this.y; t.normalizeSelf(); return t; }; u.angle = function(t) { var e = this.magSqr(), i = t.magSqr(); if (0 === e || 0 === i) { console.warn("Can't get angle between zero vector"); return 0; } var n = this.dot(t) / Math.sqrt(e * i); n = l.clampf(n, -1, 1); return Math.acos(n); }; u.signAngle = function(t) { var e = this.angle(t); return this.cross(t) < 0 ? -e : e; }; u.rotate = function(t, e) { (e = e || new h()).x = this.x; e.y = this.y; return e.rotateSelf(t); }; u.rotateSelf = function(t) { var e = Math.sin(t), i = Math.cos(t), n = this.x; this.x = i * n - e * this.y; this.y = e * n + i * this.y; return this; }; u.project = function(t) { return t.mul(this.dot(t) / t.dot(t)); }; u.transformMat4 = function(t, e) { e = e || new h(); s.vec2.transformMat4(e, this, t); }; a.get(h, "ONE", (function() { return new h(1, 1); })); a.get(h, "ZERO", (function() { return new h(0, 0); })); a.get(h, "UP", (function() { return new h(0, 1); })); a.get(h, "RIGHT", (function() { return new h(1, 0); })); cc.Vec2 = h; cc.v2 = function(t, e) { return new h(t, e); }; cc.p = cc.v2; n.exports = cc.Vec2; }), { "../platform/CCClass": 201, "../platform/js": 221, "../utils/misc": 297, "../vmath": 317, "./value-type": 311 } ], 313: [ (function(i, n, r) { "use strict"; var s = i("../vmath"), o = i("./value-type"), a = i("../platform/js"), c = i("../platform/CCClass"), l = i("../utils/misc"), h = i("./vec2").prototype; function u(i, n, r) { if (i && "object" === ("object" === (e = typeof i) ? t(i) : e)) { r = i.z; n = i.y; i = i.x; } this.x = i || 0; this.y = n || 0; this.z = r || 0; } a.extend(u, o); c.fastDefine("cc.Vec3", u, { x: 0, y: 0, z: 0 }); var _ = u.prototype; _.clone = function() { return new u(this.x, this.y, this.z); }; _.set = function(t) { this.x = t.x; this.y = t.y; this.z = t.z; return this; }; _.equals = function(t) { return t && this.x === t.x && this.y === t.y && this.z === t.z; }; _.fuzzyEquals = function(t, e) { return this.x - e <= t.x && t.x <= this.x + e && this.y - e <= t.y && t.y <= this.y + e && this.z - e <= t.z && t.z <= this.z + e; }; _.toString = function() { return "(" + this.x.toFixed(2) + ", " + this.y.toFixed(2) + ", " + this.z.toFixed(2) + ")"; }; _.lerp = function(t, e, i) { i = i || new u(); s.vec3.lerp(i, this, t, e); return i; }; _.clampf = function(t, e) { this.x = l.clampf(this.x, t.x, e.x); this.y = l.clampf(this.y, t.y, e.y); this.z = l.clampf(this.z, t.z, e.z); return this; }; _.addSelf = function(t) { this.x += t.x; this.y += t.y; this.z += t.z; return this; }; _.add = function(t, e) { (e = e || new u()).x = this.x + t.x; e.y = this.y + t.y; e.z = this.z + t.z; return e; }; _.subSelf = function(t) { this.x -= t.x; this.y -= t.y; this.z -= t.z; return this; }; _.sub = function(t, e) { (e = e || new u()).x = this.x - t.x; e.y = this.y - t.y; e.z = this.z - t.z; return e; }; _.mulSelf = function(t) { this.x *= t; this.y *= t; this.z *= t; return this; }; _.mul = function(t, e) { (e = e || new u()).x = this.x * t; e.y = this.y * t; e.z = this.z * t; return e; }; _.scaleSelf = function(t) { this.x *= t.x; this.y *= t.y; this.z *= t.z; return this; }; _.scale = function(t, e) { (e = e || new u()).x = this.x * t.x; e.y = this.y * t.y; e.z = this.z * t.z; return e; }; _.divSelf = function(t) { this.x /= t; this.y /= t; this.z /= t; return this; }; _.div = function(t, e) { (e = e || new u()).x = this.x / t; e.y = this.y / t; e.z = this.z / t; return e; }; _.negSelf = function() { this.x = -this.x; this.y = -this.y; this.z = -this.z; return this; }; _.neg = function(t) { (t = t || new u()).x = -this.x; t.y = -this.y; t.z = -this.z; return t; }; _.dot = function(t) { return this.x * t.x + this.y * t.y + this.z * t.z; }; _.cross = function(t, e) { e = e || new u(); s.vec3.cross(e, this, t); return e; }; _.mag = function() { return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); }; _.magSqr = function() { return this.x * this.x + this.y * this.y + this.z * this.z; }; _.normalizeSelf = function() { s.vec3.normalize(this, this); return this; }; _.normalize = function(t) { t = t || new u(); s.vec3.normalize(t, this); return t; }; _.transformMat4 = function(t, e) { e = e || new u(); s.vec3.transformMat4(e, this, t); }; _.angle = h.angle; _.project = h.project; _.signAngle = function(t) { cc.warnID(1408, "vec3.signAngle", "v2.1", "cc.v2(selfVector).signAngle(vector)"); var e = new cc.Vec2(this.x, this.y), i = new cc.Vec2(t.x, t.y); return e.signAngle(i); }; _.rotate = function(t, e) { cc.warnID(1408, "vec3.rotate", "v2.1", "cc.v2(selfVector).rotate(radians, out)"); return h.rotate.call(this, t, e); }; _.rotateSelf = function(t) { cc.warnID(1408, "vec3.rotateSelf", "v2.1", "cc.v2(selfVector).rotateSelf(radians)"); return h.rotateSelf.call(this, t); }; a.get(u, "ONE", (function() { return new u(1, 1, 1); })); a.get(u, "ZERO", (function() { return new u(0, 0, 0); })); a.get(u, "UP", (function() { return new u(0, 1, 0); })); a.get(u, "RIGHT", (function() { return new u(1, 0, 0); })); a.get(u, "FRONT", (function() { return new u(0, 0, 1); })); cc.v3 = function(t, e, i) { return new u(t, e, i); }; n.exports = cc.Vec3 = u; }), { "../platform/CCClass": 201, "../platform/js": 221, "../utils/misc": 297, "../vmath": 317, "./value-type": 311, "./vec2": 312 } ], 314: [ (function(i, n, r) { "use strict"; var s = l(i("./value-type")), o = l(i("../platform/CCClass")), a = i("../vmath"), c = i("../utils/misc"); function l(t) { return t && t.__esModule ? t : { default: t }; } function h(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } function u(i, n) { if (!i) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !n || "object" !== ("object" === (e = typeof n) ? t(n) : e) && "function" !== ("object" === (e = typeof n) ? t(n) : e) ? i : n; } function _(i, n) { if ("function" !== ("object" === (e = typeof n) ? t(n) : e) && null !== n) throw new TypeError("Super expression must either be null or a function, not " + ("object" === (e = typeof n) ? t(n) : e)); i.prototype = Object.create(n && n.prototype, { constructor: { value: i, enumerable: !1, writable: !0, configurable: !0 } }); n && (Object.setPrototypeOf ? Object.setPrototypeOf(i, n) : i.__proto__ = n); } var f = (function(i) { _(n, i); function n(r, s, o, a) { h(this, n); var c = u(this, i.call(this)); if (r && "object" === ("object" === (e = typeof r) ? t(r) : e)) { a = r.w; o = r.z; s = r.y; r = r.x; } c.x = r || 0; c.y = s || 0; c.z = o || 0; c.w = a || 0; return c; } n.prototype.clone = function() { return new n(this.x, this.y, this.z, this.w); }; n.prototype.set = function(t) { this.x = t.x; this.y = t.y; this.z = t.z; this.w = t.w; return this; }; n.prototype.equals = function(t) { return t && this.x === t.x && this.y === t.y && this.z === t.z && this.w === t.w; }; n.prototype.fuzzyEquals = function(t, e) { return this.x - e <= t.x && t.x <= this.x + e && this.y - e <= t.y && t.y <= this.y + e && this.z - e <= t.z && t.z <= this.z + e && this.w - e <= t.w && t.w <= this.w + e; }; n.prototype.toString = function() { return "(" + this.x.toFixed(2) + ", " + this.y.toFixed(2) + ", " + this.z.toFixed(2) + ", " + this.w.toFixed(2) + ")"; }; n.prototype.lerp = function(t, e, i) { i = i || new n(); a.vec4.lerp(i, this, t, e); return i; }; n.prototype.clampf = function(t, e) { this.x = (0, c.clampf)(this.x, t.x, e.x); this.y = (0, c.clampf)(this.y, t.y, e.y); this.z = (0, c.clampf)(this.z, t.z, e.z); this.w = (0, c.clampf)(this.w, t.w, e.w); return this; }; n.prototype.addSelf = function(t) { this.x += t.x; this.y += t.y; this.z += t.z; this.w += t.w; return this; }; n.prototype.add = function(t, e) { (e = e || new n()).x = this.x + t.x; e.y = this.y + t.y; e.z = this.z + t.z; e.w = this.w + t.w; return e; }; n.prototype.subSelf = function(t) { this.x -= t.x; this.y -= t.y; this.z -= t.z; this.w -= t.w; return this; }; n.prototype.sub = function(t, e) { (e = e || new n()).x = this.x - t.x; e.y = this.y - t.y; e.z = this.z - t.z; e.w = this.w - t.w; return e; }; n.prototype.mulSelf = function(t) { this.x *= t; this.y *= t; this.z *= t; this.w *= t; return this; }; n.prototype.mul = function(t, e) { (e = e || new n()).x = this.x * t; e.y = this.y * t; e.z = this.z * t; e.w = this.w * t; return e; }; n.prototype.scaleSelf = function(t) { this.x *= t.x; this.y *= t.y; this.z *= t.z; this.w *= t.w; return this; }; n.prototype.scale = function(t, e) { (e = e || new n()).x = this.x * t.x; e.y = this.y * t.y; e.z = this.z * t.z; e.w = this.w * t.w; return e; }; n.prototype.divSelf = function(t) { this.x /= t; this.y /= t; this.z /= t; this.w /= t; return this; }; n.prototype.div = function(t, e) { (e = e || new n()).x = this.x / t; e.y = this.y / t; e.z = this.z / t; e.w = this.w / t; return e; }; n.prototype.negSelf = function() { this.x = -this.x; this.y = -this.y; this.z = -this.z; this.w = -this.w; return this; }; n.prototype.neg = function(t) { (t = t || new n()).x = -this.x; t.y = -this.y; t.z = -this.z; t.w = -this.w; return t; }; n.prototype.dot = function(t) { return this.x * t.x + this.y * t.y + this.z * t.z + this.w * t.w; }; n.prototype.cross = function(t, e) { e = e || new n(); a.vec4.cross(e, this, t); return e; }; n.prototype.mag = function() { var t = this.x, e = this.y, i = this.z, n = this.w; return Math.sqrt(t * t + e * e + i * i + n * n); }; n.prototype.magSqr = function() { var t = this.x, e = this.y, i = this.z, n = this.w; return t * t + e * e + i * i + n * n; }; n.prototype.normalizeSelf = function() { a.vec4.normalize(this, this); return this; }; n.prototype.normalize = function(t) { t = t || new n(); a.vec4.normalize(t, this); return t; }; n.prototype.transformMat4 = function(t, e) { e = e || new n(); a.vec4.transformMat4(e, this, t); return e; }; return n; })(s.default); o.default.fastDefine("cc.Vec4", f, { x: 0, y: 0, z: 0, w: 0 }); cc.v4 = function(t, e, i, n) { return new f(t, e, i, n); }; n.exports = cc.Vec4 = f; }), { "../platform/CCClass": 201, "../utils/misc": 297, "../vmath": 317, "./value-type": 311 } ], 315: [ (function(t, e, i) { "use strict"; i.__esModule = !0; var n = t("./utils"); function r(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var s = (function() { function t() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1, n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1; r(this, t); this.r = e; this.g = i; this.b = n; } t.create = function() { return new t(arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1, arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1, arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1); }; t.clone = function(e) { return new t(e.r, e.g, e.b); }; t.copy = function(t, e) { t.r = e.r; t.g = e.g; t.b = e.b; return t; }; t.set = function(t, e, i, n) { t.r = e; t.g = i; t.b = n; return t; }; t.fromHex = function(t, e) { var i = (e >> 16) / 255, n = (e >> 8 & 255) / 255, r = (255 & e) / 255; t.r = i; t.g = n; t.b = r; return t; }; t.add = function(t, e, i) { t.r = e.r + i.r; t.g = e.g + i.g; t.b = e.b + i.b; return t; }; t.subtract = function(t, e, i) { t.r = e.r - i.r; t.g = e.g - i.g; t.b = e.b - i.b; return t; }; t.sub = function(e, i, n) { return t.subtract(e, i, n); }; t.multiply = function(t, e, i) { t.r = e.r * i.r; t.g = e.g * i.g; t.b = e.b * i.b; return t; }; t.mul = function(e, i, n) { return t.multiply(e, i, n); }; t.divide = function(t, e, i) { t.r = e.r / i.r; t.g = e.g / i.g; t.b = e.b / i.b; return t; }; t.div = function(e, i, n) { return t.divide(e, i, n); }; t.scale = function(t, e, i) { t.r = e.r * i; t.g = e.g * i; t.b = e.b * i; return t; }; t.lerp = function(t, e, i, n) { var r = e.r, s = e.g, o = e.b; t.r = r + n * (i.r - r); t.g = s + n * (i.g - s); t.b = o + n * (i.b - o); return t; }; t.str = function(t) { return "color3(" + t.r + ", " + t.g + ", " + t.b + ")"; }; t.array = function(t, e) { var i = e instanceof cc.Color ? 1 / 255 : 1; t[0] = e.r * i; t[1] = e.g * i; t[2] = e.b * i; return t; }; t.exactEquals = function(t, e) { return t.r === e.r && t.g === e.g && t.b === e.b; }; t.equals = function(t, e) { var i = t.r, r = t.g, s = t.b, o = e.r, a = e.g, c = e.b; return Math.abs(i - o) <= n.EPSILON * Math.max(1, Math.abs(i), Math.abs(o)) && Math.abs(r - a) <= n.EPSILON * Math.max(1, Math.abs(r), Math.abs(a)) && Math.abs(s - c) <= n.EPSILON * Math.max(1, Math.abs(s), Math.abs(c)); }; t.hex = function(t) { return 255 * t.r << 16 | 255 * t.g << 8 | 255 * t.b; }; return t; })(); i.default = s; e.exports = i.default; }), { "./utils": 323 } ], 316: [ (function(t, e, i) { "use strict"; i.__esModule = !0; var n = t("./utils"); function r(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var s = (function() { function t() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1, n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1, s = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 1; r(this, t); this.r = e; this.g = i; this.b = n; this.a = s; } t.create = function() { return new t(arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1, arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1, arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1, arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 1); }; t.clone = function(e) { return new t(e.r, e.g, e.b, e.a); }; t.copy = function(t, e) { t.r = e.r; t.g = e.g; t.b = e.b; t.a = e.a; return t; }; t.set = function(t, e, i, n, r) { t.r = e; t.g = i; t.b = n; t.a = r; return t; }; t.fromHex = function(t, e) { var i = (e >> 24) / 255, n = (e >> 16 & 255) / 255, r = (e >> 8 & 255) / 255, s = (255 & e) / 255; t.r = i; t.g = n; t.b = r; t.a = s; return t; }; t.add = function(t, e, i) { t.r = e.r + i.r; t.g = e.g + i.g; t.b = e.b + i.b; t.a = e.a + i.a; return t; }; t.subtract = function(t, e, i) { t.r = e.r - i.r; t.g = e.g - i.g; t.b = e.b - i.b; t.a = e.a - i.a; return t; }; t.sub = function(e, i, n) { return t.subtract(e, i, n); }; t.multiply = function(t, e, i) { t.r = e.r * i.r; t.g = e.g * i.g; t.b = e.b * i.b; t.a = e.a * i.a; return t; }; t.mul = function(e, i, n) { return t.multiply(e, i, n); }; t.divide = function(t, e, i) { t.r = e.r / i.r; t.g = e.g / i.g; t.b = e.b / i.b; t.a = e.a / i.a; return t; }; t.div = function(e, i, n) { return t.divide(e, i, n); }; t.scale = function(t, e, i) { t.r = e.r * i; t.g = e.g * i; t.b = e.b * i; t.a = e.a * i; return t; }; t.lerp = function(t, e, i, n) { var r = e.r, s = e.g, o = e.b, a = e.a; t.r = r + n * (i.r - r); t.g = s + n * (i.g - s); t.b = o + n * (i.b - o); t.a = a + n * (i.a - a); return t; }; t.str = function(t) { return "color4(" + t.r + ", " + t.g + ", " + t.b + ", " + t.a + ")"; }; t.array = function(t, e) { var i = e instanceof cc.Color || e.a > 1 ? 1 / 255 : 1; t[0] = e.r * i; t[1] = e.g * i; t[2] = e.b * i; t[3] = e.a * i; return t; }; t.exactEquals = function(t, e) { return t.r === e.r && t.g === e.g && t.b === e.b && t.a === e.a; }; t.equals = function(t, e) { var i = t.r, r = t.g, s = t.b, o = t.a, a = e.r, c = e.g, l = e.b, h = e.a; return Math.abs(i - a) <= n.EPSILON * Math.max(1, Math.abs(i), Math.abs(a)) && Math.abs(r - c) <= n.EPSILON * Math.max(1, Math.abs(r), Math.abs(c)) && Math.abs(s - l) <= n.EPSILON * Math.max(1, Math.abs(s), Math.abs(l)) && Math.abs(o - h) <= n.EPSILON * Math.max(1, Math.abs(o), Math.abs(h)); }; t.hex = function(t) { return (255 * t.r << 24 | 255 * t.g << 16 | 255 * t.b << 8 | 255 * t.a) >>> 0; }; return t; })(); i.default = s; e.exports = i.default; }), { "./utils": 323 } ], 317: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.color4 = i.color3 = i.mat4 = i.mat3 = i.mat23 = i.mat2 = i.quat = i.vec4 = i.vec3 = i.vec2 = void 0; var n = t("./utils"); Object.keys(n).forEach((function(t) { "default" !== t && "__esModule" !== t && Object.defineProperty(i, t, { enumerable: !0, get: function() { return n[t]; } }); })); var r = d(t("./vec2")), s = d(t("./vec3")), o = d(t("./vec4")), a = d(t("./quat")), c = d(t("./mat2")), l = d(t("./mat23")), h = d(t("./mat3")), u = d(t("./mat4")), _ = d(t("./color3")), f = d(t("./color4")); function d(t) { return t && t.__esModule ? t : { default: t }; } i.vec2 = r.default; i.vec3 = s.default; i.vec4 = o.default; i.quat = a.default; i.mat2 = c.default; i.mat23 = l.default; i.mat3 = h.default; i.mat4 = u.default; i.color3 = _.default; i.color4 = f.default; i.default = { vec2: r.default, vec3: s.default, vec4: o.default, quat: a.default, mat2: c.default, mat23: l.default, mat3: h.default, mat4: u.default, color3: _.default, color4: f.default }; }), { "./color3": 315, "./color4": 316, "./mat2": 318, "./mat23": 319, "./mat3": 320, "./mat4": 321, "./quat": 322, "./utils": 323, "./vec2": 324, "./vec3": 325, "./vec4": 326 } ], 318: [ (function(t, e, i) { "use strict"; i.__esModule = !0; var n = t("./utils"); function r(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var s = (function() { function t() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, s = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 1; r(this, t); this.m00 = e; this.m01 = i; this.m02 = n; this.m03 = s; } t.create = function() { return new t(arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1, arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 1); }; t.clone = function(e) { return new t(e.m00, e.m01, e.m02, e.m03); }; t.copy = function(t, e) { t.m00 = e.m00; t.m01 = e.m01; t.m02 = e.m02; t.m03 = e.m03; return t; }; t.identity = function(t) { t.m00 = 1; t.m01 = 0; t.m02 = 0; t.m03 = 1; return t; }; t.set = function(t, e, i, n, r) { t.m00 = e; t.m01 = i; t.m02 = n; t.m03 = r; return t; }; t.transpose = function(t, e) { if (t === e) { var i = e.m01; t.m01 = e.m02; t.m02 = i; } else { t.m00 = e.m00; t.m01 = e.m02; t.m02 = e.m01; t.m03 = e.m03; } return t; }; t.invert = function(t, e) { var i = e.m00, n = e.m01, r = e.m02, s = e.m03, o = i * s - r * n; if (!o) return null; o = 1 / o; t.m00 = s * o; t.m01 = -n * o; t.m02 = -r * o; t.m03 = i * o; return t; }; t.adjoint = function(t, e) { var i = e.m00; t.m00 = e.m03; t.m01 = -e.m01; t.m02 = -e.m02; t.m03 = i; return t; }; t.determinant = function(t) { return t.m00 * t.m03 - t.m02 * t.m01; }; t.multiply = function(t, e, i) { var n = e.m00, r = e.m01, s = e.m02, o = e.m03, a = i.m00, c = i.m01, l = i.m02, h = i.m03; t.m00 = n * a + s * c; t.m01 = r * a + o * c; t.m02 = n * l + s * h; t.m03 = r * l + o * h; return t; }; t.mul = function(e, i, n) { return t.multiply(e, i, n); }; t.rotate = function(t, e, i) { var n = e.m00, r = e.m01, s = e.m02, o = e.m03, a = Math.sin(i), c = Math.cos(i); t.m00 = n * c + s * a; t.m01 = r * c + o * a; t.m02 = n * -a + s * c; t.m03 = r * -a + o * c; return t; }; t.scale = function(t, e, i) { var n = e.m00, r = e.m01, s = e.m02, o = e.m03, a = i.x, c = i.y; t.m00 = n * a; t.m01 = r * a; t.m02 = s * c; t.m03 = o * c; return t; }; t.fromRotation = function(t, e) { var i = Math.sin(e), n = Math.cos(e); t.m00 = n; t.m01 = i; t.m02 = -i; t.m03 = n; return t; }; t.fromScaling = function(t, e) { t.m00 = e.x; t.m01 = 0; t.m02 = 0; t.m03 = e.y; return t; }; t.str = function(t) { return "mat2(" + t.m00 + ", " + t.m01 + ", " + t.m02 + ", " + t.m03 + ")"; }; t.array = function(t, e) { t[0] = e.m00; t[1] = e.m01; t[2] = e.m02; t[3] = e.m03; return t; }; t.frob = function(t) { return Math.sqrt(Math.pow(t.m00, 2) + Math.pow(t.m01, 2) + Math.pow(t.m02, 2) + Math.pow(t.m03, 2)); }; t.LDU = function(t, e, i, n) { t.m02 = n.m02 / n.m00; i.m00 = n.m00; i.m01 = n.m01; i.m03 = n.m03 - t.m02 * i.m01; }; t.add = function(t, e, i) { t.m00 = e.m00 + i.m00; t.m01 = e.m01 + i.m01; t.m02 = e.m02 + i.m02; t.m03 = e.m03 + i.m03; return t; }; t.subtract = function(t, e, i) { t.m00 = e.m00 - i.m00; t.m01 = e.m01 - i.m01; t.m02 = e.m02 - i.m02; t.m03 = e.m03 - i.m03; return t; }; t.sub = function(e, i, n) { return t.subtract(e, i, n); }; t.exactEquals = function(t, e) { return t.m00 === e.m00 && t.m01 === e.m01 && t.m02 === e.m02 && t.m03 === e.m03; }; t.equals = function(t, e) { var i = t.m00, r = t.m01, s = t.m02, o = t.m03, a = e.m00, c = e.m01, l = e.m02, h = e.m03; return Math.abs(i - a) <= n.EPSILON * Math.max(1, Math.abs(i), Math.abs(a)) && Math.abs(r - c) <= n.EPSILON * Math.max(1, Math.abs(r), Math.abs(c)) && Math.abs(s - l) <= n.EPSILON * Math.max(1, Math.abs(s), Math.abs(l)) && Math.abs(o - h) <= n.EPSILON * Math.max(1, Math.abs(o), Math.abs(h)); }; t.multiplyScalar = function(t, e, i) { t.m00 = e.m00 * i; t.m01 = e.m01 * i; t.m02 = e.m02 * i; t.m03 = e.m03 * i; return t; }; t.multiplyScalarAndAdd = function(t, e, i, n) { t.m00 = e.m00 + i.m00 * n; t.m01 = e.m01 + i.m01 * n; t.m02 = e.m02 + i.m02 * n; t.m03 = e.m03 + i.m03 * n; return t; }; return t; })(); i.default = s; e.exports = i.default; }), { "./utils": 323 } ], 319: [ (function(t, e, i) { "use strict"; i.__esModule = !0; var n = t("./utils"); function r(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var s = (function() { function t() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, s = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 1, o = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 0, a = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : 0; r(this, t); this.m00 = e; this.m01 = i; this.m02 = n; this.m03 = s; this.m04 = o; this.m05 = a; } t.create = function() { return new t(arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1, arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 1, arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 0, arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : 0); }; t.clone = function(e) { return new t(e.m00, e.m01, e.m02, e.m03, e.m04, e.m05); }; t.copy = function(t, e) { t.m00 = e.m00; t.m01 = e.m01; t.m02 = e.m02; t.m03 = e.m03; t.m04 = e.m04; t.m05 = e.m05; return t; }; t.identity = function(t) { t.m00 = 1; t.m01 = 0; t.m02 = 0; t.m03 = 1; t.m04 = 0; t.m05 = 0; return t; }; t.set = function(t, e, i, n, r, s, o) { t.m00 = e; t.m01 = i; t.m02 = n; t.m03 = r; t.m04 = s; t.m05 = o; return t; }; t.invert = function(t, e) { var i = e.m00, n = e.m01, r = e.m02, s = e.m03, o = e.m04, a = e.m05, c = i * s - n * r; if (!c) return null; c = 1 / c; t.m00 = s * c; t.m01 = -n * c; t.m02 = -r * c; t.m03 = i * c; t.m04 = (r * a - s * o) * c; t.m05 = (n * o - i * a) * c; return t; }; t.determinant = function(t) { return t.m00 * t.m03 - t.m01 * t.m02; }; t.multiply = function(t, e, i) { var n = e.m00, r = e.m01, s = e.m02, o = e.m03, a = e.m04, c = e.m05, l = i.m00, h = i.m01, u = i.m02, _ = i.m03, f = i.m04, d = i.m05; t.m00 = n * l + s * h; t.m01 = r * l + o * h; t.m02 = n * u + s * _; t.m03 = r * u + o * _; t.m04 = n * f + s * d + a; t.m05 = r * f + o * d + c; return t; }; t.mul = function(e, i, n) { return t.multiply(e, i, n); }; t.rotate = function(t, e, i) { var n = e.m00, r = e.m01, s = e.m02, o = e.m03, a = e.m04, c = e.m05, l = Math.sin(i), h = Math.cos(i); t.m00 = n * h + s * l; t.m01 = r * h + o * l; t.m02 = n * -l + s * h; t.m03 = r * -l + o * h; t.m04 = a; t.m05 = c; return t; }; t.scale = function(t, e, i) { var n = e.m00, r = e.m01, s = e.m02, o = e.m03, a = e.m04, c = e.m05, l = i.x, h = i.y; t.m00 = n * l; t.m01 = r * l; t.m02 = s * h; t.m03 = o * h; t.m04 = a; t.m05 = c; return t; }; t.translate = function(t, e, i) { var n = e.m00, r = e.m01, s = e.m02, o = e.m03, a = e.m04, c = e.m05, l = i.x, h = i.y; t.m00 = n; t.m01 = r; t.m02 = s; t.m03 = o; t.m04 = n * l + s * h + a; t.m05 = r * l + o * h + c; return t; }; t.fromRotation = function(t, e) { var i = Math.sin(e), n = Math.cos(e); t.m00 = n; t.m01 = i; t.m02 = -i; t.m03 = n; t.m04 = 0; t.m05 = 0; return t; }; t.fromScaling = function(t, e) { t.m00 = e.m00; t.m01 = 0; t.m02 = 0; t.m03 = e.m01; t.m04 = 0; t.m05 = 0; return t; }; t.fromTranslation = function(t, e) { t.m00 = 1; t.m01 = 0; t.m02 = 0; t.m03 = 1; t.m04 = e.x; t.m05 = e.y; return t; }; t.fromRTS = function(t, e, i, n) { var r = Math.sin(e), s = Math.cos(e); t.m00 = s * n.x; t.m01 = r * n.x; t.m02 = -r * n.y; t.m03 = s * n.y; t.m04 = i.x; t.m05 = i.y; return t; }; t.str = function(t) { return "mat23(" + t.m00 + ", " + t.m01 + ", " + t.m02 + ", " + t.m03 + ", " + t.m04 + ", " + t.m05 + ")"; }; t.array = function(t, e) { t[0] = e.m00; t[1] = e.m01; t[2] = e.m02; t[3] = e.m03; t[4] = e.m04; t[5] = e.m05; return t; }; t.array4x4 = function(t, e) { t[0] = e.m00; t[1] = e.m01; t[2] = 0; t[3] = 0; t[4] = e.m02; t[5] = e.m03; t[6] = 0; t[7] = 0; t[8] = 0; t[9] = 0; t[10] = 1; t[11] = 0; t[12] = e.m04; t[13] = e.m05; t[14] = 0; t[15] = 1; return t; }; t.frob = function(t) { return Math.sqrt(Math.pow(t.m00, 2) + Math.pow(t.m01, 2) + Math.pow(t.m02, 2) + Math.pow(t.m03, 2) + Math.pow(t.m04, 2) + Math.pow(t.m05, 2) + 1); }; t.add = function(t, e, i) { t.m00 = e.m00 + i.m00; t.m01 = e.m01 + i.m01; t.m02 = e.m02 + i.m02; t.m03 = e.m03 + i.m03; t.m04 = e.m04 + i.m04; t.m05 = e.m05 + i.m05; return t; }; t.subtract = function(t, e, i) { t.m00 = e.m00 - i.m00; t.m01 = e.m01 - i.m01; t.m02 = e.m02 - i.m02; t.m03 = e.m03 - i.m03; t.m04 = e.m04 - i.m04; t.m05 = e.m05 - i.m05; return t; }; t.sub = function(e, i, n) { return t.subtract(e, i, n); }; t.multiplyScalar = function(t, e, i) { t.m00 = e.m00 * i; t.m01 = e.m01 * i; t.m02 = e.m02 * i; t.m03 = e.m03 * i; t.m04 = e.m04 * i; t.m05 = e.m05 * i; return t; }; t.multiplyScalarAndAdd = function(t, e, i, n) { t.m00 = e.m00 + i.m00 * n; t.m01 = e.m01 + i.m01 * n; t.m02 = e.m02 + i.m02 * n; t.m03 = e.m03 + i.m03 * n; t.m04 = e.m04 + i.m04 * n; t.m05 = e.m05 + i.m05 * n; return t; }; t.exactEquals = function(t, e) { return t.m00 === e.m00 && t.m01 === e.m01 && t.m02 === e.m02 && t.m03 === e.m03 && t.m04 === e.m04 && t.m05 === e.m05; }; t.equals = function(t, e) { var i = t.m00, r = t.m01, s = t.m02, o = t.m03, a = t.m04, c = t.m05, l = e.m00, h = e.m01, u = e.m02, _ = e.m03, f = e.m04, d = e.m05; return Math.abs(i - l) <= n.EPSILON * Math.max(1, Math.abs(i), Math.abs(l)) && Math.abs(r - h) <= n.EPSILON * Math.max(1, Math.abs(r), Math.abs(h)) && Math.abs(s - u) <= n.EPSILON * Math.max(1, Math.abs(s), Math.abs(u)) && Math.abs(o - _) <= n.EPSILON * Math.max(1, Math.abs(o), Math.abs(_)) && Math.abs(a - f) <= n.EPSILON * Math.max(1, Math.abs(a), Math.abs(f)) && Math.abs(c - d) <= n.EPSILON * Math.max(1, Math.abs(c), Math.abs(d)); }; return t; })(); i.default = s; e.exports = i.default; }), { "./utils": 323 } ], 320: [ (function(t, e, i) { "use strict"; i.__esModule = !0; var n = t("./utils"), r = (function(t) { return t && t.__esModule ? t : { default: t }; })(t("./vec3")); function s(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var o = (function() { function t() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, r = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0, o = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 1, a = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : 0, c = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : 0, l = arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : 0, h = arguments.length > 8 && void 0 !== arguments[8] ? arguments[8] : 1; s(this, t); this.m00 = e; this.m01 = i; this.m02 = n; this.m03 = r; this.m04 = o; this.m05 = a; this.m06 = c; this.m07 = l; this.m08 = h; } t.create = function() { return new t(arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1, arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0, arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 1, arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : 0, arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : 0, arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : 0, arguments.length > 8 && void 0 !== arguments[8] ? arguments[8] : 1); }; t.clone = function(e) { return new t(e.m00, e.m01, e.m02, e.m03, e.m04, e.m05, e.m06, e.m07, e.m08); }; t.copy = function(t, e) { t.m00 = e.m00; t.m01 = e.m01; t.m02 = e.m02; t.m03 = e.m03; t.m04 = e.m04; t.m05 = e.m05; t.m06 = e.m06; t.m07 = e.m07; t.m08 = e.m08; return t; }; t.set = function(t, e, i, n, r, s, o, a, c, l) { t.m00 = e; t.m01 = i; t.m02 = n; t.m03 = r; t.m04 = s; t.m05 = o; t.m06 = a; t.m07 = c; t.m08 = l; return t; }; t.identity = function(t) { t.m00 = 1; t.m01 = 0; t.m02 = 0; t.m03 = 0; t.m04 = 1; t.m05 = 0; t.m06 = 0; t.m07 = 0; t.m08 = 1; return t; }; t.transpose = function(t, e) { if (t === e) { var i = e.m01, n = e.m02, r = e.m05; t.m01 = e.m03; t.m02 = e.m06; t.m03 = i; t.m05 = e.m07; t.m06 = n; t.m07 = r; } else { t.m00 = e.m00; t.m01 = e.m03; t.m02 = e.m06; t.m03 = e.m01; t.m04 = e.m04; t.m05 = e.m07; t.m06 = e.m02; t.m07 = e.m05; t.m08 = e.m08; } return t; }; t.invert = function(t, e) { var i = e.m00, n = e.m01, r = e.m02, s = e.m03, o = e.m04, a = e.m05, c = e.m06, l = e.m07, h = e.m08, u = h * o - a * l, _ = -h * s + a * c, f = l * s - o * c, d = i * u + n * _ + r * f; if (!d) return null; d = 1 / d; t.m00 = u * d; t.m01 = (-h * n + r * l) * d; t.m02 = (a * n - r * o) * d; t.m03 = _ * d; t.m04 = (h * i - r * c) * d; t.m05 = (-a * i + r * s) * d; t.m06 = f * d; t.m07 = (-l * i + n * c) * d; t.m08 = (o * i - n * s) * d; return t; }; t.adjoint = function(t, e) { var i = e.m00, n = e.m01, r = e.m02, s = e.m03, o = e.m04, a = e.m05, c = e.m06, l = e.m07, h = e.m08; t.m00 = o * h - a * l; t.m01 = r * l - n * h; t.m02 = n * a - r * o; t.m03 = a * c - s * h; t.m04 = i * h - r * c; t.m05 = r * s - i * a; t.m06 = s * l - o * c; t.m07 = n * c - i * l; t.m08 = i * o - n * s; return t; }; t.determinant = function(t) { var e = t.m00, i = t.m01, n = t.m02, r = t.m03, s = t.m04, o = t.m05, a = t.m06, c = t.m07, l = t.m08; return e * (l * s - o * c) + i * (-l * r + o * a) + n * (c * r - s * a); }; t.multiply = function(t, e, i) { var n = e.m00, r = e.m01, s = e.m02, o = e.m03, a = e.m04, c = e.m05, l = e.m06, h = e.m07, u = e.m08, _ = i.m00, f = i.m01, d = i.m02, m = i.m03, p = i.m04, v = i.m05, y = i.m06, g = i.m07, x = i.m08; t.m00 = _ * n + f * o + d * l; t.m01 = _ * r + f * a + d * h; t.m02 = _ * s + f * c + d * u; t.m03 = m * n + p * o + v * l; t.m04 = m * r + p * a + v * h; t.m05 = m * s + p * c + v * u; t.m06 = y * n + g * o + x * l; t.m07 = y * r + g * a + x * h; t.m08 = y * s + g * c + x * u; return t; }; t.mul = function(e, i, n) { return t.multiply(e, i, n); }; t.translate = function(t, e, i) { var n = e.m00, r = e.m01, s = e.m02, o = e.m03, a = e.m04, c = e.m05, l = e.m06, h = e.m07, u = e.m08, _ = i.x, f = i.y; t.m00 = n; t.m01 = r; t.m02 = s; t.m03 = o; t.m04 = a; t.m05 = c; t.m06 = _ * n + f * o + l; t.m07 = _ * r + f * a + h; t.m08 = _ * s + f * c + u; return t; }; t.rotate = function(t, e, i) { var n = e.m00, r = e.m01, s = e.m02, o = e.m03, a = e.m04, c = e.m05, l = e.m06, h = e.m07, u = e.m08, _ = Math.sin(i), f = Math.cos(i); t.m00 = f * n + _ * o; t.m01 = f * r + _ * a; t.m02 = f * s + _ * c; t.m03 = f * o - _ * n; t.m04 = f * a - _ * r; t.m05 = f * c - _ * s; t.m06 = l; t.m07 = h; t.m08 = u; return t; }; t.scale = function(t, e, i) { var n = i.x, r = i.y; t.m00 = n * e.m00; t.m01 = n * e.m01; t.m02 = n * e.m02; t.m03 = r * e.m03; t.m04 = r * e.m04; t.m05 = r * e.m05; t.m06 = e.m06; t.m07 = e.m07; t.m08 = e.m08; return t; }; t.fromMat4 = function(t, e) { t.m00 = e.m00; t.m01 = e.m01; t.m02 = e.m02; t.m03 = e.m04; t.m04 = e.m05; t.m05 = e.m06; t.m06 = e.m08; t.m07 = e.m09; t.m08 = e.m10; return t; }; t.fromTranslation = function(t, e) { t.m00 = 1; t.m01 = 0; t.m02 = 0; t.m03 = 0; t.m04 = 1; t.m05 = 0; t.m06 = e.x; t.m07 = e.y; t.m08 = 1; return t; }; t.fromRotation = function(t, e) { var i = Math.sin(e), n = Math.cos(e); t.m00 = n; t.m01 = i; t.m02 = 0; t.m03 = -i; t.m04 = n; t.m05 = 0; t.m06 = 0; t.m07 = 0; t.m08 = 1; return t; }; t.fromScaling = function(t, e) { t.m00 = e.x; t.m01 = 0; t.m02 = 0; t.m03 = 0; t.m04 = e.y; t.m05 = 0; t.m06 = 0; t.m07 = 0; t.m08 = 1; return t; }; t.fromMat2d = function(t, e) { t.m00 = e.m00; t.m01 = e.m01; t.m02 = 0; t.m03 = e.m02; t.m04 = e.m03; t.m05 = 0; t.m06 = e.m04; t.m07 = e.m05; t.m08 = 1; return t; }; t.fromQuat = function(t, e) { var i = e.x, n = e.y, r = e.z, s = e.w, o = i + i, a = n + n, c = r + r, l = i * o, h = n * o, u = n * a, _ = r * o, f = r * a, d = r * c, m = s * o, p = s * a, v = s * c; t.m00 = 1 - u - d; t.m03 = h - v; t.m06 = _ + p; t.m01 = h + v; t.m04 = 1 - l - d; t.m07 = f - m; t.m02 = _ - p; t.m05 = f + m; t.m08 = 1 - l - u; return t; }; t.fromViewUp = function(e, i, s) { return (function() { var e = r.default.create(0, 1, 0), i = r.default.create(0, 0, 0), s = r.default.create(0, 0, 0); return function(o, a, c) { if (r.default.sqrMag(a) < n.EPSILON * n.EPSILON) { t.identity(o); return o; } c = c || e; r.default.normalize(i, r.default.cross(i, c, a)); if (r.default.sqrMag(i) < n.EPSILON * n.EPSILON) { t.identity(o); return o; } r.default.cross(s, a, i); t.set(o, i.x, i.y, i.z, s.x, s.y, s.z, a.x, a.y, a.z); return o; }; })()(e, i, s); }; t.normalFromMat4 = function(t, e) { var i = e.m00, n = e.m01, r = e.m02, s = e.m03, o = e.m04, a = e.m05, c = e.m06, l = e.m07, h = e.m08, u = e.m09, _ = e.m10, f = e.m11, d = e.m12, m = e.m13, p = e.m14, v = e.m15, y = i * a - n * o, g = i * c - r * o, x = i * l - s * o, C = n * c - r * a, b = n * l - s * a, A = r * l - s * c, S = h * m - u * d, w = h * p - _ * d, T = h * v - f * d, E = u * p - _ * m, M = u * v - f * m, B = _ * v - f * p, D = y * B - g * M + x * E + C * T - b * w + A * S; if (!D) return null; D = 1 / D; t.m00 = (a * B - c * M + l * E) * D; t.m01 = (c * T - o * B - l * w) * D; t.m02 = (o * M - a * T + l * S) * D; t.m03 = (r * M - n * B - s * E) * D; t.m04 = (i * B - r * T + s * w) * D; t.m05 = (n * T - i * M - s * S) * D; t.m06 = (m * A - p * b + v * C) * D; t.m07 = (p * x - d * A - v * g) * D; t.m08 = (d * b - m * x + v * y) * D; return t; }; t.str = function(t) { return "mat3(" + t.m00 + ", " + t.m01 + ", " + t.m02 + ", " + t.m03 + ", " + t.m04 + ", " + t.m05 + ", " + t.m06 + ", " + t.m07 + ", " + t.m08 + ")"; }; t.array = function(t, e) { t[0] = e.m00; t[1] = e.m01; t[2] = e.m02; t[3] = e.m03; t[4] = e.m04; t[5] = e.m05; t[6] = e.m06; t[7] = e.m07; t[8] = e.m08; return t; }; t.frob = function(t) { return Math.sqrt(Math.pow(t.m00, 2) + Math.pow(t.m01, 2) + Math.pow(t.m02, 2) + Math.pow(t.m03, 2) + Math.pow(t.m04, 2) + Math.pow(t.m05, 2) + Math.pow(t.m06, 2) + Math.pow(t.m07, 2) + Math.pow(t.m08, 2)); }; t.add = function(t, e, i) { t.m00 = e.m00 + i.m00; t.m01 = e.m01 + i.m01; t.m02 = e.m02 + i.m02; t.m03 = e.m03 + i.m03; t.m04 = e.m04 + i.m04; t.m05 = e.m05 + i.m05; t.m06 = e.m06 + i.m06; t.m07 = e.m07 + i.m07; t.m08 = e.m08 + i.m08; return t; }; t.subtract = function(t, e, i) { t.m00 = e.m00 - i.m00; t.m01 = e.m01 - i.m01; t.m02 = e.m02 - i.m02; t.m03 = e.m03 - i.m03; t.m04 = e.m04 - i.m04; t.m05 = e.m05 - i.m05; t.m06 = e.m06 - i.m06; t.m07 = e.m07 - i.m07; t.m08 = e.m08 - i.m08; return t; }; t.sub = function(e, i, n) { return t.subtract(e, i, n); }; t.multiplyScalar = function(t, e, i) { t.m00 = e.m00 * i; t.m01 = e.m01 * i; t.m02 = e.m02 * i; t.m03 = e.m03 * i; t.m04 = e.m04 * i; t.m05 = e.m05 * i; t.m06 = e.m06 * i; t.m07 = e.m07 * i; t.m08 = e.m08 * i; return t; }; t.multiplyScalarAndAdd = function(t, e, i, n) { t.m00 = e.m00 + i.m00 * n; t.m01 = e.m01 + i.m01 * n; t.m02 = e.m02 + i.m02 * n; t.m03 = e.m03 + i.m03 * n; t.m04 = e.m04 + i.m04 * n; t.m05 = e.m05 + i.m05 * n; t.m06 = e.m06 + i.m06 * n; t.m07 = e.m07 + i.m07 * n; t.m08 = e.m08 + i.m08 * n; return t; }; t.exactEquals = function(t, e) { return t.m00 === e.m00 && t.m01 === e.m01 && t.m02 === e.m02 && t.m03 === e.m03 && t.m04 === e.m04 && t.m05 === e.m05 && t.m06 === e.m06 && t.m07 === e.m07 && t.m08 === e.m08; }; t.equals = function(t, e) { var i = t.m00, r = t.m01, s = t.m02, o = t.m03, a = t.m04, c = t.m05, l = t.m06, h = t.m07, u = t.m08, _ = e.m00, f = e.m01, d = e.m02, m = e.m03, p = e.m04, v = e.m05, y = e.m06, g = e.m07, x = e.m08; return Math.abs(i - _) <= n.EPSILON * Math.max(1, Math.abs(i), Math.abs(_)) && Math.abs(r - f) <= n.EPSILON * Math.max(1, Math.abs(r), Math.abs(f)) && Math.abs(s - d) <= n.EPSILON * Math.max(1, Math.abs(s), Math.abs(d)) && Math.abs(o - m) <= n.EPSILON * Math.max(1, Math.abs(o), Math.abs(m)) && Math.abs(a - p) <= n.EPSILON * Math.max(1, Math.abs(a), Math.abs(p)) && Math.abs(c - v) <= n.EPSILON * Math.max(1, Math.abs(c), Math.abs(v)) && Math.abs(l - y) <= n.EPSILON * Math.max(1, Math.abs(l), Math.abs(y)) && Math.abs(h - g) <= n.EPSILON * Math.max(1, Math.abs(h), Math.abs(g)) && Math.abs(u - x) <= n.EPSILON * Math.max(1, Math.abs(u), Math.abs(x)); }; return t; })(); i.default = o; e.exports = i.default; }), { "./utils": 323, "./vec3": 325 } ], 321: [ (function(t, e, i) { "use strict"; i.__esModule = !0; var n = t("./utils"); function r(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var s = (function() { function t() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, s = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0, o = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 0, a = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : 1, c = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : 0, l = arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : 0, h = arguments.length > 8 && void 0 !== arguments[8] ? arguments[8] : 0, u = arguments.length > 9 && void 0 !== arguments[9] ? arguments[9] : 0, _ = arguments.length > 10 && void 0 !== arguments[10] ? arguments[10] : 1, f = arguments.length > 11 && void 0 !== arguments[11] ? arguments[11] : 0, d = arguments.length > 12 && void 0 !== arguments[12] ? arguments[12] : 0, m = arguments.length > 13 && void 0 !== arguments[13] ? arguments[13] : 0, p = arguments.length > 14 && void 0 !== arguments[14] ? arguments[14] : 0, v = arguments.length > 15 && void 0 !== arguments[15] ? arguments[15] : 1; r(this, t); this.m00 = e; this.m01 = i; this.m02 = n; this.m03 = s; this.m04 = o; this.m05 = a; this.m06 = c; this.m07 = l; this.m08 = h; this.m09 = u; this.m10 = _; this.m11 = f; this.m12 = d; this.m13 = m; this.m14 = p; this.m15 = v; } t.create = function() { return new t(arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1, arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0, arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 0, arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : 1, arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : 0, arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : 0, arguments.length > 8 && void 0 !== arguments[8] ? arguments[8] : 0, arguments.length > 9 && void 0 !== arguments[9] ? arguments[9] : 0, arguments.length > 10 && void 0 !== arguments[10] ? arguments[10] : 1, arguments.length > 11 && void 0 !== arguments[11] ? arguments[11] : 0, arguments.length > 12 && void 0 !== arguments[12] ? arguments[12] : 0, arguments.length > 13 && void 0 !== arguments[13] ? arguments[13] : 0, arguments.length > 14 && void 0 !== arguments[14] ? arguments[14] : 0, arguments.length > 15 && void 0 !== arguments[15] ? arguments[15] : 1); }; t.clone = function(e) { return new t(e.m00, e.m01, e.m02, e.m03, e.m04, e.m05, e.m06, e.m07, e.m08, e.m09, e.m10, e.m11, e.m12, e.m13, e.m14, e.m15); }; t.copy = function(t, e) { t.m00 = e.m00; t.m01 = e.m01; t.m02 = e.m02; t.m03 = e.m03; t.m04 = e.m04; t.m05 = e.m05; t.m06 = e.m06; t.m07 = e.m07; t.m08 = e.m08; t.m09 = e.m09; t.m10 = e.m10; t.m11 = e.m11; t.m12 = e.m12; t.m13 = e.m13; t.m14 = e.m14; t.m15 = e.m15; return t; }; t.set = function(t, e, i, n, r, s, o, a, c, l, h, u, _, f, d, m, p) { t.m00 = e; t.m01 = i; t.m02 = n; t.m03 = r; t.m04 = s; t.m05 = o; t.m06 = a; t.m07 = c; t.m08 = l; t.m09 = h; t.m10 = u; t.m11 = _; t.m12 = f; t.m13 = d; t.m14 = m; t.m15 = p; return t; }; t.identity = function(t) { t.m00 = 1; t.m01 = 0; t.m02 = 0; t.m03 = 0; t.m04 = 0; t.m05 = 1; t.m06 = 0; t.m07 = 0; t.m08 = 0; t.m09 = 0; t.m10 = 1; t.m11 = 0; t.m12 = 0; t.m13 = 0; t.m14 = 0; t.m15 = 1; return t; }; t.transpose = function(t, e) { if (t === e) { var i = e.m01, n = e.m02, r = e.m03, s = e.m06, o = e.m07, a = e.m11; t.m01 = e.m04; t.m02 = e.m08; t.m03 = e.m12; t.m04 = i; t.m06 = e.m09; t.m07 = e.m13; t.m08 = n; t.m09 = s; t.m11 = e.m14; t.m12 = r; t.m13 = o; t.m14 = a; } else { t.m00 = e.m00; t.m01 = e.m04; t.m02 = e.m08; t.m03 = e.m12; t.m04 = e.m01; t.m05 = e.m05; t.m06 = e.m09; t.m07 = e.m13; t.m08 = e.m02; t.m09 = e.m06; t.m10 = e.m10; t.m11 = e.m14; t.m12 = e.m03; t.m13 = e.m07; t.m14 = e.m11; t.m15 = e.m15; } return t; }; t.invert = function(t, e) { var i = e.m00, n = e.m01, r = e.m02, s = e.m03, o = e.m04, a = e.m05, c = e.m06, l = e.m07, h = e.m08, u = e.m09, _ = e.m10, f = e.m11, d = e.m12, m = e.m13, p = e.m14, v = e.m15, y = i * a - n * o, g = i * c - r * o, x = i * l - s * o, C = n * c - r * a, b = n * l - s * a, A = r * l - s * c, S = h * m - u * d, w = h * p - _ * d, T = h * v - f * d, E = u * p - _ * m, M = u * v - f * m, B = _ * v - f * p, D = y * B - g * M + x * E + C * T - b * w + A * S; if (!D) return null; D = 1 / D; t.m00 = (a * B - c * M + l * E) * D; t.m01 = (r * M - n * B - s * E) * D; t.m02 = (m * A - p * b + v * C) * D; t.m03 = (_ * b - u * A - f * C) * D; t.m04 = (c * T - o * B - l * w) * D; t.m05 = (i * B - r * T + s * w) * D; t.m06 = (p * x - d * A - v * g) * D; t.m07 = (h * A - _ * x + f * g) * D; t.m08 = (o * M - a * T + l * S) * D; t.m09 = (n * T - i * M - s * S) * D; t.m10 = (d * b - m * x + v * y) * D; t.m11 = (u * x - h * b - f * y) * D; t.m12 = (a * w - o * E - c * S) * D; t.m13 = (i * E - n * w + r * S) * D; t.m14 = (m * g - d * C - p * y) * D; t.m15 = (h * C - u * g + _ * y) * D; return t; }; t.adjoint = function(t, e) { var i = e.m00, n = e.m01, r = e.m02, s = e.m03, o = e.m04, a = e.m05, c = e.m06, l = e.m07, h = e.m08, u = e.m09, _ = e.m10, f = e.m11, d = e.m12, m = e.m13, p = e.m14, v = e.m15; t.m00 = a * (_ * v - f * p) - u * (c * v - l * p) + m * (c * f - l * _); t.m01 = -(n * (_ * v - f * p) - u * (r * v - s * p) + m * (r * f - s * _)); t.m02 = n * (c * v - l * p) - a * (r * v - s * p) + m * (r * l - s * c); t.m03 = -(n * (c * f - l * _) - a * (r * f - s * _) + u * (r * l - s * c)); t.m04 = -(o * (_ * v - f * p) - h * (c * v - l * p) + d * (c * f - l * _)); t.m05 = i * (_ * v - f * p) - h * (r * v - s * p) + d * (r * f - s * _); t.m06 = -(i * (c * v - l * p) - o * (r * v - s * p) + d * (r * l - s * c)); t.m07 = i * (c * f - l * _) - o * (r * f - s * _) + h * (r * l - s * c); t.m08 = o * (u * v - f * m) - h * (a * v - l * m) + d * (a * f - l * u); t.m09 = -(i * (u * v - f * m) - h * (n * v - s * m) + d * (n * f - s * u)); t.m10 = i * (a * v - l * m) - o * (n * v - s * m) + d * (n * l - s * a); t.m11 = -(i * (a * f - l * u) - o * (n * f - s * u) + h * (n * l - s * a)); t.m12 = -(o * (u * p - _ * m) - h * (a * p - c * m) + d * (a * _ - c * u)); t.m13 = i * (u * p - _ * m) - h * (n * p - r * m) + d * (n * _ - r * u); t.m14 = -(i * (a * p - c * m) - o * (n * p - r * m) + d * (n * c - r * a)); t.m15 = i * (a * _ - c * u) - o * (n * _ - r * u) + h * (n * c - r * a); return t; }; t.determinant = function(t) { var e = t.m00, i = t.m01, n = t.m02, r = t.m03, s = t.m04, o = t.m05, a = t.m06, c = t.m07, l = t.m08, h = t.m09, u = t.m10, _ = t.m11, f = t.m12, d = t.m13, m = t.m14, p = t.m15; return (e * o - i * s) * (u * p - _ * m) - (e * a - n * s) * (h * p - _ * d) + (e * c - r * s) * (h * m - u * d) + (i * a - n * o) * (l * p - _ * f) - (i * c - r * o) * (l * m - u * f) + (n * c - r * a) * (l * d - h * f); }; t.multiply = function(t, e, i) { var n = e.m00, r = e.m01, s = e.m02, o = e.m03, a = e.m04, c = e.m05, l = e.m06, h = e.m07, u = e.m08, _ = e.m09, f = e.m10, d = e.m11, m = e.m12, p = e.m13, v = e.m14, y = e.m15, g = i.m00, x = i.m01, C = i.m02, b = i.m03; t.m00 = g * n + x * a + C * u + b * m; t.m01 = g * r + x * c + C * _ + b * p; t.m02 = g * s + x * l + C * f + b * v; t.m03 = g * o + x * h + C * d + b * y; g = i.m04; x = i.m05; C = i.m06; b = i.m07; t.m04 = g * n + x * a + C * u + b * m; t.m05 = g * r + x * c + C * _ + b * p; t.m06 = g * s + x * l + C * f + b * v; t.m07 = g * o + x * h + C * d + b * y; g = i.m08; x = i.m09; C = i.m10; b = i.m11; t.m08 = g * n + x * a + C * u + b * m; t.m09 = g * r + x * c + C * _ + b * p; t.m10 = g * s + x * l + C * f + b * v; t.m11 = g * o + x * h + C * d + b * y; g = i.m12; x = i.m13; C = i.m14; b = i.m15; t.m12 = g * n + x * a + C * u + b * m; t.m13 = g * r + x * c + C * _ + b * p; t.m14 = g * s + x * l + C * f + b * v; t.m15 = g * o + x * h + C * d + b * y; return t; }; t.mul = function(e, i, n) { return t.multiply(e, i, n); }; t.translate = function(t, e, i) { var n = i.x, r = i.y, s = i.z, o = void 0, a = void 0, c = void 0, l = void 0, h = void 0, u = void 0, _ = void 0, f = void 0, d = void 0, m = void 0, p = void 0, v = void 0; if (e === t) { t.m12 = e.m00 * n + e.m04 * r + e.m08 * s + e.m12; t.m13 = e.m01 * n + e.m05 * r + e.m09 * s + e.m13; t.m14 = e.m02 * n + e.m06 * r + e.m10 * s + e.m14; t.m15 = e.m03 * n + e.m07 * r + e.m11 * s + e.m15; } else { o = e.m00; a = e.m01; c = e.m02; l = e.m03; h = e.m04; u = e.m05; _ = e.m06; f = e.m07; d = e.m08; m = e.m09; p = e.m10; v = e.m11; t.m00 = o; t.m01 = a; t.m02 = c; t.m03 = l; t.m04 = h; t.m05 = u; t.m06 = _; t.m07 = f; t.m08 = d; t.m09 = m; t.m10 = p; t.m11 = v; t.m12 = o * n + h * r + d * s + e.m12; t.m13 = a * n + u * r + m * s + e.m13; t.m14 = c * n + _ * r + p * s + e.m14; t.m15 = l * n + f * r + v * s + e.m15; } return t; }; t.scale = function(t, e, i) { var n = i.x, r = i.y, s = i.z; t.m00 = e.m00 * n; t.m01 = e.m01 * n; t.m02 = e.m02 * n; t.m03 = e.m03 * n; t.m04 = e.m04 * r; t.m05 = e.m05 * r; t.m06 = e.m06 * r; t.m07 = e.m07 * r; t.m08 = e.m08 * s; t.m09 = e.m09 * s; t.m10 = e.m10 * s; t.m11 = e.m11 * s; t.m12 = e.m12; t.m13 = e.m13; t.m14 = e.m14; t.m15 = e.m15; return t; }; t.rotate = function(t, e, i, r) { var s, o, a, c, l, h, u, _, f, d, m, p, v, y, g, x, C, b, A, S, w, T, E, M, B = r.x, D = r.y, I = r.z, P = Math.sqrt(B * B + D * D + I * I); if (Math.abs(P) < n.EPSILON) return null; B *= P = 1 / P; D *= P; I *= P; s = Math.sin(i); a = 1 - (o = Math.cos(i)); c = e.m00; l = e.m01; h = e.m02; u = e.m03; _ = e.m04; f = e.m05; d = e.m06; m = e.m07; p = e.m08; v = e.m09; y = e.m10; g = e.m11; x = B * B * a + o; C = D * B * a + I * s; b = I * B * a - D * s; A = B * D * a - I * s; S = D * D * a + o; w = I * D * a + B * s; T = B * I * a + D * s; E = D * I * a - B * s; M = I * I * a + o; t.m00 = c * x + _ * C + p * b; t.m01 = l * x + f * C + v * b; t.m02 = h * x + d * C + y * b; t.m03 = u * x + m * C + g * b; t.m04 = c * A + _ * S + p * w; t.m05 = l * A + f * S + v * w; t.m06 = h * A + d * S + y * w; t.m07 = u * A + m * S + g * w; t.m08 = c * T + _ * E + p * M; t.m09 = l * T + f * E + v * M; t.m10 = h * T + d * E + y * M; t.m11 = u * T + m * E + g * M; if (e !== t) { t.m12 = e.m12; t.m13 = e.m13; t.m14 = e.m14; t.m15 = e.m15; } return t; }; t.rotateX = function(t, e, i) { var n = Math.sin(i), r = Math.cos(i), s = e.m04, o = e.m05, a = e.m06, c = e.m07, l = e.m08, h = e.m09, u = e.m10, _ = e.m11; if (e !== t) { t.m00 = e.m00; t.m01 = e.m01; t.m02 = e.m02; t.m03 = e.m03; t.m12 = e.m12; t.m13 = e.m13; t.m14 = e.m14; t.m15 = e.m15; } t.m04 = s * r + l * n; t.m05 = o * r + h * n; t.m06 = a * r + u * n; t.m07 = c * r + _ * n; t.m08 = l * r - s * n; t.m09 = h * r - o * n; t.m10 = u * r - a * n; t.m11 = _ * r - c * n; return t; }; t.rotateY = function(t, e, i) { var n = Math.sin(i), r = Math.cos(i), s = e.m00, o = e.m01, a = e.m02, c = e.m03, l = e.m08, h = e.m09, u = e.m10, _ = e.m11; if (e !== t) { t.m04 = e.m04; t.m05 = e.m05; t.m06 = e.m06; t.m07 = e.m07; t.m12 = e.m12; t.m13 = e.m13; t.m14 = e.m14; t.m15 = e.m15; } t.m00 = s * r - l * n; t.m01 = o * r - h * n; t.m02 = a * r - u * n; t.m03 = c * r - _ * n; t.m08 = s * n + l * r; t.m09 = o * n + h * r; t.m10 = a * n + u * r; t.m11 = c * n + _ * r; return t; }; t.rotateZ = function(t, e, i) { var n = Math.sin(i), r = Math.cos(i), s = e.m00, o = e.m01, a = e.m02, c = e.m03, l = e.m04, h = e.m05, u = e.m06, _ = e.m07; if (e !== t) { t.m08 = e.m08; t.m09 = e.m09; t.m10 = e.m10; t.m11 = e.m11; t.m12 = e.m12; t.m13 = e.m13; t.m14 = e.m14; t.m15 = e.m15; } t.m00 = s * r + l * n; t.m01 = o * r + h * n; t.m02 = a * r + u * n; t.m03 = c * r + _ * n; t.m04 = l * r - s * n; t.m05 = h * r - o * n; t.m06 = u * r - a * n; t.m07 = _ * r - c * n; return t; }; t.fromTranslation = function(t, e) { t.m00 = 1; t.m01 = 0; t.m02 = 0; t.m03 = 0; t.m04 = 0; t.m05 = 1; t.m06 = 0; t.m07 = 0; t.m08 = 0; t.m09 = 0; t.m10 = 1; t.m11 = 0; t.m12 = e.x; t.m13 = e.y; t.m14 = e.z; t.m15 = 1; return t; }; t.fromScaling = function(t, e) { t.m00 = e.x; t.m01 = 0; t.m02 = 0; t.m03 = 0; t.m04 = 0; t.m05 = e.y; t.m06 = 0; t.m07 = 0; t.m08 = 0; t.m09 = 0; t.m10 = e.z; t.m11 = 0; t.m12 = 0; t.m13 = 0; t.m14 = 0; t.m15 = 1; return t; }; t.fromRotation = function(t, e, i) { var r, s, o, a = i.x, c = i.y, l = i.z, h = Math.sqrt(a * a + c * c + l * l); if (Math.abs(h) < n.EPSILON) return null; a *= h = 1 / h; c *= h; l *= h; r = Math.sin(e); o = 1 - (s = Math.cos(e)); t.m00 = a * a * o + s; t.m01 = c * a * o + l * r; t.m02 = l * a * o - c * r; t.m03 = 0; t.m04 = a * c * o - l * r; t.m05 = c * c * o + s; t.m06 = l * c * o + a * r; t.m07 = 0; t.m08 = a * l * o + c * r; t.m09 = c * l * o - a * r; t.m10 = l * l * o + s; t.m11 = 0; t.m12 = 0; t.m13 = 0; t.m14 = 0; t.m15 = 1; return t; }; t.fromXRotation = function(t, e) { var i = Math.sin(e), n = Math.cos(e); t.m00 = 1; t.m01 = 0; t.m02 = 0; t.m03 = 0; t.m04 = 0; t.m05 = n; t.m06 = i; t.m07 = 0; t.m08 = 0; t.m09 = -i; t.m10 = n; t.m11 = 0; t.m12 = 0; t.m13 = 0; t.m14 = 0; t.m15 = 1; return t; }; t.fromYRotation = function(t, e) { var i = Math.sin(e), n = Math.cos(e); t.m00 = n; t.m01 = 0; t.m02 = -i; t.m03 = 0; t.m04 = 0; t.m05 = 1; t.m06 = 0; t.m07 = 0; t.m08 = i; t.m09 = 0; t.m10 = n; t.m11 = 0; t.m12 = 0; t.m13 = 0; t.m14 = 0; t.m15 = 1; return t; }; t.fromZRotation = function(t, e) { var i = Math.sin(e), n = Math.cos(e); t.m00 = n; t.m01 = i; t.m02 = 0; t.m03 = 0; t.m04 = -i; t.m05 = n; t.m06 = 0; t.m07 = 0; t.m08 = 0; t.m09 = 0; t.m10 = 1; t.m11 = 0; t.m12 = 0; t.m13 = 0; t.m14 = 0; t.m15 = 1; return t; }; t.fromRT = function(t, e, i) { var n = e.x, r = e.y, s = e.z, o = e.w, a = n + n, c = r + r, l = s + s, h = n * a, u = n * c, _ = n * l, f = r * c, d = r * l, m = s * l, p = o * a, v = o * c, y = o * l; t.m00 = 1 - (f + m); t.m01 = u + y; t.m02 = _ - v; t.m03 = 0; t.m04 = u - y; t.m05 = 1 - (h + m); t.m06 = d + p; t.m07 = 0; t.m08 = _ + v; t.m09 = d - p; t.m10 = 1 - (h + f); t.m11 = 0; t.m12 = i.x; t.m13 = i.y; t.m14 = i.z; t.m15 = 1; return t; }; t.getTranslation = function(t, e) { t.x = e.m12; t.y = e.m13; t.z = e.m14; return t; }; t.getScaling = function(t, e) { var i = e.m00, n = e.m01, r = e.m02, s = e.m04, o = e.m05, a = e.m06, c = e.m08, l = e.m09, h = e.m10; t.x = Math.sqrt(i * i + n * n + r * r); t.y = Math.sqrt(s * s + o * o + a * a); t.z = Math.sqrt(c * c + l * l + h * h); return t; }; t.getRotation = function(t, e) { var i = e.m00 + e.m05 + e.m10, n = 0; if (i > 0) { n = 2 * Math.sqrt(i + 1); t.w = .25 * n; t.x = (e.m06 - e.m09) / n; t.y = (e.m08 - e.m02) / n; t.z = (e.m01 - e.m04) / n; } else if (e.m00 > e.m05 & e.m00 > e.m10) { n = 2 * Math.sqrt(1 + e.m00 - e.m05 - e.m10); t.w = (e.m06 - e.m09) / n; t.x = .25 * n; t.y = (e.m01 + e.m04) / n; t.z = (e.m08 + e.m02) / n; } else if (e.m05 > e.m10) { n = 2 * Math.sqrt(1 + e.m05 - e.m00 - e.m10); t.w = (e.m08 - e.m02) / n; t.x = (e.m01 + e.m04) / n; t.y = .25 * n; t.z = (e.m06 + e.m09) / n; } else { n = 2 * Math.sqrt(1 + e.m10 - e.m00 - e.m05); t.w = (e.m01 - e.m04) / n; t.x = (e.m08 + e.m02) / n; t.y = (e.m06 + e.m09) / n; t.z = .25 * n; } return t; }; t.fromRTS = function(t, e, i, n) { var r = e.x, s = e.y, o = e.z, a = e.w, c = r + r, l = s + s, h = o + o, u = r * c, _ = r * l, f = r * h, d = s * l, m = s * h, p = o * h, v = a * c, y = a * l, g = a * h, x = n.x, C = n.y, b = n.z; t.m00 = (1 - (d + p)) * x; t.m01 = (_ + g) * x; t.m02 = (f - y) * x; t.m03 = 0; t.m04 = (_ - g) * C; t.m05 = (1 - (u + p)) * C; t.m06 = (m + v) * C; t.m07 = 0; t.m08 = (f + y) * b; t.m09 = (m - v) * b; t.m10 = (1 - (u + d)) * b; t.m11 = 0; t.m12 = i.x; t.m13 = i.y; t.m14 = i.z; t.m15 = 1; return t; }; t.fromRTSOrigin = function(t, e, i, n, r) { var s = e.x, o = e.y, a = e.z, c = e.w, l = s + s, h = o + o, u = a + a, _ = s * l, f = s * h, d = s * u, m = o * h, p = o * u, v = a * u, y = c * l, g = c * h, x = c * u, C = n.x, b = n.y, A = n.z, S = r.x, w = r.y, T = r.z; t.m00 = (1 - (m + v)) * C; t.m01 = (f + x) * C; t.m02 = (d - g) * C; t.m03 = 0; t.m04 = (f - x) * b; t.m05 = (1 - (_ + v)) * b; t.m06 = (p + y) * b; t.m07 = 0; t.m08 = (d + g) * A; t.m09 = (p - y) * A; t.m10 = (1 - (_ + m)) * A; t.m11 = 0; t.m12 = i.x + S - (t.m00 * S + t.m04 * w + t.m08 * T); t.m13 = i.y + w - (t.m01 * S + t.m05 * w + t.m09 * T); t.m14 = i.z + T - (t.m02 * S + t.m06 * w + t.m10 * T); t.m15 = 1; return t; }; t.fromQuat = function(t, e) { var i = e.x, n = e.y, r = e.z, s = e.w, o = i + i, a = n + n, c = r + r, l = i * o, h = n * o, u = n * a, _ = r * o, f = r * a, d = r * c, m = s * o, p = s * a, v = s * c; t.m00 = 1 - u - d; t.m01 = h + v; t.m02 = _ - p; t.m03 = 0; t.m04 = h - v; t.m05 = 1 - l - d; t.m06 = f + m; t.m07 = 0; t.m08 = _ + p; t.m09 = f - m; t.m10 = 1 - l - u; t.m11 = 0; t.m12 = 0; t.m13 = 0; t.m14 = 0; t.m15 = 1; return t; }; t.frustum = function(t, e, i, n, r, s, o) { var a = 1 / (i - e), c = 1 / (r - n), l = 1 / (s - o); t.m00 = 2 * s * a; t.m01 = 0; t.m02 = 0; t.m03 = 0; t.m04 = 0; t.m05 = 2 * s * c; t.m06 = 0; t.m07 = 0; t.m08 = (i + e) * a; t.m09 = (r + n) * c; t.m10 = (o + s) * l; t.m11 = -1; t.m12 = 0; t.m13 = 0; t.m14 = o * s * 2 * l; t.m15 = 0; return t; }; t.perspective = function(t, e, i, n, r) { var s = 1 / Math.tan(e / 2), o = 1 / (n - r); t.m00 = s / i; t.m01 = 0; t.m02 = 0; t.m03 = 0; t.m04 = 0; t.m05 = s; t.m06 = 0; t.m07 = 0; t.m08 = 0; t.m09 = 0; t.m10 = (r + n) * o; t.m11 = -1; t.m12 = 0; t.m13 = 0; t.m14 = 2 * r * n * o; t.m15 = 0; return t; }; t.perspectiveFromFieldOfView = function(t, e, i, n) { var r = Math.tan(e.upDegrees * Math.PI / 180), s = Math.tan(e.downDegrees * Math.PI / 180), o = Math.tan(e.leftDegrees * Math.PI / 180), a = Math.tan(e.rightDegrees * Math.PI / 180), c = 2 / (o + a), l = 2 / (r + s); t.m00 = c; t.m01 = 0; t.m02 = 0; t.m03 = 0; t.m04 = 0; t.m05 = l; t.m06 = 0; t.m07 = 0; t.m08 = -(o - a) * c * .5; t.m09 = (r - s) * l * .5; t.m10 = n / (i - n); t.m11 = -1; t.m12 = 0; t.m13 = 0; t.m14 = n * i / (i - n); t.m15 = 0; return t; }; t.ortho = function(t, e, i, n, r, s, o) { var a = 1 / (e - i), c = 1 / (n - r), l = 1 / (s - o); t.m00 = -2 * a; t.m01 = 0; t.m02 = 0; t.m03 = 0; t.m04 = 0; t.m05 = -2 * c; t.m06 = 0; t.m07 = 0; t.m08 = 0; t.m09 = 0; t.m10 = 2 * l; t.m11 = 0; t.m12 = (e + i) * a; t.m13 = (r + n) * c; t.m14 = (o + s) * l; t.m15 = 1; return t; }; t.lookAt = function(t, e, i, n) { var r, s, o, a = void 0, c = void 0, l = void 0, h = void 0, u = void 0, _ = void 0, f = void 0, d = e.x, m = e.y, p = e.z, v = n.x, y = n.y, g = n.z, x = i.x, C = i.y, b = i.z; h = d - x; u = m - C; _ = p - b; a = y * (_ *= f = 1 / Math.sqrt(h * h + u * u + _ * _)) - g * (u *= f); c = g * (h *= f) - v * _; l = v * u - y * h; r = u * (l *= f = 1 / Math.sqrt(a * a + c * c + l * l)) - _ * (c *= f); s = _ * (a *= f) - h * l; o = h * c - u * a; t.m00 = a; t.m01 = r; t.m02 = h; t.m03 = 0; t.m04 = c; t.m05 = s; t.m06 = u; t.m07 = 0; t.m08 = l; t.m09 = o; t.m10 = _; t.m11 = 0; t.m12 = -(a * d + c * m + l * p); t.m13 = -(r * d + s * m + o * p); t.m14 = -(h * d + u * m + _ * p); t.m15 = 1; return t; }; t.str = function(t) { return "mat4(" + t.m00 + ", " + t.m01 + ", " + t.m02 + ", " + t.m03 + ", " + t.m04 + ", " + t.m05 + ", " + t.m06 + ", " + t.m07 + ", " + t.m08 + ", " + t.m09 + ", " + t.m10 + ", " + t.m11 + ", " + t.m12 + ", " + t.m13 + ", " + t.m14 + ", " + t.m15 + ")"; }; t.array = function(t, e) { t[0] = e.m00; t[1] = e.m01; t[2] = e.m02; t[3] = e.m03; t[4] = e.m04; t[5] = e.m05; t[6] = e.m06; t[7] = e.m07; t[8] = e.m08; t[9] = e.m09; t[10] = e.m10; t[11] = e.m11; t[12] = e.m12; t[13] = e.m13; t[14] = e.m14; t[15] = e.m15; return t; }; t.frob = function(t) { return Math.sqrt(Math.pow(t.m00, 2) + Math.pow(t.m01, 2) + Math.pow(t.m02, 2) + Math.pow(t.m03, 2) + Math.pow(t.m04, 2) + Math.pow(t.m05, 2) + Math.pow(t.m06, 2) + Math.pow(t.m07, 2) + Math.pow(t.m08, 2) + Math.pow(t.m09, 2) + Math.pow(t.m10, 2) + Math.pow(t.m11, 2) + Math.pow(t.m12, 2) + Math.pow(t.m13, 2) + Math.pow(t.m14, 2) + Math.pow(t.m15, 2)); }; t.add = function(t, e, i) { t.m00 = e.m00 + i.m00; t.m01 = e.m01 + i.m01; t.m02 = e.m02 + i.m02; t.m03 = e.m03 + i.m03; t.m04 = e.m04 + i.m04; t.m05 = e.m05 + i.m05; t.m06 = e.m06 + i.m06; t.m07 = e.m07 + i.m07; t.m08 = e.m08 + i.m08; t.m09 = e.m09 + i.m09; t.m10 = e.m10 + i.m10; t.m11 = e.m11 + i.m11; t.m12 = e.m12 + i.m12; t.m13 = e.m13 + i.m13; t.m14 = e.m14 + i.m14; t.m15 = e.m15 + i.m15; return t; }; t.subtract = function(t, e, i) { t.m00 = e.m00 - i.m00; t.m01 = e.m01 - i.m01; t.m02 = e.m02 - i.m02; t.m03 = e.m03 - i.m03; t.m04 = e.m04 - i.m04; t.m05 = e.m05 - i.m05; t.m06 = e.m06 - i.m06; t.m07 = e.m07 - i.m07; t.m08 = e.m08 - i.m08; t.m09 = e.m09 - i.m09; t.m10 = e.m10 - i.m10; t.m11 = e.m11 - i.m11; t.m12 = e.m12 - i.m12; t.m13 = e.m13 - i.m13; t.m14 = e.m14 - i.m14; t.m15 = e.m15 - i.m15; return t; }; t.sub = function(e, i, n) { return t.subtract(e, i, n); }; t.multiplyScalar = function(t, e, i) { t.m00 = e.m00 * i; t.m01 = e.m01 * i; t.m02 = e.m02 * i; t.m03 = e.m03 * i; t.m04 = e.m04 * i; t.m05 = e.m05 * i; t.m06 = e.m06 * i; t.m07 = e.m07 * i; t.m08 = e.m08 * i; t.m09 = e.m09 * i; t.m10 = e.m10 * i; t.m11 = e.m11 * i; t.m12 = e.m12 * i; t.m13 = e.m13 * i; t.m14 = e.m14 * i; t.m15 = e.m15 * i; return t; }; t.multiplyScalarAndAdd = function(t, e, i, n) { t.m00 = e.m00 + i.m00 * n; t.m01 = e.m01 + i.m01 * n; t.m02 = e.m02 + i.m02 * n; t.m03 = e.m03 + i.m03 * n; t.m04 = e.m04 + i.m04 * n; t.m05 = e.m05 + i.m05 * n; t.m06 = e.m06 + i.m06 * n; t.m07 = e.m07 + i.m07 * n; t.m08 = e.m08 + i.m08 * n; t.m09 = e.m09 + i.m09 * n; t.m10 = e.m10 + i.m10 * n; t.m11 = e.m11 + i.m11 * n; t.m12 = e.m12 + i.m12 * n; t.m13 = e.m13 + i.m13 * n; t.m14 = e.m14 + i.m14 * n; t.m15 = e.m15 + i.m15 * n; return t; }; t.exactEquals = function(t, e) { return t.m00 === e.m00 && t.m01 === e.m01 && t.m02 === e.m02 && t.m03 === e.m03 && t.m04 === e.m04 && t.m05 === e.m05 && t.m06 === e.m06 && t.m07 === e.m07 && t.m08 === e.m08 && t.m09 === e.m09 && t.m10 === e.m10 && t.m11 === e.m11 && t.m12 === e.m12 && t.m13 === e.m13 && t.m14 === e.m14 && t.m15 === e.m15; }; t.equals = function(t, e) { var i = t.m00, r = t.m01, s = t.m02, o = t.m03, a = t.m04, c = t.m05, l = t.m06, h = t.m07, u = t.m08, _ = t.m09, f = t.m10, d = t.m11, m = t.m12, p = t.m13, v = t.m14, y = t.m15, g = e.m00, x = e.m01, C = e.m02, b = e.m03, A = e.m04, S = e.m05, w = e.m06, T = e.m07, E = e.m08, M = e.m09, B = e.m10, D = e.m11, I = e.m12, P = e.m13, R = e.m14, L = e.m15; return Math.abs(i - g) <= n.EPSILON * Math.max(1, Math.abs(i), Math.abs(g)) && Math.abs(r - x) <= n.EPSILON * Math.max(1, Math.abs(r), Math.abs(x)) && Math.abs(s - C) <= n.EPSILON * Math.max(1, Math.abs(s), Math.abs(C)) && Math.abs(o - b) <= n.EPSILON * Math.max(1, Math.abs(o), Math.abs(b)) && Math.abs(a - A) <= n.EPSILON * Math.max(1, Math.abs(a), Math.abs(A)) && Math.abs(c - S) <= n.EPSILON * Math.max(1, Math.abs(c), Math.abs(S)) && Math.abs(l - w) <= n.EPSILON * Math.max(1, Math.abs(l), Math.abs(w)) && Math.abs(h - T) <= n.EPSILON * Math.max(1, Math.abs(h), Math.abs(T)) && Math.abs(u - E) <= n.EPSILON * Math.max(1, Math.abs(u), Math.abs(E)) && Math.abs(_ - M) <= n.EPSILON * Math.max(1, Math.abs(_), Math.abs(M)) && Math.abs(f - B) <= n.EPSILON * Math.max(1, Math.abs(f), Math.abs(B)) && Math.abs(d - D) <= n.EPSILON * Math.max(1, Math.abs(d), Math.abs(D)) && Math.abs(m - I) <= n.EPSILON * Math.max(1, Math.abs(m), Math.abs(I)) && Math.abs(p - P) <= n.EPSILON * Math.max(1, Math.abs(p), Math.abs(P)) && Math.abs(v - R) <= n.EPSILON * Math.max(1, Math.abs(v), Math.abs(R)) && Math.abs(y - L) <= n.EPSILON * Math.max(1, Math.abs(y), Math.abs(L)); }; return t; })(); i.default = s; e.exports = i.default; }), { "./utils": 323 } ], 322: [ (function(t, e, i) { "use strict"; i.__esModule = !0; var n = a(t("./vec3")), r = a(t("./vec4")), s = a(t("./mat3")), o = t("./utils"); function a(t) { return t && t.__esModule ? t : { default: t }; } function c(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var l = .5 * Math.PI / 180, h = (function() { function t() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, r = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 1; c(this, t); this.x = e; this.y = i; this.z = n; this.w = r; } t.create = function() { return new t(arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 1); }; t.clone = function(e) { return new t(e.x, e.y, e.z, e.w); }; t.copy = function(t, e) { return r.default.copy(t, e); }; t.set = function(t, e, i, n, r) { t.x = e; t.y = i; t.z = n; t.w = r; return t; }; t.identity = function(t) { t.x = 0; t.y = 0; t.z = 0; t.w = 1; return t; }; t.rotationTo = function(e, i, r) { return (function() { var e = n.default.create(0, 0, 0), i = n.default.create(1, 0, 0), r = n.default.create(0, 1, 0); return function(s, o, a) { var c = n.default.dot(o, a); if (c < -.999999) { n.default.cross(e, i, o); n.default.magnitude(e) < 1e-6 && n.default.cross(e, r, o); n.default.normalize(e, e); t.fromAxisAngle(s, e, Math.PI); return s; } if (c > .999999) { s.x = 0; s.y = 0; s.z = 0; s.w = 1; return s; } n.default.cross(e, o, a); s.x = e.x; s.y = e.y; s.z = e.z; s.w = 1 + c; return t.normalize(s, s); }; })()(e, i, r); }; t.getAxisAngle = function(t, e) { var i = 2 * Math.acos(e.w), n = Math.sin(i / 2); if (0 != n) { t.x = e.x / n; t.y = e.y / n; t.z = e.z / n; } else { t.x = 1; t.y = 0; t.z = 0; } return i; }; t.multiply = function(t, e, i) { var n = e.x, r = e.y, s = e.z, o = e.w, a = i.x, c = i.y, l = i.z, h = i.w; t.x = n * h + o * a + r * l - s * c; t.y = r * h + o * c + s * a - n * l; t.z = s * h + o * l + n * c - r * a; t.w = o * h - n * a - r * c - s * l; return t; }; t.mul = function(e, i, n) { return t.multiply(e, i, n); }; t.scale = function(t, e, i) { t.x = e.x * i; t.y = e.y * i; t.z = e.z * i; t.w = e.w * i; return t; }; t.rotateX = function(t, e, i) { i *= .5; var n = e.x, r = e.y, s = e.z, o = e.w, a = Math.sin(i), c = Math.cos(i); t.x = n * c + o * a; t.y = r * c + s * a; t.z = s * c - r * a; t.w = o * c - n * a; return t; }; t.rotateY = function(t, e, i) { i *= .5; var n = e.x, r = e.y, s = e.z, o = e.w, a = Math.sin(i), c = Math.cos(i); t.x = n * c - s * a; t.y = r * c + o * a; t.z = s * c + n * a; t.w = o * c - r * a; return t; }; t.rotateZ = function(t, e, i) { i *= .5; var n = e.x, r = e.y, s = e.z, o = e.w, a = Math.sin(i), c = Math.cos(i); t.x = n * c + r * a; t.y = r * c - n * a; t.z = s * c + o * a; t.w = o * c - s * a; return t; }; t.rotateAround = function(e, i, r, s) { return (function() { var e = n.default.create(0, 0, 0), i = t.create(); return function(r, s, o, a) { t.invert(i, s); n.default.transformQuat(e, o, i); t.fromAxisAngle(i, e, a); t.mul(r, s, i); return r; }; })()(e, i, r, s); }; t.rotateAroundLocal = function(e, i, n, r) { return (function() { var e = t.create(); return function(i, n, r, s) { t.fromAxisAngle(e, r, s); t.mul(i, n, e); return i; }; })()(e, i, n, r); }; t.calculateW = function(t, e) { var i = e.x, n = e.y, r = e.z; t.x = i; t.y = n; t.z = r; t.w = Math.sqrt(Math.abs(1 - i * i - n * n - r * r)); return t; }; t.dot = function(t, e) { return t.x * e.x + t.y * e.y + t.z * e.z + t.w * e.w; }; t.lerp = function(t, e, i, n) { var r = e.x, s = e.y, o = e.z, a = e.w; t.x = r + n * (i.x - r); t.y = s + n * (i.y - s); t.z = o + n * (i.z - o); t.w = a + n * (i.w - a); return t; }; t.slerp = function(t, e, i, n) { var r = e.x, s = e.y, o = e.z, a = e.w, c = i.x, l = i.y, h = i.z, u = i.w, _ = void 0, f = void 0, d = void 0, m = void 0, p = void 0; if ((f = r * c + s * l + o * h + a * u) < 0) { f = -f; c = -c; l = -l; h = -h; u = -u; } if (1 - f > 1e-6) { _ = Math.acos(f); d = Math.sin(_); m = Math.sin((1 - n) * _) / d; p = Math.sin(n * _) / d; } else { m = 1 - n; p = n; } t.x = m * r + p * c; t.y = m * s + p * l; t.z = m * o + p * h; t.w = m * a + p * u; return t; }; t.sqlerp = function(e, i, n, r, s, o) { return (function() { var e = t.create(), i = t.create(); return function(n, r, s, o, a, c) { t.slerp(e, r, a, c); t.slerp(i, s, o, c); t.slerp(n, e, i, 2 * c * (1 - c)); return n; }; })()(e, i, n, r, s, o); }; t.invert = function(t, e) { var i = e.x, n = e.y, r = e.z, s = e.w, o = i * i + n * n + r * r + s * s, a = o ? 1 / o : 0; t.x = -i * a; t.y = -n * a; t.z = -r * a; t.w = s * a; return t; }; t.conjugate = function(t, e) { t.x = -e.x; t.y = -e.y; t.z = -e.z; t.w = e.w; return t; }; t.magnitude = function(t) { var e = t.x, i = t.y, n = t.z, r = t.w; return Math.sqrt(e * e + i * i + n * n + r * r); }; t.mag = function(e) { return t.magnitude(e); }; t.squaredMagnitude = function(t) { var e = t.x, i = t.y, n = t.z, r = t.w; return e * e + i * i + n * n + r * r; }; t.sqrMag = function(e) { return t.squaredMagnitude(e); }; t.normalize = function(t, e) { var i = e.x, n = e.y, r = e.z, s = e.w, o = i * i + n * n + r * r + s * s; if (o > 0) { o = 1 / Math.sqrt(o); t.x = i * o; t.y = n * o; t.z = r * o; t.w = s * o; } return t; }; t.fromAxes = function(e, i, n, r) { return (function() { var e = s.default.create(); return function(i, n, r, o) { s.default.set(e, n.x, n.y, n.z, r.x, r.y, r.z, o.x, o.y, o.z); return t.normalize(i, t.fromMat3(i, e)); }; })()(e, i, n, r); }; t.fromViewUp = function(e, i, n) { return (function() { var e = s.default.create(); return function(i, n, r) { s.default.fromViewUp(e, n, r); return e ? t.normalize(i, t.fromMat3(i, e)) : null; }; })()(e, i, n); }; t.fromAxisAngle = function(t, e, i) { i *= .5; var n = Math.sin(i); t.x = n * e.x; t.y = n * e.y; t.z = n * e.z; t.w = Math.cos(i); return t; }; t.fromMat3 = function(t, e) { var i = e.m00, n = e.m03, r = e.m06, s = e.m01, o = e.m04, a = e.m07, c = e.m02, l = e.m05, h = e.m08, u = i + o + h; if (u > 0) { var _ = .5 / Math.sqrt(u + 1); t.w = .25 / _; t.x = (l - a) * _; t.y = (r - c) * _; t.z = (s - n) * _; } else if (i > o && i > h) { var f = 2 * Math.sqrt(1 + i - o - h); t.w = (l - a) / f; t.x = .25 * f; t.y = (n + s) / f; t.z = (r + c) / f; } else if (o > h) { var d = 2 * Math.sqrt(1 + o - i - h); t.w = (r - c) / d; t.x = (n + s) / d; t.y = .25 * d; t.z = (a + l) / d; } else { var m = 2 * Math.sqrt(1 + h - i - o); t.w = (s - n) / m; t.x = (r + c) / m; t.y = (a + l) / m; t.z = .25 * m; } return t; }; t.fromEuler = function(t, e, i, n) { e *= l; i *= l; n *= l; var r = Math.sin(e), s = Math.cos(e), o = Math.sin(i), a = Math.cos(i), c = Math.sin(n), h = Math.cos(n); t.x = r * a * h + s * o * c; t.y = s * o * h + r * a * c; t.z = s * a * c - r * o * h; t.w = s * a * h - r * o * c; return t; }; t.fromAngleZ = function(t, e) { e *= l; t.x = t.y = 0; t.z = Math.sin(e); t.w = Math.cos(e); }; t.toEuler = function(t, e) { var i = e.x, n = e.y, r = e.z, s = e.w, a = void 0, c = void 0, l = void 0, h = i * n + r * s; if (h > .499) { a = 2 * Math.atan2(i, s); c = Math.PI / 2; l = 0; } if (h < -.499) { a = -2 * Math.atan2(i, s); c = -Math.PI / 2; l = 0; } if (isNaN(a)) { var u = i * i, _ = n * n, f = r * r; a = Math.atan2(2 * n * s - 2 * i * r, 1 - 2 * _ - 2 * f); c = Math.asin(2 * h); l = Math.atan2(2 * i * s - 2 * n * r, 1 - 2 * u - 2 * f); } t.y = (0, o.toDegree)(a); t.z = (0, o.toDegree)(c); t.x = (0, o.toDegree)(l); return t; }; t.str = function(t) { return "quat(" + t.x + ", " + t.y + ", " + t.z + ", " + t.w + ")"; }; t.array = function(t, e) { t[0] = e.x; t[1] = e.y; t[2] = e.z; t[3] = e.w; return t; }; t.exactEquals = function(t, e) { return r.default.exactEquals(t, e); }; t.equals = function(t, e) { return r.default.equals(t, e); }; return t; })(); i.default = h; e.exports = i.default; }), { "./mat3": 320, "./utils": 323, "./vec3": 325, "./vec4": 326 } ], 323: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.equals = function(t, e) { return Math.abs(t - e) <= s * Math.max(1, Math.abs(t), Math.abs(e)); }; i.approx = function(t, e, i) { i = i || s; return Math.abs(t - e) <= i; }; i.clamp = function(t, e, i) { return t < e ? e : t > i ? i : t; }; i.clamp01 = function(t) { return t < 0 ? 0 : t > 1 ? 1 : t; }; i.lerp = function(t, e, i) { return t + (e - t) * i; }; i.toRadian = function(t) { return t * n; }; i.toDegree = function(t) { return t * r; }; i.randomRange = o; i.randomRangeInt = function(t, e) { return Math.floor(o(t, e)); }; i.pseudoRandom = a; i.pseudoRandomRange = c; i.pseudoRandomRangeInt = function(t, e, i) { return Math.floor(c(t, e, i)); }; i.nextPow2 = function(t) { t = (t = (t = (t = (t = --t >> 1 | t) >> 2 | t) >> 4 | t) >> 8 | t) >> 16 | t; return ++t; }; i.repeat = l; i.pingPong = function(t, e) { t = l(t, 2 * e); return t = e - Math.abs(t - e); }; i.inverseLerp = function(t, e, i) { return (i - t) / (e - t); }; var n = Math.PI / 180, r = 180 / Math.PI, s = i.EPSILON = 1e-6; i.random = Math.random; function o(t, e) { return Math.random() * (e - t) + t; } function a(t) { return (t = (9301 * t + 49297) % 233280) / 233280; } function c(t, e, i) { return a(t) * (i - e) + e; } function l(t, e) { return t - Math.floor(t / e) * e; } }), {} ], 324: [ (function(t, e, i) { "use strict"; i.__esModule = !0; var n = t("./utils"); function r(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var s = (function() { function t() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0; r(this, t); this.x = e; this.y = i; } t.create = function() { return new t(arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0); }; t.zero = function(t) { t.x = 0; t.y = 0; return t; }; t.clone = function(e) { return new t(e.x, e.y); }; t.copy = function(t, e) { t.x = e.x; t.y = e.y; return t; }; t.set = function(t, e, i) { t.x = e; t.y = i; return t; }; t.add = function(t, e, i) { t.x = e.x + i.x; t.y = e.y + i.y; return t; }; t.subtract = function(t, e, i) { t.x = e.x - i.x; t.y = e.y - i.y; return t; }; t.sub = function(e, i, n) { return t.subtract(e, i, n); }; t.multiply = function(t, e, i) { t.x = e.x * i.x; t.y = e.y * i.y; return t; }; t.mul = function(e, i, n) { return t.multiply(e, i, n); }; t.divide = function(t, e, i) { t.x = e.x / i.x; t.y = e.y / i.y; return t; }; t.div = function(e, i, n) { return t.divide(e, i, n); }; t.ceil = function(t, e) { t.x = Math.ceil(e.x); t.y = Math.ceil(e.y); return t; }; t.floor = function(t, e) { t.x = Math.floor(e.x); t.y = Math.floor(e.y); return t; }; t.min = function(t, e, i) { t.x = Math.min(e.x, i.x); t.y = Math.min(e.y, i.y); return t; }; t.max = function(t, e, i) { t.x = Math.max(e.x, i.x); t.y = Math.max(e.y, i.y); return t; }; t.round = function(t, e) { t.x = Math.round(e.x); t.y = Math.round(e.y); return t; }; t.scale = function(t, e, i) { t.x = e.x * i; t.y = e.y * i; return t; }; t.scaleAndAdd = function(t, e, i, n) { t.x = e.x + i.x * n; t.y = e.y + i.y * n; return t; }; t.distance = function(t, e) { var i = e.x - t.x, n = e.y - t.y; return Math.sqrt(i * i + n * n); }; t.dist = function(e, i) { return t.distance(e, i); }; t.squaredDistance = function(t, e) { var i = e.x - t.x, n = e.y - t.y; return i * i + n * n; }; t.sqrDist = function(e, i) { return t.squaredDistance(e, i); }; t.magnitude = function(t) { var e = t.x, i = t.y; return Math.sqrt(e * e + i * i); }; t.mag = function(e) { return t.magnitude(e); }; t.squaredMagnitude = function(t) { var e = t.x, i = t.y; return e * e + i * i; }; t.sqrMag = function(e) { return t.squaredMagnitude(e); }; t.negate = function(t, e) { t.x = -e.x; t.y = -e.y; return t; }; t.inverse = function(t, e) { t.x = 1 / e.x; t.y = 1 / e.y; return t; }; t.inverseSafe = function(t, e) { var i = e.x, r = e.y; Math.abs(i) < n.EPSILON ? t.x = 0 : t.x = 1 / i; Math.abs(r) < n.EPSILON ? t.y = 0 : t.y = 1 / e.y; return t; }; t.normalize = function(t, e) { var i = e.x, n = e.y, r = i * i + n * n; if (r > 0) { r = 1 / Math.sqrt(r); t.x = e.x * r; t.y = e.y * r; } return t; }; t.dot = function(t, e) { return t.x * e.x + t.y * e.y; }; t.cross = function(t, e, i) { var n = e.x * i.y - e.y * i.x; t.x = t.y = 0; t.z = n; return t; }; t.lerp = function(t, e, i, n) { var r = e.x, s = e.y; t.x = r + n * (i.x - r); t.y = s + n * (i.y - s); return t; }; t.random = function(t, e) { e = e || 1; var i = 2 * (0, n.random)() * Math.PI; t.x = Math.cos(i) * e; t.y = Math.sin(i) * e; return t; }; t.transformMat2 = function(t, e, i) { var n = e.x, r = e.y; t.x = i.m00 * n + i.m02 * r; t.y = i.m01 * n + i.m03 * r; return t; }; t.transformMat23 = function(t, e, i) { var n = e.x, r = e.y; t.x = i.m00 * n + i.m02 * r + i.m04; t.y = i.m01 * n + i.m03 * r + i.m05; return t; }; t.transformMat3 = function(t, e, i) { var n = e.x, r = e.y; t.x = i.m00 * n + i.m03 * r + i.m06; t.y = i.m01 * n + i.m04 * r + i.m07; return t; }; t.transformMat4 = function(t, e, i) { var n = e.x, r = e.y; t.x = i.m00 * n + i.m04 * r + i.m12; t.y = i.m01 * n + i.m05 * r + i.m13; return t; }; t.forEach = function(e, i, n, r, s, o) { return t._forEach(e, i, n, r, s, o); }; t.str = function(t) { return "vec2(" + t.x + ", " + t.y + ")"; }; t.array = function(t, e) { t[0] = e.x; t[1] = e.y; return t; }; t.exactEquals = function(t, e) { return t.x === e.x && t.y === e.y; }; t.equals = function(t, e) { var i = t.x, r = t.y, s = e.x, o = e.y; return Math.abs(i - s) <= n.EPSILON * Math.max(1, Math.abs(i), Math.abs(s)) && Math.abs(r - o) <= n.EPSILON * Math.max(1, Math.abs(r), Math.abs(o)); }; t.angle = function(e, i) { return t._angle(e, i); }; return t; })(); s._forEach = (function() { var t = s.create(0, 0); return function(e, i, n, r, s, o) { var a = void 0, c = void 0; i || (i = 2); n || (n = 0); c = r ? Math.min(r * i + n, e.length) : e.length; for (a = n; a < c; a += i) { t.x = e[a]; t.y = e[a + 1]; s(t, t, o); e[a] = t.x; e[a + 1] = t.y; } return e; }; })(); s._angle = (function() { var t = s.create(0, 0), e = s.create(0, 0); return function(i, n) { s.normalize(t, i); s.normalize(e, n); var r = s.dot(t, e); return r > 1 ? 0 : r < -1 ? Math.PI : Math.acos(r); }; })(); i.default = s; e.exports = i.default; }), { "./utils": 323 } ], 325: [ (function(t, e, i) { "use strict"; i.__esModule = !0; var n = t("./utils"); function r(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var s = (function() { function t() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0; r(this, t); this.x = e; this.y = i; this.z = n; } t.create = function() { return new t(arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0); }; t.zero = function(t) { t.x = 0; t.y = 0; t.z = 0; return t; }; t.clone = function(e) { return new t(e.x, e.y, e.z); }; t.copy = function(t, e) { t.x = e.x; t.y = e.y; t.z = e.z; return t; }; t.set = function(t, e, i, n) { t.x = e; t.y = i; t.z = n; return t; }; t.add = function(t, e, i) { t.x = e.x + i.x; t.y = e.y + i.y; t.z = e.z + i.z; return t; }; t.subtract = function(t, e, i) { t.x = e.x - i.x; t.y = e.y - i.y; t.z = e.z - i.z; return t; }; t.sub = function(e, i, n) { return t.subtract(e, i, n); }; t.multiply = function(t, e, i) { t.x = e.x * i.x; t.y = e.y * i.y; t.z = e.z * i.z; return t; }; t.mul = function(e, i, n) { return t.multiply(e, i, n); }; t.divide = function(t, e, i) { t.x = e.x / i.x; t.y = e.y / i.y; t.z = e.z / i.z; return t; }; t.div = function(e, i, n) { return t.divide(e, i, n); }; t.ceil = function(t, e) { t.x = Math.ceil(e.x); t.y = Math.ceil(e.y); t.z = Math.ceil(e.z); return t; }; t.floor = function(t, e) { t.x = Math.floor(e.x); t.y = Math.floor(e.y); t.z = Math.floor(e.z); return t; }; t.min = function(t, e, i) { t.x = Math.min(e.x, i.x); t.y = Math.min(e.y, i.y); t.z = Math.min(e.z, i.z); return t; }; t.max = function(t, e, i) { t.x = Math.max(e.x, i.x); t.y = Math.max(e.y, i.y); t.z = Math.max(e.z, i.z); return t; }; t.round = function(t, e) { t.x = Math.round(e.x); t.y = Math.round(e.y); t.z = Math.round(e.z); return t; }; t.scale = function(t, e, i) { t.x = e.x * i; t.y = e.y * i; t.z = e.z * i; return t; }; t.scaleAndAdd = function(t, e, i, n) { t.x = e.x + i.x * n; t.y = e.y + i.y * n; t.z = e.z + i.z * n; return t; }; t.distance = function(t, e) { var i = e.x - t.x, n = e.y - t.y, r = e.z - t.z; return Math.sqrt(i * i + n * n + r * r); }; t.dist = function(e, i) { return t.distance(e, i); }; t.squaredDistance = function(t, e) { var i = e.x - t.x, n = e.y - t.y, r = e.z - t.z; return i * i + n * n + r * r; }; t.sqrDist = function(e, i) { return t.squaredDistance(e, i); }; t.magnitude = function(t) { var e = t.x, i = t.y, n = t.z; return Math.sqrt(e * e + i * i + n * n); }; t.mag = function(e) { return t.magnitude(e); }; t.squaredMagnitude = function(t) { var e = t.x, i = t.y, n = t.z; return e * e + i * i + n * n; }; t.sqrMag = function(e) { return t.squaredMagnitude(e); }; t.negate = function(t, e) { t.x = -e.x; t.y = -e.y; t.z = -e.z; return t; }; t.inverse = function(t, e) { t.x = 1 / e.x; t.y = 1 / e.y; t.z = 1 / e.z; return t; }; t.inverseSafe = function(t, e) { var i = e.x, r = e.y, s = e.z; Math.abs(i) < n.EPSILON ? t.x = 0 : t.x = 1 / i; Math.abs(r) < n.EPSILON ? t.y = 0 : t.y = 1 / r; Math.abs(s) < n.EPSILON ? t.z = 0 : t.z = 1 / s; return t; }; t.normalize = function(t, e) { var i = e.x, n = e.y, r = e.z, s = i * i + n * n + r * r; if (s > 0) { s = 1 / Math.sqrt(s); t.x = i * s; t.y = n * s; t.z = r * s; } return t; }; t.dot = function(t, e) { return t.x * e.x + t.y * e.y + t.z * e.z; }; t.cross = function(t, e, i) { var n = e.x, r = e.y, s = e.z, o = i.x, a = i.y, c = i.z; t.x = r * c - s * a; t.y = s * o - n * c; t.z = n * a - r * o; return t; }; t.lerp = function(t, e, i, n) { var r = e.x, s = e.y, o = e.z; t.x = r + n * (i.x - r); t.y = s + n * (i.y - s); t.z = o + n * (i.z - o); return t; }; t.hermite = function(t, e, i, n, r, s) { var o = s * s, a = o * (2 * s - 3) + 1, c = o * (s - 2) + s, l = o * (s - 1), h = o * (3 - 2 * s); t.x = e.x * a + i.x * c + n.x * l + r.x * h; t.y = e.y * a + i.y * c + n.y * l + r.y * h; t.z = e.z * a + i.z * c + n.z * l + r.z * h; return t; }; t.bezier = function(t, e, i, n, r, s) { var o = 1 - s, a = o * o, c = s * s, l = a * o, h = 3 * s * a, u = 3 * c * o, _ = c * s; t.x = e.x * l + i.x * h + n.x * u + r.x * _; t.y = e.y * l + i.y * h + n.y * u + r.y * _; t.z = e.z * l + i.z * h + n.z * u + r.z * _; return t; }; t.random = function(t, e) { e = e || 1; var i = 2 * (0, n.random)() * Math.PI, r = Math.acos(2 * (0, n.random)() - 1); t.x = Math.sin(r) * Math.cos(i) * e; t.y = Math.sin(r) * Math.sin(i) * e; t.z = Math.cos(r) * e; return t; }; t.transformMat4 = function(t, e, i) { var n = e.x, r = e.y, s = e.z, o = i.m03 * n + i.m07 * r + i.m11 * s + i.m15; o = o ? 1 / o : 1; t.x = (i.m00 * n + i.m04 * r + i.m08 * s + i.m12) * o; t.y = (i.m01 * n + i.m05 * r + i.m09 * s + i.m13) * o; t.z = (i.m02 * n + i.m06 * r + i.m10 * s + i.m14) * o; return t; }; t.transformMat4Normal = function(t, e, i) { var n = e.x, r = e.y, s = e.z, o = i.m03 * n + i.m07 * r + i.m11 * s; o = o ? 1 / o : 1; t.x = (i.m00 * n + i.m04 * r + i.m08 * s) * o; t.y = (i.m01 * n + i.m05 * r + i.m09 * s) * o; t.z = (i.m02 * n + i.m06 * r + i.m10 * s) * o; return t; }; t.transformMat3 = function(t, e, i) { var n = e.x, r = e.y, s = e.z; t.x = n * i.m00 + r * i.m03 + s * i.m06; t.y = n * i.m01 + r * i.m04 + s * i.m07; t.z = n * i.m02 + r * i.m05 + s * i.m08; return t; }; t.transformQuat = function(t, e, i) { var n = e.x, r = e.y, s = e.z, o = i.x, a = i.y, c = i.z, l = i.w, h = l * n + a * s - c * r, u = l * r + c * n - o * s, _ = l * s + o * r - a * n, f = -o * n - a * r - c * s; t.x = h * l + f * -o + u * -c - _ * -a; t.y = u * l + f * -a + _ * -o - h * -c; t.z = _ * l + f * -c + h * -a - u * -o; return t; }; t.rotateX = function(t, e, i, n) { var r = e.x - i.x, s = e.y - i.y, o = e.z - i.z, a = r, c = s * Math.cos(n) - o * Math.sin(n), l = s * Math.sin(n) + o * Math.cos(n); t.x = a + i.x; t.y = c + i.y; t.z = l + i.z; return t; }; t.rotateY = function(t, e, i, n) { var r = e.x - i.x, s = e.y - i.y, o = e.z - i.z, a = o * Math.sin(n) + r * Math.cos(n), c = s, l = o * Math.cos(n) - r * Math.sin(n); t.x = a + i.x; t.y = c + i.y; t.z = l + i.z; return t; }; t.rotateZ = function(t, e, i, n) { var r = e.x - i.x, s = e.y - i.y, o = e.z - i.z, a = r * Math.cos(n) - s * Math.sin(n), c = r * Math.sin(n) + s * Math.cos(n), l = o; t.x = a + i.x; t.y = c + i.y; t.z = l + i.z; return t; }; t.str = function(t) { return "vec3(" + t.x + ", " + t.y + ", " + t.z + ")"; }; t.array = function(t, e) { t[0] = e.x; t[1] = e.y; t[2] = e.z; return t; }; t.exactEquals = function(t, e) { return t.x === e.x && t.y === e.y && t.z === e.z; }; t.equals = function(t, e) { var i = t.x, r = t.y, s = t.z, o = e.x, a = e.y, c = e.z; return Math.abs(i - o) <= n.EPSILON * Math.max(1, Math.abs(i), Math.abs(o)) && Math.abs(r - a) <= n.EPSILON * Math.max(1, Math.abs(r), Math.abs(a)) && Math.abs(s - c) <= n.EPSILON * Math.max(1, Math.abs(s), Math.abs(c)); }; t.forEach = function(e, i, n, r, s, o) { return t._forEach(e, i, n, r, s, o); }; t.angle = function(e, i) { return t._angle(e, i); }; t.projectOnPlane = function(e, i, n) { return t.sub(e, i, t.project(e, i, n)); }; t.project = function(e, i, n) { var r = t.squaredMagnitude(n); return r < 1e-6 ? t.set(e, 0, 0, 0) : t.scale(e, n, t.dot(i, n) / r); }; return t; })(); s._forEach = (function() { var t = s.create(0, 0, 0); return function(e, i, n, r, s, o) { var a = void 0, c = void 0; i || (i = 3); n || (n = 0); c = r ? Math.min(r * i + n, e.length) : e.length; for (a = n; a < c; a += i) { t.x = e[a]; t.y = e[a + 1]; t.z = e[a + 2]; s(t, t, o); e[a] = t.x; e[a + 1] = t.y; e[a + 2] = t.z; } return e; }; })(); s._angle = (function() { var t = s.create(0, 0, 0), e = s.create(0, 0, 0); return function(i, n) { s.copy(t, i); s.copy(e, n); s.normalize(t, t); s.normalize(e, e); var r = s.dot(t, e); return r > 1 ? 0 : r < -1 ? Math.PI : Math.acos(r); }; })(); i.default = s; e.exports = i.default; }), { "./utils": 323 } ], 326: [ (function(t, e, i) { "use strict"; i.__esModule = !0; var n = t("./utils"); function r(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var s = (function() { function t() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, s = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 1; r(this, t); this.x = e; this.y = i; this.z = n; this.w = s; } t.create = function() { return new t(arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 1); }; t.zero = function(t) { t.x = 0; t.y = 0; t.z = 0; t.w = 0; return t; }; t.clone = function(e) { return new t(e.x, e.y, e.z, e.w); }; t.copy = function(t, e) { t.x = e.x; t.y = e.y; t.z = e.z; t.w = e.w; return t; }; t.set = function(t, e, i, n, r) { t.x = e; t.y = i; t.z = n; t.w = r; return t; }; t.add = function(t, e, i) { t.x = e.x + i.x; t.y = e.y + i.y; t.z = e.z + i.z; t.w = e.w + i.w; return t; }; t.subtract = function(t, e, i) { t.x = e.x - i.x; t.y = e.y - i.y; t.z = e.z - i.z; t.w = e.w - i.w; return t; }; t.sub = function(e, i, n) { return t.subtract(e, i, n); }; t.multiply = function(t, e, i) { t.x = e.x * i.x; t.y = e.y * i.y; t.z = e.z * i.z; t.w = e.w * i.w; return t; }; t.mul = function(e, i, n) { return t.multiply(e, i, n); }; t.divide = function(t, e, i) { t.x = e.x / i.x; t.y = e.y / i.y; t.z = e.z / i.z; t.w = e.w / i.w; return t; }; t.div = function(e, i, n) { return t.divide(e, i, n); }; t.ceil = function(t, e) { t.x = Math.ceil(e.x); t.y = Math.ceil(e.y); t.z = Math.ceil(e.z); t.w = Math.ceil(e.w); return t; }; t.floor = function(t, e) { t.x = Math.floor(e.x); t.y = Math.floor(e.y); t.z = Math.floor(e.z); t.w = Math.floor(e.w); return t; }; t.min = function(t, e, i) { t.x = Math.min(e.x, i.x); t.y = Math.min(e.y, i.y); t.z = Math.min(e.z, i.z); t.w = Math.min(e.w, i.w); return t; }; t.max = function(t, e, i) { t.x = Math.max(e.x, i.x); t.y = Math.max(e.y, i.y); t.z = Math.max(e.z, i.z); t.w = Math.max(e.w, i.w); return t; }; t.round = function(t, e) { t.x = Math.round(e.x); t.y = Math.round(e.y); t.z = Math.round(e.z); t.w = Math.round(e.w); return t; }; t.scale = function(t, e, i) { t.x = e.x * i; t.y = e.y * i; t.z = e.z * i; t.w = e.w * i; return t; }; t.scaleAndAdd = function(t, e, i, n) { t.x = e.x + i.x * n; t.y = e.y + i.y * n; t.z = e.z + i.z * n; t.w = e.w + i.w * n; return t; }; t.distance = function(t, e) { var i = e.x - t.x, n = e.y - t.y, r = e.z - t.z, s = e.w - t.w; return Math.sqrt(i * i + n * n + r * r + s * s); }; t.dist = function(e, i) { return t.distance(e, i); }; t.squaredDistance = function(t, e) { var i = e.x - t.x, n = e.y - t.y, r = e.z - t.z, s = e.w - t.w; return i * i + n * n + r * r + s * s; }; t.sqrDist = function(e, i) { return t.squaredDistance(e, i); }; t.magnitude = function(t) { var e = t.x, i = t.y, n = t.z, r = t.w; return Math.sqrt(e * e + i * i + n * n + r * r); }; t.mag = function(e) { return t.magnitude(e); }; t.squaredMagnitude = function(t) { var e = t.x, i = t.y, n = t.z, r = t.w; return e * e + i * i + n * n + r * r; }; t.sqrMag = function(e) { return t.squaredMagnitude(e); }; t.negate = function(t, e) { t.x = -e.x; t.y = -e.y; t.z = -e.z; t.w = -e.w; return t; }; t.inverse = function(t, e) { t.x = 1 / e.x; t.y = 1 / e.y; t.z = 1 / e.z; t.w = 1 / e.w; return t; }; t.inverseSafe = function(t, e) { var i = e.x, r = e.y, s = e.z, o = e.w; Math.abs(i) < n.EPSILON ? t.x = 0 : t.x = 1 / i; Math.abs(r) < n.EPSILON ? t.y = 0 : t.y = 1 / r; Math.abs(s) < n.EPSILON ? t.z = 0 : t.z = 1 / s; Math.abs(o) < n.EPSILON ? t.w = 0 : t.w = 1 / o; return t; }; t.normalize = function(t, e) { var i = e.x, n = e.y, r = e.z, s = e.w, o = i * i + n * n + r * r + s * s; if (o > 0) { o = 1 / Math.sqrt(o); t.x = i * o; t.y = n * o; t.z = r * o; t.w = s * o; } return t; }; t.dot = function(t, e) { return t.x * e.x + t.y * e.y + t.z * e.z + t.w * e.w; }; t.lerp = function(t, e, i, n) { var r = e.x, s = e.y, o = e.z, a = e.w; t.x = r + n * (i.x - r); t.y = s + n * (i.y - s); t.z = o + n * (i.z - o); t.w = a + n * (i.w - a); return t; }; t.random = function(t, e) { e = e || 1; var i = 2 * (0, n.random)() * Math.PI, r = Math.acos(2 * (0, n.random)() - 1); t.x = Math.sin(r) * Math.cos(i) * e; t.y = Math.sin(r) * Math.sin(i) * e; t.z = Math.cos(r) * e; t.w = 0; return t; }; t.transformMat4 = function(t, e, i) { var n = e.x, r = e.y, s = e.z, o = e.w; t.x = i.m00 * n + i.m04 * r + i.m08 * s + i.m12 * o; t.y = i.m01 * n + i.m05 * r + i.m09 * s + i.m13 * o; t.z = i.m02 * n + i.m06 * r + i.m10 * s + i.m14 * o; t.w = i.m03 * n + i.m07 * r + i.m11 * s + i.m15 * o; return t; }; t.transformQuat = function(t, e, i) { var n = e.x, r = e.y, s = e.z, o = i.x, a = i.y, c = i.z, l = i.w, h = l * n + a * s - c * r, u = l * r + c * n - o * s, _ = l * s + o * r - a * n, f = -o * n - a * r - c * s; t.x = h * l + f * -o + u * -c - _ * -a; t.y = u * l + f * -a + _ * -o - h * -c; t.z = _ * l + f * -c + h * -a - u * -o; t.w = e.w; return t; }; t.str = function(t) { return "vec4(" + t.x + ", " + t.y + ", " + t.z + ", " + t.w + ")"; }; t.array = function(t, e) { t[0] = e.x; t[1] = e.y; t[2] = e.z; t[3] = e.w; return t; }; t.exactEquals = function(t, e) { return t.x === e.x && t.y === e.y && t.z === e.z && t.w === e.w; }; t.equals = function(t, e) { var i = t.x, r = t.y, s = t.z, o = t.w, a = e.x, c = e.y, l = e.z, h = e.w; return Math.abs(i - a) <= n.EPSILON * Math.max(1, Math.abs(i), Math.abs(a)) && Math.abs(r - c) <= n.EPSILON * Math.max(1, Math.abs(r), Math.abs(c)) && Math.abs(s - l) <= n.EPSILON * Math.max(1, Math.abs(s), Math.abs(l)) && Math.abs(o - h) <= n.EPSILON * Math.max(1, Math.abs(o), Math.abs(h)); }; t.forEach = function(e, i, n, r, s, o) { return t._forEach(e, i, n, r, s, o); }; return t; })(); s._forEach = (function() { var t = s.create(0, 0, 0, 0); return function(e, i, n, r, s, o) { var a = void 0, c = void 0; i || (i = 4); n || (n = 0); c = r ? Math.min(r * i + n, e.length) : e.length; for (a = n; a < c; a += i) { t.x = e[a]; t.y = e[a + 1]; t.z = e[a + 2]; t.w = e[a + 3]; s(t, t, o); e[a] = t.x; e[a + 1] = t.y; e[a + 2] = t.z; e[a + 3] = t.w; } return e; }; })(); i.default = s; e.exports = i.default; }), { "./utils": 323 } ], 327: [ (function(t, e, i) { "use strict"; cc.js; }), {} ], 328: [ (function(t, e, i) { "use strict"; t("./core/CCGame"); t("./actions"); }), { "./actions": 7, "./core/CCGame": 51 } ], 329: [ (function(t, e, i) { "use strict"; var n = t("../compression/zlib.min"), r = t("../core/CCDebug"), s = function(t) { var e, i, n, s, o, a, c, l, h, u, _, f, d; this.data = t; this.pos = 8; this.palette = []; this.imgData = []; this.transparency = {}; this.animation = null; this.text = {}; o = null; for (;;) { e = this.readUInt32(); switch (l = function() { var t, e; e = []; for (t = 0; t < 4; ++t) e.push(String.fromCharCode(this.data[this.pos++])); return e; }.call(this).join("")) { case "IHDR": this.width = this.readUInt32(); this.height = this.readUInt32(); this.bits = this.data[this.pos++]; this.colorType = this.data[this.pos++]; this.compressionMethod = this.data[this.pos++]; this.filterMethod = this.data[this.pos++]; this.interlaceMethod = this.data[this.pos++]; break; case "acTL": this.animation = { numFrames: this.readUInt32(), numPlays: this.readUInt32() || Infinity, frames: [] }; break; case "PLTE": this.palette = this.read(e); break; case "fcTL": o && this.animation.frames.push(o); this.pos += 4; o = { width: this.readUInt32(), height: this.readUInt32(), xOffset: this.readUInt32(), yOffset: this.readUInt32() }; s = this.readUInt16(); n = this.readUInt16() || 100; o.delay = 1e3 * s / n; o.disposeOp = this.data[this.pos++]; o.blendOp = this.data[this.pos++]; o.data = []; break; case "IDAT": case "fdAT": if ("fdAT" === l) { this.pos += 4; e -= 4; } t = (null != o ? o.data : void 0) || this.imgData; for (_ = 0; 0 <= e ? _ < e : _ > e; 0 <= e ? ++_ : --_) t.push(this.data[this.pos++]); break; case "tRNS": this.transparency = {}; switch (this.colorType) { case 3: this.transparency.indexed = this.read(e); if ((h = 255 - this.transparency.indexed.length) > 0) for (f = 0; 0 <= h ? f < h : f > h; 0 <= h ? ++f : --f) this.transparency.indexed.push(255); break; case 0: this.transparency.grayscale = this.read(e)[0]; break; case 2: this.transparency.rgb = this.read(e); } break; case "tEXt": a = (u = this.read(e)).indexOf(0); c = String.fromCharCode.apply(String, u.slice(0, a)); this.text[c] = String.fromCharCode.apply(String, u.slice(a + 1)); break; case "IEND": o && this.animation.frames.push(o); this.colors = function() { switch (this.colorType) { case 0: case 3: case 4: return 1; case 2: case 6: return 3; } }.call(this); this.hasAlphaChannel = 4 === (d = this.colorType) || 6 === d; i = this.colors + (this.hasAlphaChannel ? 1 : 0); this.pixelBitlength = this.bits * i; this.colorSpace = function() { switch (this.colors) { case 1: return "DeviceGray"; case 3: return "DeviceRGB"; } }.call(this); Uint8Array != Array && (this.imgData = new Uint8Array(this.imgData)); return; default: this.pos += e; } this.pos += 4; if (this.pos > this.data.length) throw new Error(r.getError(6017)); } }; s.prototype = { constructor: s, read: function(t) { var e, i; i = []; for (e = 0; 0 <= t ? e < t : e > t; 0 <= t ? ++e : --e) i.push(this.data[this.pos++]); return i; }, readUInt32: function() { return this.data[this.pos++] << 24 | this.data[this.pos++] << 16 | this.data[this.pos++] << 8 | this.data[this.pos++]; }, readUInt16: function() { return this.data[this.pos++] << 8 | this.data[this.pos++]; }, decodePixels: function(t) { var e, i, s, o, a, c, l, h, u, _, f, d, m, p, v, y, g, x, C, b, A, S, w; null == t && (t = this.imgData); if (0 === t.length) return new Uint8Array(0); t = new n.Inflate(t, { index: 0, verify: !1 }).decompress(); y = (d = this.pixelBitlength / 8) * this.width; m = new Uint8Array(y * this.height); c = t.length; v = 0; p = 0; i = 0; for (;p < c; ) { switch (t[p++]) { case 0: for (o = C = 0; C < y; o = C += 1) m[i++] = t[p++]; break; case 1: for (o = b = 0; b < y; o = b += 1) { e = t[p++]; a = o < d ? 0 : m[i - d]; m[i++] = (e + a) % 256; } break; case 2: for (o = A = 0; A < y; o = A += 1) { e = t[p++]; s = (o - o % d) / d; g = v && m[(v - 1) * y + s * d + o % d]; m[i++] = (g + e) % 256; } break; case 3: for (o = S = 0; S < y; o = S += 1) { e = t[p++]; s = (o - o % d) / d; a = o < d ? 0 : m[i - d]; g = v && m[(v - 1) * y + s * d + o % d]; m[i++] = (e + Math.floor((a + g) / 2)) % 256; } break; case 4: for (o = w = 0; w < y; o = w += 1) { e = t[p++]; s = (o - o % d) / d; a = o < d ? 0 : m[i - d]; if (0 === v) g = x = 0; else { g = m[(v - 1) * y + s * d + o % d]; x = s && m[(v - 1) * y + (s - 1) * d + o % d]; } l = a + g - x; h = Math.abs(l - a); _ = Math.abs(l - g); f = Math.abs(l - x); u = h <= _ && h <= f ? a : _ <= f ? g : x; m[i++] = (e + u) % 256; } break; default: throw new Error(r.getError(6018, t[p - 1])); } v++; } return m; }, copyToImageData: function(t, e) { var i, n, r, s, o, a, c, l, h, u, _; n = this.colors; h = null; i = this.hasAlphaChannel; if (this.palette.length) { h = null != (_ = this._decodedPalette) ? _ : this._decodedPalette = this.decodePalette(); n = 4; i = !0; } l = (r = t.data || t).length; o = h || e; s = a = 0; if (1 === n) for (;s < l; ) { c = h ? 4 * e[s / 4] : a; u = o[c++]; r[s++] = u; r[s++] = u; r[s++] = u; r[s++] = i ? o[c++] : 255; a = c; } else for (;s < l; ) { c = h ? 4 * e[s / 4] : a; r[s++] = o[c++]; r[s++] = o[c++]; r[s++] = o[c++]; r[s++] = i ? o[c++] : 255; a = c; } }, decodePalette: function() { var t, e, i, n, r, s, o, a, c; i = this.palette; s = this.transparency.indexed || []; r = new Uint8Array((s.length || 0) + i.length); n = 0; t = 0; for (e = o = 0, a = i.length; o < a; e = o += 3) { r[n++] = i[e]; r[n++] = i[e + 1]; r[n++] = i[e + 2]; r[n++] = null != (c = s[t++]) ? c : 255; } return r; }, render: function(t) { var e, i; t.width = this.width; t.height = this.height; i = (e = t.getContext("2d")).createImageData(this.width, this.height); this.copyToImageData(i, this.decodePixels()); return e.putImageData(i, 0, 0); } }; e.exports = s; }), { "../compression/zlib.min": 25, "../core/CCDebug": 49 } ], 330: [ (function(t, e, i) { "use strict"; var n = t("../core/assets/CCAsset"), r = t("../core/assets/CCSpriteFrame"), s = cc.Class({ name: "cc.ParticleAsset", extends: n, properties: { spriteFrame: { default: null, type: r } } }); cc.ParticleAsset = e.exports = s; }), { "../core/assets/CCAsset": 56, "../core/assets/CCSpriteFrame": 70 } ], 331: [ (function(t, e, i) { "use strict"; var n = t("../core/platform/CCMacro"), r = t("./CCParticleAsset"), s = t("../core/components/CCRenderComponent"), o = t("../compression/ZipUtils"), a = t("./CCPNGReader"), c = t("./CCTIFFReader"), l = t("../core/utils/texture-util"), h = t("../core/renderer/render-flow"), u = t("./particle-simulator"), _ = t("../core/assets/material/CCMaterial"), f = t("../core/utils/blend-func"); function d(t) { return t.length > 8 && 137 === t[0] && 80 === t[1] && 78 === t[2] && 71 === t[3] && 13 === t[4] && 10 === t[5] && 26 === t[6] && 10 === t[7] ? n.ImageFormat.PNG : t.length > 2 && (73 === t[0] && 73 === t[1] || 77 === t[0] && 77 === t[1] || 255 === t[0] && 216 === t[1]) ? n.ImageFormat.TIFF : n.ImageFormat.UNKNOWN; } var m = cc.Enum({ GRAVITY: 0, RADIUS: 1 }), p = cc.Enum({ FREE: 0, RELATIVE: 1, GROUPED: 2 }), v = { preview: { default: !0, editorOnly: !0, notify: !1, animatable: !1, tooltip: !1 }, _custom: !1, custom: { get: function() { return this._custom; }, set: function(t) { 0; if (this._custom !== t) { this._custom = t; this._applyFile(); 0; } }, animatable: !1, tooltip: !1 }, _file: { default: null, type: r }, file: { get: function() { return this._file; }, set: function(t, e) { if (this._file !== t) { this._file = t; if (t) { this._applyFile(); 0; } else this.custom = !0; } }, animatable: !1, type: r, tooltip: !1 }, _spriteFrame: { default: null, type: cc.SpriteFrame }, spriteFrame: { get: function() { return this._spriteFrame; }, set: function(t, e) { var i = this._renderSpriteFrame; if (i !== t) { this._renderSpriteFrame = t; t && !t._uuid || (this._spriteFrame = t); if ((i && i.getTexture()) !== (t && t.getTexture())) { this._texture = null; this._applySpriteFrame(i); } 0; } }, type: cc.SpriteFrame, tooltip: !1 }, _texture: { default: null, type: cc.Texture2D, editorOnly: !0 }, texture: { get: function() { return this._texture; }, set: function(t) { t && cc.warnID(6017); }, type: cc.Texture2D, tooltip: !1, readonly: !0, visible: !1, animatable: !1 }, particleCount: { visible: !1, get: function() { return this._simulator.particles.length; }, readonly: !0 }, _stopped: !0, stopped: { get: function() { return this._stopped; }, animatable: !1, visible: !1 }, playOnLoad: !0, autoRemoveOnFinish: { default: !1, animatable: !1, tooltip: !1 }, active: { get: function() { return this._simulator.active; }, visible: !1 }, totalParticles: 150, duration: -1, emissionRate: 10, life: 1, lifeVar: 0, _startColor: null, startColor: { type: cc.Color, get: function() { return this._startColor; }, set: function(t) { this._startColor.r = t.r; this._startColor.g = t.g; this._startColor.b = t.b; this._startColor.a = t.a; } }, _startColorVar: null, startColorVar: { type: cc.Color, get: function() { return this._startColorVar; }, set: function(t) { this._startColorVar.r = t.r; this._startColorVar.g = t.g; this._startColorVar.b = t.b; this._startColorVar.a = t.a; } }, _endColor: null, endColor: { type: cc.Color, get: function() { return this._endColor; }, set: function(t) { this._endColor.r = t.r; this._endColor.g = t.g; this._endColor.b = t.b; this._endColor.a = t.a; } }, _endColorVar: null, endColorVar: { type: cc.Color, get: function() { return this._endColorVar; }, set: function(t) { this._endColorVar.r = t.r; this._endColorVar.g = t.g; this._endColorVar.b = t.b; this._endColorVar.a = t.a; } }, angle: 90, angleVar: 20, startSize: 50, startSizeVar: 0, endSize: 0, endSizeVar: 0, startSpin: 0, startSpinVar: 0, endSpin: 0, endSpinVar: 0, sourcePos: cc.Vec2.ZERO, posVar: cc.Vec2.ZERO, _positionType: { default: p.FREE, formerlySerializedAs: "positionType" }, positionType: { type: p, get: function() { return this._positionType; }, set: function(t) { var e = this.getMaterial(0); e && e.define("_USE_MODEL", t !== p.FREE); this._positionType = t; } }, emitterMode: { default: m.GRAVITY, type: m }, gravity: cc.Vec2.ZERO, speed: 180, speedVar: 50, tangentialAccel: 80, tangentialAccelVar: 0, radialAccel: 0, radialAccelVar: 0, rotationIsDir: !1, startRadius: 0, startRadiusVar: 0, endRadius: 0, endRadiusVar: 0, rotatePerS: 0, rotatePerSVar: 0 }, y = cc.Class({ name: "cc.ParticleSystem", extends: s, mixins: [ f ], editor: !1, ctor: function() { this._previewTimer = null; this._focused = !1; this._simulator = new u(this); this._startColor = cc.color(255, 255, 255, 255); this._startColorVar = cc.color(0, 0, 0, 0); this._endColor = cc.color(255, 255, 255, 0); this._endColorVar = cc.color(0, 0, 0, 0); this._renderSpriteFrame = null; }, properties: v, statics: { DURATION_INFINITY: -1, START_SIZE_EQUAL_TO_END_SIZE: -1, START_RADIUS_EQUAL_TO_END_RADIUS: -1, EmitterMode: m, PositionType: p, _PNGReader: a, _TIFFReader: c }, onFocusInEditor: !1, onLostFocusInEditor: !1, _startPreview: !1, _stopPreview: !1, _convertTextureToSpriteFrame: !1, __preload: function() { 0; if (this._custom && this.spriteFrame && !this._renderSpriteFrame) this._applySpriteFrame(this.spriteFrame); else if (this._file) if (this._custom) { !this._texture && this._applyFile(); } else this._applyFile(); this.playOnLoad && this.resetSystem(); 0; }, onEnable: function() { this._super(); this.node._renderFlag &= ~h.FLAG_RENDER; this._activateMaterial(); }, onDestroy: function() { this.autoRemoveOnFinish && (this.autoRemoveOnFinish = !1); if (this._buffer) { this._buffer.destroy(); this._buffer = null; } this._ia = null; this._simulator._uvFilled = 0; this._super(); }, lateUpdate: function(t) { !this._simulator.finished && this._ia && this._simulator.step(t); }, addParticle: function() {}, stopSystem: function() { this._stopped = !0; this._simulator.stop(); }, resetSystem: function() { this._stopped = !1; this._simulator.reset(); this._activateMaterial(); }, isFull: function() { return this.particleCount >= this.totalParticles; }, setTextureWithRect: function(t, e) { t instanceof cc.Texture2D && (this.spriteFrame = new cc.SpriteFrame(t, e)); }, _applyFile: function() { var t = this._file; if (t) { var e = this; cc.loader.load(t.nativeUrl, (function(i, n) { if (!i && n) { if (e.isValid) { e._plistFile = t.nativeUrl; e._custom || e._initWithDictionary(n); e._spriteFrame ? !e._renderSpriteFrame && e._spriteFrame && e._applySpriteFrame(e.spriteFrame) : t.spriteFrame ? e.spriteFrame = t.spriteFrame : e._custom && e._initTextureWithDictionary(n); } } else cc.errorID(6029); })); } }, _initTextureWithDictionary: function(t) { var e = cc.path.changeBasename(this._plistFile, t.textureFileName || ""); if (t.textureFileName) l.loadImage(e, (function(e, i) { if (e) { t.textureFileName = void 0; this._initTextureWithDictionary(t); } else this.spriteFrame = new cc.SpriteFrame(i); }), this); else if (t.textureImageData) { var i = t.textureImageData; if (!(i && i.length > 0)) return !1; var r = cc.loader.getRes(e); if (!r) { var s = o.unzipBase64AsArray(i, 1); if (!s) { cc.logID(6030); return !1; } var h = d(s); if (h !== n.ImageFormat.TIFF && h !== n.ImageFormat.PNG) { cc.logID(6031); return !1; } var u = document.createElement("canvas"); if (h === n.ImageFormat.PNG) { new a(s).render(u); } else c.parseTIFF(s, u); r = l.cacheImage(e, u); } r || cc.logID(6032); this.spriteFrame = new cc.SpriteFrame(r); } return !0; }, _initWithDictionary: function(t) { this.totalParticles = parseInt(t.maxParticles || 0); this.life = parseFloat(t.particleLifespan || 0); this.lifeVar = parseFloat(t.particleLifespanVariance || 0); var e = t.emissionRate; this.emissionRate = e || Math.min(this.totalParticles / this.life, Number.MAX_VALUE); this.duration = parseFloat(t.duration || 0); this.srcBlendFactor = parseInt(t.blendFuncSource || n.SRC_ALPHA); this.dstBlendFactor = parseInt(t.blendFuncDestination || n.ONE_MINUS_SRC_ALPHA); var i = this._startColor; i.r = 255 * parseFloat(t.startColorRed || 0); i.g = 255 * parseFloat(t.startColorGreen || 0); i.b = 255 * parseFloat(t.startColorBlue || 0); i.a = 255 * parseFloat(t.startColorAlpha || 0); var r = this._startColorVar; r.r = 255 * parseFloat(t.startColorVarianceRed || 0); r.g = 255 * parseFloat(t.startColorVarianceGreen || 0); r.b = 255 * parseFloat(t.startColorVarianceBlue || 0); r.a = 255 * parseFloat(t.startColorVarianceAlpha || 0); var s = this._endColor; s.r = 255 * parseFloat(t.finishColorRed || 0); s.g = 255 * parseFloat(t.finishColorGreen || 0); s.b = 255 * parseFloat(t.finishColorBlue || 0); s.a = 255 * parseFloat(t.finishColorAlpha || 0); var o = this._endColorVar; o.r = 255 * parseFloat(t.finishColorVarianceRed || 0); o.g = 255 * parseFloat(t.finishColorVarianceGreen || 0); o.b = 255 * parseFloat(t.finishColorVarianceBlue || 0); o.a = 255 * parseFloat(t.finishColorVarianceAlpha || 0); this.startSize = parseFloat(t.startParticleSize || 0); this.startSizeVar = parseFloat(t.startParticleSizeVariance || 0); this.endSize = parseFloat(t.finishParticleSize || 0); this.endSizeVar = parseFloat(t.finishParticleSizeVariance || 0); this.positionType = parseFloat(t.positionType || p.RELATIVE); this.sourcePos.x = 0; this.sourcePos.y = 0; this.posVar.x = parseFloat(t.sourcePositionVariancex || 0); this.posVar.y = parseFloat(t.sourcePositionVariancey || 0); this.angle = parseFloat(t.angle || 0); this.angleVar = parseFloat(t.angleVariance || 0); this.startSpin = parseFloat(t.rotationStart || 0); this.startSpinVar = parseFloat(t.rotationStartVariance || 0); this.endSpin = parseFloat(t.rotationEnd || 0); this.endSpinVar = parseFloat(t.rotationEndVariance || 0); this.emitterMode = parseInt(t.emitterType || m.GRAVITY); if (this.emitterMode === m.GRAVITY) { this.gravity.x = parseFloat(t.gravityx || 0); this.gravity.y = parseFloat(t.gravityy || 0); this.speed = parseFloat(t.speed || 0); this.speedVar = parseFloat(t.speedVariance || 0); this.radialAccel = parseFloat(t.radialAcceleration || 0); this.radialAccelVar = parseFloat(t.radialAccelVariance || 0); this.tangentialAccel = parseFloat(t.tangentialAcceleration || 0); this.tangentialAccelVar = parseFloat(t.tangentialAccelVariance || 0); var a = t.rotationIsDir || ""; if (null !== a) { a = a.toString().toLowerCase(); this.rotationIsDir = "true" === a || "1" === a; } else this.rotationIsDir = !1; } else { if (this.emitterMode !== m.RADIUS) { cc.warnID(6009); return !1; } this.startRadius = parseFloat(t.maxRadius || 0); this.startRadiusVar = parseFloat(t.maxRadiusVariance || 0); this.endRadius = parseFloat(t.minRadius || 0); this.endRadiusVar = parseFloat(t.minRadiusVariance || 0); this.rotatePerS = parseFloat(t.rotatePerSecond || 0); this.rotatePerSVar = parseFloat(t.rotatePerSecondVariance || 0); } this._initTextureWithDictionary(t); return !0; }, _onTextureLoaded: function() { this._texture = this._renderSpriteFrame.getTexture(); this._simulator.updateUVs(!0); this._activateMaterial(); }, _applySpriteFrame: function(t) { t && t.off && t.off("load", this._onTextureLoaded, this); var e = this._renderSpriteFrame = this._renderSpriteFrame || this._spriteFrame; if (e) if (e.textureLoaded()) this._onTextureLoaded(null); else { e.once("load", this._onTextureLoaded, this); e.ensureLoadTexture(); } }, _activateMaterial: function() { if (this._texture && this._texture.loaded) { this._ia || y._assembler.createIA(this); var t = this.sharedMaterials[0]; (t = t ? _.getInstantiatedMaterial(t, this) : _.getInstantiatedBuiltinMaterial("2d-sprite", this)).define("_USE_MODEL", this._positionType !== p.FREE); t.setProperty("texture", this._texture); this.setMaterial(0, t); this.markForCustomIARender(!0); } else { this.markForCustomIARender(!1); this._renderSpriteFrame && this._applySpriteFrame(); } }, _finishedSimulation: function() { 0; this.resetSystem(); this.stopSystem(); this.disableRender(); this.autoRemoveOnFinish && this._stopped && this.node.destroy(); } }); cc.ParticleSystem = e.exports = y; }), { "../compression/ZipUtils": 22, "../core/assets/material/CCMaterial": 75, "../core/components/CCRenderComponent": 106, "../core/platform/CCMacro": 206, "../core/renderer/render-flow": 245, "../core/utils/blend-func": 289, "../core/utils/texture-util": 304, "./CCPNGReader": 329, "./CCParticleAsset": 330, "./CCTIFFReader": 332, "./particle-simulator": 334, "fire-url": void 0 } ], 332: [ (function(t, e, i) { "use strict"; var n = t("../core/CCDebug"), r = { _littleEndian: !1, _tiffData: null, _fileDirectories: [], getUint8: function(t) { return this._tiffData[t]; }, getUint16: function(t) { return this._littleEndian ? this._tiffData[t + 1] << 8 | this._tiffData[t] : this._tiffData[t] << 8 | this._tiffData[t + 1]; }, getUint32: function(t) { var e = this._tiffData; return this._littleEndian ? e[t + 3] << 24 | e[t + 2] << 16 | e[t + 1] << 8 | e[t] : e[t] << 24 | e[t + 1] << 16 | e[t + 2] << 8 | e[t + 3]; }, checkLittleEndian: function() { var t = this.getUint16(0); if (18761 === t) this.littleEndian = !0; else { if (19789 !== t) { console.log(t); throw TypeError(n.getError(6019)); } this.littleEndian = !1; } return this.littleEndian; }, hasTowel: function() { if (42 !== this.getUint16(2)) throw RangeError(n.getError(6020)); return !0; }, getFieldTypeName: function(t) { var e = this.fieldTypeNames; return t in e ? e[t] : null; }, getFieldTagName: function(t) { var e = this.fieldTagNames; if (t in e) return e[t]; cc.logID(6021, t); return "Tag" + t; }, getFieldTypeLength: function(t) { return -1 !== [ "BYTE", "ASCII", "SBYTE", "UNDEFINED" ].indexOf(t) ? 1 : -1 !== [ "SHORT", "SSHORT" ].indexOf(t) ? 2 : -1 !== [ "LONG", "SLONG", "FLOAT" ].indexOf(t) ? 4 : -1 !== [ "RATIONAL", "SRATIONAL", "DOUBLE" ].indexOf(t) ? 8 : null; }, getFieldValues: function(t, e, i, n) { var r = [], s = this.getFieldTypeLength(e); if (s * i <= 4) !1 === this.littleEndian ? r.push(n >>> 8 * (4 - s)) : r.push(n); else for (var o = 0; o < i; o++) { var a = s * o; if (s >= 8) if (-1 !== [ "RATIONAL", "SRATIONAL" ].indexOf(e)) { r.push(this.getUint32(n + a)); r.push(this.getUint32(n + a + 4)); } else cc.logID(8e3); else r.push(this.getBytes(s, n + a)); } "ASCII" === e && r.forEach((function(t, e, i) { i[e] = String.fromCharCode(t); })); return r; }, getBytes: function(t, e) { if (t <= 0) cc.logID(8001); else { if (t <= 1) return this.getUint8(e); if (t <= 2) return this.getUint16(e); if (t <= 3) return this.getUint32(e) >>> 8; if (t <= 4) return this.getUint32(e); cc.logID(8002); } }, getBits: function(t, e, i) { i = i || 0; var n, r, s = e + Math.floor(i / 8), o = i + t, a = 32 - t; if (o <= 0) cc.logID(6023); else if (o <= 8) { n = 24 + i; r = this.getUint8(s); } else if (o <= 16) { n = 16 + i; r = this.getUint16(s); } else if (o <= 32) { n = i; r = this.getUint32(s); } else cc.logID(6022); return { bits: r << n >>> a, byteOffset: s + Math.floor(o / 8), bitOffset: o % 8 }; }, parseFileDirectory: function(t) { for (var e = this.getUint16(t), i = [], n = t + 2, r = 0; r < e; n += 12, r++) { var s = this.getUint16(n), o = this.getUint16(n + 2), a = this.getUint32(n + 4), c = this.getUint32(n + 8), l = this.getFieldTagName(s), h = this.getFieldTypeName(o), u = this.getFieldValues(l, h, a, c); i[l] = { type: h, values: u }; } this._fileDirectories.push(i); var _ = this.getUint32(n); 0 !== _ && this.parseFileDirectory(_); }, clampColorSample: function(t, e) { var i = Math.pow(2, 8 - e); return Math.floor(t * i + (i - 1)); }, parseTIFF: function(t, e) { e = e || document.createElement("canvas"); this._tiffData = t; this.canvas = e; this.checkLittleEndian(); if (this.hasTowel()) { var i = this.getUint32(4); this._fileDirectories.length = 0; this.parseFileDirectory(i); var r = this._fileDirectories[0], s = r.ImageWidth.values[0], o = r.ImageLength.values[0]; this.canvas.width = s; this.canvas.height = o; var a = [], c = r.Compression ? r.Compression.values[0] : 1, l = r.SamplesPerPixel.values[0], h = [], u = 0, _ = !1; r.BitsPerSample.values.forEach((function(t, e, i) { h[e] = { bitsPerSample: t, hasBytesPerSample: !1, bytesPerSample: void 0 }; if (t % 8 == 0) { h[e].hasBytesPerSample = !0; h[e].bytesPerSample = t / 8; } u += t; }), this); if (u % 8 == 0) { _ = !0; var f = u / 8; } var d = r.StripOffsets.values, m = d.length; if (r.StripByteCounts) var p = r.StripByteCounts.values; else { cc.logID(8003); if (1 !== m) throw Error(n.getError(6024)); p = [ Math.ceil(s * o * u / 8) ]; } for (var v = 0; v < m; v++) { var y = d[v]; a[v] = []; for (var g = p[v], x = 0, C = 0, b = 1, A = !0, S = [], w = 0, T = 0, E = 0; x < g; x += b) switch (c) { case 1: var M = 0; for (S = []; M < l; M++) { if (!h[M].hasBytesPerSample) { var B = this.getBits(h[M].bitsPerSample, y + x, C); S.push(B.bits); x = B.byteOffset - y; C = B.bitOffset; throw RangeError(n.getError(6025)); } var D = h[M].bytesPerSample * M; S.push(this.getBytes(h[M].bytesPerSample, y + x + D)); } a[v].push(S); if (!_) { b = 0; throw RangeError(n.getError(6026)); } b = f; break; case 2: case 3: case 4: case 5: case 6: case 7: break; case 32773: if (A) { A = !1; var I = 1, P = 1, R = this.getInt8(y + x); R >= 0 && R <= 127 ? I = R + 1 : R >= -127 && R <= -1 ? P = 1 - R : A = !0; } else { var L = this.getUint8(y + x); for (M = 0; M < P; M++) { if (!h[T].hasBytesPerSample) throw RangeError(n.getError(6025)); E = E << 8 * w | L; if (++w === h[T].bytesPerSample) { S.push(E); E = w = 0; T++; } if (T === l) { a[v].push(S); S = []; T = 0; } } 0 === --I && (A = !0); } b = 1; } } if (e.getContext) { var F = this.canvas.getContext("2d"); F.fillStyle = "rgba(255, 255, 255, 0)"; var O = r.RowsPerStrip ? r.RowsPerStrip.values[0] : o, V = a.length, N = o % O, k = 0 === N ? O : N, z = O, G = 0, U = r.PhotometricInterpretation.values[0], j = [], W = 0; r.ExtraSamples && (W = (j = r.ExtraSamples.values).length); if (r.ColorMap) var H = r.ColorMap.values, q = Math.pow(2, h[0].bitsPerSample); for (v = 0; v < V; v++) { v + 1 === V && (z = k); for (var X = a[v].length, Y = G * v, J = 0, Z = 0; Z < X; J++) for (var K = 0; K < s; K++, Z++) { var Q = a[v][Z], $ = 0, tt = 0, et = 0, it = 1; if (W > 0) for (var nt = 0; nt < W; nt++) if (1 === j[nt] || 2 === j[nt]) { it = Q[3 + nt] / 256; break; } switch (U) { case 0: if (h[0].hasBytesPerSample) var rt = Math.pow(16, 2 * h[0].bytesPerSample); Q.forEach((function(t, e, i) { i[e] = rt - t; })); case 1: $ = tt = et = this.clampColorSample(Q[0], h[0].bitsPerSample); break; case 2: $ = this.clampColorSample(Q[0], h[0].bitsPerSample); tt = this.clampColorSample(Q[1], h[1].bitsPerSample); et = this.clampColorSample(Q[2], h[2].bitsPerSample); break; case 3: if (void 0 === H) throw Error(n.getError(6027)); var st = Q[0]; $ = this.clampColorSample(H[st], 16); tt = this.clampColorSample(H[q + st], 16); et = this.clampColorSample(H[2 * q + st], 16); break; default: throw RangeError(n.getError(6028, U)); } F.fillStyle = "rgba(" + $ + ", " + tt + ", " + et + ", " + it + ")"; F.fillRect(K, Y + J, 1, 1); } G = z; } } return this.canvas; } }, fieldTagNames: { 315: "Artist", 258: "BitsPerSample", 265: "CellLength", 264: "CellWidth", 320: "ColorMap", 259: "Compression", 33432: "Copyright", 306: "DateTime", 338: "ExtraSamples", 266: "FillOrder", 289: "FreeByteCounts", 288: "FreeOffsets", 291: "GrayResponseCurve", 290: "GrayResponseUnit", 316: "HostComputer", 270: "ImageDescription", 257: "ImageLength", 256: "ImageWidth", 271: "Make", 281: "MaxSampleValue", 280: "MinSampleValue", 272: "Model", 254: "NewSubfileType", 274: "Orientation", 262: "PhotometricInterpretation", 284: "PlanarConfiguration", 296: "ResolutionUnit", 278: "RowsPerStrip", 277: "SamplesPerPixel", 305: "Software", 279: "StripByteCounts", 273: "StripOffsets", 255: "SubfileType", 263: "Threshholding", 282: "XResolution", 283: "YResolution", 326: "BadFaxLines", 327: "CleanFaxData", 343: "ClipPath", 328: "ConsecutiveBadFaxLines", 433: "Decode", 434: "DefaultImageColor", 269: "DocumentName", 336: "DotRange", 321: "HalftoneHints", 346: "Indexed", 347: "JPEGTables", 285: "PageName", 297: "PageNumber", 317: "Predictor", 319: "PrimaryChromaticities", 532: "ReferenceBlackWhite", 339: "SampleFormat", 559: "StripRowCounts", 330: "SubIFDs", 292: "T4Options", 293: "T6Options", 325: "TileByteCounts", 323: "TileLength", 324: "TileOffsets", 322: "TileWidth", 301: "TransferFunction", 318: "WhitePoint", 344: "XClipPathUnits", 286: "XPosition", 529: "YCbCrCoefficients", 531: "YCbCrPositioning", 530: "YCbCrSubSampling", 345: "YClipPathUnits", 287: "YPosition", 37378: "ApertureValue", 40961: "ColorSpace", 36868: "DateTimeDigitized", 36867: "DateTimeOriginal", 34665: "Exif IFD", 36864: "ExifVersion", 33434: "ExposureTime", 41728: "FileSource", 37385: "Flash", 40960: "FlashpixVersion", 33437: "FNumber", 42016: "ImageUniqueID", 37384: "LightSource", 37500: "MakerNote", 37377: "ShutterSpeedValue", 37510: "UserComment", 33723: "IPTC", 34675: "ICC Profile", 700: "XMP", 42112: "GDAL_METADATA", 42113: "GDAL_NODATA", 34377: "Photoshop" }, fieldTypeNames: { 1: "BYTE", 2: "ASCII", 3: "SHORT", 4: "LONG", 5: "RATIONAL", 6: "SBYTE", 7: "UNDEFINED", 8: "SSHORT", 9: "SLONG", 10: "SRATIONAL", 11: "FLOAT", 12: "DOUBLE" } }; e.exports = r; }), { "../core/CCDebug": 49 } ], 333: [ (function(t, e, i) { "use strict"; t("./CCParticleAsset"); t("./CCParticleSystem"); t("./particle-simulator"); t("./particle-system-assembler"); }), { "./CCParticleAsset": 330, "./CCParticleSystem": 331, "./particle-simulator": 334, "./particle-system-assembler": 335 } ], 334: [ (function(t, e, i) { "use strict"; var n = t("../core/utils/affine-transform"), r = t("../core/platform/js"), s = t("../core/utils/misc"), o = cc.v2(0, 0), a = n.create(), c = cc.v2(), l = cc.v2(), h = cc.v2(), u = cc.v2(), _ = function() { this.pos = cc.v2(0, 0); this.startPos = cc.v2(0, 0); this.color = cc.color(0, 0, 0, 255); this.deltaColor = { r: 0, g: 0, b: 0, a: 255 }; this.size = 0; this.deltaSize = 0; this.rotation = 0; this.deltaRotation = 0; this.timeToLive = 0; this.drawPos = cc.v2(0, 0); this.dir = cc.v2(0, 0); this.radialAccel = 0; this.tangentialAccel = 0; this.angle = 0; this.degreesPerSecond = 0; this.radius = 0; this.deltaRadius = 0; }, f = new r.Pool(function(t) { t.pos.set(o); t.startPos.set(o); t.color._val = 4278190080; t.deltaColor.r = t.deltaColor.g = t.deltaColor.b = 0; t.deltaColor.a = 255; t.size = 0; t.deltaSize = 0; t.rotation = 0; t.deltaRotation = 0; t.timeToLive = 0; t.drawPos.set(o); t.dir.set(o); t.radialAccel = 0; t.tangentialAccel = 0; t.angle = 0; t.degreesPerSecond = 0; t.radius = 0; t.deltaRadius = 0; }, 1024); f.get = function() { return this._get() || new _(); }; var d = function(t) { this.sys = t; this.particles = []; this.active = !1; this.finished = !1; this.elapsed = 0; this.emitCounter = 0; this._uvFilled = 0; }; d.prototype.stop = function() { this.active = !1; this.elapsed = this.sys.duration; this.emitCounter = 0; }; d.prototype.reset = function() { this.active = !0; this.elapsed = 0; this.emitCounter = 0; this.finished = !1; for (var t = this.particles, e = 0; e < t.length; ++e) f.put(t[e]); t.length = 0; }; d.prototype.emitParticle = function(t) { var e = this.sys, i = s.clampf, n = f.get(); this.particles.push(n); n.timeToLive = e.life + e.lifeVar * (Math.random() - .5) * 2; var r = n.timeToLive = Math.max(0, n.timeToLive); n.pos.x = e.sourcePos.x + e.posVar.x * (Math.random() - .5) * 2; n.pos.y = e.sourcePos.y + e.posVar.y * (Math.random() - .5) * 2; var o, a, c, l, h = e._startColor, u = e._startColorVar, _ = e._endColor, d = e._endColorVar; n.color.r = o = i(h.r + u.r * (Math.random() - .5) * 2, 0, 255); n.color.g = a = i(h.g + u.g * (Math.random() - .5) * 2, 0, 255); n.color.b = c = i(h.b + u.b * (Math.random() - .5) * 2, 0, 255); n.color.a = l = i(h.a + u.a * (Math.random() - .5) * 2, 0, 255); n.deltaColor.r = (i(_.r + d.r * (Math.random() - .5) * 2, 0, 255) - o) / r; n.deltaColor.g = (i(_.g + d.g * (Math.random() - .5) * 2, 0, 255) - a) / r; n.deltaColor.b = (i(_.b + d.b * (Math.random() - .5) * 2, 0, 255) - c) / r; n.deltaColor.a = (i(_.a + d.a * (Math.random() - .5) * 2, 0, 255) - l) / r; var p = e.startSize + e.startSizeVar * (Math.random() - .5) * 2; p = Math.max(0, p); n.size = p; if (e.endSize === cc.ParticleSystem.START_SIZE_EQUAL_TO_END_SIZE) n.deltaSize = 0; else { var v = e.endSize + e.endSizeVar * (Math.random() - .5) * 2; v = Math.max(0, v); n.deltaSize = (v - p) / r; } var y = e.startSpin + e.startSpinVar * (Math.random() - .5) * 2, g = e.endSpin + e.endSpinVar * (Math.random() - .5) * 2; n.rotation = y; n.deltaRotation = (g - y) / r; n.startPos.x = t.x; n.startPos.y = t.y; var x = m(e.node), C = e.positionType === cc.ParticleSystem.PositionType.FREE ? e.angle + x : e.angle, b = s.degreesToRadians(C + e.angleVar * (Math.random() - .5) * 2); if (e.emitterMode === cc.ParticleSystem.EmitterMode.GRAVITY) { var A = e.speed + e.speedVar * (Math.random() - .5) * 2; n.dir.x = Math.cos(b); n.dir.y = Math.sin(b); n.dir.mulSelf(A); n.radialAccel = e.radialAccel + e.radialAccelVar * (Math.random() - .5) * 2; n.tangentialAccel = e.tangentialAccel + e.tangentialAccelVar * (Math.random() - .5) * 2; e.rotationIsDir && (n.rotation = -s.radiansToDegrees(Math.atan2(n.dir.y, n.dir.x))); } else { var S = e.startRadius + e.startRadiusVar * (Math.random() - .5) * 2, w = e.endRadius + e.endRadiusVar * (Math.random() - .5) * 2; n.radius = S; n.deltaRadius = e.endRadius === cc.ParticleSystem.START_RADIUS_EQUAL_TO_END_RADIUS ? 0 : (w - S) / r; n.angle = b; n.degreesPerSecond = s.degreesToRadians(e.rotatePerS + e.rotatePerSVar * (Math.random() - .5) * 2); } }; function m(t) { for (var e = 0, i = t; i; ) { e += i.angle; i = i.parent; } return e; } d.prototype.updateUVs = function(t) { var e = this.particles.length; if (this.sys._buffer && this.sys._renderSpriteFrame) { for (var i = 4 * this.sys._vertexFormat._bytes / 4, n = this.sys._buffer._vData, r = this.sys._renderSpriteFrame.uv, s = t ? 0 : this._uvFilled; s < e; s++) { var o = s * i; n[o + 2] = r[0]; n[o + 3] = r[1]; n[o + 7] = r[2]; n[o + 8] = r[3]; n[o + 12] = r[4]; n[o + 13] = r[5]; n[o + 17] = r[6]; n[o + 18] = r[7]; } this._uvFilled = e; } }; d.prototype.updateParticleBuffer = function(t, e, i, n) { var r = i._vData, o = i._uintVData, a = e.x, c = e.y, l = t.size / 2; if (t.rotation) { var h = -l, u = -l, _ = l, f = l, d = -s.degreesToRadians(t.rotation), m = Math.cos(d), p = Math.sin(d); r[n] = h * m - u * p + a; r[n + 1] = h * p + u * m + c; r[n + 5] = _ * m - u * p + a; r[n + 6] = _ * p + u * m + c; r[n + 10] = h * m - f * p + a; r[n + 11] = h * p + f * m + c; r[n + 15] = _ * m - f * p + a; r[n + 16] = _ * p + f * m + c; } else { r[n] = a - l; r[n + 1] = c - l; r[n + 5] = a + l; r[n + 6] = c - l; r[n + 10] = a - l; r[n + 11] = c + l; r[n + 15] = a + l; r[n + 16] = c + l; } o[n + 4] = t.color._val; o[n + 9] = t.color._val; o[n + 14] = t.color._val; o[n + 19] = t.color._val; }; d.prototype.step = function(t) { var e = this.sys, i = e.node, r = this.particles, _ = 4 * e._vertexFormat._bytes / 4; i._updateWorldMatrix(); a = n.identity(); if (e.positionType === cc.ParticleSystem.PositionType.FREE) { a.tx = i._worldMatrix.m12; a.ty = i._worldMatrix.m13; n.transformVec2(c, o, a); } else if (e.positionType === cc.ParticleSystem.PositionType.RELATIVE) { var d = s.degreesToRadians(-i.angle), m = Math.cos(d), p = Math.sin(d); a = n.create(m, -p, p, m, 0, 0); c.x = i._position.x; c.y = i._position.y; } n.invert(a, a); var v = a; if (this.active && e.emissionRate) { var y = 1 / e.emissionRate; r.length < e.totalParticles && (this.emitCounter += t); for (;r.length < e.totalParticles && this.emitCounter > y; ) { this.emitParticle(c); this.emitCounter -= y; } this.elapsed += t; -1 !== e.duration && e.duration < this.elapsed && e.stopSystem(); } var g = e._buffer, x = r.length; g.reset(); g.request(4 * x, 6 * x); x > this._uvFilled && this.updateUVs(); for (var C = 0; C < r.length; ) { l.x = l.y = h.x = h.y = u.x = u.y = 0; var b = r[C]; b.timeToLive -= t; if (b.timeToLive > 0) { if (e.emitterMode === cc.ParticleSystem.EmitterMode.GRAVITY) { var A = u, S = l, w = h; if (b.pos.x || b.pos.y) { S.set(b.pos); S.normalizeSelf(); } w.set(S); S.mulSelf(b.radialAccel); var T = w.x; w.x = -w.y; w.y = T; w.mulSelf(b.tangentialAccel); A.set(S); A.addSelf(w); A.addSelf(e.gravity); A.mulSelf(t); b.dir.addSelf(A); A.set(b.dir); A.mulSelf(t); b.pos.addSelf(A); } else { b.angle += b.degreesPerSecond * t; b.radius += b.deltaRadius * t; b.pos.x = -Math.cos(b.angle) * b.radius; b.pos.y = -Math.sin(b.angle) * b.radius; } b.color.r += b.deltaColor.r * t; b.color.g += b.deltaColor.g * t; b.color.b += b.deltaColor.b * t; b.color.a += b.deltaColor.a * t; b.size += b.deltaSize * t; b.size < 0 && (b.size = 0); b.rotation += b.deltaRotation * t; var E = l, M = h; if (e.positionType === cc.ParticleSystem.PositionType.FREE) { M.set(b.startPos); M.negSelf(); E.set(b.pos); E.subSelf(M); } else if (e.positionType === cc.ParticleSystem.PositionType.RELATIVE) { var B = u; n.transformVec2(M, c, v); n.transformVec2(B, b.startPos, v); M.subSelf(B); E.set(b.pos); E.subSelf(M); } else E.set(b.pos); var D = _ * C; this.updateParticleBuffer(b, E, g, D); ++C; } else { var I = r[C]; C !== r.length - 1 && (r[C] = r[r.length - 1]); f.put(I); r.length--; } } if (r.length > 0) { g.uploadData(); e._ia._count = 6 * r.length; } else if (!this.active) { this.finished = !0; e._finishedSimulation(); } }; e.exports = d; }), { "../core/platform/js": 221, "../core/utils/affine-transform": 286, "../core/utils/misc": 297 } ], 335: [ (function(t, e, i) { "use strict"; var n = s(t("../renderer/render-data/ia-render-data")), r = s(t("../renderer/core/input-assembler")); function s(t) { return t && t.__esModule ? t : { default: t }; } var o = t("./CCParticleSystem"), a = t("../core/renderer/"), c = t("../core/renderer/webgl/vertex-format").vfmtPosUvColor, l = t("../core/renderer/webgl/quad-buffer"), h = { createIA: function(t) { a.device; t._vertexFormat = c; t._buffer = new l(a._handle, c); t._ia = new r.default(); t._ia._vertexBuffer = t._buffer._vb; t._ia._indexBuffer = t._buffer._ib; t._ia._start = 0; t._ia._count = 0; }, updateRenderData: function(t) { t._renderData || (t._renderData = new n.default()); t._renderData.ia = t._ia; t._renderData.material = t.sharedMaterials[0]; }, renderIA: function(t, e) { e._flushIA(t._renderData); } }; o._assembler = h; e.exports = h; }), { "../core/renderer/": 244, "../core/renderer/webgl/quad-buffer": 282, "../core/renderer/webgl/vertex-format": 284, "../renderer/core/input-assembler": 339, "../renderer/render-data/ia-render-data": 368, "./CCParticleSystem": 331 } ], 336: [ (function(t, e, i) { "use strict"; i.__esModule = !0; var n = 0, r = {}; i.default = { addStage: function(t) { if (void 0 === r[t]) { var e = 1 << n; r[t] = e; n += 1; } }, stageID: function(t) { var e = r[t]; return void 0 === e ? -1 : e; }, stageIDs: function(t) { for (var e = 0, i = 0; i < t.length; ++i) { var n = r[t[i]]; void 0 !== n && (e |= n); } return e; } }; e.exports = i.default; }), {} ], 337: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.default = void 0; var n, r, s = t("../memop"), o = u(t("../enums")), a = t("../../core/vmath"), c = u(t("./program-lib")), l = u(t("./view")), h = u(t("../gfx")); function u(t) { return t && t.__esModule ? t : { default: t }; } function _(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var f = a.mat3.create(), d = a.mat4.create(), m = new s.RecyclePool(function() { return { stage: null, items: null }; }, 8), p = new s.RecyclePool(function() { return new Float32Array(2); }, 8), v = new s.RecyclePool(function() { return new Float32Array(3); }, 8), y = new s.RecyclePool(function() { return new Float32Array(4); }, 8), g = new s.RecyclePool(function() { return new Float32Array(9); }, 8), x = new s.RecyclePool(function() { return new Float32Array(16); }, 8), C = new s.RecyclePool(function() { return new Float32Array(64); }, 8), b = new s.RecyclePool(function() { return new Int32Array(2); }, 8), A = new s.RecyclePool(function() { return new Int32Array(3); }, 8), S = new s.RecyclePool(function() { return new Int32Array(4); }, 8), w = new s.RecyclePool(function() { return new Int32Array(64); }, 8), T = ((n = {})[o.default.PARAM_INT] = function(t) { return t; }, n[o.default.PARAM_INT2] = function(t) { return a.vec2.array(b.add(), t); }, n[o.default.PARAM_INT3] = function(t) { return a.vec3.array(A.add(), t); }, n[o.default.PARAM_INT4] = function(t) { return a.vec4.array(S.add(), t); }, n[o.default.PARAM_FLOAT] = function(t) { return t; }, n[o.default.PARAM_FLOAT2] = function(t) { return a.vec2.array(p.add(), t); }, n[o.default.PARAM_FLOAT3] = function(t) { return a.vec3.array(v.add(), t); }, n[o.default.PARAM_FLOAT4] = function(t) { return a.vec4.array(y.add(), t); }, n[o.default.PARAM_COLOR3] = function(t) { return a.color3.array(v.add(), t); }, n[o.default.PARAM_COLOR4] = function(t) { return a.color4.array(y.add(), t); }, n[o.default.PARAM_MAT2] = function(t) { return a.mat2.array(y.add(), t); }, n[o.default.PARAM_MAT3] = function(t) { return a.mat3.array(g.add(), t); }, n[o.default.PARAM_MAT4] = function(t) { return a.mat4.array(x.add(), t); }, n), E = ((r = {})[o.default.PARAM_INT] = { func: function(t) { for (var e = w.add(), i = 0; i < t.length; ++i) e[i] = t[i]; return e; }, size: 1 }, r[o.default.PARAM_INT2] = { func: function(t) { for (var e = w.add(), i = 0; i < t.length; ++i) { e[2 * i] = t[i].x; e[2 * i + 1] = t[i].y; } return e; }, size: 2 }, r[o.default.PARAM_INT3] = { func: void 0, size: 3 }, r[o.default.PARAM_INT4] = { func: function(t) { for (var e = w.add(), i = 0; i < t.length; ++i) { var n = t[i]; e[4 * i] = n.x; e[4 * i + 1] = n.y; e[4 * i + 2] = n.z; e[4 * i + 3] = n.w; } return e; }, size: 4 }, r[o.default.PARAM_FLOAT] = { func: function(t) { for (var e = C.add(), i = 0; i < t.length; ++i) e[i] = t[i]; return e; }, size: 1 }, r[o.default.PARAM_FLOAT2] = { func: function(t) { for (var e = C.add(), i = 0; i < t.length; ++i) { e[2 * i] = t[i].x; e[2 * i + 1] = t[i].y; } return e; }, size: 2 }, r[o.default.PARAM_FLOAT3] = { func: void 0, size: 3 }, r[o.default.PARAM_FLOAT4] = { func: function(t) { for (var e = C.add(), i = 0; i < t.length; ++i) { var n = t[i]; e[4 * i] = n.x; e[4 * i + 1] = n.y; e[4 * i + 2] = n.z; e[4 * i + 3] = n.w; } return e; }, size: 4 }, r[o.default.PARAM_COLOR3] = { func: void 0, size: 3 }, r[o.default.PARAM_COLOR4] = { func: function(t) { for (var e = C.add(), i = 0; i < t.length; ++i) { var n = t[i]; e[4 * i] = n.r; e[4 * i + 1] = n.g; e[4 * i + 2] = n.b; e[4 * i + 3] = n.a; } return e; }, size: 4 }, r[o.default.PARAM_MAT2] = { func: function(t) { for (var e = C.add(), i = 0; i < t.length; ++i) { var n = t[i]; e[4 * i] = n.m00; e[4 * i + 1] = n.m01; e[4 * i + 2] = n.m02; e[4 * i + 3] = n.m03; } return e; }, size: 4 }, r[o.default.PARAM_MAT3] = { func: void 0, size: 9 }, r[o.default.PARAM_MAT4] = { func: function(t) { for (var e = C.add(), i = 0; i < t.length; ++i) { var n = t[i]; e[16 * i] = n.m00; e[16 * i + 1] = n.m01; e[16 * i + 2] = n.m02; e[16 * i + 3] = n.m03; e[16 * i + 4] = n.m04; e[16 * i + 5] = n.m05; e[16 * i + 6] = n.m06; e[16 * i + 7] = n.m07; e[16 * i + 8] = n.m08; e[16 * i + 9] = n.m09; e[16 * i + 10] = n.m10; e[16 * i + 11] = n.m11; e[16 * i + 12] = n.m12; e[16 * i + 13] = n.m13; e[16 * i + 14] = n.m14; e[16 * i + 15] = n.m15; } return e; }, size: 16 }, r), M = (function() { function t(e, i) { var n; _(this, t); this._device = e; this._programLib = new c.default(e); this._opts = i; this._type2defaultValue = ((n = {})[o.default.PARAM_INT] = 0, n[o.default.PARAM_INT2] = a.vec2.create(0, 0), n[o.default.PARAM_INT3] = a.vec3.create(0, 0, 0), n[o.default.PARAM_INT4] = a.vec4.create(0, 0, 0, 0), n[o.default.PARAM_FLOAT] = 0, n[o.default.PARAM_FLOAT2] = a.vec2.create(0, 0), n[o.default.PARAM_FLOAT3] = a.vec3.create(0, 0, 0), n[o.default.PARAM_FLOAT4] = a.vec4.create(0, 0, 0, 0), n[o.default.PARAM_COLOR3] = a.color3.create(0, 0, 0), n[o.default.PARAM_COLOR4] = a.color4.create(0, 0, 0, 1), n[o.default.PARAM_MAT2] = a.mat2.create(), n[o.default.PARAM_MAT3] = a.mat3.create(), n[o.default.PARAM_MAT4] = a.mat4.create(), n[o.default.PARAM_TEXTURE_2D] = i.defaultTexture, n[o.default.PARAM_TEXTURE_CUBE] = i.defaultTextureCube, n); this._stage2fn = {}; this._usedTextureUnits = 0; this._viewPools = new s.RecyclePool(function() { return new l.default(); }, 8); this._drawItemsPools = new s.RecyclePool(function() { return { model: null, node: null, ia: null, effect: null, defines: null, uniforms: null }; }, 100); this._stageItemsPools = new s.RecyclePool(function() { return new s.RecyclePool(function() { return { model: null, node: null, ia: null, effect: null, defines: null, technique: null, sortKey: -1, uniforms: null }; }, 100); }, 16); } t.prototype._resetTextuerUnit = function() { this._usedTextureUnits = 0; }; t.prototype._allocTextureUnit = function() { var t = this._device, e = this._usedTextureUnits; e >= t._caps.maxTextureUnits && console.warn("Trying to use " + e + " texture units while this GPU supports only " + t._caps.maxTextureUnits); this._usedTextureUnits += 1; return e; }; t.prototype._registerStage = function(t, e) { this._stage2fn[t] = e; }; t.prototype.clear = function() { this._programLib.clear(); this.reset(); }; t.prototype.reset = function() { this._viewPools.reset(); this._stageItemsPools.reset(); }; t.prototype._requestView = function() { return this._viewPools.add(); }; t.prototype._render = function(t, e) { var i = this._device; i.setFrameBuffer(t._framebuffer); i.setViewport(t._rect.x, t._rect.y, t._rect.w, t._rect.h); var n = {}; t._clearFlags & o.default.CLEAR_COLOR && (n.color = [ t._color.r, t._color.g, t._color.b, t._color.a ]); t._clearFlags & o.default.CLEAR_DEPTH && (n.depth = t._depth); t._clearFlags & o.default.CLEAR_STENCIL && (n.stencil = t._stencil); i.clear(n); this._drawItemsPools.reset(); for (var r = 0; r < e._models.length; ++r) { var s = e._models.data[r]; if (0 != (s._cullingMask & t._cullingMask)) { var a = this._drawItemsPools.add(); s.extractDrawItem(a); } } m.reset(); for (var c = 0; c < t._stages.length; ++c) { var l = t._stages[c], h = this._stageItemsPools.add(); h.reset(); for (var u = 0; u < this._drawItemsPools.length; ++u) { var _ = this._drawItemsPools.data[u], f = _.effect.getTechnique(l); if (f) { var d = h.add(); d.model = _.model; d.node = _.node; d.ia = _.ia; d.effect = _.effect; d.defines = _.defines; d.technique = f; d.sortKey = -1; d.uniforms = _.uniforms; } } var p = m.add(); p.stage = l; p.items = h; } for (var v = 0; v < m.length; ++v) { var y = m.data[v]; (0, this._stage2fn[y.stage])(t, y.items); } }; t.prototype._setProperty = function(t) { var e = this._device, i = t.value; void 0 === i && (i = t.val); void 0 === i && (i = this._type2defaultValue[t.type]); if (void 0 !== i) if (t.type === o.default.PARAM_TEXTURE_2D || t.type === o.default.PARAM_TEXTURE_CUBE) if (void 0 !== t.size) { if (t.size !== i.length) { console.error("The length of texture array (" + i.length + ") is not corrent(expect " + t.size + ")."); return; } for (var n = w.add(), r = 0; r < i.length; ++r) n[r] = this._allocTextureUnit(); e.setTextureArray(t.name, i, n); } else e.setTexture(t.name, i, this._allocTextureUnit()); else { var s = void 0; if (i instanceof Float32Array || i instanceof Int32Array) { e.setUniformDirectly(t.name, i); return; } if (void 0 !== t.size) { var a = E[t.type]; if (void 0 === a.func) { console.error("Uniform array of color3/int3/float3/mat3 can not be supportted!"); return; } if (t.size * a.size > 64) { console.error("Uniform array is too long!"); return; } s = a.func(i); } else { s = (0, T[t.type])(i); } e.setUniform(t.name, s); } else console.warn("Failed to set technique property " + t.name + ", value not found."); }; t.prototype._draw = function(t) { var e = this._device, i = this._programLib, n = t.node, r = t.ia, s = t.uniforms, o = t.technique, c = t.defines, l = t.effect; p.reset(); v.reset(); y.reset(); g.reset(); x.reset(); C.reset(); b.reset(); A.reset(); S.reset(); w.reset(); n.getWorldMatrix(d); e.setUniform("cc_matWorld", a.mat4.array(x.add(), d)); var u = a.mat3.invert(f, a.mat3.fromMat4(f, d)); if (u) { a.mat3.transpose(f, u); e.setUniform("cc_matWorldIT", a.mat3.array(g.add(), f)); } for (var _ = 0; _ < s.length; _++) { var m = s[_]; for (var T in m) this._setProperty(m[T]); } for (var E = 0; E < o._passes.length; ++E) { var M = o._passes[E], B = r.count; r._vertexBuffer && e.setVertexBuffer(0, r._vertexBuffer); r._indexBuffer && e.setIndexBuffer(r._indexBuffer); e.setPrimitiveType(r._primitiveType); var D = i.getProgram(M._programName, c, l._name); e.setProgram(D); e.setCullMode(M._cullMode); if (M._blend) { e.enableBlend(); e.setBlendFuncSep(M._blendSrc, M._blendDst, M._blendSrcAlpha, M._blendDstAlpha); e.setBlendEqSep(M._blendEq, M._blendAlphaEq); e.setBlendColor32(M._blendColor); } if (M._depthTest) { e.enableDepthTest(); e.setDepthFunc(M._depthFunc); } M._depthWrite && e.enableDepthWrite(); e.setStencilTest(M._stencilTest); if (M._stencilTest === h.default.STENCIL_ENABLE) { e.setStencilFuncFront(M._stencilFuncFront, M._stencilRefFront, M._stencilMaskFront); e.setStencilOpFront(M._stencilFailOpFront, M._stencilZFailOpFront, M._stencilZPassOpFront, M._stencilWriteMaskFront); e.setStencilFuncBack(M._stencilFuncBack, M._stencilRefBack, M._stencilMaskBack); e.setStencilOpBack(M._stencilFailOpBack, M._stencilZFailOpBack, M._stencilZPassOpBack, M._stencilWriteMaskBack); } e.draw(r._start, B); this._resetTextuerUnit(); } }; return t; })(); i.default = M; e.exports = i.default; }), { "../../core/vmath": 317, "../enums": 344, "../gfx": 349, "../memop": 361, "./program-lib": 341, "./view": 343 } ], 338: [ (function(t, e, i) { "use strict"; i.__esModule = !0; var n = a(t("../config")), r = a(t("../core/pass")), s = a(t("../core/technique")), o = t("../types"); function a(t) { return t && t.__esModule ? t : { default: t }; } function c(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var l = function(t) { return o.enums2ctor[t] || o.enums2ctor.default; }, h = (function() { function t(e, i) { var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, r = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {}, s = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : []; c(this, t); this._name = e; this._techniques = i; this._properties = n; this._defines = r; this._dependencies = s; } t.prototype.clear = function() { this._techniques.length = 0; this._properties = {}; this._defines = {}; }; t.prototype.getDefaultTechnique = function() { return this._techniques[0]; }; t.prototype.getTechnique = function(t) { var e = n.default.stageID(t); if (-1 === e) return null; for (var i = 0; i < this._techniques.length; ++i) { var r = this._techniques[i]; if (r.stageIDs & e) return r; } return null; }; t.prototype.getProperty = function(t) { if (!this._properties[t]) { cc.warn(this._name + " : Failed to get property " + t + ", property not found."); return null; } return this._properties[t].value; }; t.prototype.setProperty = function(t, e) { this._properties[t] ? this._properties[t].value = e : cc.warn(this._name + " : Failed to set property " + t + ", property not found."); }; t.prototype.getDefine = function(t) { var e = this._defines[t]; void 0 === e && cc.warn(this._name + " : Failed to get define " + t + ", define not found."); return e; }; t.prototype.define = function(t, e) { void 0 !== this._defines[t] ? this._defines[t] = e : cc.warn(this._name + " : Failed to set define " + t + ", define not found."); }; t.prototype.extractProperties = function() { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; Object.assign(t, this._properties); return t; }; t.prototype.extractDefines = function() { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; Object.assign(t, this._defines); return t; }; t.prototype.extractDependencies = function() { for (var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, e = 0; e < this._dependencies.length; ++e) { var i = this._dependencies[e]; t[i.define] = i.extension; } return t; }; return t; })(), u = function(t) { return t.map((function(t) { return Object.assign({}, t); })); }, _ = function(t) { return o.ctor2default[l(t)]; }, f = function(t) { var e = [], i = cc.renderer._forward._programLib; t.techniques.forEach((function(t) { t.passes.forEach((function(t) { e.push(i.getTemplate(t.program)); })); })); return e; }, d = (function() { function t(t, e, i) { return { type: e, displayName: t, instanceType: l(e), value: _(e)(i) }; } return function(e, i) { var n = {}; i.forEach((function(e) { e.uniforms.forEach((function(e) { e.property && (n[e.name] = t(e.displayName, e.type, e.value)); })); })); var r = function(r) { var s = e.properties[r], o = void 0; if (void 0 !== s.tech && void 0 !== s.pass) { var a = e.techniques[s.tech].passes[s.pass].program; o = i.find((function(t) { return t.name === a; })).uniforms.find((function(t) { return t.name === r; })); } else for (var c = 0; c < i.length && !(o = i[c].uniforms.find((function(t) { return t.name === r; }))); c++) ; if (!o) { cc.warn(e.name + " : illegal property: " + r); return "continue"; } n[r] = t(s.displayName || o.displayName, s.type || o.type, s.value || o.value); }; for (var s in e.properties) r(s); return n; }; })(); h.parseEffect = function(t) { for (var e = t.techniques.length, i = new Array(e), n = 0; n < e; ++n) { for (var o = t.techniques[n], a = o.passes.length, c = new Array(a), l = 0; l < a; ++l) { var m = o.passes[l]; c[l] = new r.default(m.program); c[l].setDepth(m.depthTest, m.depthWrite, m.depthFunc); c[l].setCullMode(m.cullMode); c[l].setBlend(m.blend, m.blendEq, m.blendSrc, m.blendDst, m.blendAlphaEq, m.blendSrcAlpha, m.blendDstAlpha, m.blendColor); c[l].setStencilFront(m.stencilTest, m.stencilFuncFront, m.stencilRefFront, m.stencilMaskFront, m.stencilFailOpFront, m.stencilZFailOpFront, m.stencilZPassOpFront, m.stencilWriteMaskFront); c[l].setStencilBack(m.stencilTest, m.stencilFuncBack, m.stencilRefBack, m.stencilMaskBack, m.stencilFailOpBack, m.stencilZFailOpBack, m.stencilZPassOpBack, m.stencilWriteMaskBack); } i[n] = new s.default(o.stages, c, o.layer); } var p = f(t), v = d(t, p), y = {}, g = {}; p.forEach((function(t) { t.uniforms.forEach((function(t) { var e = t.name, i = y[e] = Object.assign({}, t); i.value = _(t.type)(t.value); if (v[e]) { i.type = v[e].type; i.value = v[e].value; } })); t.defines.forEach((function(t) { g[t.name] = _(t.type)(); })); })); var x = p.reduce((function(t, e) { return t.concat(e.extensions); }), []); x = u(x); return new h(t.name, i, y, g, x); }; 0; i.default = h; cc.Effect = h; e.exports = i.default; }), { "../config": 336, "../core/pass": 340, "../core/technique": 342, "../types": 375 } ], 339: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.default = void 0; var n = (function() { function t(t, e) { for (var i = 0; i < e.length; i++) { var n = e[i]; n.enumerable = n.enumerable || !1; n.configurable = !0; "value" in n && (n.writable = !0); Object.defineProperty(t, n.key, n); } } return function(e, i, n) { i && t(e.prototype, i); n && t(e, n); return e; }; })(), r = (function(t) { return t && t.__esModule ? t : { default: t }; })(t("../gfx")); function s(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var o = (function() { function t(e, i) { var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : r.default.PT_TRIANGLES; s(this, t); this._vertexBuffer = e; this._indexBuffer = i; this._primitiveType = n; this._start = 0; this._count = -1; } n(t, [ { key: "count", get: function() { return -1 !== this._count ? this._count : this._indexBuffer ? this._indexBuffer.count : this._vertexBuffer.count; } } ]); return t; })(); i.default = o; e.exports = i.default; }), { "../gfx": 349 } ], 340: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.default = void 0; var n = (function(t) { return t && t.__esModule ? t : { default: t }; })(t("../gfx")); function r(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var s = (function() { function t(e) { r(this, t); this._programName = e; this._cullMode = n.default.CULL_BACK; this._blend = !1; this._blendEq = n.default.BLEND_FUNC_ADD; this._blendAlphaEq = n.default.BLEND_FUNC_ADD; this._blendSrc = n.default.BLEND_SRC_ALPHA; this._blendDst = n.default.BLEND_ONE_MINUS_SRC_ALPHA; this._blendSrcAlpha = n.default.BLEND_SRC_ALPHA; this._blendDstAlpha = n.default.BLEND_ONE_MINUS_SRC_ALPHA; this._blendColor = 4294967295; this._depthTest = !1; this._depthWrite = !1; this._depthFunc = n.default.DS_FUNC_LESS, this._stencilTest = n.default.STENCIL_INHERIT; this._stencilFuncFront = n.default.DS_FUNC_ALWAYS; this._stencilRefFront = 0; this._stencilMaskFront = 255; this._stencilFailOpFront = n.default.STENCIL_OP_KEEP; this._stencilZFailOpFront = n.default.STENCIL_OP_KEEP; this._stencilZPassOpFront = n.default.STENCIL_OP_KEEP; this._stencilWriteMaskFront = 255; this._stencilFuncBack = n.default.DS_FUNC_ALWAYS; this._stencilRefBack = 0; this._stencilMaskBack = 255; this._stencilFailOpBack = n.default.STENCIL_OP_KEEP; this._stencilZFailOpBack = n.default.STENCIL_OP_KEEP; this._stencilZPassOpBack = n.default.STENCIL_OP_KEEP; this._stencilWriteMaskBack = 255; } t.prototype.setCullMode = function() { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : n.default.CULL_BACK; this._cullMode = t; }; t.prototype.setBlend = function() { var t = arguments.length > 0 && void 0 !== arguments[0] && arguments[0], e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : n.default.BLEND_FUNC_ADD, i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : n.default.BLEND_SRC_ALPHA, r = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : n.default.BLEND_ONE_MINUS_SRC_ALPHA, s = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : n.default.BLEND_FUNC_ADD, o = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : n.default.BLEND_SRC_ALPHA, a = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : n.default.BLEND_ONE_MINUS_SRC_ALPHA, c = arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : 4294967295; this._blend = t; this._blendEq = e; this._blendSrc = i; this._blendDst = r; this._blendAlphaEq = s; this._blendSrcAlpha = o; this._blendDstAlpha = a; this._blendColor = c; }; t.prototype.setDepth = function() { var t = arguments.length > 0 && void 0 !== arguments[0] && arguments[0], e = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : n.default.DS_FUNC_LESS; this._depthTest = t; this._depthWrite = e; this._depthFunc = i; }; t.prototype.setStencilFront = function() { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : n.default.STENCIL_INHERIT, e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : n.default.DS_FUNC_ALWAYS, i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, r = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 255, s = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : n.default.STENCIL_OP_KEEP, o = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : n.default.STENCIL_OP_KEEP, a = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : n.default.STENCIL_OP_KEEP, c = arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : 255; this._stencilTest = t; this._stencilFuncFront = e; this._stencilRefFront = i; this._stencilMaskFront = r; this._stencilFailOpFront = s; this._stencilZFailOpFront = o; this._stencilZPassOpFront = a; this._stencilWriteMaskFront = c; }; t.prototype.setStencilEnabled = function() { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : n.default.STENCIL_INHERIT; this._stencilTest = t; }; t.prototype.setStencilBack = function() { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : n.default.STENCIL_INHERIT, e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : n.default.DS_FUNC_ALWAYS, i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, r = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 255, s = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : n.default.STENCIL_OP_KEEP, o = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : n.default.STENCIL_OP_KEEP, a = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : n.default.STENCIL_OP_KEEP, c = arguments.length > 7 && void 0 !== arguments[7] ? arguments[7] : 255; this._stencilTest = t; this._stencilFuncBack = e; this._stencilRefBack = i; this._stencilMaskBack = r; this._stencilFailOpBack = s; this._stencilZFailOpBack = o; this._stencilZPassOpBack = a; this._stencilWriteMaskBack = c; }; return t; })(); i.default = s; e.exports = i.default; }), { "../gfx": 349 } ], 341: [ (function(i, n, r) { "use strict"; r.__esModule = !0; r.default = void 0; var s = (function(t) { return t && t.__esModule ? t : { default: t }; })(i("../gfx")); function o(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var a = 0; function c(i) { for (var n = [], r = {}, s = i.length - 1; s >= 0; s--) { var o = i[s]; for (var a in o) { var c = o[a]; if (void 0 !== c && void 0 === r[a]) { "number" !== ("object" === (e = typeof c) ? t(c) : e) && (c = c ? 1 : 0); r[a] = c; n.push("#define " + a + " " + c); } } } return n.join("\n") + "\n"; } function l(t, e) { for (var i = {}, n = t, r = e.length - 1; r >= 0; r--) { var s = e[r]; for (var o in s) { var a = s[o]; void 0 !== a && (void 0 === i[o] && Number.isInteger(a) && (i[o] = a)); } } for (var c in i) { var l = new RegExp(c, "g"); n = n.replace(l, i[c]); } return n; } function h(t) { return t.replace(/#pragma for (\w+) in range\(\s*(\d+)\s*,\s*(\d+)\s*\)([\s\S]+?)#pragma endFor/g, (function(t, e, i, n, r) { var s = "", o = parseInt(i), a = parseInt(n); (o.isNaN || a.isNaN) && console.error("Unroll For Loops Error: begin and end of range must be an int num."); for (var c = o; c < a; ++c) s += r.replace(new RegExp("{" + e + "}", "g"), c); return s; })); } var u = (function() { function t(e) { o(this, t); this._device = e; this._templates = {}; this._cache = {}; } t.prototype.clear = function() { this._templates = {}; this._cache = {}; }; t.prototype.define = function(t) { var e = t.name, i = t.vert, n = t.frag, r = t.defines; t.extensions; if (!this._templates[e]) { for (var s = ++a, o = 0, c = 0; c < r.length; ++c) { var l = r[c], h = 1; if ("number" === l.type) { var u = l.range || []; l.min = u[0] || 0; l.max = u[1] || 4; h = Math.ceil(Math.log2(l.max - l.min)); l._map = function(t) { return t - this.min << this._offset; }.bind(l); } else l._map = function(t) { return t ? 1 << this._offset : 0; }.bind(l); o += h; l._offset = o; } this._templates[e] = { id: s, name: e, vert: i, frag: n, defines: r, attributes: t.attributes, uniforms: t.uniforms, extensions: t.extensions }; } }; t.prototype.getTemplate = function(t) { return this._templates[t]; }; t.prototype.hasProgram = function(t) { return void 0 !== this._templates[t]; }; t.prototype.getKey = function(t, e) { for (var i = this._templates[t], n = 0, r = 0; r < i.defines.length; ++r) { var s = i.defines[r], o = this._getValueFromDefineList(s.name, e); void 0 !== o && (n |= s._map(o)); } return i.id + ":" + n; }; t.prototype.getProgram = function(t, e, i) { var n = this.getKey(t, e), r = this._cache[n]; if (r) return r; var o = this._templates[t], a = c(e), u = l(o.vert, e); u = a + h(u); var _ = l(o.frag, e); _ = a + h(_); var f = (r = new s.default.Program(this._device, { vert: u, frag: _ })).link(); if (f) { var d = u.split("\n"), m = _.split("\n"), p = Object.keys(e).length; f.forEach((function(t) { var e = t.line - 1, n = t.line - p, r = ("vs" === t.type ? d : m)[e], s = t.info || "Failed to compile " + t.type + " " + t.fileID + " (ln " + n + "): \n " + t.message + ": \n " + r; cc.error(i + " : " + s); })); } this._cache[n] = r; return r; }; t.prototype._getValueFromDefineList = function(t, e) { for (var i = void 0, n = e.length - 1; n >= 0; n--) if (void 0 !== (i = e[n][t])) return i; }; return t; })(); r.default = u; n.exports = r.default; }), { "../gfx": 349 } ], 342: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.default = void 0; var n = (function() { function t(t, e) { for (var i = 0; i < e.length; i++) { var n = e[i]; n.enumerable = n.enumerable || !1; n.configurable = !0; "value" in n && (n.writable = !0); Object.defineProperty(t, n.key, n); } } return function(e, i, n) { i && t(e.prototype, i); n && t(e, n); return e; }; })(), r = (function(t) { return t && t.__esModule ? t : { default: t }; })(t("../config")); function s(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var o = 0, a = (function() { function t(e, i) { var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0; s(this, t); this._id = o++; this._stageIDs = r.default.stageIDs(e); this._passes = i; this._layer = n; } t.prototype.setStages = function(t) { this._stageIDs = r.default.stageIDs(t); }; n(t, [ { key: "passes", get: function() { return this._passes; } }, { key: "stageIDs", get: function() { return this._stageIDs; } } ]); return t; })(); i.default = a; e.exports = i.default; }), { "../config": 336 } ], 343: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.default = void 0; var n = t("../../core/vmath"), r = (function(t) { return t && t.__esModule ? t : { default: t }; })(t("../enums")); function s(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var o = n.mat4.create(), a = 0, c = (function() { function t() { s(this, t); this._id = a++; this._priority = 0; this._rect = { x: 0, y: 0, w: 1, h: 1 }; this._color = n.color4.create(.3, .3, .3, 1); this._depth = 1; this._stencil = 0; this._clearFlags = r.default.CLEAR_COLOR | r.default.CLEAR_DEPTH; this._clearModel = null; this._matView = n.mat4.create(); this._matProj = n.mat4.create(); this._matViewProj = n.mat4.create(); this._matInvViewProj = n.mat4.create(); this._stages = []; this._cullingByID = !1; this._framebuffer = null; this._shadowLight = null; this._cullingMask = 4294967295; } t.prototype.getForward = function(t) { return n.vec3.set(t, -this._matView.m02, -this._matView.m06, -this._matView.m10); }; t.prototype.getPosition = function(t) { n.mat4.invert(o, this._matView); return n.mat4.getTranslation(t, o); }; return t; })(); i.default = c; e.exports = i.default; }), { "../../core/vmath": 317, "../enums": 344 } ], 344: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.default = { PROJ_PERSPECTIVE: 0, PROJ_ORTHO: 1, LIGHT_DIRECTIONAL: 0, LIGHT_POINT: 1, LIGHT_SPOT: 2, SHADOW_NONE: 0, SHADOW_HARD: 1, SHADOW_SOFT: 2, PARAM_INT: 0, PARAM_INT2: 1, PARAM_INT3: 2, PARAM_INT4: 3, PARAM_FLOAT: 4, PARAM_FLOAT2: 5, PARAM_FLOAT3: 6, PARAM_FLOAT4: 7, PARAM_COLOR3: 8, PARAM_COLOR4: 9, PARAM_MAT2: 10, PARAM_MAT3: 11, PARAM_MAT4: 12, PARAM_TEXTURE_2D: 13, PARAM_TEXTURE_CUBE: 14, CLEAR_COLOR: 1, CLEAR_DEPTH: 2, CLEAR_STENCIL: 4, CLEAR_SKYBOX: 8, BUFFER_VIEW_INT8: 0, BUFFER_VIEW_UINT8: 1, BUFFER_VIEW_INT16: 2, BUFFER_VIEW_UINT16: 3, BUFFER_VIEW_INT32: 4, BUFFER_VIEW_UINT32: 5, BUFFER_VIEW_FLOAT32: 6 }; e.exports = i.default; }), {} ], 345: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.default = void 0; var n, r, s = (function() { function t(t, e) { for (var i = 0; i < e.length; i++) { var n = e[i]; n.enumerable = n.enumerable || !1; n.configurable = !0; "value" in n && (n.writable = !0); Object.defineProperty(t, n.key, n); } } return function(e, i, n) { i && t(e.prototype, i); n && t(e, n); return e; }; })(), o = h(t("./state")), a = t("./enums"), c = h(t("./texture-2d")), l = h(t("./texture-cube")); function h(t) { return t && t.__esModule ? t : { default: t }; } function u(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var _ = ((n = {})[5124] = function(t, e, i) { t.uniform1i(e, i); }, n[5126] = function(t, e, i) { t.uniform1f(e, i); }, n[35664] = function(t, e, i) { t.uniform2fv(e, i); }, n[35665] = function(t, e, i) { t.uniform3fv(e, i); }, n[35666] = function(t, e, i) { t.uniform4fv(e, i); }, n[35667] = function(t, e, i) { t.uniform2iv(e, i); }, n[35668] = function(t, e, i) { t.uniform3iv(e, i); }, n[35669] = function(t, e, i) { t.uniform4iv(e, i); }, n[35670] = function(t, e, i) { t.uniform1i(e, i); }, n[35671] = function(t, e, i) { t.uniform2iv(e, i); }, n[35672] = function(t, e, i) { t.uniform3iv(e, i); }, n[35673] = function(t, e, i) { t.uniform4iv(e, i); }, n[35674] = function(t, e, i) { t.uniformMatrix2fv(e, !1, i); }, n[35675] = function(t, e, i) { t.uniformMatrix3fv(e, !1, i); }, n[35676] = function(t, e, i) { t.uniformMatrix4fv(e, !1, i); }, n[35678] = function(t, e, i) { t.uniform1i(e, i); }, n[35680] = function(t, e, i) { t.uniform1i(e, i); }, n), f = ((r = {})[5124] = function(t, e, i) { t.uniform1iv(e, i); }, r[5126] = function(t, e, i) { t.uniform1fv(e, i); }, r[35664] = function(t, e, i) { t.uniform2fv(e, i); }, r[35665] = function(t, e, i) { t.uniform3fv(e, i); }, r[35666] = function(t, e, i) { t.uniform4fv(e, i); }, r[35667] = function(t, e, i) { t.uniform2iv(e, i); }, r[35668] = function(t, e, i) { t.uniform3iv(e, i); }, r[35669] = function(t, e, i) { t.uniform4iv(e, i); }, r[35670] = function(t, e, i) { t.uniform1iv(e, i); }, r[35671] = function(t, e, i) { t.uniform2iv(e, i); }, r[35672] = function(t, e, i) { t.uniform3iv(e, i); }, r[35673] = function(t, e, i) { t.uniform4iv(e, i); }, r[35674] = function(t, e, i) { t.uniformMatrix2fv(e, !1, i); }, r[35675] = function(t, e, i) { t.uniformMatrix3fv(e, !1, i); }, r[35676] = function(t, e, i) { t.uniformMatrix4fv(e, !1, i); }, r[35678] = function(t, e, i) { t.uniform1iv(e, i); }, r[35680] = function(t, e, i) { t.uniform1iv(e, i); }, r); function d(t, e, i) { if (e.blend === i.blend) { if (!1 !== i.blend) { e.blendColor !== i.blendColor && t.blendColor((i.blendColor >> 24) / 255, (i.blendColor >> 16 & 255) / 255, (i.blendColor >> 8 & 255) / 255, (255 & i.blendColor) / 255); if (e.blendSep === i.blendSep) if (i.blendSep) { e.blendSrc === i.blendSrc && e.blendDst === i.blendDst && e.blendSrcAlpha === i.blendSrcAlpha && e.blendDstAlpha === i.blendDstAlpha || t.blendFuncSeparate(i.blendSrc, i.blendDst, i.blendSrcAlpha, i.blendDstAlpha); e.blendEq === i.blendEq && e.blendAlphaEq === i.blendAlphaEq || t.blendEquationSeparate(i.blendEq, i.blendAlphaEq); } else { e.blendSrc === i.blendSrc && e.blendDst === i.blendDst || t.blendFunc(i.blendSrc, i.blendDst); e.blendEq !== i.blendEq && t.blendEquation(i.blendEq); } else if (i.blendSep) { t.blendFuncSeparate(i.blendSrc, i.blendDst, i.blendSrcAlpha, i.blendDstAlpha); t.blendEquationSeparate(i.blendEq, i.blendAlphaEq); } else { t.blendFunc(i.blendSrc, i.blendDst); t.blendEquation(i.blendEq); } } } else { if (!i.blend) { t.disable(t.BLEND); return; } t.enable(t.BLEND); i.blendSrc !== a.enums.BLEND_CONSTANT_COLOR && i.blendSrc !== a.enums.BLEND_ONE_MINUS_CONSTANT_COLOR && i.blendDst !== a.enums.BLEND_CONSTANT_COLOR && i.blendDst !== a.enums.BLEND_ONE_MINUS_CONSTANT_COLOR || t.blendColor((i.blendColor >> 24) / 255, (i.blendColor >> 16 & 255) / 255, (i.blendColor >> 8 & 255) / 255, (255 & i.blendColor) / 255); if (i.blendSep) { t.blendFuncSeparate(i.blendSrc, i.blendDst, i.blendSrcAlpha, i.blendDstAlpha); t.blendEquationSeparate(i.blendEq, i.blendAlphaEq); } else { t.blendFunc(i.blendSrc, i.blendDst); t.blendEquation(i.blendEq); } } } function m(t, e, i) { if (e.depthTest === i.depthTest) { e.depthWrite !== i.depthWrite && t.depthMask(i.depthWrite); if (!1 !== i.depthTest) e.depthFunc !== i.depthFunc && t.depthFunc(i.depthFunc); else if (i.depthWrite) { i.depthTest = !0; i.depthFunc = a.enums.DS_FUNC_ALWAYS; t.enable(t.DEPTH_TEST); t.depthFunc(i.depthFunc); } } else { if (!i.depthTest) { t.disable(t.DEPTH_TEST); return; } t.enable(t.DEPTH_TEST); t.depthFunc(i.depthFunc); t.depthMask(i.depthWrite); } } function p(t, e, i) { if (i.stencilTest !== a.enums.STENCIL_INHERIT) if (i.stencilTest === e.stencilTest) { if (i.stencilTest !== a.enums.STENCIL_DISABLE) if (e.stencilSep === i.stencilSep) if (i.stencilSep) { e.stencilFuncFront === i.stencilFuncFront && e.stencilRefFront === i.stencilRefFront && e.stencilMaskFront === i.stencilMaskFront || t.stencilFuncSeparate(t.FRONT, i.stencilFuncFront, i.stencilRefFront, i.stencilMaskFront); e.stencilWriteMaskFront !== i.stencilWriteMaskFront && t.stencilMaskSeparate(t.FRONT, i.stencilWriteMaskFront); e.stencilFailOpFront === i.stencilFailOpFront && e.stencilZFailOpFront === i.stencilZFailOpFront && e.stencilZPassOpFront === i.stencilZPassOpFront || t.stencilOpSeparate(t.FRONT, i.stencilFailOpFront, i.stencilZFailOpFront, i.stencilZPassOpFront); e.stencilFuncBack === i.stencilFuncBack && e.stencilRefBack === i.stencilRefBack && e.stencilMaskBack === i.stencilMaskBack || t.stencilFuncSeparate(t.BACK, i.stencilFuncBack, i.stencilRefBack, i.stencilMaskBack); e.stencilWriteMaskBack !== i.stencilWriteMaskBack && t.stencilMaskSeparate(t.BACK, i.stencilWriteMaskBack); e.stencilFailOpBack === i.stencilFailOpBack && e.stencilZFailOpBack === i.stencilZFailOpBack && e.stencilZPassOpBack === i.stencilZPassOpBack || t.stencilOpSeparate(t.BACK, i.stencilFailOpBack, i.stencilZFailOpBack, i.stencilZPassOpBack); } else { e.stencilFuncFront === i.stencilFuncFront && e.stencilRefFront === i.stencilRefFront && e.stencilMaskFront === i.stencilMaskFront || t.stencilFunc(i.stencilFuncFront, i.stencilRefFront, i.stencilMaskFront); e.stencilWriteMaskFront !== i.stencilWriteMaskFront && t.stencilMask(i.stencilWriteMaskFront); e.stencilFailOpFront === i.stencilFailOpFront && e.stencilZFailOpFront === i.stencilZFailOpFront && e.stencilZPassOpFront === i.stencilZPassOpFront || t.stencilOp(i.stencilFailOpFront, i.stencilZFailOpFront, i.stencilZPassOpFront); } else if (i.stencilSep) { t.stencilFuncSeparate(t.FRONT, i.stencilFuncFront, i.stencilRefFront, i.stencilMaskFront); t.stencilMaskSeparate(t.FRONT, i.stencilWriteMaskFront); t.stencilOpSeparate(t.FRONT, i.stencilFailOpFront, i.stencilZFailOpFront, i.stencilZPassOpFront); t.stencilFuncSeparate(t.BACK, i.stencilFuncBack, i.stencilRefBack, i.stencilMaskBack); t.stencilMaskSeparate(t.BACK, i.stencilWriteMaskBack); t.stencilOpSeparate(t.BACK, i.stencilFailOpBack, i.stencilZFailOpBack, i.stencilZPassOpBack); } else { t.stencilFunc(i.stencilFuncFront, i.stencilRefFront, i.stencilMaskFront); t.stencilMask(i.stencilWriteMaskFront); t.stencilOp(i.stencilFailOpFront, i.stencilZFailOpFront, i.stencilZPassOpFront); } } else { if (i.stencilTest === a.enums.STENCIL_DISABLE) { t.disable(t.STENCIL_TEST); return; } t.enable(t.STENCIL_TEST); if (i.stencilSep) { t.stencilFuncSeparate(t.FRONT, i.stencilFuncFront, i.stencilRefFront, i.stencilMaskFront); t.stencilMaskSeparate(t.FRONT, i.stencilWriteMaskFront); t.stencilOpSeparate(t.FRONT, i.stencilFailOpFront, i.stencilZFailOpFront, i.stencilZPassOpFront); t.stencilFuncSeparate(t.BACK, i.stencilFuncBack, i.stencilRefBack, i.stencilMaskBack); t.stencilMaskSeparate(t.BACK, i.stencilWriteMaskBack); t.stencilOpSeparate(t.BACK, i.stencilFailOpBack, i.stencilZFailOpBack, i.stencilZPassOpBack); } else { t.stencilFunc(i.stencilFuncFront, i.stencilRefFront, i.stencilMaskFront); t.stencilMask(i.stencilWriteMaskFront); t.stencilOp(i.stencilFailOpFront, i.stencilZFailOpFront, i.stencilZPassOpFront); } } } function v(t, e, i) { if (e.cullMode !== i.cullMode) if (i.cullMode !== a.enums.CULL_NONE) { t.enable(t.CULL_FACE); t.cullFace(i.cullMode); } else t.disable(t.CULL_FACE); } function y(t, e, i, n) { var r = !1; if (-1 !== n.maxStream) { if (i.maxStream !== n.maxStream) r = !0; else if (i.program !== n.program) r = !0; else for (var s = 0; s < n.maxStream + 1; ++s) if (i.vertexBuffers[s] !== n.vertexBuffers[s] || i.vertexBufferOffsets[s] !== n.vertexBufferOffsets[s]) { r = !0; break; } if (r) { for (var o = 0; o < t._caps.maxVertexAttribs; ++o) t._newAttributes[o] = 0; for (var a = 0; a < n.maxStream + 1; ++a) { var c = n.vertexBuffers[a], l = n.vertexBufferOffsets[a]; if (c && -1 !== c._glID) { e.bindBuffer(e.ARRAY_BUFFER, c._glID); for (var h = 0; h < n.program._attributes.length; ++h) { var u = n.program._attributes[h], _ = c._format.element(u.name); if (_) { if (0 === t._enabledAttributes[u.location]) { e.enableVertexAttribArray(u.location); t._enabledAttributes[u.location] = 1; } t._newAttributes[u.location] = 1; e.vertexAttribPointer(u.location, _.num, _.type, _.normalize, _.stride, _.offset + l * _.stride); } else console.warn("Can not find vertex attribute: " + u.name); } } } for (var f = 0; f < t._caps.maxVertexAttribs; ++f) if (t._enabledAttributes[f] !== t._newAttributes[f]) { e.disableVertexAttribArray(f); t._enabledAttributes[f] = 0; } } } } function g(t, e, i) { for (var n = 0; n < i.maxTextureSlot + 1; ++n) if (e.textureUnits[n] !== i.textureUnits[n]) { var r = i.textureUnits[n]; if (r && -1 !== r._glID) { t.activeTexture(t.TEXTURE0 + n); t.bindTexture(r._target, r._glID); } } } function x(t, e, i) { var n = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0; i instanceof c.default ? t.framebufferTexture2D(t.FRAMEBUFFER, e, t.TEXTURE_2D, i._glID, 0) : i instanceof l.default ? t.framebufferTexture2D(t.FRAMEBUFFER, e, t.TEXTURE_CUBE_MAP_POSITIVE_X + n, i._glID, 0) : t.framebufferRenderbuffer(t.FRAMEBUFFER, e, t.RENDERBUFFER, i._glID); } var C = (function() { s(t, [ { key: "caps", get: function() { return this._caps; } } ]); function t(e, i) { u(this, t); var n = void 0; void 0 === (i = i || {}).alpha && (i.alpha = !1); void 0 === i.stencil && (i.stencil = !0); void 0 === i.depth && (i.depth = !0); void 0 === i.antialias && (i.antialias = !1); void 0 === i.preserveDrawingBuffer && (i.preserveDrawingBuffer = !1); try { n = e.getContext("webgl", i) || e.getContext("experimental-webgl", i) || e.getContext("webkit-3d", i) || e.getContext("moz-webgl", i); } catch (t) { console.error(t); return; } n || console.error("This device does not support webgl"); this._gl = n; this._extensions = {}; this._caps = {}; this._stats = { texture: 0, vb: 0, ib: 0, drawcalls: 0 }; this._initExtensions([ "EXT_texture_filter_anisotropic", "EXT_shader_texture_lod", "OES_standard_derivatives", "OES_texture_float", "OES_texture_float_linear", "OES_texture_half_float", "OES_texture_half_float_linear", "OES_vertex_array_object", "WEBGL_compressed_texture_atc", "WEBGL_compressed_texture_etc", "WEBGL_compressed_texture_etc1", "WEBGL_compressed_texture_pvrtc", "WEBGL_compressed_texture_s3tc", "WEBGL_depth_texture", "WEBGL_draw_buffers" ]); this._initCaps(); this._initStates(); o.default.initDefault(this); this._current = new o.default(this); this._next = new o.default(this); this._uniforms = {}; this._vx = this._vy = this._vw = this._vh = 0; this._sx = this._sy = this._sw = this._sh = 0; this._framebuffer = null; this._enabledAttributes = new Array(this._caps.maxVertexAttribs); this._newAttributes = new Array(this._caps.maxVertexAttribs); for (var r = 0; r < this._caps.maxVertexAttribs; ++r) { this._enabledAttributes[r] = 0; this._newAttributes[r] = 0; } } t.prototype._initExtensions = function(t) { for (var e = this._gl, i = 0; i < t.length; ++i) for (var n = t[i], r = [ "", "WEBKIT_", "MOZ_" ], s = 0; s < r.length; s++) try { var o = e.getExtension(r[s] + n); if (o) { this._extensions[n] = o; break; } } catch (t) { console.error(t); } }; t.prototype._initCaps = function() { var t = this._gl, e = this.ext("WEBGL_draw_buffers"); this._caps.maxVertexStreams = 4; this._caps.maxVertexTextures = t.getParameter(t.MAX_VERTEX_TEXTURE_IMAGE_UNITS); this._caps.maxFragUniforms = t.getParameter(t.MAX_FRAGMENT_UNIFORM_VECTORS); this._caps.maxTextureUnits = t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS); this._caps.maxVertexAttribs = t.getParameter(t.MAX_VERTEX_ATTRIBS); this._caps.maxTextureSize = t.getParameter(t.MAX_TEXTURE_SIZE); this._caps.maxDrawBuffers = e ? t.getParameter(e.MAX_DRAW_BUFFERS_WEBGL) : 1; this._caps.maxColorAttachments = e ? t.getParameter(e.MAX_COLOR_ATTACHMENTS_WEBGL) : 1; }; t.prototype._initStates = function() { var t = this._gl; t.disable(t.BLEND); t.blendFunc(t.ONE, t.ZERO); t.blendEquation(t.FUNC_ADD); t.blendColor(1, 1, 1, 1); t.colorMask(!0, !0, !0, !0); t.enable(t.CULL_FACE); t.cullFace(t.BACK); t.disable(t.DEPTH_TEST); t.depthFunc(t.LESS); t.depthMask(!1); t.disable(t.POLYGON_OFFSET_FILL); t.depthRange(0, 1); t.disable(t.STENCIL_TEST); t.stencilFunc(t.ALWAYS, 0, 255); t.stencilMask(255); t.stencilOp(t.KEEP, t.KEEP, t.KEEP); t.clearDepth(1); t.clearColor(0, 0, 0, 0); t.clearStencil(0); t.disable(t.SCISSOR_TEST); }; t.prototype._restoreTexture = function(t) { var e = this._gl, i = this._current.textureUnits[t]; i && -1 !== i._glID ? e.bindTexture(i._target, i._glID) : e.bindTexture(e.TEXTURE_2D, null); }; t.prototype._restoreIndexBuffer = function() { var t = this._gl, e = this._current.indexBuffer; e && -1 !== e._glID ? t.bindBuffer(t.ELEMENT_ARRAY_BUFFER, e._glID) : t.bindBuffer(t.ELEMENT_ARRAY_BUFFER, null); }; t.prototype.ext = function(t) { return this._extensions[t]; }; t.prototype.allowFloatTexture = function() { return null != this.ext("OES_texture_float"); }; t.prototype.setFrameBuffer = function(t) { if (this._framebuffer !== t) { this._framebuffer = t; var e = this._gl; if (null !== t) { e.bindFramebuffer(e.FRAMEBUFFER, t._glID); for (var i = t._colors.length, n = 0; n < i; ++n) { var r = t._colors[n]; x(e, e.COLOR_ATTACHMENT0 + n, r); } for (var s = i; s < this._caps.maxColorAttachments; ++s) e.framebufferTexture2D(e.FRAMEBUFFER, e.COLOR_ATTACHMENT0 + s, e.TEXTURE_2D, null, 0); t._depth && x(e, e.DEPTH_ATTACHMENT, t._depth); t._stencil && x(e, e.STENCIL_ATTACHMENT, t._stencil); t._depthStencil && x(e, e.DEPTH_STENCIL_ATTACHMENT, t._depthStencil); } else e.bindFramebuffer(e.FRAMEBUFFER, null); } }; t.prototype.setViewport = function(t, e, i, n) { if (this._vx !== t || this._vy !== e || this._vw !== i || this._vh !== n) { this._gl.viewport(t, e, i, n); this._vx = t; this._vy = e; this._vw = i; this._vh = n; } }; t.prototype.setScissor = function(t, e, i, n) { if (this._sx !== t || this._sy !== e || this._sw !== i || this._sh !== n) { this._gl.scissor(t, e, i, n); this._sx = t; this._sy = e; this._sw = i; this._sh = n; } }; t.prototype.clear = function(t) { if (void 0 !== t.color || void 0 !== t.depth || void 0 !== t.stencil) { var e = this._gl, i = 0; if (void 0 !== t.color) { i |= e.COLOR_BUFFER_BIT; e.clearColor(t.color[0], t.color[1], t.color[2], t.color[3]); } if (void 0 !== t.depth) { i |= e.DEPTH_BUFFER_BIT; e.clearDepth(t.depth); e.enable(e.DEPTH_TEST); e.depthMask(!0); e.depthFunc(e.ALWAYS); } if (void 0 !== t.stencil) { i |= e.STENCIL_BUFFER_BIT; e.clearStencil(t.stencil); } e.clear(i); if (void 0 !== t.depth) if (!1 === this._current.depthTest) e.disable(e.DEPTH_TEST); else { !1 === this._current.depthWrite && e.depthMask(!1); this._current.depthFunc !== a.enums.DS_FUNC_ALWAYS && e.depthFunc(this._current.depthFunc); } } }; t.prototype.enableBlend = function() { this._next.blend = !0; }; t.prototype.enableDepthTest = function() { this._next.depthTest = !0; }; t.prototype.enableDepthWrite = function() { this._next.depthWrite = !0; }; t.prototype.setStencilTest = function(t) { this._next.stencilTest = t; }; t.prototype.setStencilFunc = function(t, e, i) { this._next.stencilSep = !1; this._next.stencilFuncFront = this._next.stencilFuncBack = t; this._next.stencilRefFront = this._next.stencilRefBack = e; this._next.stencilMaskFront = this._next.stencilMaskBack = i; }; t.prototype.setStencilFuncFront = function(t, e, i) { this._next.stencilSep = !0; this._next.stencilFuncFront = t; this._next.stencilRefFront = e; this._next.stencilMaskFront = i; }; t.prototype.setStencilFuncBack = function(t, e, i) { this._next.stencilSep = !0; this._next.stencilFuncBack = t; this._next.stencilRefBack = e; this._next.stencilMaskBack = i; }; t.prototype.setStencilOp = function(t, e, i, n) { this._next.stencilFailOpFront = this._next.stencilFailOpBack = t; this._next.stencilZFailOpFront = this._next.stencilZFailOpBack = e; this._next.stencilZPassOpFront = this._next.stencilZPassOpBack = i; this._next.stencilWriteMaskFront = this._next.stencilWriteMaskBack = n; }; t.prototype.setStencilOpFront = function(t, e, i, n) { this._next.stencilSep = !0; this._next.stencilFailOpFront = t; this._next.stencilZFailOpFront = e; this._next.stencilZPassOpFront = i; this._next.stencilWriteMaskFront = n; }; t.prototype.setStencilOpBack = function(t, e, i, n) { this._next.stencilSep = !0; this._next.stencilFailOpBack = t; this._next.stencilZFailOpBack = e; this._next.stencilZPassOpBack = i; this._next.stencilWriteMaskBack = n; }; t.prototype.setDepthFunc = function(t) { this._next.depthFunc = t; }; t.prototype.setBlendColor32 = function(t) { this._next.blendColor = t; }; t.prototype.setBlendColor = function(t, e, i, n) { this._next.blendColor = (255 * t << 24 | 255 * e << 16 | 255 * i << 8 | 255 * n) >>> 0; }; t.prototype.setBlendFunc = function(t, e) { this._next.blendSep = !1; this._next.blendSrc = t; this._next.blendDst = e; }; t.prototype.setBlendFuncSep = function(t, e, i, n) { this._next.blendSep = !0; this._next.blendSrc = t; this._next.blendDst = e; this._next.blendSrcAlpha = i; this._next.blendDstAlpha = n; }; t.prototype.setBlendEq = function(t) { this._next.blendSep = !1; this._next.blendEq = t; }; t.prototype.setBlendEqSep = function(t, e) { this._next.blendSep = !0; this._next.blendEq = t; this._next.blendAlphaEq = e; }; t.prototype.setCullMode = function(t) { this._next.cullMode = t; }; t.prototype.setVertexBuffer = function(t, e) { var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0; this._next.vertexBuffers[t] = e; this._next.vertexBufferOffsets[t] = i; this._next.maxStream < t && (this._next.maxStream = t); }; t.prototype.setIndexBuffer = function(t) { this._next.indexBuffer = t; }; t.prototype.setProgram = function(t) { this._next.program = t; }; t.prototype.setTexture = function(t, e, i) { if (i >= this._caps.maxTextureUnits) console.warn("Can not set texture " + t + " at stage " + i + ", max texture exceed: " + this._caps.maxTextureUnits); else { this._next.textureUnits[i] = e; this.setUniform(t, i); this._next.maxTextureSlot < i && (this._next.maxTextureSlot = i); } }; t.prototype.setTextureArray = function(t, e, i) { var n = e.length; if (n >= this._caps.maxTextureUnits) console.warn("Can not set " + n + " textures for " + t + ", max texture exceed: " + this._caps.maxTextureUnits); else { for (var r = 0; r < n; ++r) { var s = i[r]; this._next.textureUnits[s] = e[r]; } this.setUniform(t, i); } }; t.prototype.setUniform = function(t, e) { var i = this._uniforms[t], n = !1, r = !1, s = !1, o = !1; do { if (!i) break; s = Array.isArray(e) || e instanceof Float32Array; o = e instanceof Int32Array; r = s || o; if (i.isArray !== r) break; if (i.isArray && i.value.length !== e.length) break; n = !0; } while (0); if (n) { var a = i.value, c = !1; if (i.isArray) { for (var l = 0, h = a.length; l < h; l++) if (a[l] !== e[l]) { c = !0; a[l] = e[l]; } } else if (a !== e) { c = !0; i.value = e; } c && (i.dirty = !0); } else { var u = e; s ? u = new Float32Array(e) : o && (u = new Int32Array(e)); i = { dirty: !0, value: u, isArray: r }; } this._uniforms[t] = i; }; t.prototype.setUniformDirectly = function(t, e) { var i = this._uniforms[t]; i || (this._uniforms[t] = i = {}); i.dirty = !0; i.value = e; }; t.prototype.setPrimitiveType = function(t) { this._next.primitiveType = t; }; t.prototype.draw = function(t, e) { var i = this._gl, n = this._current, r = this._next; d(i, n, r); m(i, n, r); p(i, n, r); v(i, n, r); y(this, i, n, r); n.indexBuffer !== r.indexBuffer && i.bindBuffer(i.ELEMENT_ARRAY_BUFFER, r.indexBuffer && -1 !== r.indexBuffer._glID ? r.indexBuffer._glID : null); var s = !1; if (n.program !== r.program) { r.program._linked ? i.useProgram(r.program._glID) : console.warn("Failed to use program: has not linked yet."); s = !0; } g(i, n, r); for (var o = 0; o < r.program._uniforms.length; ++o) { var a = r.program._uniforms[o], c = this._uniforms[a.name]; if (c && (s || c.dirty)) { c.dirty = !1; var l = void 0 === a.size ? _[a.type] : f[a.type]; l ? l(i, a.location, c.value) : console.warn("Can not find commit function for uniform " + a.name); } } e && (r.indexBuffer ? i.drawElements(this._next.primitiveType, e, r.indexBuffer._format, t * r.indexBuffer._bytesPerIndex) : i.drawArrays(this._next.primitiveType, t, e)); this._stats.drawcalls += 1; n.set(r); r.reset(); }; return t; })(); i.default = C; e.exports = i.default; }), { "./enums": 346, "./state": 353, "./texture-2d": 354, "./texture-cube": 355 } ], 346: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.attrTypeBytes = function(t) { if (t === s.ATTR_TYPE_INT8) return 1; if (t === s.ATTR_TYPE_UINT8) return 1; if (t === s.ATTR_TYPE_INT16) return 2; if (t === s.ATTR_TYPE_UINT16) return 2; if (t === s.ATTR_TYPE_INT32) return 4; if (t === s.ATTR_TYPE_UINT32) return 4; if (t === s.ATTR_TYPE_FLOAT32) return 4; console.warn("Unknown ATTR_TYPE: " + t); return 0; }; i.glFilter = function(t, e) { var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : -1, r = n[e][i + 1]; if (void 0 === r) { console.warn("Unknown FILTER: " + e); return -1 === i ? t.LINEAR : t.LINEAR_MIPMAP_LINEAR; } return r; }; i.glTextureFmt = function(t) { var e = r[t]; if (void 0 === e) { console.warn("Unknown TEXTURE_FMT: " + t); return r[s.TEXTURE_FMT_RGBA8]; } return e; }; var n = [ [ 9728, 9984, 9986 ], [ 9729, 9985, 9987 ] ], r = [ { format: 6407, internalFormat: 33776, pixelType: null }, { format: 6408, internalFormat: 33777, pixelType: null }, { format: 6408, internalFormat: 33778, pixelType: null }, { format: 6408, internalFormat: 33779, pixelType: null }, { format: 6407, internalFormat: 36196, pixelType: null }, { format: 6407, internalFormat: 35841, pixelType: null }, { format: 6408, internalFormat: 35843, pixelType: null }, { format: 6407, internalFormat: 35840, pixelType: null }, { format: 6408, internalFormat: 35842, pixelType: null }, { format: 6406, internalFormat: 6406, pixelType: 5121 }, { format: 6409, internalFormat: 6409, pixelType: 5121 }, { format: 6410, internalFormat: 6410, pixelType: 5121 }, { format: 6407, internalFormat: 6407, pixelType: 33635 }, { format: 6408, internalFormat: 6408, pixelType: 32820 }, { format: 6408, internalFormat: 6408, pixelType: 32819 }, { format: 6407, internalFormat: 6407, pixelType: 5121 }, { format: 6408, internalFormat: 6408, pixelType: 5121 }, { format: 6407, internalFormat: 6407, pixelType: 36193 }, { format: 6408, internalFormat: 6408, pixelType: 36193 }, { format: 6407, internalFormat: 6407, pixelType: 5126 }, { format: 6408, internalFormat: 6408, pixelType: 5126 }, { format: null, internalFormat: null, pixelType: null }, { format: null, internalFormat: null, pixelType: null }, { format: null, internalFormat: null, pixelType: null }, { format: null, internalFormat: null, pixelType: null }, { format: 6402, internalFormat: 6402, pixelType: 5123 }, { format: 6402, internalFormat: 6402, pixelType: 5125 }, { format: 6402, internalFormat: 6402, pixelType: 5125 }, { format: 6407, internalFormat: 37492, pixelType: null }, { format: 6408, internalFormat: 37496, pixelType: null } ], s = i.enums = { USAGE_STATIC: 35044, USAGE_DYNAMIC: 35048, USAGE_STREAM: 35040, INDEX_FMT_UINT8: 5121, INDEX_FMT_UINT16: 5123, INDEX_FMT_UINT32: 5125, ATTR_POSITION: "a_position", ATTR_NORMAL: "a_normal", ATTR_TANGENT: "a_tangent", ATTR_BITANGENT: "a_bitangent", ATTR_WEIGHTS: "a_weights", ATTR_JOINTS: "a_joints", ATTR_COLOR: "a_color", ATTR_COLOR0: "a_color0", ATTR_COLOR1: "a_color1", ATTR_UV: "a_uv", ATTR_UV0: "a_uv0", ATTR_UV1: "a_uv1", ATTR_UV2: "a_uv2", ATTR_UV3: "a_uv3", ATTR_UV4: "a_uv4", ATTR_UV5: "a_uv5", ATTR_UV6: "a_uv6", ATTR_UV7: "a_uv7", ATTR_TYPE_INT8: 5120, ATTR_TYPE_UINT8: 5121, ATTR_TYPE_INT16: 5122, ATTR_TYPE_UINT16: 5123, ATTR_TYPE_INT32: 5124, ATTR_TYPE_UINT32: 5125, ATTR_TYPE_FLOAT32: 5126, FILTER_NEAREST: 0, FILTER_LINEAR: 1, WRAP_REPEAT: 10497, WRAP_CLAMP: 33071, WRAP_MIRROR: 33648, TEXTURE_FMT_RGB_DXT1: 0, TEXTURE_FMT_RGBA_DXT1: 1, TEXTURE_FMT_RGBA_DXT3: 2, TEXTURE_FMT_RGBA_DXT5: 3, TEXTURE_FMT_RGB_ETC1: 4, TEXTURE_FMT_RGB_PVRTC_2BPPV1: 5, TEXTURE_FMT_RGBA_PVRTC_2BPPV1: 6, TEXTURE_FMT_RGB_PVRTC_4BPPV1: 7, TEXTURE_FMT_RGBA_PVRTC_4BPPV1: 8, TEXTURE_FMT_A8: 9, TEXTURE_FMT_L8: 10, TEXTURE_FMT_L8_A8: 11, TEXTURE_FMT_R5_G6_B5: 12, TEXTURE_FMT_R5_G5_B5_A1: 13, TEXTURE_FMT_R4_G4_B4_A4: 14, TEXTURE_FMT_RGB8: 15, TEXTURE_FMT_RGBA8: 16, TEXTURE_FMT_RGB16F: 17, TEXTURE_FMT_RGBA16F: 18, TEXTURE_FMT_RGB32F: 19, TEXTURE_FMT_RGBA32F: 20, TEXTURE_FMT_R32F: 21, TEXTURE_FMT_111110F: 22, TEXTURE_FMT_SRGB: 23, TEXTURE_FMT_SRGBA: 24, TEXTURE_FMT_D16: 25, TEXTURE_FMT_D32: 26, TEXTURE_FMT_D24S8: 27, TEXTURE_FMT_RGB_ETC2: 28, TEXTURE_FMT_RGBA_ETC2: 29, DS_FUNC_NEVER: 512, DS_FUNC_LESS: 513, DS_FUNC_EQUAL: 514, DS_FUNC_LEQUAL: 515, DS_FUNC_GREATER: 516, DS_FUNC_NOTEQUAL: 517, DS_FUNC_GEQUAL: 518, DS_FUNC_ALWAYS: 519, RB_FMT_RGBA4: 32854, RB_FMT_RGB5_A1: 32855, RB_FMT_RGB565: 36194, RB_FMT_D16: 33189, RB_FMT_S8: 36168, RB_FMT_D24S8: 34041, BLEND_FUNC_ADD: 32774, BLEND_FUNC_SUBTRACT: 32778, BLEND_FUNC_REVERSE_SUBTRACT: 32779, BLEND_ZERO: 0, BLEND_ONE: 1, BLEND_SRC_COLOR: 768, BLEND_ONE_MINUS_SRC_COLOR: 769, BLEND_DST_COLOR: 774, BLEND_ONE_MINUS_DST_COLOR: 775, BLEND_SRC_ALPHA: 770, BLEND_ONE_MINUS_SRC_ALPHA: 771, BLEND_DST_ALPHA: 772, BLEND_ONE_MINUS_DST_ALPHA: 773, BLEND_CONSTANT_COLOR: 32769, BLEND_ONE_MINUS_CONSTANT_COLOR: 32770, BLEND_CONSTANT_ALPHA: 32771, BLEND_ONE_MINUS_CONSTANT_ALPHA: 32772, BLEND_SRC_ALPHA_SATURATE: 776, STENCIL_DISABLE: 0, STENCIL_ENABLE: 1, STENCIL_INHERIT: 2, STENCIL_OP_KEEP: 7680, STENCIL_OP_ZERO: 0, STENCIL_OP_REPLACE: 7681, STENCIL_OP_INCR: 7682, STENCIL_OP_INCR_WRAP: 34055, STENCIL_OP_DECR: 7683, STENCIL_OP_DECR_WRAP: 34056, STENCIL_OP_INVERT: 5386, CULL_NONE: 0, CULL_FRONT: 1028, CULL_BACK: 1029, CULL_FRONT_AND_BACK: 1032, PT_POINTS: 0, PT_LINES: 1, PT_LINE_LOOP: 2, PT_LINE_STRIP: 3, PT_TRIANGLES: 4, PT_TRIANGLE_STRIP: 5, PT_TRIANGLE_FAN: 6 }; }), {} ], 347: [ (function(t, e, i) { "use strict"; i.__esModule = !0; function n(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var r = (function() { function t(e, i, r, s) { n(this, t); this._device = e; this._width = i; this._height = r; this._colors = s.colors || []; this._depth = s.depth || null; this._stencil = s.stencil || null; this._depthStencil = s.depthStencil || null; this._glID = e._gl.createFramebuffer(); } t.prototype.destroy = function() { if (null !== this._glID) { this._device._gl.deleteFramebuffer(this._glID); this._glID = null; } else console.error("The frame-buffer already destroyed"); }; return t; })(); i.default = r; e.exports = i.default; }), {} ], 348: [ (function(t, e, i) { "use strict"; i.__esModule = !0; var n = (function() { function t(t, e) { for (var i = 0; i < e.length; i++) { var n = e[i]; n.enumerable = n.enumerable || !1; n.configurable = !0; "value" in n && (n.writable = !0); Object.defineProperty(t, n.key, n); } } return function(e, i, n) { i && t(e.prototype, i); n && t(e, n); return e; }; })(), r = t("./enums"); function s(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var o = (function() { function t(e, i, n, o, a) { s(this, t); this._device = e; this._format = i; this._usage = n; this._numIndices = a; this._bytesPerIndex = 0; i === r.enums.INDEX_FMT_UINT8 ? this._bytesPerIndex = 1 : i === r.enums.INDEX_FMT_UINT16 ? this._bytesPerIndex = 2 : i === r.enums.INDEX_FMT_UINT32 && (this._bytesPerIndex = 4); this._bytes = this._bytesPerIndex * a; this._glID = e._gl.createBuffer(); this.update(0, o); e._stats.ib += this._bytes; } t.prototype.destroy = function() { if (-1 !== this._glID) { this._device._gl.deleteBuffer(this._glID); this._device._stats.ib -= this.bytes; this._glID = -1; } else console.error("The buffer already destroyed"); }; t.prototype.update = function(t, e) { if (-1 !== this._glID) if (e && e.byteLength + t > this._bytes) console.error("Failed to update data, bytes exceed."); else { var i = this._device._gl, n = this._usage; i.bindBuffer(i.ELEMENT_ARRAY_BUFFER, this._glID); e ? t ? i.bufferSubData(i.ELEMENT_ARRAY_BUFFER, t, e) : i.bufferData(i.ELEMENT_ARRAY_BUFFER, e, n) : this._bytes ? i.bufferData(i.ELEMENT_ARRAY_BUFFER, this._bytes, n) : console.warn("bufferData should not submit 0 bytes data"); this._device._restoreIndexBuffer(); } else console.error("The buffer is destroyed"); }; n(t, [ { key: "count", get: function() { return this._numIndices; } } ]); return t; })(); i.default = o; e.exports = i.default; }), { "./enums": 346 } ], 349: [ (function(t, e, i) { "use strict"; i.__esModule = !0; var n = t("./enums"), r = d(t("./vertex-format")), s = d(t("./index-buffer")), o = d(t("./vertex-buffer")), a = d(t("./program")), c = d(t("./texture")), l = d(t("./texture-2d")), h = d(t("./texture-cube")), u = d(t("./render-buffer")), _ = d(t("./frame-buffer")), f = d(t("./device")); function d(t) { return t && t.__esModule ? t : { default: t }; } var m = { VertexFormat: r.default, IndexBuffer: s.default, VertexBuffer: o.default, Program: a.default, Texture: c.default, Texture2D: l.default, TextureCube: h.default, RenderBuffer: u.default, FrameBuffer: _.default, Device: f.default, attrTypeBytes: n.attrTypeBytes, glFilter: n.glFilter, glTextureFmt: n.glTextureFmt }; Object.assign(m, n.enums); i.default = m; cc.gfx = m; e.exports = i.default; }), { "./device": 345, "./enums": 346, "./frame-buffer": 347, "./index-buffer": 348, "./program": 351, "./render-buffer": 352, "./texture": 356, "./texture-2d": 354, "./texture-cube": 355, "./vertex-buffer": 357, "./vertex-format": 358 } ], 350: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.isPow2 = function(t) { return !(t & t - 1 || !t); }; }), {} ], 351: [ (function(t, e, i) { "use strict"; i.__esModule = !0; var n = (function() { function t(t, e) { for (var i = 0; i < e.length; i++) { var n = e[i]; n.enumerable = n.enumerable || !1; n.configurable = !0; "value" in n && (n.writable = !0); Object.defineProperty(t, n.key, n); } } return function(e, i, n) { i && t(e.prototype, i); n && t(e, n); return e; }; })(); function r(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var s = 0; function o(t, e, i) { i.split("\n").forEach((function(i) { if (!(i.length < 5)) { var n = /^ERROR:\s+(\d+):(\d+):\s*(.*)$/.exec(i); n ? t.push({ type: e, fileID: 0 | n[1], line: 0 | n[2], message: n[3].trim() }) : i.length > 0 && t.push({ type: e, fileID: -1, line: 0, message: i }); } })); } var a = (function() { function t(e, i) { r(this, t); this._device = e; this._attributes = []; this._uniforms = []; this._samplers = []; this._errors = []; this._linked = !1; this._vertSource = i.vert; this._fragSource = i.frag; this._glID = null; this._id = s++; } t.prototype.link = function() { if (!this._linked) { var t = this._device._gl, e = c(t, t.VERTEX_SHADER, this._vertSource), i = c(t, t.FRAGMENT_SHADER, this._fragSource), n = t.createProgram(); t.attachShader(n, e); t.attachShader(n, i); t.linkProgram(n); var r = !1, s = this._errors; if (!t.getShaderParameter(e, t.COMPILE_STATUS)) { o(s, "vs", t.getShaderInfoLog(e)); r = !0; } if (!t.getShaderParameter(i, t.COMPILE_STATUS)) { o(s, "fs", t.getShaderInfoLog(i)); r = !0; } t.deleteShader(e); t.deleteShader(i); if (r) return s; if (!t.getProgramParameter(n, t.LINK_STATUS)) { s.push({ info: "Failed to link shader program: " + t.getProgramInfoLog(n) }); return s; } this._glID = n; for (var a = t.getProgramParameter(n, t.ACTIVE_ATTRIBUTES), l = 0; l < a; ++l) { var h = t.getActiveAttrib(n, l), u = t.getAttribLocation(n, h.name); this._attributes.push({ name: h.name, location: u, type: h.type }); } for (var _ = t.getProgramParameter(n, t.ACTIVE_UNIFORMS), f = 0; f < _; ++f) { var d = t.getActiveUniform(n, f), m = d.name, p = t.getUniformLocation(n, m), v = "[0]" === m.substr(m.length - 3); v && (m = m.substr(0, m.length - 3)); var y = { name: m, location: p, type: d.type, size: v ? d.size : void 0 }; this._uniforms.push(y); } this._linked = !0; } }; t.prototype.destroy = function() { this._device._gl.deleteProgram(this._glID); this._linked = !1; this._glID = null; this._attributes = []; this._uniforms = []; this._samplers = []; }; n(t, [ { key: "id", get: function() { return this._id; } } ]); return t; })(); i.default = a; function c(t, e, i) { var n = t.createShader(e); t.shaderSource(n, i); t.compileShader(n); return n; } e.exports = i.default; }), {} ], 352: [ (function(t, e, i) { "use strict"; i.__esModule = !0; function n(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var r = (function() { function t(e, i, r, s) { n(this, t); this._device = e; this._format = i; this._glID = e._gl.createRenderbuffer(); this.update(r, s); } t.prototype.update = function(t, e) { this._width = t; this._height = e; var i = this._device._gl; i.bindRenderbuffer(i.RENDERBUFFER, this._glID); i.renderbufferStorage(i.RENDERBUFFER, this._format, t, e); i.bindRenderbuffer(i.RENDERBUFFER, null); }; t.prototype.destroy = function() { if (null !== this._glID) { var t = this._device._gl; t.bindRenderbuffer(t.RENDERBUFFER, null); t.deleteRenderbuffer(this._glID); this._glID = null; } else console.error("The render-buffer already destroyed"); }; return t; })(); i.default = r; e.exports = i.default; }), {} ], 353: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.default = void 0; var n = t("./enums"); function r(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var s = { blend: !1, blendSep: !1, blendColor: 4294967295, blendEq: n.enums.BLEND_FUNC_ADD, blendAlphaEq: n.enums.BLEND_FUNC_ADD, blendSrc: n.enums.BLEND_ONE, blendDst: n.enums.BLEND_ZERO, blendSrcAlpha: n.enums.BLEND_ONE, blendDstAlpha: n.enums.BLEND_ZERO, depthTest: !1, depthWrite: !1, depthFunc: n.enums.DS_FUNC_LESS, stencilTest: !1, stencilSep: !1, stencilFuncFront: n.enums.DS_FUNC_ALWAYS, stencilRefFront: 0, stencilMaskFront: 255, stencilFailOpFront: n.enums.STENCIL_OP_KEEP, stencilZFailOpFront: n.enums.STENCIL_OP_KEEP, stencilZPassOpFront: n.enums.STENCIL_OP_KEEP, stencilWriteMaskFront: 255, stencilFuncBack: n.enums.DS_FUNC_ALWAYS, stencilRefBack: 0, stencilMaskBack: 255, stencilFailOpBack: n.enums.STENCIL_OP_KEEP, stencilZFailOpBack: n.enums.STENCIL_OP_KEEP, stencilZPassOpBack: n.enums.STENCIL_OP_KEEP, stencilWriteMaskBack: 255, cullMode: n.enums.CULL_BACK, primitiveType: n.enums.PT_TRIANGLES, maxStream: -1, vertexBuffers: [], vertexBufferOffsets: [], indexBuffer: null, maxTextureSlot: -1, textureUnits: [], program: null }, o = (function() { function t(e) { r(this, t); this.vertexBuffers = new Array(e._caps.maxVertexStreams); this.vertexBufferOffsets = new Array(e._caps.maxVertexStreams); this.textureUnits = new Array(e._caps.maxTextureUnits); this.set(s); } t.initDefault = function(t) { s.vertexBuffers = new Array(t._caps.maxVertexStreams); s.vertexBufferOffsets = new Array(t._caps.maxVertexStreams); s.textureUnits = new Array(t._caps.maxTextureUnits); }; t.prototype.reset = function() { this.set(s); }; t.prototype.set = function(t) { this.blend = t.blend; this.blendSep = t.blendSep; this.blendColor = t.blendColor; this.blendEq = t.blendEq; this.blendAlphaEq = t.blendAlphaEq; this.blendSrc = t.blendSrc; this.blendDst = t.blendDst; this.blendSrcAlpha = t.blendSrcAlpha; this.blendDstAlpha = t.blendDstAlpha; this.depthTest = t.depthTest; this.depthWrite = t.depthWrite; this.depthFunc = t.depthFunc; this.stencilTest = t.stencilTest; this.stencilSep = t.stencilSep; this.stencilFuncFront = t.stencilFuncFront; this.stencilRefFront = t.stencilRefFront; this.stencilMaskFront = t.stencilMaskFront; this.stencilFailOpFront = t.stencilFailOpFront; this.stencilZFailOpFront = t.stencilZFailOpFront; this.stencilZPassOpFront = t.stencilZPassOpFront; this.stencilWriteMaskFront = t.stencilWriteMaskFront; this.stencilFuncBack = t.stencilFuncBack; this.stencilRefBack = t.stencilRefBack; this.stencilMaskBack = t.stencilMaskBack; this.stencilFailOpBack = t.stencilFailOpBack; this.stencilZFailOpBack = t.stencilZFailOpBack; this.stencilZPassOpBack = t.stencilZPassOpBack; this.stencilWriteMaskBack = t.stencilWriteMaskBack; this.cullMode = t.cullMode; this.primitiveType = t.primitiveType; this.maxStream = t.maxStream; for (var e = 0; e < t.vertexBuffers.length; ++e) this.vertexBuffers[e] = t.vertexBuffers[e]; for (var i = 0; i < t.vertexBufferOffsets.length; ++i) this.vertexBufferOffsets[i] = t.vertexBufferOffsets[i]; this.indexBuffer = t.indexBuffer; this.maxTextureSlot = t.maxTextureSlot; for (var n = 0; n < t.textureUnits.length; ++n) this.textureUnits[n] = t.textureUnits[n]; this.program = t.program; }; return t; })(); i.default = o; e.exports = i.default; }), { "./enums": 346 } ], 354: [ (function(i, n, r) { "use strict"; r.__esModule = !0; r.default = void 0; var s = (function(t) { return t && t.__esModule ? t : { default: t }; })(i("./texture")), o = i("./enums"), a = i("./misc"); function c(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } function l(i, n) { if (!i) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !n || "object" !== ("object" === (e = typeof n) ? t(n) : e) && "function" !== ("object" === (e = typeof n) ? t(n) : e) ? i : n; } function h(i, n) { if ("function" !== ("object" === (e = typeof n) ? t(n) : e) && null !== n) throw new TypeError("Super expression must either be null or a function, not " + ("object" === (e = typeof n) ? t(n) : e)); i.prototype = Object.create(n && n.prototype, { constructor: { value: i, enumerable: !1, writable: !0, configurable: !0 } }); n && (Object.setPrototypeOf ? Object.setPrototypeOf(i, n) : i.__proto__ = n); } Object.getPrototypeOf(Object.getPrototypeOf(new Uint8Array())).constructor; var u = (function(t) { h(e, t); function e(i, n) { c(this, e); var r = l(this, t.call(this, i)), s = r._device._gl; r._target = s.TEXTURE_2D; r._glID = s.createTexture(); n.images = n.images || [ null ]; r.update(n); return r; } e.prototype.update = function(t) { var e = this._device._gl, i = this._genMipmap; if (t) { void 0 !== t.width && (this._width = t.width); void 0 !== t.height && (this._height = t.height); void 0 !== t.anisotropy && (this._anisotropy = t.anisotropy); void 0 !== t.minFilter && (this._minFilter = t.minFilter); void 0 !== t.magFilter && (this._magFilter = t.magFilter); void 0 !== t.mipFilter && (this._mipFilter = t.mipFilter); void 0 !== t.wrapS && (this._wrapS = t.wrapS); void 0 !== t.wrapT && (this._wrapT = t.wrapT); if (void 0 !== t.format) { this._format = t.format; this._compressed = this._format >= o.enums.TEXTURE_FMT_RGB_DXT1 && this._format <= o.enums.TEXTURE_FMT_RGBA_PVRTC_4BPPV1 || this._format >= o.enums.TEXTURE_FMT_RGB_ETC2 && this._format <= o.enums.TEXTURE_FMT_RGBA_ETC2; } if (void 0 !== t.genMipmaps) { this._genMipmap = t.genMipmaps; i = t.genMipmaps; } var n = this._device.caps.maxTextureSize || Number.MAX_VALUE, r = Math.max(t.width || 0, t.height || 0); n < r && console.warn("The current texture size " + r + " exceeds the maximum size [" + n + "] supported on the device."); if (void 0 !== t.images && t.images.length > 1) { i = !1; (t.width > t.height ? t.width : t.height) >> t.images.length - 1 != 1 && console.error("texture-2d mipmap is invalid, should have a 1x1 mipmap."); } } (0, a.isPow2)(this._width) && (0, a.isPow2)(this._height) || (i = !1); e.activeTexture(e.TEXTURE0); e.bindTexture(e.TEXTURE_2D, this._glID); if (void 0 !== t.images && t.images.length > 0) { this._setMipmap(t.images, t.flipY, t.premultiplyAlpha); t.images.length > 1 && (this._genMipmap = !0); } if (i) { e.hint(e.GENERATE_MIPMAP_HINT, e.NICEST); e.generateMipmap(e.TEXTURE_2D); this._genMipmap = !0; } this._setTexInfo(); this._device._restoreTexture(0); }; e.prototype.updateSubImage = function(t) { var e = this._device._gl, i = (0, o.glTextureFmt)(this._format); e.activeTexture(e.TEXTURE0); e.bindTexture(e.TEXTURE_2D, this._glID); this._setSubImage(i, t); this._device._restoreTexture(0); }; e.prototype.updateImage = function(t) { var e = this._device._gl, i = (0, o.glTextureFmt)(this._format); e.activeTexture(e.TEXTURE0); e.bindTexture(e.TEXTURE_2D, this._glID); this._setImage(i, t); this._device._restoreTexture(0); }; e.prototype._setSubImage = function(t, e) { var i = this._device._gl, n = e.flipY, r = e.premultiplyAlpha, s = e.image; if (!s || ArrayBuffer.isView(s) || s instanceof ArrayBuffer) { void 0 === n ? i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, !1) : i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, n); void 0 === r ? i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !1) : i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, r); this._compressed ? i.compressedTexSubImage2D(i.TEXTURE_2D, e.level, e.x, e.y, e.width, e.height, t.format, s) : i.texSubImage2D(i.TEXTURE_2D, e.level, e.x, e.y, e.width, e.height, t.format, t.pixelType, s); } else { void 0 === n ? i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, !0) : i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, n); void 0 === r ? i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !1) : i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, r); i.texSubImage2D(i.TEXTURE_2D, e.level, e.x, e.y, t.format, t.pixelType, s); } }; e.prototype._setImage = function(t, e) { var i = this._device._gl, n = e.flipY, r = e.premultiplyAlpha, s = e.image; if (!s || ArrayBuffer.isView(s) || s instanceof ArrayBuffer) { void 0 === n ? i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, !1) : i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, n); void 0 === r ? i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !1) : i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, r); this._compressed ? i.compressedTexImage2D(i.TEXTURE_2D, e.level, t.internalFormat, e.width, e.height, 0, s) : i.texImage2D(i.TEXTURE_2D, e.level, t.internalFormat, e.width, e.height, 0, t.format, t.pixelType, s); } else { void 0 === n ? i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, !0) : i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, n); void 0 === r ? i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !1) : i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, r); i.texImage2D(i.TEXTURE_2D, e.level, t.internalFormat, t.format, t.pixelType, s); } }; e.prototype._setMipmap = function(t, e, i) { for (var n = (0, o.glTextureFmt)(this._format), r = { width: this._width, height: this._height, flipY: e, premultiplyAlpha: i, level: 0, image: null }, s = 0; s < t.length; ++s) { r.level = s; r.width = this._width >> s; r.height = this._height >> s; r.image = t[s]; this._setImage(n, r); } }; e.prototype._setTexInfo = function() { var t = this._device._gl, e = (0, a.isPow2)(this._width) && (0, a.isPow2)(this._height); if (!e && (this._wrapS !== o.enums.WRAP_CLAMP || this._wrapT !== o.enums.WRAP_CLAMP)) { console.warn("WebGL1 doesn't support all wrap modes with NPOT textures"); this._wrapS = o.enums.WRAP_CLAMP; this._wrapT = o.enums.WRAP_CLAMP; } var i = this._genMipmap ? this._mipFilter : -1; if (!e && -1 !== i) { console.warn("NPOT textures do not support mipmap filter"); i = -1; } t.texParameteri(t.TEXTURE_2D, t.TEXTURE_MIN_FILTER, (0, o.glFilter)(t, this._minFilter, i)); t.texParameteri(t.TEXTURE_2D, t.TEXTURE_MAG_FILTER, (0, o.glFilter)(t, this._magFilter, -1)); t.texParameteri(t.TEXTURE_2D, t.TEXTURE_WRAP_S, this._wrapS); t.texParameteri(t.TEXTURE_2D, t.TEXTURE_WRAP_T, this._wrapT); var n = this._device.ext("EXT_texture_filter_anisotropic"); n && t.texParameteri(t.TEXTURE_2D, n.TEXTURE_MAX_ANISOTROPY_EXT, this._anisotropy); }; return e; })(s.default); r.default = u; n.exports = r.default; }), { "./enums": 346, "./misc": 350, "./texture": 356 } ], 355: [ (function(i, n, r) { "use strict"; r.__esModule = !0; r.default = void 0; var s = (function(t) { return t && t.__esModule ? t : { default: t }; })(i("./texture")), o = i("./enums"), a = i("./misc"); function c(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } function l(i, n) { if (!i) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !n || "object" !== ("object" === (e = typeof n) ? t(n) : e) && "function" !== ("object" === (e = typeof n) ? t(n) : e) ? i : n; } function h(i, n) { if ("function" !== ("object" === (e = typeof n) ? t(n) : e) && null !== n) throw new TypeError("Super expression must either be null or a function, not " + ("object" === (e = typeof n) ? t(n) : e)); i.prototype = Object.create(n && n.prototype, { constructor: { value: i, enumerable: !1, writable: !0, configurable: !0 } }); n && (Object.setPrototypeOf ? Object.setPrototypeOf(i, n) : i.__proto__ = n); } var u = (function(t) { h(e, t); function e(i, n) { c(this, e); var r = l(this, t.call(this, i)), s = r._device._gl; r._target = s.TEXTURE_CUBE_MAP; r._glID = s.createTexture(); r.update(n); return r; } e.prototype.update = function(t) { var e = this._device._gl, i = this._genMipmaps; if (t) { void 0 !== t.width && (this._width = t.width); void 0 !== t.height && (this._height = t.height); void 0 !== t.anisotropy && (this._anisotropy = t.anisotropy); void 0 !== t.minFilter && (this._minFilter = t.minFilter); void 0 !== t.magFilter && (this._magFilter = t.magFilter); void 0 !== t.mipFilter && (this._mipFilter = t.mipFilter); void 0 !== t.wrapS && (this._wrapS = t.wrapS); void 0 !== t.wrapT && (this._wrapT = t.wrapT); if (void 0 !== t.format) { this._format = t.format; this._compressed = this._format >= o.enums.TEXTURE_FMT_RGB_DXT1 && this._format <= o.enums.TEXTURE_FMT_RGBA_PVRTC_4BPPV1 || this._format >= o.enums.TEXTURE_FMT_RGB_ETC2 && this._format <= o.enums.TEXTURE_FMT_RGBA_ETC2; } if (void 0 !== t.genMipmaps) { this._genMipmaps = t.genMipmaps; i = t.genMipmaps; } if (void 0 !== t.images && t.images.length > 1) { i = !1; t.width !== t.height && console.warn("texture-cube width and height should be identical."); t.width >> t.images.length - 1 != 1 && console.error("texture-cube mipmap is invalid. please set mipmap as 1x1, 2x2, 4x4 ... nxn"); } } (0, a.isPow2)(this._width) && (0, a.isPow2)(this._height) || (i = !1); e.activeTexture(e.TEXTURE0); e.bindTexture(e.TEXTURE_CUBE_MAP, this._glID); if (void 0 !== t.images && t.images.length > 0) { this._setMipmap(t.images, t.flipY, t.premultiplyAlpha); t.images.length > 1 && (this._genMipmaps = !0); } if (i) { e.hint(e.GENERATE_MIPMAP_HINT, e.NICEST); e.generateMipmap(e.TEXTURE_CUBE_MAP); this._genMipmaps = !0; } this._setTexInfo(); this._device._restoreTexture(0); }; e.prototype.updateSubImage = function(t) { var e = this._device._gl, i = (0, o.glTextureFmt)(this._format); e.activeTexture(e.TEXTURE0); e.bindTexture(e.TEXTURE_CUBE_MAP, this._glID); this._setSubImage(i, t); this._device._restoreTexture(0); }; e.prototype.updateImage = function(t) { var e = this._device._gl, i = (0, o.glTextureFmt)(this._format); e.activeTexture(e.TEXTURE0); e.bindTexture(e.TEXTURE_CUBE_MAP, this._glID); this._setImage(i, t); this._device._restoreTexture(0); }; e.prototype._setSubImage = function(t, e) { var i = this._device._gl, n = e.flipY, r = e.premultiplyAlpha, s = e.faceIndex, o = e.image; void 0 === n ? i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, !1) : i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, n); void 0 === r ? i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !1) : i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, r); !o || ArrayBuffer.isView(o) || o instanceof ArrayBuffer ? this._compressed ? i.compressedTexSubImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X + s, e.level, e.x, e.y, e.width, e.height, t.format, o) : i.texSubImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X + s, e.level, e.x, e.y, e.width, e.height, t.format, t.pixelType, o) : i.texSubImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X + s, e.level, e.x, e.y, t.format, t.pixelType, o); }; e.prototype._setImage = function(t, e) { var i = this._device._gl, n = e.flipY, r = e.premultiplyAlpha, s = e.faceIndex, o = e.image; void 0 === n ? i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, !1) : i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, n); void 0 === r ? i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !1) : i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, r); !o || ArrayBuffer.isView(o) || o instanceof ArrayBuffer ? this._compressed ? i.compressedTexImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X + s, e.level, t.internalFormat, e.width, e.height, 0, o) : i.texImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X + s, e.level, t.internalFormat, e.width, e.height, 0, t.format, t.pixelType, o) : i.texImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X + s, e.level, t.internalFormat, t.format, t.pixelType, o); }; e.prototype._setMipmap = function(t, e, i) { for (var n = (0, o.glTextureFmt)(this._format), r = { width: this._width, height: this._height, faceIndex: 0, flipY: e, premultiplyAlpha: i, level: 0, image: null }, s = 0; s < t.length; ++s) { var a = t[s]; r.level = s; r.width = this._width >> s; r.height = this._height >> s; for (var c = 0; c < 6; ++c) { r.faceIndex = c; r.image = a[c]; this._setImage(n, r); } } }; e.prototype._setTexInfo = function() { var t = this._device._gl, e = (0, a.isPow2)(this._width) && (0, a.isPow2)(this._height); if (!e && (this._wrapS !== o.enums.WRAP_CLAMP || this._wrapT !== o.enums.WRAP_CLAMP)) { console.warn("WebGL1 doesn't support all wrap modes with NPOT textures"); this._wrapS = o.enums.WRAP_CLAMP; this._wrapT = o.enums.WRAP_CLAMP; } var i = this._genMipmaps ? this._mipFilter : -1; if (!e && -1 !== i) { console.warn("NPOT textures do not support mipmap filter"); i = -1; } t.texParameteri(t.TEXTURE_CUBE_MAP, t.TEXTURE_MIN_FILTER, (0, o.glFilter)(t, this._minFilter, i)); t.texParameteri(t.TEXTURE_CUBE_MAP, t.TEXTURE_MAG_FILTER, (0, o.glFilter)(t, this._magFilter, -1)); t.texParameteri(t.TEXTURE_CUBE_MAP, t.TEXTURE_WRAP_S, this._wrapS); t.texParameteri(t.TEXTURE_CUBE_MAP, t.TEXTURE_WRAP_T, this._wrapT); var n = this._device.ext("EXT_texture_filter_anisotropic"); n && t.texParameteri(t.TEXTURE_CUBE_MAP, n.TEXTURE_MAX_ANISOTROPY_EXT, this._anisotropy); }; return e; })(s.default); r.default = u; n.exports = r.default; }), { "./enums": 346, "./misc": 350, "./texture": 356 } ], 356: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.default = void 0; var n = t("./enums"); function r(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var s = 0, o = (function() { function t(e) { r(this, t); this._device = e; this._width = 4; this._height = 4; this._genMipmaps = !1; this._compressed = !1; this._anisotropy = 1; this._minFilter = n.enums.FILTER_LINEAR; this._magFilter = n.enums.FILTER_LINEAR; this._mipFilter = n.enums.FILTER_LINEAR; this._wrapS = n.enums.WRAP_REPEAT; this._wrapT = n.enums.WRAP_REPEAT; this._format = n.enums.TEXTURE_FMT_RGBA8; this._target = -1; this._id = s++; } t.prototype.destroy = function() { if (null !== this._glID) { this._device._gl.deleteTexture(this._glID); this._device._stats.tex -= this.bytes; this._glID = null; } else console.error("The texture already destroyed"); }; return t; })(); i.default = o; e.exports = i.default; }), { "./enums": 346 } ], 357: [ (function(t, e, i) { "use strict"; i.__esModule = !0; var n = (function() { function t(t, e) { for (var i = 0; i < e.length; i++) { var n = e[i]; n.enumerable = n.enumerable || !1; n.configurable = !0; "value" in n && (n.writable = !0); Object.defineProperty(t, n.key, n); } } return function(e, i, n) { i && t(e.prototype, i); n && t(e, n); return e; }; })(); t("./enums"); function r(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var s = (function() { function t(e, i, n, s, o) { r(this, t); this._device = e; this._format = i; this._usage = n; this._numVertices = o; this._bytes = this._format._bytes * o; this._glID = e._gl.createBuffer(); this.update(0, s); e._stats.vb += this._bytes; } t.prototype.destroy = function() { if (-1 !== this._glID) { this._device._gl.deleteBuffer(this._glID); this._device._stats.vb -= this.bytes; this._glID = -1; } else console.error("The buffer already destroyed"); }; t.prototype.update = function(t, e) { if (-1 !== this._glID) if (e && e.byteLength + t > this._bytes) console.error("Failed to update data, bytes exceed."); else { var i = this._device._gl, n = this._usage; i.bindBuffer(i.ARRAY_BUFFER, this._glID); e ? t ? i.bufferSubData(i.ARRAY_BUFFER, t, e) : i.bufferData(i.ARRAY_BUFFER, e, n) : this._bytes ? i.bufferData(i.ARRAY_BUFFER, this._bytes, n) : console.warn("bufferData should not submit 0 bytes data"); i.bindBuffer(i.ARRAY_BUFFER, null); } else console.error("The buffer is destroyed"); }; n(t, [ { key: "count", get: function() { return this._numVertices; } } ]); return t; })(); i.default = s; e.exports = i.default; }), { "./enums": 346 } ], 358: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.default = void 0; var n = t("./enums"); function r(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var s = (function() { function t(e) { r(this, t); this._attr2el = {}; this._elements = []; this._bytes = 0; for (var i = 0, s = e.length; i < s; ++i) { var o = e[i], a = { name: o.name, offset: this._bytes, stride: 0, stream: -1, type: o.type, num: o.num, normalize: void 0 !== o.normalize && o.normalize, bytes: o.num * (0, n.attrTypeBytes)(o.type) }; this._attr2el[a.name] = a; this._elements.push(a); this._bytes += a.bytes; } for (var c = 0, l = this._elements.length; c < l; ++c) { this._elements[c].stride = this._bytes; } } t.prototype.element = function(t) { return this._attr2el[t]; }; return t; })(); i.default = s; e.exports = i.default; }), { "./enums": 346 } ], 359: [ (function(t, e, i) { "use strict"; i.__esModule = !0; function n(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var r = (function() { function t(e, i) { n(this, t); this._cursor = 0; this._data = new Array(i); for (var r = 0; r < i; ++r) this._data[r] = e(); } t.prototype.request = function() { var t = this._data[this._cursor]; this._cursor = (this._cursor + 1) % this._data.length; return t; }; return t; })(); i.default = r; e.exports = i.default; }), {} ], 360: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.default = void 0; var n = (function() { function t(t, e) { for (var i = 0; i < e.length; i++) { var n = e[i]; n.enumerable = n.enumerable || !1; n.configurable = !0; "value" in n && (n.writable = !0); Object.defineProperty(t, n.key, n); } } return function(e, i, n) { i && t(e.prototype, i); n && t(e, n); return e; }; })(), r = (function(t) { return t && t.__esModule ? t : { default: t }; })(t("./timsort")); function s(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var o = (function() { function t(e) { s(this, t); this._count = 0; this._data = new Array(e); } t.prototype._resize = function(t) { if (t > this._data.length) for (var e = this._data.length; e < t; ++e) this._data[e] = void 0; }; t.prototype.reset = function() { for (var t = 0; t < this._count; ++t) this._data[t] = void 0; this._count = 0; }; t.prototype.push = function(t) { this._count >= this._data.length && this._resize(2 * this._data.length); this._data[this._count] = t; ++this._count; }; t.prototype.pop = function() { --this._count; this._count < 0 && (this._count = 0); var t = this._data[this._count]; this._data[this._count] = void 0; return t; }; t.prototype.fastRemove = function(t) { if (!(t >= this._count || t < 0)) { var e = this._count - 1; this._data[t] = this._data[e]; this._data[e] = void 0; this._count -= 1; } }; t.prototype.indexOf = function(t) { return this._data.indexOf(t); }; t.prototype.sort = function(t) { return (0, r.default)(this._data, 0, this._count, t); }; n(t, [ { key: "length", get: function() { return this._count; } }, { key: "data", get: function() { return this._data; } } ]); return t; })(); i.default = o; e.exports = i.default; }), { "./timsort": 365 } ], 361: [ (function(t, e, i) { "use strict"; i.__esModule = !0; var n = t("./circular-pool"); Object.defineProperty(i, "CircularPool", { enumerable: !0, get: function() { return l(n).default; } }); var r = t("./fixed-array"); Object.defineProperty(i, "FixedArray", { enumerable: !0, get: function() { return l(r).default; } }); var s = t("./linked-array"); Object.defineProperty(i, "LinkedArray", { enumerable: !0, get: function() { return l(s).default; } }); var o = t("./pool"); Object.defineProperty(i, "Pool", { enumerable: !0, get: function() { return l(o).default; } }); var a = t("./recycle-pool"); Object.defineProperty(i, "RecyclePool", { enumerable: !0, get: function() { return l(a).default; } }); var c = t("./typed-array-pool"); Object.defineProperty(i, "TypedArrayPool", { enumerable: !0, get: function() { return l(c).default; } }); function l(t) { return t && t.__esModule ? t : { default: t }; } }), { "./circular-pool": 359, "./fixed-array": 360, "./linked-array": 362, "./pool": 363, "./recycle-pool": 364, "./typed-array-pool": 366 } ], 362: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.default = void 0; var n = (function() { function t(t, e) { for (var i = 0; i < e.length; i++) { var n = e[i]; n.enumerable = n.enumerable || !1; n.configurable = !0; "value" in n && (n.writable = !0); Object.defineProperty(t, n.key, n); } } return function(e, i, n) { i && t(e.prototype, i); n && t(e, n); return e; }; })(), r = (function(t) { return t && t.__esModule ? t : { default: t }; })(t("./pool")); function s(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var o = (function() { function t(e, i) { s(this, t); this._fn = e; this._count = 0; this._head = null; this._tail = null; this._pool = new r.default(e, i); } t.prototype.add = function() { var t = this._pool.alloc(); if (this._tail) { this._tail._next = t; t._prev = this._tail; } else this._head = t; this._tail = t; this._count += 1; return t; }; t.prototype.remove = function(t) { t._prev ? t._prev._next = t._next : this._head = t._next; t._next ? t._next._prev = t._prev : this._tail = t._prev; t._next = null; t._prev = null; this._pool.free(t); this._count -= 1; }; t.prototype.forEach = function(t, e) { var i = this._head; if (i) { e && (t = t.bind(e)); for (var n = 0, r = i; i; ) { r = i._next; t(i, n, this); i = r; ++n; } } }; n(t, [ { key: "head", get: function() { return this._head; } }, { key: "tail", get: function() { return this._tail; } }, { key: "length", get: function() { return this._count; } } ]); return t; })(); i.default = o; e.exports = i.default; }), { "./pool": 363 } ], 363: [ (function(t, e, i) { "use strict"; i.__esModule = !0; function n(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var r = (function() { function t(e, i) { n(this, t); this._fn = e; this._idx = i - 1; this._frees = new Array(i); for (var r = 0; r < i; ++r) this._frees[r] = e(); } t.prototype._expand = function(t) { var e = this._frees; this._frees = new Array(t); for (var i = t - e.length, n = 0; n < i; ++n) this._frees[n] = this._fn(); for (var r = i, s = 0; r < t; ++r, ++s) this._frees[r] = e[s]; this._idx += i; }; t.prototype.alloc = function() { this._idx < 0 && this._expand(Math.round(1.2 * this._frees.length) + 1); var t = this._frees[this._idx]; this._frees[this._idx] = null; --this._idx; return t; }; t.prototype.free = function(t) { ++this._idx; this._frees[this._idx] = t; }; return t; })(); i.default = r; e.exports = i.default; }), {} ], 364: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.default = void 0; var n = (function() { function t(t, e) { for (var i = 0; i < e.length; i++) { var n = e[i]; n.enumerable = n.enumerable || !1; n.configurable = !0; "value" in n && (n.writable = !0); Object.defineProperty(t, n.key, n); } } return function(e, i, n) { i && t(e.prototype, i); n && t(e, n); return e; }; })(), r = (function(t) { return t && t.__esModule ? t : { default: t }; })(t("./timsort")); function s(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var o = (function() { function t(e, i) { s(this, t); this._fn = e; this._count = 0; this._data = new Array(i); for (var n = 0; n < i; ++n) this._data[n] = e(); } t.prototype.reset = function() { this._count = 0; }; t.prototype.resize = function(t) { if (t > this._data.length) for (var e = this._data.length; e < t; ++e) this._data[e] = this._fn(); }; t.prototype.add = function() { this._count >= this._data.length && this.resize(2 * this._data.length); return this._data[this._count++]; }; t.prototype.remove = function(t) { if (!(t >= this._count)) { var e = this._count - 1, i = this._data[t]; this._data[t] = this._data[e]; this._data[e] = i; this._count -= 1; } }; t.prototype.sort = function(t) { return (0, r.default)(this._data, 0, this._count, t); }; n(t, [ { key: "length", get: function() { return this._count; } }, { key: "data", get: function() { return this._data; } } ]); return t; })(); i.default = o; e.exports = i.default; }), { "./timsort": 365 } ], 365: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.default = function(t, e, i, n) { if (!Array.isArray(t)) throw new TypeError("Can only sort arrays"); void 0 === e && (e = 0); void 0 === i && (i = t.length); void 0 === n && (n = l); var s = i - e; if (!(s < 2)) { var o = 0; if (s < r) f(t, e, i, e + (o = u(t, e, i, n)), n); else { var a = new p(t, n), c = h(s); do { if ((o = u(t, e, i, n)) < c) { var _ = s; _ > c && (_ = c); f(t, e, e + _, e + o, n); o = _; } a.pushRun(e, o); a.mergeRuns(); s -= o; e += o; } while (0 !== s); a.forceMergeRuns(); } } }; function n(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var r = 32, s = 7, o = 256, a = [ 1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9 ]; function c(t) { return t < 1e5 ? t < 100 ? t < 10 ? 0 : 1 : t < 1e4 ? t < 1e3 ? 2 : 3 : 4 : t < 1e7 ? t < 1e6 ? 5 : 6 : t < 1e9 ? t < 1e8 ? 7 : 8 : 9; } function l(t, e) { if (t === e) return 0; if (~~t === t && ~~e === e) { if (0 === t || 0 === e) return t < e ? -1 : 1; if (t < 0 || e < 0) { if (e >= 0) return -1; if (t >= 0) return 1; t = -t; e = -e; } var i = c(t), n = c(e), r = 0; if (i < n) { t *= a[n - i - 1]; e /= 10; r = -1; } else if (i > n) { e *= a[i - n - 1]; t /= 10; r = 1; } return t === e ? r : t < e ? -1 : 1; } var s = String(t), o = String(e); return s === o ? 0 : s < o ? -1 : 1; } function h(t) { for (var e = 0; t >= r; ) { e |= 1 & t; t >>= 1; } return t + e; } function u(t, e, i, n) { var r = e + 1; if (r === i) return 1; if (n(t[r++], t[e]) < 0) { for (;r < i && n(t[r], t[r - 1]) < 0; ) r++; _(t, e, r); } else for (;r < i && n(t[r], t[r - 1]) >= 0; ) r++; return r - e; } function _(t, e, i) { i--; for (;e < i; ) { var n = t[e]; t[e++] = t[i]; t[i--] = n; } } function f(t, e, i, n, r) { n === e && n++; for (;n < i; n++) { for (var s = t[n], o = e, a = n; o < a; ) { var c = o + a >>> 1; r(s, t[c]) < 0 ? a = c : o = c + 1; } var l = n - o; switch (l) { case 3: t[o + 3] = t[o + 2]; case 2: t[o + 2] = t[o + 1]; case 1: t[o + 1] = t[o]; break; default: for (;l > 0; ) { t[o + l] = t[o + l - 1]; l--; } } t[o] = s; } } function d(t, e, i, n, r, s) { var o = 0, a = 0, c = 1; if (s(t, e[i + r]) > 0) { a = n - r; for (;c < a && s(t, e[i + r + c]) > 0; ) { o = c; (c = 1 + (c << 1)) <= 0 && (c = a); } c > a && (c = a); o += r; c += r; } else { a = r + 1; for (;c < a && s(t, e[i + r - c]) <= 0; ) { o = c; (c = 1 + (c << 1)) <= 0 && (c = a); } c > a && (c = a); var l = o; o = r - c; c = r - l; } o++; for (;o < c; ) { var h = o + (c - o >>> 1); s(t, e[i + h]) > 0 ? o = h + 1 : c = h; } return c; } function m(t, e, i, n, r, s) { var o = 0, a = 0, c = 1; if (s(t, e[i + r]) < 0) { a = r + 1; for (;c < a && s(t, e[i + r - c]) < 0; ) { o = c; (c = 1 + (c << 1)) <= 0 && (c = a); } c > a && (c = a); var l = o; o = r - c; c = r - l; } else { a = n - r; for (;c < a && s(t, e[i + r + c]) >= 0; ) { o = c; (c = 1 + (c << 1)) <= 0 && (c = a); } c > a && (c = a); o += r; c += r; } o++; for (;o < c; ) { var h = o + (c - o >>> 1); s(t, e[i + h]) < 0 ? c = h : o = h + 1; } return c; } var p = (function() { function t(e, i) { n(this, t); this.array = e; this.compare = i; this.minGallop = s; this.length = e.length; this.tmpStorageLength = o; this.length < 2 * o && (this.tmpStorageLength = this.length >>> 1); this.tmp = new Array(this.tmpStorageLength); this.stackLength = this.length < 120 ? 5 : this.length < 1542 ? 10 : this.length < 119151 ? 19 : 40; this.runStart = new Array(this.stackLength); this.runLength = new Array(this.stackLength); this.stackSize = 0; } t.prototype.pushRun = function(t, e) { this.runStart[this.stackSize] = t; this.runLength[this.stackSize] = e; this.stackSize += 1; }; t.prototype.mergeRuns = function() { for (;this.stackSize > 1; ) { var t = this.stackSize - 2; if (t >= 1 && this.runLength[t - 1] <= this.runLength[t] + this.runLength[t + 1] || t >= 2 && this.runLength[t - 2] <= this.runLength[t] + this.runLength[t - 1]) this.runLength[t - 1] < this.runLength[t + 1] && t--; else if (this.runLength[t] > this.runLength[t + 1]) break; this.mergeAt(t); } }; t.prototype.forceMergeRuns = function() { for (;this.stackSize > 1; ) { var t = this.stackSize - 2; t > 0 && this.runLength[t - 1] < this.runLength[t + 1] && t--; this.mergeAt(t); } }; t.prototype.mergeAt = function(t) { var e = this.compare, i = this.array, n = this.runStart[t], r = this.runLength[t], s = this.runStart[t + 1], o = this.runLength[t + 1]; this.runLength[t] = r + o; if (t === this.stackSize - 3) { this.runStart[t + 1] = this.runStart[t + 2]; this.runLength[t + 1] = this.runLength[t + 2]; } this.stackSize--; var a = m(i[s], i, n, r, 0, e); n += a; 0 !== (r -= a) && 0 !== (o = d(i[n + r - 1], i, s, o, o - 1, e)) && (r <= o ? this.mergeLow(n, r, s, o) : this.mergeHigh(n, r, s, o)); }; t.prototype.mergeLow = function(t, e, i, n) { var r = this.compare, o = this.array, a = this.tmp, c = 0; for (c = 0; c < e; c++) a[c] = o[t + c]; var l = 0, h = i, u = t; o[u++] = o[h++]; if (0 != --n) if (1 !== e) { for (var _ = this.minGallop; ;) { var f = 0, p = 0, v = !1; do { if (r(o[h], a[l]) < 0) { o[u++] = o[h++]; p++; f = 0; if (0 == --n) { v = !0; break; } } else { o[u++] = a[l++]; f++; p = 0; if (1 == --e) { v = !0; break; } } } while ((f | p) < _); if (v) break; do { if (0 !== (f = m(o[h], a, l, e, 0, r))) { for (c = 0; c < f; c++) o[u + c] = a[l + c]; u += f; l += f; if ((e -= f) <= 1) { v = !0; break; } } o[u++] = o[h++]; if (0 == --n) { v = !0; break; } if (0 !== (p = d(a[l], o, h, n, 0, r))) { for (c = 0; c < p; c++) o[u + c] = o[h + c]; u += p; h += p; if (0 === (n -= p)) { v = !0; break; } } o[u++] = a[l++]; if (1 == --e) { v = !0; break; } _--; } while (f >= s || p >= s); if (v) break; _ < 0 && (_ = 0); _ += 2; } this.minGallop = _; _ < 1 && (this.minGallop = 1); if (1 === e) { for (c = 0; c < n; c++) o[u + c] = o[h + c]; o[u + n] = a[l]; } else { if (0 === e) throw new Error("mergeLow preconditions were not respected"); for (c = 0; c < e; c++) o[u + c] = a[l + c]; } } else { for (c = 0; c < n; c++) o[u + c] = o[h + c]; o[u + n] = a[l]; } else for (c = 0; c < e; c++) o[u + c] = a[l + c]; }; t.prototype.mergeHigh = function(t, e, i, n) { var r = this.compare, o = this.array, a = this.tmp, c = 0; for (c = 0; c < n; c++) a[c] = o[i + c]; var l = t + e - 1, h = n - 1, u = i + n - 1, _ = 0, f = 0; o[u--] = o[l--]; if (0 != --e) if (1 !== n) { for (var p = this.minGallop; ;) { var v = 0, y = 0, g = !1; do { if (r(a[h], o[l]) < 0) { o[u--] = o[l--]; v++; y = 0; if (0 == --e) { g = !0; break; } } else { o[u--] = a[h--]; y++; v = 0; if (1 == --n) { g = !0; break; } } } while ((v | y) < p); if (g) break; do { if (0 !== (v = e - m(a[h], o, t, e, e - 1, r))) { e -= v; f = (u -= v) + 1; _ = (l -= v) + 1; for (c = v - 1; c >= 0; c--) o[f + c] = o[_ + c]; if (0 === e) { g = !0; break; } } o[u--] = a[h--]; if (1 == --n) { g = !0; break; } if (0 !== (y = n - d(o[l], a, 0, n, n - 1, r))) { n -= y; f = (u -= y) + 1; _ = (h -= y) + 1; for (c = 0; c < y; c++) o[f + c] = a[_ + c]; if (n <= 1) { g = !0; break; } } o[u--] = o[l--]; if (0 == --e) { g = !0; break; } p--; } while (v >= s || y >= s); if (g) break; p < 0 && (p = 0); p += 2; } this.minGallop = p; p < 1 && (this.minGallop = 1); if (1 === n) { f = (u -= e) + 1; _ = (l -= e) + 1; for (c = e - 1; c >= 0; c--) o[f + c] = o[_ + c]; o[u] = a[h]; } else { if (0 === n) throw new Error("mergeHigh preconditions were not respected"); _ = u - (n - 1); for (c = 0; c < n; c++) o[_ + c] = a[c]; } } else { f = (u -= e) + 1; _ = (l -= e) + 1; for (c = e - 1; c >= 0; c--) o[f + c] = o[_ + c]; o[u] = a[h]; } else { _ = u - (n - 1); for (c = 0; c < n; c++) o[_ + c] = a[c]; } }; return t; })(); e.exports = i.default; }), {} ], 366: [ (function(t, e, i) { "use strict"; i.__esModule = !0; for (var n = Array(8), r = 0; r < 8; ++r) n[r] = []; function s(t) { for (var e = 16; e <= 1 << 28; e *= 16) if (t <= e) return e; return 0; } function o(t) { var e = void 0, i = void 0; e = (t > 65535) << 4; e |= i = ((t >>>= e) > 255) << 3; e |= i = ((t >>>= i) > 15) << 2; return (e |= i = ((t >>>= i) > 3) << 1) | (t >>>= i) >> 1; } function a(t) { var e = s(t), i = n[o(e) >> 2]; return i.length > 0 ? i.pop() : new ArrayBuffer(e); } function c(t) { n[o(t.byteLength) >> 2].push(t); } i.default = { alloc_int8: function(t) { var e = new Int8Array(a(t), 0, t); return e.length !== t ? e.subarray(0, t) : e; }, alloc_uint8: function(t) { var e = new Uint8Array(a(t), 0, t); return e.length !== t ? e.subarray(0, t) : e; }, alloc_int16: function(t) { var e = new Int16Array(a(2 * t), 0, t); return e.length !== t ? e.subarray(0, t) : e; }, alloc_uint16: function(t) { var e = new Uint16Array(a(2 * t), 0, t); return e.length !== t ? e.subarray(0, t) : e; }, alloc_int32: function(t) { var e = new Int32Array(a(4 * t), 0, t); return e.length !== t ? e.subarray(0, t) : e; }, alloc_uint32: function(t) { var e = new Uint32Array(a(4 * t), 0, t); return e.length !== t ? e.subarray(0, t) : e; }, alloc_float32: function(t) { var e = new Float32Array(a(4 * t), 0, t); return e.length !== t ? e.subarray(0, t) : e; }, alloc_float64: function(t) { var e = new Float64Array(a(8 * t), 0, t); return e.length !== t ? e.subarray(0, t) : e; }, alloc_dataview: function(t) { var e = new DataView(a(t), 0, t); return e.length !== t ? e.subarray(0, t) : e; }, free: function(t) { c(t.buffer); }, reset: function() { for (var t = Array(8), e = 0; e < 8; ++e) t[e] = []; } }; e.exports = i.default; }), {} ], 367: [ (function(t, e, i) { "use strict"; i.__esModule = !0; function n(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } i.default = function t() { n(this, t); this.material = null; this.vertexCount = 0; this.indiceCount = 0; }; e.exports = i.default; }), {} ], 368: [ (function(i, n, r) { "use strict"; r.__esModule = !0; r.default = void 0; var s = (function() { function t(t, e) { for (var i = 0; i < e.length; i++) { var n = e[i]; n.enumerable = n.enumerable || !1; n.configurable = !0; "value" in n && (n.writable = !0); Object.defineProperty(t, n.key, n); } } return function(e, i, n) { i && t(e.prototype, i); n && t(e, n); return e; }; })(); function o(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } function a(i, n) { if (!i) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !n || "object" !== ("object" === (e = typeof n) ? t(n) : e) && "function" !== ("object" === (e = typeof n) ? t(n) : e) ? i : n; } function c(i, n) { if ("function" !== ("object" === (e = typeof n) ? t(n) : e) && null !== n) throw new TypeError("Super expression must either be null or a function, not " + ("object" === (e = typeof n) ? t(n) : e)); i.prototype = Object.create(n && n.prototype, { constructor: { value: i, enumerable: !1, writable: !0, configurable: !0 } }); n && (Object.setPrototypeOf ? Object.setPrototypeOf(i, n) : i.__proto__ = n); } var l = (function(t) { c(e, t); function e() { o(this, e); var i = a(this, t.call(this)); i.ia = null; return i; } s(e, [ { key: "type", get: function() { return e.type; } } ]); return e; })(function(t) { return t && t.__esModule ? t : { default: t }; }(i("./base-render-data")).default); r.default = l; l.type = "IARenderData"; cc.IARenderData = l; n.exports = r.default; }), { "./base-render-data": 367 } ], 369: [ (function(i, n, r) { "use strict"; r.__esModule = !0; r.default = void 0; var s, o = (function() { function t(t, e) { for (var i = 0; i < e.length; i++) { var n = e[i]; n.enumerable = n.enumerable || !1; n.configurable = !0; "value" in n && (n.writable = !0); Object.defineProperty(t, n.key, n); } } return function(e, i, n) { i && t(e.prototype, i); n && t(e, n); return e; }; })(), a = i("../memop"), c = (function(t) { return t && t.__esModule ? t : { default: t }; })(i("./base-render-data")); function l(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } function h(i, n) { if (!i) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !n || "object" !== ("object" === (e = typeof n) ? t(n) : e) && "function" !== ("object" === (e = typeof n) ? t(n) : e) ? i : n; } function u(i, n) { if ("function" !== ("object" === (e = typeof n) ? t(n) : e) && null !== n) throw new TypeError("Super expression must either be null or a function, not " + ("object" === (e = typeof n) ? t(n) : e)); i.prototype = Object.create(n && n.prototype, { constructor: { value: i, enumerable: !1, writable: !0, configurable: !0 } }); n && (Object.setPrototypeOf ? Object.setPrototypeOf(i, n) : i.__proto__ = n); } var _ = new a.Pool(function() { return { x: 0, y: 0, z: 0, u: 0, v: 0, color: 0 }; }, 128), f = (function(t) { u(e, t); function e() { l(this, e); var i = h(this, t.call(this)); i._data = []; i._indices = []; i._pivotX = 0; i._pivotY = 0; i._width = 0; i._height = 0; i.uvDirty = !0; i.vertDirty = !0; return i; } e.prototype.updateSizeNPivot = function(t, e, i, n) { if (t !== this._width || e !== this._height || i !== this._pivotX || n !== this._pivotY) { this._width = t; this._height = e; this._pivotX = i; this._pivotY = n; this.vertDirty = !0; } }; e.alloc = function() { return s.alloc(); }; e.free = function(t) { if (t instanceof e) { for (var i = t._data.length - 1; i >= 0; i--) _.free(t._data[i]); t._data.length = 0; t._indices.length = 0; t.material = null; t.uvDirty = !0; t.vertDirty = !0; t.vertexCount = 0; t.indiceCount = 0; s.free(t); } }; o(e, [ { key: "type", get: function() { return e.type; } }, { key: "dataLength", get: function() { return this._data.length; }, set: function(t) { var e = this._data; if (e.length !== t) { for (var i = t; i < e.length; i++) _.free(e[i]); for (var n = e.length; n < t; n++) e[n] = _.alloc(); e.length = t; } } } ]); return e; })(c.default); r.default = f; f.type = "RenderData"; s = new a.Pool(function() { return new f(); }, 32); n.exports = r.default; }), { "../memop": 361, "./base-render-data": 367 } ], 370: [ (function(i, n, r) { "use strict"; r.__esModule = !0; r.default = void 0; var s = (function() { function t(t, e) { for (var i = 0; i < e.length; i++) { var n = e[i]; n.enumerable = n.enumerable || !1; n.configurable = !0; "value" in n && (n.writable = !0); Object.defineProperty(t, n.key, n); } } return function(e, i, n) { i && t(e.prototype, i); n && t(e, n); return e; }; })(), o = i("../../core/vmath"), a = h(i("../core/base-renderer")), c = h(i("../enums")), l = i("../memop"); function h(t) { return t && t.__esModule ? t : { default: t }; } function u(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } function _(i, n) { if (!i) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !n || "object" !== ("object" === (e = typeof n) ? t(n) : e) && "function" !== ("object" === (e = typeof n) ? t(n) : e) ? i : n; } function f(i, n) { if ("function" !== ("object" === (e = typeof n) ? t(n) : e) && null !== n) throw new TypeError("Super expression must either be null or a function, not " + ("object" === (e = typeof n) ? t(n) : e)); i.prototype = Object.create(n && n.prototype, { constructor: { value: i, enumerable: !1, writable: !0, configurable: !0 } }); n && (Object.setPrototypeOf ? Object.setPrototypeOf(i, n) : i.__proto__ = n); } var d = new Float32Array(16), m = new Float32Array(16), p = new Float32Array(16), v = new Float32Array(3), y = new Float32Array(16), g = o.vec3.create(0, 0, 0), x = o.vec3.create(0, 0, 0), C = o.vec3.create(0, 0, 0), b = new l.RecyclePool(function() { return new Float32Array(16); }, 8), A = (function(t) { f(e, t); function e(i, n) { u(this, e); var r = _(this, t.call(this, i, n)); r._directionalLights = []; r._pointLights = []; r._spotLights = []; r._shadowLights = []; r._sceneAmbient = new Float32Array([ 0, 0, 0 ]); r._numLights = 0; r._defines = {}; r._registerStage("shadowcast", r._shadowStage.bind(r)); r._registerStage("opaque", r._opaqueStage.bind(r)); r._registerStage("transparent", r._transparentStage.bind(r)); return r; } e.prototype.render = function(t) { this.reset(); this._updateLights(t); for (var e = this._device._gl.canvas, i = 0; i < t._cameras.length; ++i) { var n = this._requestView(), r = e.width, s = e.height; t._cameras.data[i].extractView(n, r, s); } this._viewPools.sort((function(t, e) { return t._priority - e._priority; })); for (var o = 0; o < this._viewPools.length; ++o) { var a = this._viewPools.data[o]; this._render(a, t); } }; e.prototype.renderCamera = function(t, e) { this.reset(); var i = this._device._gl.canvas, n = i.width, r = i.height, s = this._requestView(); t.extractView(s, n, r); this._render(s, e); }; e.prototype._updateLights = function(t) { this._directionalLights.length = 0; this._pointLights.length = 0; this._spotLights.length = 0; this._shadowLights.length = 0; for (var e = t._lights, i = 0; i < e.length; ++i) { var n = e.data[i]; n.update(this._device); if (n.shadowType !== c.default.SHADOW_NONE) { this._shadowLights.push(n); var r = this._requestView(); n.extractView(r, [ "shadowcast" ]); } n._type === c.default.LIGHT_DIRECTIONAL ? this._directionalLights.push(n) : n._type === c.default.LIGHT_POINT ? this._pointLights.push(n) : this._spotLights.push(n); } this._updateDefines(); this._numLights = e._count; }; e.prototype._updateDefines = function() { var t = this._defines; t._NUM_DIR_LIGHTS = Math.min(4, this._directionalLights.length); t._NUM_POINT_LIGHTS = Math.min(4, this._pointLights.length); t._NUM_SPOT_LIGHTS = Math.min(4, this._spotLights.length); t._NUM_SHADOW_LIGHTS = Math.min(4, this._shadowLights.length); }; e.prototype._submitLightsUniforms = function() { var t = this._device; t.setUniform("cc_sceneAmbient", this._sceneAmbient); b.reset(); if (this._directionalLights.length > 0) { for (var e = b.add(), i = b.add(), n = 0; n < this._directionalLights.length; ++n) { var r = this._directionalLights[n], s = 4 * n; e.set(r._directionUniform, s); i.set(r._colorUniform, s); } t.setUniform("cc_dirLightDirection", e); t.setUniform("cc_dirLightColor", i); } if (this._pointLights.length > 0) { for (var o = b.add(), a = b.add(), c = 0; c < this._pointLights.length; ++c) { var l = this._pointLights[c], h = 4 * c; o.set(l._positionUniform, h); o[h + 3] = l._range; a.set(l._colorUniform, h); } t.setUniform("cc_pointLightPositionAndRange", o); t.setUniform("cc_pointLightColor", a); } if (this._spotLights.length > 0) { for (var u = b.add(), _ = b.add(), f = b.add(), d = 0; d < this._spotLights.length; ++d) { var m = this._spotLights[d], p = 4 * d; u.set(m._positionUniform, p); u[p + 3] = m._range; _.set(m._directionUniform, p); _[p + 3] = m._spotUniform[0]; f.set(m._colorUniform, p); f[p + 3] = m._spotUniform[1]; } t.setUniform("cc_spotLightPositionAndRange", u); t.setUniform("cc_spotLightDirection", _); t.setUniform("cc_spotLightColor", f); } }; e.prototype._submitShadowStageUniforms = function(t) { var e = t._shadowLight; this._device.setUniform("cc_minDepth", e.shadowMinDepth); this._device.setUniform("cc_maxDepth", e.shadowMaxDepth); this._device.setUniform("cc_bias", e.shadowBias); this._device.setUniform("cc_depthScale", e.shadowDepthScale); }; e.prototype._submitOtherStagesUniforms = function() { for (var t = 0; t < this._shadowLights.length; ++t) { var e = this._shadowLights[t]; this._device.setUniform("cc_lightViewProjMatrix_" + t, o.mat4.array(y, e.viewProjMatrix)); this._device.setUniform("cc_minDepth_" + t, e.shadowMinDepth); this._device.setUniform("cc_maxDepth_" + t, e.shadowMaxDepth); this._device.setUniform("cc_bias_" + t, e.shadowBias); this._device.setUniform("cc_depthScale_" + t, e.shadowDepthScale); this._device.setUniform("cc_darkness_" + t, e.shadowDarkness); this._device.setUniform("cc_frustumEdgeFalloff_" + t, e.frustumEdgeFalloff); } }; e.prototype._updateShaderDefines = function(t) { t.defines.push(this._defines); }; e.prototype._sortItems = function(t) { t.sort((function(t, e) { var i = t.technique, n = e.technique; return i._layer !== n._layer ? i._layer - n._layer : i._passes.length !== n._passes.length ? i._passes.length - n._passes.length : t.sortKey - e.sortKey; })); }; e.prototype._shadowStage = function(t, e) { this._device.setUniform("cc_lightViewProjMatrix", o.mat4.array(p, t._matViewProj)); this._submitShadowStageUniforms(t); for (var i = 0; i < e.length; ++i) { var n = e.data[i]; if (this._programLib._getValueFromDefineList("_SHADOW_CASTING", n.defines)) { this._updateShaderDefines(n); this._draw(n); } } }; e.prototype._drawItems = function(t, e) { var i = this._shadowLights; if (0 === i.length && 0 === this._numLights) for (var n = 0; n < e.length; ++n) { var r = e.data[n]; this._draw(r); } else for (var s = 0; s < e.length; ++s) { for (var o = e.data[s], a = 0; a < i.length; ++a) { var c = i[a]; this._device.setTexture("_shadowMap_" + a, c.shadowMap, this._allocTextureUnit()); } this._updateShaderDefines(o); this._draw(o); } }; e.prototype._opaqueStage = function(t, e) { t.getPosition(g); this._device.setUniform("cc_matView", o.mat4.array(d, t._matView)); this._device.setUniform("cc_matpProj", o.mat4.array(m, t._matProj)); this._device.setUniform("cc_matViewProj", o.mat4.array(p, t._matViewProj)); this._device.setUniform("cc_cameraPos", o.vec3.array(v, g)); this._submitLightsUniforms(); this._submitOtherStagesUniforms(); this._drawItems(t, e); }; e.prototype._transparentStage = function(t, e) { t.getPosition(g); t.getForward(x); this._device.setUniform("cc_matView", o.mat4.array(d, t._matView)); this._device.setUniform("cc_matpProj", o.mat4.array(m, t._matProj)); this._device.setUniform("cc_matViewProj", o.mat4.array(p, t._matViewProj)); this._device.setUniform("cc_cameraPos", o.vec3.array(v, g)); this._submitLightsUniforms(); this._submitOtherStagesUniforms(); for (var i = 0; i < e.length; ++i) { var n = e.data[i]; n.node.getWorldPosition(C); o.vec3.sub(C, C, g); n.sortKey = -o.vec3.dot(C, x); } this._sortItems(e); this._drawItems(t, e); }; s(e, [ { key: "sceneAmbient", get: function() { var t = this._sceneAmbient; return cc.color(255 * t.r, 255 * t.g, 255 * t.b, 255); }, set: function(t) { this._sceneAmbient[0] = t.r / 255; this._sceneAmbient[1] = t.g / 255; this._sceneAmbient[2] = t.b / 255; } } ]); return e; })(a.default); r.default = A; n.exports = r.default; }), { "../../core/vmath": 317, "../core/base-renderer": 337, "../enums": 344, "../memop": 361 } ], 371: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.default = void 0; var n = t("../../core/vmath"), r = o(t("../../core/geom-utils")), s = o(t("../enums")); function o(t) { return t && t.__esModule ? t : { default: t }; } function a(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var c = n.vec3.create(), l = n.vec3.create(), h = n.mat4.create(), u = n.mat4.create(), _ = n.mat4.create(), f = n.mat4.create(), d = n.mat4.create(), m = (function() { function t() { a(this, t); this._poolID = -1; this._node = null; this._projection = s.default.PROJ_PERSPECTIVE; this._priority = 0; this._color = n.color4.create(.2, .3, .47, 1); this._depth = 1; this._stencil = 0; this._clearFlags = s.default.CLEAR_COLOR | s.default.CLEAR_DEPTH; this._clearModel = null; this._stages = []; this._framebuffer = null; this._near = .01; this._far = 1e3; this._fov = Math.PI / 4; this._rect = { x: 0, y: 0, w: 1, h: 1 }; this._orthoHeight = 10; this._cullingMask = 4294967295; } t.prototype.getNode = function() { return this._node; }; t.prototype.setNode = function(t) { this._node = t; }; t.prototype.getType = function() { return this._projection; }; t.prototype.setType = function(t) { this._projection = t; }; t.prototype.getPriority = function() { return this._priority; }; t.prototype.setPriority = function(t) { this._priority = t; }; t.prototype.getOrthoHeight = function() { return this._orthoHeight; }; t.prototype.setOrthoHeight = function(t) { this._orthoHeight = t; }; t.prototype.getFov = function() { return this._fov; }; t.prototype.setFov = function(t) { this._fov = t; }; t.prototype.getNear = function() { return this._near; }; t.prototype.setNear = function(t) { this._near = t; }; t.prototype.getFar = function() { return this._far; }; t.prototype.setFar = function(t) { this._far = t; }; t.prototype.getColor = function(t) { return n.color4.copy(t, this._color); }; t.prototype.setColor = function(t, e, i, r) { n.color4.set(this._color, t, e, i, r); }; t.prototype.getDepth = function() { return this._depth; }; t.prototype.setDepth = function(t) { this._depth = t; }; t.prototype.getStencil = function() { return this._stencil; }; t.prototype.setStencil = function(t) { this._stencil = t; }; t.prototype.getClearFlags = function() { return this._clearFlags; }; t.prototype.setClearFlags = function(t) { this._clearFlags = t; }; t.prototype.getRect = function(t) { t.x = this._rect.x; t.y = this._rect.y; t.w = this._rect.w; t.h = this._rect.h; return t; }; t.prototype.setRect = function(t, e, i, n) { this._rect.x = t; this._rect.y = e; this._rect.w = i; this._rect.h = n; }; t.prototype.getStages = function() { return this._stages; }; t.prototype.setStages = function(t) { this._stages = t; }; t.prototype.getFramebuffer = function() { return this._framebuffer; }; t.prototype.setFramebuffer = function(t) { this._framebuffer = t; }; t.prototype._calcMatrices = function(t, e) { this._node.getWorldRT(u); n.mat4.invert(u, u); var i = t / e; if (this._projection === s.default.PROJ_PERSPECTIVE) n.mat4.perspective(_, this._fov, i, this._near, this._far); else { var r = this._orthoHeight * i, o = this._orthoHeight; n.mat4.ortho(_, -r, r, -o, o, this._near, this._far); } n.mat4.mul(f, _, u); n.mat4.invert(d, f); }; t.prototype.extractView = function(t, e, i) { if (this._framebuffer) { e = this._framebuffer._width; i = this._framebuffer._height; } t._priority = this._priority; t._rect.x = this._rect.x * e; t._rect.y = this._rect.y * i; t._rect.w = this._rect.w * e; t._rect.h = this._rect.h * i; this.getColor(t._color); t._depth = this._depth; t._stencil = this._stencil; t._clearFlags = this._clearFlags; t._clearModel = this._clearModel; t._stages = this._stages; t._framebuffer = this._framebuffer; this._calcMatrices(e, i); n.mat4.copy(t._matView, u); n.mat4.copy(t._matProj, _); n.mat4.copy(t._matViewProj, f); n.mat4.copy(t._matInvViewProj, d); t._cullingMask = this._cullingMask; }; t.prototype.screenPointToRay = function(t, e, i, o, a) { if (!r.default) return a; a = a || r.default.Ray.create(); this._calcMatrices(i, o); var h = this._rect.x * i, u = this._rect.y * o, _ = this._rect.w * i, f = this._rect.h * o; n.vec3.set(l, (t - h) / _ * 2 - 1, (e - u) / f * 2 - 1, 1); n.vec3.transformMat4(l, l, d); if (this._projection === s.default.PROJ_PERSPECTIVE) this._node.getWorldPosition(c); else { n.vec3.set(c, (t - h) / _ * 2 - 1, (e - u) / f * 2 - 1, -1); n.vec3.transformMat4(c, c, d); } return r.default.Ray.fromPoints(a, c, l); }; t.prototype.screenToWorld = function(t, e, i, r) { this._calcMatrices(i, r); var o = this._rect.x * i, a = this._rect.y * r, l = this._rect.w * i, h = this._rect.h * r; if (this._projection === s.default.PROJ_PERSPECTIVE) { n.vec3.set(t, (e.x - o) / l * 2 - 1, (e.y - a) / h * 2 - 1, 1); n.vec3.transformMat4(t, t, d); this._node.getWorldPosition(c); n.vec3.lerp(t, c, t, (0, n.lerp)(this._near / this._far, 1, e.z)); } else { n.vec3.set(t, (e.x - o) / l * 2 - 1, (e.y - a) / h * 2 - 1, 2 * e.z - 1); n.vec3.transformMat4(t, t, d); } return t; }; t.prototype.worldToScreen = function(t, e, i, r) { this._calcMatrices(i, r); var s = this._rect.x * i, o = this._rect.y * r, a = this._rect.w * i, c = this._rect.h * r; n.vec3.transformMat4(t, e, f); t.x = s + .5 * (t.x + 1) * a; t.y = o + .5 * (t.y + 1) * c; t.z = .5 * t.z + .5; return t; }; t.prototype.worldMatrixToScreen = function(t, e, i, r) { this._calcMatrices(i, r); n.mat4.mul(t, f, e); var s = i / 2, o = r / 2; n.mat4.identity(h); n.mat4.translate(h, h, n.vec3.set(c, s, o, 0)); n.mat4.scale(h, h, n.vec3.set(c, s, o, 1)); n.mat4.mul(t, h, t); return t; }; return t; })(); i.default = m; e.exports = i.default; }), { "../../core/geom-utils": 138, "../../core/vmath": 317, "../enums": 344 } ], 372: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.default = void 0; var n = (function() { function t(t, e) { for (var i = 0; i < e.length; i++) { var n = e[i]; n.enumerable = n.enumerable || !1; n.configurable = !0; "value" in n && (n.writable = !0); Object.defineProperty(t, n.key, n); } } return function(e, i, n) { i && t(e.prototype, i); n && t(e, n); return e; }; })(), r = t("../../core/vmath"), s = a(t("../gfx")), o = a(t("../enums")); function a(t) { return t && t.__esModule ? t : { default: t }; } function c(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var l = r.vec3.create(0, 0, -1), h = r.mat4.create(), u = r.mat3.create(), _ = r.vec3.create(0, 0, 0); function f(t, e, i) { t._node.getWorldRT(e); r.mat4.invert(e, e); r.mat4.perspective(i, t._spotAngle * t._spotAngleScale, 1, t._shadowMinDepth, t._shadowMaxDepth); } function d(t, e, i) { t._node.getWorldRT(e); r.mat4.invert(e, e); var n = t._shadowFrustumSize / 2; r.mat4.ortho(i, -n, n, -n, n, t._shadowMinDepth, t._shadowMaxDepth); } function m(t, e, i) { t._node.getWorldRT(e); r.mat4.invert(e, e); r.mat4.perspective(i, (0, r.toRadian)(179), 1, t._shadowMinDepth, t._shadowMaxDepth); } var p = (function() { function t() { c(this, t); this._poolID = -1; this._node = null; this._type = o.default.LIGHT_DIRECTIONAL; this._color = r.color3.create(1, 1, 1); this._intensity = 1; this._range = 1; this._spotAngle = (0, r.toRadian)(60); this._spotExp = 1; this._directionUniform = new Float32Array(3); this._positionUniform = new Float32Array(3); this._colorUniform = new Float32Array([ this._color.r * this._intensity, this._color.g * this._intensity, this._color.b * this._intensity ]); this._spotUniform = new Float32Array([ Math.cos(.5 * this._spotAngle), this._spotExp ]); this._shadowType = o.default.SHADOW_NONE; this._shadowFrameBuffer = null; this._shadowMap = null; this._shadowMapDirty = !1; this._shadowDepthBuffer = null; this._shadowResolution = 1024; this._shadowBias = 5e-4; this._shadowDarkness = 1; this._shadowMinDepth = 1; this._shadowMaxDepth = 1e3; this._shadowDepthScale = 50; this._frustumEdgeFalloff = 0; this._viewProjMatrix = r.mat4.create(); this._spotAngleScale = 1; this._shadowFrustumSize = 50; } t.prototype.getNode = function() { return this._node; }; t.prototype.setNode = function(t) { this._node = t; }; t.prototype.setColor = function(t, e, i) { r.color3.set(this._color, t, e, i); this._colorUniform[0] = t * this._intensity; this._colorUniform[1] = e * this._intensity; this._colorUniform[2] = i * this._intensity; }; t.prototype.setIntensity = function(t) { this._intensity = t; this._colorUniform[0] = t * this._color.r; this._colorUniform[1] = t * this._color.g; this._colorUniform[2] = t * this._color.b; }; t.prototype.setType = function(t) { this._type = t; }; t.prototype.setSpotAngle = function(t) { this._spotAngle = t; this._spotUniform[0] = Math.cos(.5 * this._spotAngle); }; t.prototype.setSpotExp = function(t) { this._spotExp = t; this._spotUniform[1] = t; }; t.prototype.setRange = function(t) { this._range = t; }; t.prototype.setShadowType = function(t) { this._shadowType === o.default.SHADOW_NONE && t !== o.default.SHADOW_NONE && (this._shadowMapDirty = !0); this._shadowType = t; }; t.prototype.setShadowResolution = function(t) { this._shadowResolution !== t && (this._shadowMapDirty = !0); this._shadowResolution = t; }; t.prototype.setShadowBias = function(t) { this._shadowBias = t; }; t.prototype.setShadowDarkness = function(t) { this._shadowDarkness = t; }; t.prototype.setShadowMinDepth = function(t) { this._shadowMinDepth = t; }; t.prototype.setShadowMaxDepth = function(t) { this._shadowMaxDepth = t; }; t.prototype.setShadowDepthScale = function(t) { this._shadowDepthScale = t; }; t.prototype.setFrustumEdgeFalloff = function(t) { this._frustumEdgeFalloff = t; }; t.prototype.setShadowFrustumSize = function(t) { this._shadowFrustumSize = t; }; t.prototype.extractView = function(t, e) { t._shadowLight = this; t._priority = -1; t._rect.x = 0; t._rect.y = 0; t._rect.w = this._shadowResolution; t._rect.h = this._shadowResolution; r.color4.set(t._color, 1, 1, 1, 1); t._depth = 1; t._stencil = 1; t._clearFlags = o.default.CLEAR_COLOR | o.default.CLEAR_DEPTH; t._stages = e; t._framebuffer = this._shadowFrameBuffer; switch (this._type) { case o.default.LIGHT_SPOT: f(this, t._matView, t._matProj); break; case o.default.LIGHT_DIRECTIONAL: d(this, t._matView, t._matProj); break; case o.default.LIGHT_POINT: m(this, t._matView, t._matProj); break; default: console.warn("shadow of this light type is not supported"); } r.mat4.mul(t._matViewProj, t._matProj, t._matView); this._viewProjMatrix = t._matViewProj; r.mat4.invert(t._matInvViewProj, t._matViewProj); t._cullingMask = 4294967295; }; t.prototype._updateLightPositionAndDirection = function() { this._node.getWorldMatrix(h); r.mat3.fromMat4(u, h); r.vec3.transformMat3(_, l, u); r.vec3.array(this._directionUniform, _); var t = this._positionUniform; t[0] = h.m12; t[1] = h.m13; t[2] = h.m14; }; t.prototype._generateShadowMap = function(t) { this._shadowMap = new s.default.Texture2D(t, { width: this._shadowResolution, height: this._shadowResolution, format: s.default.TEXTURE_FMT_RGBA8, wrapS: s.default.WRAP_CLAMP, wrapT: s.default.WRAP_CLAMP }); this._shadowDepthBuffer = new s.default.RenderBuffer(t, s.default.RB_FMT_D16, this._shadowResolution, this._shadowResolution); this._shadowFrameBuffer = new s.default.FrameBuffer(t, this._shadowResolution, this._shadowResolution, { colors: [ this._shadowMap ], depth: this._shadowDepthBuffer }); }; t.prototype._destroyShadowMap = function() { if (this._shadowMap) { this._shadowMap.destroy(); this._shadowDepthBuffer.destroy(); this._shadowFrameBuffer.destroy(); this._shadowMap = null; this._shadowDepthBuffer = null; this._shadowFrameBuffer = null; } }; t.prototype.update = function(t) { this._updateLightPositionAndDirection(); if (this._shadowType === o.default.SHADOW_NONE) this._destroyShadowMap(); else if (this._shadowMapDirty) { this._destroyShadowMap(); this._generateShadowMap(t); this._shadowMapDirty = !1; } }; n(t, [ { key: "color", get: function() { return this._color; } }, { key: "intensity", get: function() { return this._intensity; } }, { key: "type", get: function() { return this._type; } }, { key: "spotAngle", get: function() { return this._spotAngle; } }, { key: "spotExp", get: function() { return this._spotExp; } }, { key: "range", get: function() { return this._range; } }, { key: "shadowType", get: function() { return this._shadowType; } }, { key: "shadowMap", get: function() { return this._shadowMap; } }, { key: "viewProjMatrix", get: function() { return this._viewProjMatrix; } }, { key: "shadowResolution", get: function() { return this._shadowResolution; } }, { key: "shadowBias", get: function() { return this._shadowBias; } }, { key: "shadowDarkness", get: function() { return this._shadowDarkness; } }, { key: "shadowMinDepth", get: function() { return this._type === o.default.LIGHT_DIRECTIONAL ? 1 : this._shadowMinDepth; } }, { key: "shadowMaxDepth", get: function() { return this._type === o.default.LIGHT_DIRECTIONAL ? 1 : this._shadowMaxDepth; } }, { key: "shadowDepthScale", get: function() { return this._shadowDepthScale; } }, { key: "frustumEdgeFalloff", get: function() { return this._frustumEdgeFalloff; } }, { key: "shadowFrustumSize", get: function() { return this._shadowFrustumSize; } } ]); return t; })(); i.default = p; e.exports = i.default; }), { "../../core/vmath": 317, "../enums": 344, "../gfx": 349 } ], 373: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.default = void 0; var n = (function(t) { return t && t.__esModule ? t : { default: t }; })(t("../../core/geom-utils")); function r(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var s = (function() { function t() { r(this, t); this._type = "default"; this._poolID = -1; this._node = null; this._inputAssembler = null; this._effect = null; this._viewID = -1; this._cameraID = -1; this._userKey = -1; this._castShadow = !1; this._boundingShape = null; this._defines = []; this._uniforms = []; } t.prototype._updateTransform = function() { if (this._node._hasChanged && this._boundingShape) { this._node.updateWorldTransformFull(); this._bsModelSpace.transform(this._node._mat, this._node._pos, this._node._rot, this._node._scale, this._boundingShape); } }; t.prototype.createBoundingShape = function(t, e) { if (n.default && t && e) { this._bsModelSpace = n.default.Aabb.fromPoints(n.default.Aabb.create(), t, e); this._boundingShape = n.default.Aabb.clone(this._bsModelSpace); } }; t.prototype.setNode = function(t) { this._node = t; }; t.prototype.setInputAssembler = function(t) { this._inputAssembler = t; }; t.prototype.setEffect = function(t, e) { this._effect = t; var i = this._defines, n = this._uniforms; i.length = 0; n.length = 0; if (t) { i.push(t._defines); n.push(t._properties); } if (e) { i.push(e._defines); n.push(e._properties); } }; t.prototype.setUserKey = function(t) { this._userKey = t; }; t.prototype.extractDrawItem = function(t) { t.model = this; t.node = this._node; t.ia = this._inputAssembler; t.effect = this._effect; t.defines = this._defines; t.dependencies = this._dependencies; t.uniforms = this._uniforms; }; return t; })(); i.default = s; e.exports = i.default; }), { "../../core/geom-utils": 138 } ], 374: [ (function(t, e, i) { "use strict"; i.__esModule = !0; var n = t("../memop"); function r(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } var s = (function() { function t(e) { r(this, t); this._lights = new n.FixedArray(16); this._models = new n.FixedArray(16); this._cameras = new n.FixedArray(16); this._debugCamera = null; this._app = e; this._views = []; } t.prototype._add = function(t, e) { if (-1 === e._poolID) { t.push(e); e._poolID = t.length - 1; } }; t.prototype._remove = function(t, e) { if (-1 !== e._poolID) { t.data[t.length - 1]._poolID = e._poolID; t.fastRemove(e._poolID); e._poolID = -1; } }; t.prototype.tick = function() { for (var t = 0; t < this._models.length; ++t) { this._models.data[t]._updateTransform(); } }; t.prototype.reset = function() { for (var t = 0; t < this._models.length; ++t) { this._models.data[t]._viewID = -1; } }; t.prototype.setDebugCamera = function(t) { this._debugCamera = t; }; t.prototype.getCameraCount = function() { return this._cameras.length; }; t.prototype.getCamera = function(t) { return this._cameras.data[t]; }; t.prototype.addCamera = function(t) { this._add(this._cameras, t); }; t.prototype.removeCamera = function(t) { this._remove(this._cameras, t); }; t.prototype.getModelCount = function() { return this._models.length; }; t.prototype.getModel = function(t) { return this._models.data[t]; }; t.prototype.addModel = function(t) { this._add(this._models, t); }; t.prototype.removeModel = function(t) { this._remove(this._models, t); }; t.prototype.getLightCount = function() { return this._lights.length; }; t.prototype.getLight = function(t) { return this._lights.data[t]; }; t.prototype.addLight = function(t) { this._add(this._lights, t); }; t.prototype.removeLight = function(t) { this._remove(this._lights, t); }; t.prototype.addView = function(t) { -1 === this._views.indexOf(t) && this._views.push(t); }; t.prototype.removeView = function(t) { var e = this._views.indexOf(t); -1 !== e && this._views.splice(e, 1); }; return t; })(); i.default = s; e.exports = i.default; }), { "../memop": 361 } ], 375: [ (function(t, e, i) { "use strict"; i.__esModule = !0; i.ctor2enums = i.enums2ctor = i.ctor2default = void 0; var n, r, s, o = h(t("./enums")), a = t("../core/value-types"), c = h(t("../core/assets/CCTexture2D")), l = h(t("./gfx/texture-2d")); h(t("./gfx/texture-cube")); function h(t) { return t && t.__esModule ? t : { default: t }; } var u = cc.Object; i.ctor2default = ((n = {})[Number] = function(t) { return t || 0; }, n[Boolean] = function(t) { return t || !1; }, n[a.Vec2] = function(t) { return t ? cc.v2(t[0], t[1]) : cc.v2(); }, n[a.Vec3] = function(t) { return t ? cc.v3(t[0], t[1], t[2]) : cc.v3(); }, n[a.Vec4] = function(t) { return t ? cc.v4(t[0], t[1], t[2], t[3]) : cc.v4(); }, n[a.Color] = function(t) { return t ? cc.color(255 * t[0], 255 * t[1], 255 * t[2], 255 * (t[3] || 1)) : cc.color(); }, n[a.Mat4] = function(t) { return t ? cc.mat4(t[0], t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8], t[9], t[10], t[11], t[12], t[13], t[14], t[15]) : cc.mat4(); }, n[c.default] = function() { return null; }, n[u] = function() { return null; }, n), i.enums2ctor = ((r = {})[o.default.PARAM_INT] = Number, r[o.default.PARAM_INT2] = a.Vec2, r[o.default.PARAM_INT3] = a.Vec3, r[o.default.PARAM_INT4] = a.Vec4, r[o.default.PARAM_FLOAT] = Number, r[o.default.PARAM_FLOAT2] = a.Vec2, r[o.default.PARAM_FLOAT3] = a.Vec3, r[o.default.PARAM_FLOAT4] = a.Vec4, r[o.default.PARAM_COLOR3] = a.Color, r[o.default.PARAM_COLOR4] = a.Color, r[o.default.PARAM_MAT4] = a.Mat4, r[o.default.PARAM_TEXTURE_2D] = c.default, r.number = Number, r.boolean = Boolean, r.default = u, r), i.ctor2enums = ((s = {})[Number] = o.default.PARAM_FLOAT, s[a.Vec2] = o.default.PARAM_FLOAT2, s[a.Vec3] = o.default.PARAM_FLOAT3, s[a.Vec4] = o.default.PARAM_FLOAT4, s[a.Color] = o.default.PARAM_COLOR3, s[a.Color] = o.default.PARAM_COLOR4, s[a.Mat4] = o.default.PARAM_MAT4, s[c.default] = o.default.PARAM_TEXTURE_2D, s[l.default] = o.default.PARAM_TEXTURE_2D, s); }), { "../core/assets/CCTexture2D": 73, "../core/value-types": 306, "./enums": 344, "./gfx/texture-2d": 354, "./gfx/texture-cube": 355 } ], 376: [ (function(t, e, i) { "use strict"; var n = t("../compression/ZipUtils"), r = t("../compression/zlib.min"), s = t("../core/platform/js"); t("../core/platform/CCSAXParser"); function o(t) { if (t.length % 4 != 0) return null; for (var e = t.length / 4, i = window.Uint32Array ? new Uint32Array(e) : [], n = 0; n < e; n++) { var r = 4 * n; i[n] = t[r] + 256 * t[r + 1] + 65536 * t[r + 2] + t[r + 3] * (1 << 24); } return i; } cc.TMXLayerInfo = function() { this.properties = {}; this.name = ""; this._layerSize = null; this._tiles = []; this.visible = !0; this._opacity = 0; this.ownTiles = !0; this._minGID = 1e5; this._maxGID = 0; this.offset = cc.v2(0, 0); }; cc.TMXLayerInfo.prototype = { constructor: cc.TMXLayerInfo, getProperties: function() { return this.properties; }, setProperties: function(t) { this.properties = t; } }; cc.TMXObjectGroupInfo = function() { this.properties = {}; this.name = ""; this._objects = []; this.visible = !0; this._opacity = 0; this._color = new cc.Color(255, 255, 255, 255); this.offset = cc.v2(0, 0); this._draworder = "topdown"; }; cc.TMXObjectGroupInfo.prototype = { constructor: cc.TMXObjectGroupInfo, getProperties: function() { return this.properties; }, setProperties: function(t) { this.properties = t; } }; cc.TMXTilesetInfo = function() { this.name = ""; this.firstGid = 0; this.spacing = 0; this.margin = 0; this.sourceImage = null; this.imageSize = cc.size(0, 0); this.tileOffset = cc.v2(0, 0); this._tileSize = cc.size(0, 0); }; cc.TMXTilesetInfo.prototype = { constructor: cc.TMXTilesetInfo, rectForGID: function(t, e) { var i = e || cc.rect(0, 0, 0, 0); i.width = this._tileSize.width; i.height = this._tileSize.height; t &= cc.TiledMap.TileFlag.FLIPPED_MASK; t -= parseInt(this.firstGid, 10); var n = parseInt((this.imageSize.width - 2 * this.margin + this.spacing) / (this._tileSize.width + this.spacing), 10); i.x = parseInt(t % n * (this._tileSize.width + this.spacing) + this.margin, 10); i.y = parseInt(parseInt(t / n, 10) * (this._tileSize.height + this.spacing) + this.margin, 10); return i; } }; function a(t, e) { for (var i = [], n = t.getElementsByTagName("properties"), r = 0; r < n.length; ++r) for (var s = n[r].getElementsByTagName("property"), o = 0; o < s.length; ++o) i.push(s[o]); e = e || {}; for (var a = 0; a < i.length; a++) { var c = i[a], l = c.getAttribute("name"), h = c.getAttribute("type") || "string", u = c.getAttribute("value"); if ("int" === h) u = parseInt(u); else if ("float" === h) u = parseFloat(u); else if ("bool" === h) u = "true" === u; else if ("color" === h) { u = 0 === u.indexOf("#") ? u.substring(1) : u; var _ = parseInt(u.substr(0, 2), 16) || 255, f = parseInt(u.substr(2, 2), 16) || 0, d = parseInt(u.substr(4, 2), 16) || 0, m = parseInt(u.substr(6, 2), 16) || 0; u = cc.color(f, d, m, _); } e[l] = u; } return e; } cc.TMXMapInfo = function(t, e, i) { this.properties = []; this.orientation = null; this.parentElement = null; this.parentGID = null; this.layerAttrs = 0; this.storingCharacters = !1; this.currentString = null; this._parser = new cc.SAXParser(); this._objectGroups = []; this._allChildren = []; this._mapSize = cc.size(0, 0); this._tileSize = cc.size(0, 0); this._layers = []; this._tilesets = []; this._tileProperties = {}; this._tsxMap = null; this._textures = null; this._staggerAxis = null; this._staggerIndex = null; this._hexSideLength = 0; this.initWithXML(t, e, i); }; cc.TMXMapInfo.prototype = { constructor: cc.TMXMapInfo, getOrientation: function() { return this.orientation; }, setOrientation: function(t) { this.orientation = t; }, getStaggerAxis: function() { return this._staggerAxis; }, setStaggerAxis: function(t) { this._staggerAxis = t; }, getStaggerIndex: function() { return this._staggerIndex; }, setStaggerIndex: function(t) { this._staggerIndex = t; }, getHexSideLength: function() { return this._hexSideLength; }, setHexSideLength: function(t) { this._hexSideLength = t; }, getMapSize: function() { return cc.size(this._mapSize.width, this._mapSize.height); }, setMapSize: function(t) { this._mapSize.width = t.width; this._mapSize.height = t.height; }, _getMapWidth: function() { return this._mapSize.width; }, _setMapWidth: function(t) { this._mapSize.width = t; }, _getMapHeight: function() { return this._mapSize.height; }, _setMapHeight: function(t) { this._mapSize.height = t; }, getTileSize: function() { return cc.size(this._tileSize.width, this._tileSize.height); }, setTileSize: function(t) { this._tileSize.width = t.width; this._tileSize.height = t.height; }, _getTileWidth: function() { return this._tileSize.width; }, _setTileWidth: function(t) { this._tileSize.width = t; }, _getTileHeight: function() { return this._tileSize.height; }, _setTileHeight: function(t) { this._tileSize.height = t; }, getLayers: function() { return this._layers; }, setLayers: function(t) { this._allChildren.push(t); this._layers.push(t); }, getTilesets: function() { return this._tilesets; }, setTilesets: function(t) { this._tilesets.push(t); }, getObjectGroups: function() { return this._objectGroups; }, setObjectGroups: function(t) { this._allChildren.push(t); this._objectGroups.push(t); }, getAllChildren: function() { return this._allChildren; }, getParentElement: function() { return this.parentElement; }, setParentElement: function(t) { this.parentElement = t; }, getParentGID: function() { return this.parentGID; }, setParentGID: function(t) { this.parentGID = t; }, getLayerAttribs: function() { return this.layerAttrs; }, setLayerAttribs: function(t) { this.layerAttrs = t; }, getStoringCharacters: function() { return this.storingCharacters; }, setStoringCharacters: function(t) { this.storingCharacters = t; }, getProperties: function() { return this.properties; }, setProperties: function(t) { this.properties = t; }, initWithXML: function(t, e, i) { this._tilesets.length = 0; this._layers.length = 0; this._tsxMap = e; this._textures = i; this._objectGroups.length = 0; this._allChildren.length = 0; this.properties.length = 0; this._tileProperties.length = 0; this.currentString = ""; this.storingCharacters = !1; this.layerAttrs = cc.TMXLayerInfo.ATTRIB_NONE; this.parentElement = cc.TiledMap.NONE; return this.parseXMLString(t); }, parseXMLString: function(t, e) { var i = void 0, n = this._parser._parseXML(t).documentElement, r = n.getAttribute("version"), s = n.getAttribute("orientation"), o = n.getAttribute("staggeraxis"), c = n.getAttribute("staggerindex"), l = n.getAttribute("hexsidelength"); if ("map" === n.nodeName) { "1.0" !== r && null !== r && cc.logID(7216, r); "orthogonal" === s ? this.orientation = cc.TiledMap.Orientation.ORTHO : "isometric" === s ? this.orientation = cc.TiledMap.Orientation.ISO : "hexagonal" === s ? this.orientation = cc.TiledMap.Orientation.HEX : null !== s && cc.logID(7217, s); "x" === o ? this.setStaggerAxis(cc.TiledMap.StaggerAxis.STAGGERAXIS_X) : "y" === o && this.setStaggerAxis(cc.TiledMap.StaggerAxis.STAGGERAXIS_Y); "odd" === c ? this.setStaggerIndex(cc.TiledMap.StaggerIndex.STAGGERINDEX_ODD) : "even" === c && this.setStaggerIndex(cc.TiledMap.StaggerIndex.STAGGERINDEX_EVEN); l && this.setHexSideLength(parseFloat(l)); var h = cc.size(0, 0); h.width = parseFloat(n.getAttribute("width")); h.height = parseFloat(n.getAttribute("height")); this.setMapSize(h); (h = cc.size(0, 0)).width = parseFloat(n.getAttribute("tilewidth")); h.height = parseFloat(n.getAttribute("tileheight")); this.setTileSize(h); this.properties = a(n); } var u = n.getElementsByTagName("tileset"); "map" !== n.nodeName && (u = []).push(n); for (i = 0; i < u.length; i++) { var _ = u[i], f = _.getAttribute("source"); if (f) { var d = parseInt(_.getAttribute("firstgid")), m = this._tsxMap[f]; m && this.parseXMLString(m, d); } else { var p = new cc.TMXTilesetInfo(); p.name = _.getAttribute("name") || ""; p.firstGid = e || (parseInt(_.getAttribute("firstgid")) || 0); p.spacing = parseInt(_.getAttribute("spacing")) || 0; p.margin = parseInt(_.getAttribute("margin")) || 0; var v = cc.size(0, 0); v.width = parseFloat(_.getAttribute("tilewidth")); v.height = parseFloat(_.getAttribute("tileheight")); p._tileSize = v; var y = _.getElementsByTagName("image")[0].getAttribute("source"); y.replace(/\\/g, "/"); p.sourceImage = this._textures[y]; p.sourceImage || cc.errorID(7221, y); this.setTilesets(p); var g = _.getElementsByTagName("tileoffset")[0]; if (g) { var x = parseFloat(g.getAttribute("x")), C = parseFloat(g.getAttribute("y")); p.tileOffset = cc.v2(x, C); } var b = _.getElementsByTagName("tile"); if (b) for (var A = 0; A < b.length; A++) { var S = b[A]; this.parentGID = parseInt(p.firstGid) + parseInt(S.getAttribute("id") || 0); this._tileProperties[this.parentGID] = a(S); } } } var w = n.childNodes; for (i = 0; i < w.length; i++) { var T = w[i]; if (!this._shouldIgnoreNode(T)) { if ("layer" === T.nodeName) { var E = this._parseLayer(T); this.setLayers(E); } if ("objectgroup" === T.nodeName) { var M = this._parseObjectGroup(T); this.setObjectGroups(M); } } } return n; }, _shouldIgnoreNode: function(t) { return 3 === t.nodeType || 8 === t.nodeType || 4 === t.nodeType; }, _parseLayer: function(t) { var e = t.getElementsByTagName("data")[0], i = new cc.TMXLayerInfo(); i.name = t.getAttribute("name"); var s = cc.size(0, 0); s.width = parseFloat(t.getAttribute("width")); s.height = parseFloat(t.getAttribute("height")); i._layerSize = s; var c = t.getAttribute("visible"); i.visible = !("0" === c); var l = t.getAttribute("opacity") || 1; i._opacity = l ? parseInt(255 * parseFloat(l)) : 255; i.offset = cc.v2(parseFloat(t.getAttribute("x")) || 0, parseFloat(t.getAttribute("y")) || 0); for (var h = "", u = 0; u < e.childNodes.length; u++) h += e.childNodes[u].nodeValue; h = h.trim(); var _ = e.getAttribute("compression"), f = e.getAttribute("encoding"); if (_ && "gzip" !== _ && "zlib" !== _) { cc.logID(7218); return null; } var d = void 0; switch (_) { case "gzip": d = n.unzipBase64AsArray(h, 4); break; case "zlib": d = o(new r.Inflate(n.Base64.decodeAsArray(h, 1)).decompress()); break; case null: case "": if ("base64" === f) d = n.Base64.decodeAsArray(h, 4); else if ("csv" === f) { d = []; for (var m = h.split(","), p = 0; p < m.length; p++) d.push(parseInt(m[p])); } else { var v = e.getElementsByTagName("tile"); d = []; for (var y = 0; y < v.length; y++) d.push(parseInt(v[y].getAttribute("gid"))); } break; default: this.layerAttrs === cc.TMXLayerInfo.ATTRIB_NONE && cc.logID(7219); } d && (i._tiles = new Uint32Array(d)); i.properties = a(t); return i; }, _parseObjectGroup: function(t) { var e = new cc.TMXObjectGroupInfo(); e.name = t.getAttribute("name") || ""; e.offset = cc.v2(parseFloat(t.getAttribute("offsetx")), parseFloat(t.getAttribute("offsety"))); var i = t.getAttribute("opacity") || 1; e._opacity = i ? parseInt(255 * parseFloat(i)) : 255; var n = t.getAttribute("visible"); n && 0 === parseInt(n) && (e.visible = !1); var r = t.getAttribute("color"); r && e._color.fromHEX(r); var s = t.getAttribute("draworder"); s && (e._draworder = s); e.setProperties(a(t)); var o = t.getElementsByTagName("object"); if (o) for (var c = 0; c < o.length; c++) { var l = o[c], h = {}; h.id = l.getAttribute("id") || 0; h.name = l.getAttribute("name") || ""; h.width = parseFloat(l.getAttribute("width")) || 0; h.height = parseFloat(l.getAttribute("height")) || 0; h.x = parseFloat(l.getAttribute("x")) || 0; h.y = parseFloat(l.getAttribute("y")) || 0; h.rotation = parseFloat(l.getAttribute("rotation")) || 0; a(l, h); var u = l.getAttribute("visible"); h.visible = !(u && 0 === parseInt(u)); var _ = l.getAttribute("gid"); if (_) { h.gid = parseInt(_); h.type = cc.TiledMap.TMXObjectType.IMAGE; } var f = l.getElementsByTagName("ellipse"); f && f.length > 0 && (h.type = cc.TiledMap.TMXObjectType.ELLIPSE); var d = l.getElementsByTagName("polygon"); if (d && d.length > 0) { h.type = cc.TiledMap.TMXObjectType.POLYGON; var m = d[0].getAttribute("points"); m && (h.points = this._parsePointsString(m)); } var p = l.getElementsByTagName("polyline"); if (p && p.length > 0) { h.type = cc.TiledMap.TMXObjectType.POLYLINE; var v = p[0].getAttribute("points"); v && (h.polylinePoints = this._parsePointsString(v)); } h.type || (h.type = cc.TiledMap.TMXObjectType.RECT); e._objects.push(h); } return e; }, _parsePointsString: function(t) { if (!t) return null; for (var e = [], i = t.split(" "), n = 0; n < i.length; n++) { var r = i[n].split(","); e.push({ x: parseFloat(r[0]), y: parseFloat(r[1]) }); } return e; }, getTileProperties: function() { return this._tileProperties; }, setTileProperties: function(t) { this._tileProperties.push(t); }, getCurrentString: function() { return this.currentString; }, setCurrentString: function(t) { this.currentString = t; } }; var c = cc.TMXMapInfo.prototype; s.getset(c, "mapWidth", c._getMapWidth, c._setMapWidth); s.getset(c, "mapHeight", c._getMapHeight, c._setMapHeight); s.getset(c, "tileWidth", c._getTileWidth, c._setTileWidth); s.getset(c, "tileHeight", c._getTileHeight, c._setTileHeight); cc.TMXLayerInfo.ATTRIB_NONE = 1; cc.TMXLayerInfo.ATTRIB_BASE64 = 2; cc.TMXLayerInfo.ATTRIB_GZIP = 4; cc.TMXLayerInfo.ATTRIB_ZLIB = 8; }), { "../compression/ZipUtils": 22, "../compression/zlib.min": 25, "../core/platform/CCSAXParser": 208, "../core/platform/js": 221 } ], 377: [ (function(i, n, r) { "use strict"; var s = i("../core/components/CCRenderComponent"), o = i("../core/assets/material/CCMaterial"), a = cc.Class({ name: "cc.TiledLayer", extends: s, editor: { inspector: "packages://inspector/inspectors/comps/tiled-layer.js" }, ctor: function() { this._tiles = []; this._texGrids = []; this._textures = []; this._spriteTiles = {}; this._tiledTiles = []; this._layerName = ""; this._layerOrientation = null; }, getLayerName: function() { return this._layerName; }, setLayerName: function(t) { this._layerName = t; }, getProperty: function(t) { return this._properties[t]; }, getPositionAt: function(t, e) { var i = void 0; if (void 0 !== e) { i = Math.floor(t); e = Math.floor(e); } else { i = Math.floor(t.x); e = Math.floor(t.y); } var n = void 0; switch (this._layerOrientation) { case cc.TiledMap.Orientation.ORTHO: n = this._positionForOrthoAt(i, e); break; case cc.TiledMap.Orientation.ISO: n = this._positionForIsoAt(i, e); break; case cc.TiledMap.Orientation.HEX: n = this._positionForHexAt(i, e); } return n; }, _isInvalidPosition: function(i, n) { if (i && "object" === ("object" === (e = typeof i) ? t(i) : e)) { var r = i; n = r.y; i = r.x; } return i >= this._layerSize.width || n >= this._layerSize.height || i < 0 || n < 0; }, _positionForIsoAt: function(t, e) { return cc.v2(this._mapTileSize.width / 2 * (this._layerSize.width + t - e - 1), this._mapTileSize.height / 2 * (2 * this._layerSize.height - t - e - 2)); }, _positionForOrthoAt: function(t, e) { return cc.v2(t * this._mapTileSize.width, (this._layerSize.height - e - 1) * this._mapTileSize.height); }, _positionForHexAt: function(t, e) { var i = this._mapTileSize.width, n = this._mapTileSize.height, r = this._layerSize.height, s = this._tileset.tileOffset, o = this.node.width / 2, a = this.node.height / 2, c = this._staggerIndex === cc.TiledMap.StaggerIndex.STAGGERINDEX_ODD ? 1 : -1, l = 0, h = 0; switch (this._staggerAxis) { case cc.TiledMap.StaggerAxis.STAGGERAXIS_Y: var u = 0, _ = this._staggerIndex === cc.TiledMap.StaggerIndex.STAGGERINDEX_ODD ? 0 : i / 2; e % 2 == 1 && (u = i / 2 * c); l = t * i + u + _ + s.x - o; h = (r - e - 1) * (n - (n - this._hexSideLength) / 2) - s.y - a; break; case cc.TiledMap.StaggerAxis.STAGGERAXIS_X: var f = 0, d = this._staggerIndex === cc.TiledMap.StaggerIndex.STAGGERINDEX_ODD ? n / 2 : 0; t % 2 == 1 && (f = n / 2 * -c); l = t * (i - (i - this._hexSideLength) / 2) + s.x - o; h = (r - e - 1) * n + f + d - s.y - a; } return cc.v2(l, h); }, setTileGIDAt: function(t, e, i, n) { if (void 0 === e) throw new Error("cc.TiledLayer.setTileGIDAt(): pos should be non-null"); var r = void 0; if (void 0 === n && e instanceof cc.Vec2) { r = e; n = i; } else r = cc.v2(e, i); r.x = Math.floor(r.x); r.y = Math.floor(r.y); if (this._isInvalidPosition(r)) throw new Error("cc.TiledLayer.setTileGIDAt(): invalid position"); if (this._tiles) if (0 !== t && t < this._tileset.firstGid) cc.logID(7239, t); else { n = n || 0; var s = this.getTileFlagsAt(r); if (this.getTileGIDAt(r) !== t || s !== n) { var o = (t | n) >>> 0; this._updateTileForGID(o, r); } } else cc.logID(7238); }, _updateTileForGID: function(t, e) { if (0 === t || this._texGrids[t]) { var i = 0 | e.x + e.y * this._layerSize.width; i < this._tiles.length && (this._tiles[i] = t); } }, getTileGIDAt: function(t, e) { if (void 0 === t) throw new Error("cc.TiledLayer.getTileGIDAt(): pos should be non-null"); var i = t; if (void 0 === e) { i = t.x; e = t.y; } if (this._isInvalidPosition(i, e)) throw new Error("cc.TiledLayer.getTileGIDAt(): invalid position"); if (!this._tiles) { cc.logID(7237); return null; } var n = Math.floor(i) + Math.floor(e) * this._layerSize.width; return (this._tiles[n] & cc.TiledMap.TileFlag.FLIPPED_MASK) >>> 0; }, getTileFlagsAt: function(t, e) { if (!t) throw new Error("TiledLayer.getTileFlagsAt: pos should be non-null"); void 0 !== e && (t = cc.v2(t, e)); if (this._isInvalidPosition(t)) throw new Error("TiledLayer.getTileFlagsAt: invalid position"); if (!this._tiles) { cc.logID(7240); return null; } var i = Math.floor(t.x) + Math.floor(t.y) * this._layerSize.width; return (this._tiles[i] & cc.TiledMap.TileFlag.FLIPPED_ALL) >>> 0; }, getTiledTileAt: function(t, e, i) { if (this._isInvalidPosition(t, e)) throw new Error("TiledLayer.getTiledTileAt: invalid position"); if (!this._tiles) { cc.logID(7236); return null; } var n = Math.floor(t) + Math.floor(e) * this._layerSize.width, r = this._tiledTiles[n]; if (!r && i) { var s = new cc.Node(); (r = s.addComponent(cc.TiledTile))._x = t; r._y = e; r._layer = this; r._updateInfo(); s.parent = this.node; return r; } return r; }, setTiledTileAt: function(t, e, i) { if (this._isInvalidPosition(t, e)) throw new Error("TiledLayer.setTiledTileAt: invalid position"); if (!this._tiles) { cc.logID(7236); return null; } var n = Math.floor(t) + Math.floor(e) * this._layerSize.width; return this._tiledTiles[n] = i; }, getTexture: function() { return this._texture; }, setTexture: function(t) { this._texture = t; this._activateMaterial(); }, getLayerSize: function() { return this._layerSize; }, getMapTileSize: function() { return this._mapTileSize; }, getTileSet: function() { return this._tileset; }, setTileSet: function(t) { this._tileset = t; }, getLayerOrientation: function() { return this._layerOrientation; }, getProperties: function() { return this._properties; }, _init: function(t, e, i) { var n = e._layerSize; this._layerName = e.name; this._tiles = e._tiles; this._properties = e.properties; this._layerSize = n; this._minGID = e._minGID; this._maxGID = e._maxGID; this._opacity = e._opacity; this._staggerAxis = i.getStaggerAxis(); this._staggerIndex = i.getStaggerIndex(); this._hexSideLength = i.getHexSideLength(); this._tileset = t; this._layerOrientation = i.orientation; this._mapTileSize = i.getTileSize(); var r = i._tilesets; if (r) { this._textures.length = r.length; this._texGrids.length = 0; for (var s = 0, o = r.length; s < o; ++s) { var a = r[s], c = a.sourceImage; this._textures[s] = c; this._fillTextureGrids(a, s); t === a && (this._texture = c); } } this._offset = this._calculateLayerOffset(e.offset); if (this._layerOrientation === cc.TiledMap.Orientation.HEX) { var l = 0, h = 0; if (this._staggerAxis === cc.TiledMap.StaggerAxis.STAGGERAXIS_X) { h = i._tileSize.height * (this._layerSize.height + .5); l = (i._tileSize.width + this._hexSideLength) * Math.floor(this._layerSize.width / 2) + i._tileSize.width * (this._layerSize.width % 2); } else { l = i._tileSize.width * (this._layerSize.width + .5); h = (i._tileSize.height + this._hexSideLength) * Math.floor(this._layerSize.height / 2) + i._tileSize.height * (this._layerSize.height % 2); } this.node.setContentSize(l, h); } else this.node.setContentSize(this._layerSize.width * this._mapTileSize.width, this._layerSize.height * this._mapTileSize.height); this._useAutomaticVertexZ = !1; this._vertexZvalue = 0; this._activateMaterial(); }, _calculateLayerOffset: function(t) { var e = cc.v2(0, 0); switch (this._layerOrientation) { case cc.TiledMap.Orientation.ORTHO: e = cc.v2(t.x * this._mapTileSize.width, -t.y * this._mapTileSize.height); break; case cc.TiledMap.Orientation.ISO: e = cc.v2(this._mapTileSize.width / 2 * (t.x - t.y), this._mapTileSize.height / 2 * (-t.x - t.y)); break; case cc.TiledMap.Orientation.HEX: if (this._staggerAxis === cc.TiledMap.StaggerAxis.STAGGERAXIS_Y) { var i = this._staggerIndex === cc.TiledMap.StaggerIndex.STAGGERINDEX_EVEN ? this._mapTileSize.width / 2 : 0; e = cc.v2(t.x * this._mapTileSize.width + i, -t.y * (this._mapTileSize.height - (this._mapTileSize.width - this._hexSideLength) / 2)); } else if (this._staggerAxis === cc.TiledMap.StaggerAxis.STAGGERAXIS_X) { var n = this._staggerIndex === cc.TiledMap.StaggerIndex.STAGGERINDEX_ODD ? this._mapTileSize.height / 2 : 0; e = cc.v2(t.x * (this._mapTileSize.width - (this._mapTileSize.width - this._hexSideLength) / 2), -t.y * this._mapTileSize.height + n); } } return e; }, _fillTextureGrids: function(t, e) { var i = this._textures[e]; if (i) if (i.loaded) { if (!t.imageSize.width || !t.imageSize.height) { t.imageSize.width = i.width; t.imageSize.height = i.height; } for (var n = t._tileSize.width, r = t._tileSize.height, s = i.width, o = i.height, a = t.spacing, c = t.margin, l = Math.floor((s - 2 * c + a) / (n + a)), h = Math.floor((o - 2 * c + a) / (r + a)) * l, u = t.firstGid, _ = t.firstGid + h, f = this._texGrids, d = null, m = !!f[u], p = cc.macro.FIX_ARTIFACTS_BY_STRECHING_TEXEL_TMX ? .5 : 0; u < _; ++u) { m && !f[u] && (m = !1); if (!m && f[u]) break; d = { texId: e, x: 0, y: 0, width: n, height: r, t: 0, l: 0, r: 0, b: 0 }; t.rectForGID(u, d); d.x += p; d.y += p; d.width -= 2 * p; d.height -= 2 * p; d.t = d.y / o; d.l = d.x / s; d.r = (d.x + d.width) / s; d.b = (d.y + d.height) / o; f[u] = d; } } else i.once("load", (function() { this._fillTextureGrids(t, e); }), this); }, onEnable: function() { this._super(); this._activateMaterial(); }, _activateMaterial: function() { if (this._texture) { var t = this.sharedMaterials[0]; (t = t ? o.getInstantiatedMaterial(t, this) : o.getInstantiatedBuiltinMaterial("2d-sprite", this)).setProperty("texture", this._texture); this.setMaterial(0, t); this.markForRender(!0); } else this.disableRender(); } }); cc.TiledLayer = n.exports = a; }), { "../core/assets/material/CCMaterial": 75, "../core/components/CCRenderComponent": 106 } ], 378: [ (function(t, e, i) { "use strict"; t("./CCTMXXMLParser"); t("./CCTiledMapAsset"); t("./CCTiledLayer"); t("./CCTiledTile"); t("./CCTiledObjectGroup"); var n = cc.Enum({ ORTHO: 0, HEX: 1, ISO: 2 }), r = cc.Enum({ NONE: 0, MAP: 1, LAYER: 2, OBJECTGROUP: 3, OBJECT: 4, TILE: 5 }), s = cc.Enum({ HORIZONTAL: 2147483648, VERTICAL: 1073741824, DIAGONAL: 536870912, FLIPPED_ALL: 3758096384, FLIPPED_MASK: 536870911 }), o = cc.Enum({ STAGGERAXIS_X: 0, STAGGERAXIS_Y: 1 }), a = cc.Enum({ STAGGERINDEX_ODD: 0, STAGGERINDEX_EVEN: 1 }), c = cc.Enum({ RECT: 0, ELLIPSE: 1, POLYGON: 2, POLYLINE: 3, IMAGE: 4, TEXT: 5 }), l = cc.Class({ name: "cc.TiledMap", extends: cc.Component, editor: !1, ctor: function() { this._layers = []; this._groups = []; this._properties = []; this._tileProperties = []; this._mapSize = cc.size(0, 0); this._tileSize = cc.size(0, 0); }, statics: { Orientation: n, Property: r, TileFlag: s, StaggerAxis: o, StaggerIndex: a, TMXObjectType: c }, properties: { _tmxFile: { default: null, type: cc.TiledMapAsset }, tmxAsset: { get: function() { return this._tmxFile; }, set: function(t, e) { if (this._tmxFile !== t) { this._tmxFile = t; this._applyFile(); } }, type: cc.TiledMapAsset } }, getMapSize: function() { return this._mapSize; }, getTileSize: function() { return this._tileSize; }, getMapOrientation: function() { return this._mapOrientation; }, getObjectGroups: function() { return this._groups; }, getObjectGroup: function(t) { for (var e = this._groups, i = 0, n = e.length; i < n; i++) { var r = e[i]; if (r && r.getGroupName() === t) return r; } return null; }, getProperties: function() { return this._properties; }, getLayers: function() { return this._layers; }, getLayer: function(t) { for (var e = this._layers, i = 0, n = e.length; i < n; i++) { var r = e[i]; if (r && r.getLayerName() === t) return r; } return null; }, getProperty: function(t) { return this._properties[t.toString()]; }, getPropertiesForGID: function(t) { return this._tileProperties[t]; }, __preload: function() { this._tmxFile && this._applyFile(); }, onEnable: function() { this.node.on(cc.Node.EventType.ANCHOR_CHANGED, this._syncAnchorPoint, this); }, onDisable: function() { this.node.off(cc.Node.EventType.ANCHOR_CHANGED, this._syncAnchorPoint, this); }, _applyFile: function() { var t = this._tmxFile; if (t) { for (var e = t.textures, i = t.textureNames, n = {}, r = 0; r < e.length; ++r) n[i[r]] = e[r]; for (var s = t.tsxFileNames, o = t.tsxFiles, a = {}, c = 0; c < s.length; ++c) s[c].length > 0 && (a[s[c]] = o[c].text); var l = new cc.TMXMapInfo(t.tmxXmlStr, a, n), h = l.getTilesets(); h && 0 !== h.length || cc.logID(7241); this._buildWithMapInfo(l); } else this._releaseMapInfo(); }, _releaseMapInfo: function() { for (var t = this._layers, e = 0, i = t.length; e < i; e++) t[e].node.removeFromParent(); t.length = 0; for (var n = this._groups, r = 0, s = n.length; r < s; r++) n[r].node.removeFromParent(); n.length = 0; }, _syncAnchorPoint: function() { for (var t = this.node.getAnchorPoint(), e = 0, i = this._layers.length; e < i; e++) this._layers[e].node.setAnchorPoint(t); }, _buildWithMapInfo: function(t) { this._mapSize = t.getMapSize(); this._tileSize = t.getTileSize(); this._mapOrientation = t.orientation; this._properties = t.properties; this._tileProperties = t.getTileProperties(); this._releaseMapInfo(); var e = this._layers, i = this._groups, n = this.node, r = t.getAllChildren(); if (r && r.length > 0) for (var s = 0, o = r.length; s < o; s++) { var a = r[s], c = a.name, l = this.node.getChildByName(c); if (!l) { (l = new cc.Node()).name = c; n.addChild(l); } if (a instanceof cc.TMXLayerInfo && a.visible) { var h = l.getComponent(cc.TiledLayer); h || (h = l.addComponent(cc.TiledLayer)); var u = this._tilesetForLayer(a, t); h._init(u, a, t); a.ownTiles = !1; this.node.width = Math.max(this.node.width, l.width); this.node.height = Math.max(this.node.height, l.height); e.push(h); } else if (a instanceof cc.TMXObjectGroupInfo) { var _ = l.getComponent(cc.TiledObjectGroup); _ || (_ = l.addComponent(cc.TiledObjectGroup)); _._init(a, t); i.push(_); } } this._syncAnchorPoint(); }, _tilesetForLayer: function(t, e) { var i = t._layerSize, n = e.getTilesets(); if (n) for (var r = n.length - 1; r >= 0; r--) { var s = n[r]; if (s) for (var o = 0; o < i.height; o++) for (var a = 0; a < i.width; a++) { var c = a + i.width * o, l = t._tiles[c]; if (0 !== l && (l & cc.TiledMap.TileFlag.FLIPPED_MASK) >>> 0 >= s.firstGid) return s; } } cc.logID(7215, t.name); return null; } }); cc.TiledMap = e.exports = l; cc.js.obsolete(cc.TiledMap.prototype, "cc.TiledMap.tmxFile", "tmxAsset", !0); cc.js.get(cc.TiledMap.prototype, "mapLoaded", (function() { cc.errorID(7203); return []; }), !1); }), { "./CCTMXXMLParser": 376, "./CCTiledLayer": 377, "./CCTiledMapAsset": 379, "./CCTiledObjectGroup": 380, "./CCTiledTile": 381 } ], 379: [ (function(t, e, i) { "use strict"; var n = cc.Class({ name: "cc.TiledMapAsset", extends: cc.Asset, properties: { tmxXmlStr: "", textures: { default: [], type: [ cc.Texture2D ] }, textureNames: [ cc.String ], tsxFiles: [ cc.TextAsset ], tsxFileNames: [ cc.String ] }, statics: { preventDeferredLoadDependents: !0 }, createNode: !1 }); cc.TiledMapAsset = n; e.exports = n; }), {} ], 380: [ (function(t, e, i) { "use strict"; var n = cc.Class({ name: "cc.TiledObjectGroup", extends: cc.Component, getPositionOffset: function() { return this._positionOffset; }, getProperties: function() { this._properties; }, getGroupName: function() { return this._groupName; }, getProperty: function(t) { return this._properties[t.toString()]; }, getObject: function(t) { for (var e = 0, i = this._objects.length; e < i; e++) { var n = this._objects[e]; if (n && n.name === t) return n; } return null; }, getObjects: function() { return this._objects; }, _init: function(t, e) { this._groupName = t.name; this._positionOffset = t.offset; this._mapInfo = e; this._properties = t.getProperties(); var i = e._mapSize, n = e._tileSize, r = 0, s = 0; if (e.orientation === cc.TiledMap.Orientation.HEX) if (e.getStaggerAxis() === cc.TiledMap.StaggerAxis.STAGGERAXIS_X) { s = n.height * (i.height + .5); r = (n.width + e.getHexSideLength()) * Math.floor(i.width / 2) + n.width * (i.width % 2); } else { r = n.width * (i.width + .5); s = (n.height + e.getHexSideLength()) * Math.floor(i.height / 2) + n.height * (i.height % 2); } else { r = i.width * n.width; s = i.height * n.height; } this.node.setContentSize(r, s); for (var o = t._objects, a = 0, c = o.length; a < c; a++) { var l = o[a]; l.offset = cc.v2(l.x, l.y); var h = l.points || l.polylinePoints; if (h) for (var u = 0; u < h.length; u++) h[u].y *= -1; if (cc.TiledMap.Orientation.ISO !== e.orientation) l.y = s - l.y; else { var _ = l.x / n.width * 2, f = l.y / n.height; l.x = n.width / 2 * (i.width + _ - f); l.y = n.height / 2 * (2 * i.height - _ - f); } } this._objects = o; } }); cc.TiledObjectGroup = e.exports = n; }), {} ], 381: [ (function(t, e, i) { "use strict"; var n = cc.Class({ name: "cc.TiledTile", extends: cc.Component, editor: !1, ctor: function() { this._layer = null; }, properties: { _x: 0, _y: 0, x: { get: function() { return this._x; }, set: function(t) { if (t !== this._x) if (this._layer && this._layer._isInvalidPosition(t, this._y)) cc.warn("Invalid x, the valid value is between [%s] ~ [%s]", 0, this._layer._layerSize.width); else { this._resetTile(); this._x = t; this._updateInfo(); } }, type: cc.Integer }, y: { get: function() { return this._y; }, set: function(t) { if (t !== this._y) if (this._layer && this._layer._isInvalidPosition(this._x, t)) cc.warn("Invalid y, the valid value is between [%s] ~ [%s]", 0, this._layer._layerSize.height); else { this._resetTile(); this._y = t; this._updateInfo(); } }, type: cc.Integer }, gid: { get: function() { return this._layer ? this._layer.getTileGIDAt(this._x, this._y) : 0; }, set: function(t) { this._layer && this._layer.setTileGIDAt(t, this._x, this._y); }, type: cc.Integer } }, onEnable: function() { var t = this.node.parent; this._layer = t.getComponent(cc.TiledLayer); this._resetTile(); this._updateInfo(); }, onDisable: function() { this._resetTile(); }, _resetTile: function() { this._layer && this._layer.getTiledTileAt(this._x, this._y) === this && this._layer.setTiledTileAt(this._x, this._y, null); }, _updateInfo: function() { if (this._layer) { var t = this._x, e = this._y; if (this._layer.getTiledTileAt(t, e)) cc.warn("There is already a TiledTile at [%s, %s]", t, e); else { this.node.setPosition(this._layer.getPositionAt(t, e)); this._layer.setTiledTileAt(t, e, this); } } } }); cc.TiledTile = e.exports = n; }), {} ], 382: [ (function(t, e, i) { "use strict"; t("./CCTiledMap"); t("./tmx-layer-assembler"); }), { "./CCTiledMap": 378, "./tmx-layer-assembler": 383 } ], 383: [ (function(t, e, i) { "use strict"; var n = t("../core/vmath"), r = t("./CCTiledLayer"), s = t("./CCTiledMap"), o = t("../core/renderer/render-flow"), a = s.Orientation, c = s.TileFlag, l = c.FLIPPED_MASK, h = s.StaggerAxis, u = s.StaggerIndex, _ = n.mat4.create(), f = n.mat4.create(), d = n.vec3.create(), m = { updateRenderData: function(t) { var e = t._renderData; e || (e = t._renderData = t.requestRenderData()); var i = t.node._contentSize, n = t.node._anchorPoint; e.updateSizeNPivot(i.width, i.height, n.x, n.y); e.material = t.sharedMaterials[0]; this.updateVertices(t); }, fillBuffers: function(t, e) { for (var i = t._renderData, n = i._data, r = e._meshBuffer, s = i.vertexCount, a = r.request(s, i.indiceCount), c = a.indiceOffset, l = a.byteOffset >> 2, h = a.vertexOffset, u = r._vData, _ = r._iData, f = r._uintVData, d = 0, m = i.vertexCount; d < m; d++) { var p = n[d]; u[l++] = p.x; u[l++] = p.y; u[l++] = p.u; u[l++] = p.v; f[l++] = p.color; } for (var v = 0, y = i.indiceCount; v < y; v += 6) { _[c++] = h; _[c++] = h + 1; _[c++] = h + 2; _[c++] = h + 1; _[c++] = h + 3; _[c++] = h + 2; h += 4; } t.node._renderFlag |= o.FLAG_UPDATE_RENDER_DATA; }, updateVertices: function(t) { var e = t.node, i = t._renderData, r = i._data, s = e._color._val, o = e._color.a; i.dataLength = i.vertexCount = i.indiceCount = 0; var m = t._layerOrientation; if (t._tiles && t._tileset) { var p = e._anchorPoint.x * e._contentSize.width, v = e._anchorPoint.y * e._contentSize.height; n.mat4.copy(_, e._worldMatrix); n.vec3.set(d, -p, -v, 0); n.mat4.translate(_, _, d); var y = _.m00, g = _.m01, x = _.m04, C = _.m05, b = _.m12, A = _.m13, S = t._mapTileSize.width, w = t._mapTileSize.height, T = t._tileset._tileSize.width, E = t._tileset._tileSize.height, M = T - S, B = E - w, D = cc.winSize.width, I = cc.winSize.height, P = t._layerSize.height, R = t._layerSize.width, L = t._texGrids, F = t._tiledTiles, O = t._offset.x, V = t._offset.y, N = 0, k = 0, z = R, G = P, U = y, j = C, W = b += O * y + V * x, H = A += O * g + V * C, q = T * y, X = E * C, Y = cc.macro.ENABLE_TILEDMAP_CULLING; if (Y) { var J = cc.Camera.findCamera(t.node); if (J) { J.getWorldToScreenMatrix2D(f); n.mat4.mul(_, f, _); U = _.m00; j = _.m05; W = O * U + V * _.m04 + _.m12; H = O * _.m01 + V * j + _.m13; q = T * U; X = E * j; } if (m === a.ORTHO) { n.mat4.invert(_, _); var Z = cc.visibleRect, K = _.m00, Q = _.m01, $ = _.m04, tt = _.m05, et = _.m12, it = _.m13, nt = Z.topLeft.x * K + Z.topLeft.y * $ + et, rt = Z.topLeft.x * Q + Z.topLeft.y * tt + it, st = Z.bottomLeft.x * K + Z.bottomLeft.y * $ + et, ot = Z.bottomLeft.x * Q + Z.bottomLeft.y * tt + it, at = Z.topRight.x * K + Z.topRight.y * $ + et, ct = Z.topRight.x * Q + Z.topRight.y * tt + it, lt = Z.bottomRight.x * K + Z.bottomRight.y * $ + et, ht = Z.bottomRight.x * Q + Z.bottomRight.y * tt + it, ut = Math.min(nt, st, at, lt), _t = Math.max(nt, st, at, lt), ft = Math.min(rt, ot, ct, ht), dt = Math.max(rt, ot, ct, ht); N = Math.floor(ut / S); k = P - Math.ceil(dt / w); z = Math.ceil((_t + M) / S); G = P - Math.floor((ft - B) / w); N < 0 && (N = 0); k < 0 && (k = 0); z > R && (z = R); G > P && (G = P); } } var mt = k * R, pt = void 0, vt = void 0, yt = void 0, gt = void 0, xt = void 0, Ct = void 0, bt = void 0, At = void 0, St = void 0, wt = void 0, Tt = void 0, Et = void 0, Mt = void 0; if (m === a.HEX) { var Bt = t._hexSideLength; St = t._staggerAxis; wt = t._tileset.tileOffset; Mt = t._staggerIndex === u.STAGGERINDEX_ODD ? 1 : -1; Tt = St === h.STAGGERAXIS_X ? (S - Bt) / 2 : 0; Et = St === h.STAGGERAXIS_Y ? (w - Bt) / 2 : 0; } for (var Dt = 0, It = void 0, Pt = void 0, Rt = void 0, Lt = void 0, Ft = void 0, Ot = void 0, Vt = void 0, Nt = k; Nt < G; ++Nt) { for (var kt = N; kt < z; ++kt) { var zt = mt + kt, Gt = !1, Ut = !1, jt = F[zt]; if (vt = L[((pt = jt ? jt.gid : t._tiles[zt]) & l) >>> 0]) { switch (m) { case a.ORTHO: gt = kt * S; xt = (P - Nt - 1) * w; break; case a.ISO: gt = S / 2 * (R + kt - Nt - 1); xt = w / 2 * (2 * P - kt - Nt - 2); break; case a.HEX: gt = kt * (S - Tt) + (St === h.STAGGERAXIS_Y && Nt % 2 == 1 ? S / 2 * Mt : 0) + wt.x; xt = (P - Nt - 1) * (w - Et) + (St === h.STAGGERAXIS_X && kt % 2 == 1 ? w / 2 * -Mt : 0) - wt.y; } if (jt) { var Wt = jt.node; Vt = s; var Ht = Wt.opacity * o / 255; s = Wt.color.setA(Ht)._val; It = y; Pt = g; Rt = x; Lt = C; Ft = b; Ot = A; Wt._updateLocalMatrix(); n.mat4.copy(_, Wt._matrix); n.vec3.set(d, -gt, -xt, 0); n.mat4.translate(_, _, d); n.mat4.multiply(_, e._worldMatrix, _); y = _.m00; g = _.m01; x = _.m04; C = _.m05; b = _.m12; A = _.m13; } Ct = gt + T; yt = xt + E; if (Y && m === a.ISO) { if ((bt = H + xt * j) > I + X) { kt += Math.floor(2 * (bt - I) / X) - 1; continue; } if ((At = W + Ct * U) < -q) { kt += Math.floor(2 * -At / q) - 1; continue; } if (W + gt * U > D || H + yt * j < 0) { kt = z; continue; } } if (pt > c.DIAGONAL) { Gt = (pt & c.HORIZONTAL) >>> 0; Ut = (pt & c.VERTICAL) >>> 0; } i.vertexCount += 4; i.indiceCount += 6; i.dataLength = i.vertexCount; r[Dt].x = gt * y + yt * x + b; r[Dt].y = gt * g + yt * C + A; r[Dt].u = Gt ? vt.r : vt.l; r[Dt].v = Ut ? vt.b : vt.t; r[Dt].color = s; r[++Dt].x = gt * y + xt * x + b; r[Dt].y = gt * g + xt * C + A; r[Dt].u = Gt ? vt.r : vt.l; r[Dt].v = Ut ? vt.t : vt.b; r[Dt].color = s; r[++Dt].x = Ct * y + yt * x + b; r[Dt].y = Ct * g + yt * C + A; r[Dt].u = Gt ? vt.l : vt.r; r[Dt].v = Ut ? vt.b : vt.t; r[Dt].color = s; r[++Dt].x = Ct * y + xt * x + b; r[Dt].y = Ct * g + xt * C + A; r[Dt].u = Gt ? vt.l : vt.r; r[Dt].v = Ut ? vt.t : vt.b; r[Dt].color = s; Dt++; if (jt) { s = Vt; y = It; g = Pt; x = Rt; C = Lt; b = Ft; A = Ot; } } } mt += R; } } } }; e.exports = r._assembler = m; }), { "../core/renderer/render-flow": 245, "../core/vmath": 317, "./CCTiledLayer": 377, "./CCTiledMap": 378 } ], 384: [ (function(t, e, i) { "use strict"; var n = t("./video-player-impl"), r = n.EventType, s = cc.Enum({ REMOTE: 0, LOCAL: 1 }), o = cc.Class({ name: "cc.VideoPlayer", extends: cc.Component, editor: !1, properties: { _resourceType: s.REMOTE, resourceType: { tooltip: !1, type: s, set: function(t) { this._resourceType = t; this._updateVideoSource(); }, get: function() { return this._resourceType; } }, _remoteURL: "", remoteURL: { tooltip: !1, type: cc.String, set: function(t) { this._remoteURL = t; this._updateVideoSource(); }, get: function() { return this._remoteURL; } }, _clip: { default: null, type: cc.Asset }, clip: { tooltip: !1, get: function() { return this._clip; }, set: function(t) { this._clip = t; this._updateVideoSource(); }, type: cc.Asset }, currentTime: { tooltip: !1, type: cc.Float, set: function(t) { this._impl && this._impl.seekTo(t); }, get: function() { return this._impl ? this._impl.currentTime() : -1; } }, _volume: 1, volume: { get: function() { return this._volume; }, set: function(t) { this._volume = t; this.isPlaying() && !this._mute && this._syncVolume(); }, range: [ 0, 1 ], type: cc.Float, tooltip: !1 }, _mute: !1, mute: { get: function() { return this._mute; }, set: function(t) { this._mute = t; this._syncVolume(); }, tooltip: !1 }, keepAspectRatio: { tooltip: !1, default: !0, type: cc.Boolean, notify: function() { this._impl.setKeepAspectRatioEnabled(this.keepAspectRatio); } }, isFullscreen: { tooltip: !1, default: !1, type: cc.Boolean, notify: function() { this._impl.setFullScreenEnabled(this.isFullscreen); } }, videoPlayerEvent: { default: [], type: cc.Component.EventHandler } }, statics: { EventType: r, ResourceType: s, Impl: n }, ctor: function() { this._impl = new n(); }, _syncVolume: function() { var t = this._impl; if (t) { var e = this._mute ? 0 : this._volume; t.setVolume(e); } }, _updateVideoSource: function() { var t = ""; this.resourceType === s.REMOTE ? t = this.remoteURL : this._clip && (t = this._clip.nativeUrl || ""); t && cc.loader.md5Pipe && (t = cc.loader.md5Pipe.transformURL(t)); this._impl.setURL(t, this._mute || 0 === this._volume); }, onLoad: function() { var t = this._impl; if (t) { t.createDomElementIfNeeded(this._mute || 0 === this._volume); this._updateVideoSource(); t.seekTo(this.currentTime); t.setKeepAspectRatioEnabled(this.keepAspectRatio); t.setFullScreenEnabled(this.isFullscreen); this.pause(); t.setEventListener(r.PLAYING, this.onPlaying.bind(this)); t.setEventListener(r.PAUSED, this.onPasued.bind(this)); t.setEventListener(r.STOPPED, this.onStopped.bind(this)); t.setEventListener(r.COMPLETED, this.onCompleted.bind(this)); t.setEventListener(r.META_LOADED, this.onMetaLoaded.bind(this)); t.setEventListener(r.CLICKED, this.onClicked.bind(this)); t.setEventListener(r.READY_TO_PLAY, this.onReadyToPlay.bind(this)); } }, onRestore: function() { this._impl || (this._impl = new n()); }, onEnable: function() { this._impl && this._impl.enable(); }, onDisable: function() { this._impl && this._impl.disable(); }, onDestroy: function() { if (this._impl) { this._impl.destroy(); this._impl = null; } }, update: function(t) { this._impl && this._impl.updateMatrix(this.node); }, onReadyToPlay: function() { cc.Component.EventHandler.emitEvents(this.videoPlayerEvent, this, r.READY_TO_PLAY); this.node.emit("ready-to-play", this); }, onMetaLoaded: function() { cc.Component.EventHandler.emitEvents(this.videoPlayerEvent, this, r.META_LOADED); this.node.emit("meta-loaded", this); }, onClicked: function() { cc.Component.EventHandler.emitEvents(this.videoPlayerEvent, this, r.CLICKED); this.node.emit("clicked", this); }, onPlaying: function() { cc.Component.EventHandler.emitEvents(this.videoPlayerEvent, this, r.PLAYING); this.node.emit("playing", this); }, onPasued: function() { cc.Component.EventHandler.emitEvents(this.videoPlayerEvent, this, r.PAUSED); this.node.emit("paused", this); }, onStopped: function() { cc.Component.EventHandler.emitEvents(this.videoPlayerEvent, this, r.STOPPED); this.node.emit("stopped", this); }, onCompleted: function() { cc.Component.EventHandler.emitEvents(this.videoPlayerEvent, this, r.COMPLETED); this.node.emit("completed", this); }, play: function() { if (this._impl) { this._syncVolume(); this._impl.play(); } }, resume: function() { if (this._impl) { this._syncVolume(); this._impl.resume(); } }, pause: function() { this._impl && this._impl.pause(); }, stop: function() { this._impl && this._impl.stop(); }, getDuration: function() { return this._impl ? this._impl.duration() : -1; }, isPlaying: function() { return !!this._impl && this._impl.isPlaying(); } }); cc.VideoPlayer = e.exports = o; }), { "./video-player-impl": 385 } ], 385: [ (function(t, e, i) { "use strict"; var n = t("../core/vmath"), r = t("../core/platform/utils"), s = t("../core/platform/CCSys"), o = { HAVE_NOTHING: 0, HAVE_METADATA: 1, HAVE_CURRENT_DATA: 2, HAVE_FUTURE_DATA: 3, HAVE_ENOUGH_DATA: 4 }, a = n.mat4.create(), c = cc.Class({ name: "VideoPlayerImpl", ctor: function() { this._EventList = {}; this._video = null; this._url = ""; this._fullScreenEnabled = !1; this._loadedmeta = !1; this._loaded = !1; this._visible = !1; this._playing = !1; this._ignorePause = !1; this._forceUpdate = !0; this._m00 = 0; this._m01 = 0; this._m04 = 0; this._m05 = 0; this._m12 = 0; this._m13 = 0; this._w = 0; this._h = 0; this.__eventListeners = {}; }, _bindEvent: function() { var t = this._video, e = this, i = this.__eventListeners; i.loadedmetadata = function() { e._loadedmeta = !0; e._fullScreenEnabled ? cc.screen.requestFullScreen(t) : cc.screen.fullScreen() && cc.screen.exitFullScreen(t); e._dispatchEvent(c.EventType.META_LOADED); }; i.ended = function() { if (e._video === t) { e._playing = !1; e._dispatchEvent(c.EventType.COMPLETED); } }; i.play = function() { if (e._video === t) { e._playing = !0; e._updateVisibility(); e._dispatchEvent(c.EventType.PLAYING); } }; i.pause = function() { if (e._video === t) { e._playing = !1; e._ignorePause || e._dispatchEvent(c.EventType.PAUSED); } }; i.click = function() { e._dispatchEvent(c.EventType.CLICKED); }; t.addEventListener("loadedmetadata", i.loadedmetadata); t.addEventListener("ended", i.ended); t.addEventListener("play", i.play); t.addEventListener("pause", i.pause); t.addEventListener("click", i.click); i.onCanPlay = function() { if (!e._loaded && !e._playing) { var t = e._video; if (t.readyState === o.HAVE_ENOUGH_DATA || t.readyState === o.HAVE_METADATA) { t.currentTime = 0; e._loaded = !0; e._dispatchEvent(c.EventType.READY_TO_PLAY); e._updateVisibility(); } } }; t.addEventListener("canplay", i.onCanPlay); t.addEventListener("canplaythrough", i.onCanPlay); t.addEventListener("suspend", i.onCanPlay); }, _updateVisibility: function() { var t = this._video; if (t) if (this._visible) { t.style.visibility = "visible"; this._forceUpdate = !0; } else { t.style.visibility = "hidden"; t.pause(); this._playing = !1; this._forceUpdate = !1; } }, _updateSize: function(t, e) { var i = this._video; if (i) { i.style.width = t + "px"; i.style.height = e + "px"; } }, _createDom: function(t) { var e = document.createElement("video"); e.style.position = "absolute"; e.style.bottom = "0px"; e.style.left = "0px"; e.className = "cocosVideo"; e.setAttribute("preload", "auto"); e.setAttribute("webkit-playsinline", ""); e.setAttribute("x5-playsinline", ""); e.setAttribute("playsinline", ""); t && e.setAttribute("muted", ""); this._video = e; cc.game.container.appendChild(e); }, createDomElementIfNeeded: function(t) { this._video || this._createDom(t); }, removeDom: function() { var t = this._video; if (t) { r.contains(cc.game.container, t) && cc.game.container.removeChild(t); var e = this.__eventListeners; t.removeEventListener("loadedmetadata", e.loadedmetadata); t.removeEventListener("ended", e.ended); t.removeEventListener("play", e.play); t.removeEventListener("pause", e.pause); t.removeEventListener("click", e.click); t.removeEventListener("canplay", e.onCanPlay); t.removeEventListener("canplaythrough", e.onCanPlay); t.removeEventListener("suspend", e.onCanPlay); e.loadedmetadata = null; e.ended = null; e.play = null; e.pause = null; e.click = null; e.onCanPlay = null; } this._video = null; this._url = ""; }, setURL: function(t, e) { var i, n = void 0; if (this._url !== t) { this._url = t; this.removeDom(); this.createDomElementIfNeeded(e); this._bindEvent(); var r = this._video; r.style.visibility = "hidden"; this._loaded = !1; this._playing = !1; this._loadedmeta = !1; (n = document.createElement("source")).src = t; r.appendChild(n); i = cc.path.extname(t); for (var s = c._polyfill, o = 0; o < s.canPlayType.length; o++) if (i !== s.canPlayType[o]) { (n = document.createElement("source")).src = t.replace(i, s.canPlayType[o]); r.appendChild(n); } } }, getURL: function() { return this._url; }, play: function() { var t = this._video; if (t && this._visible && !this._playing) if (c._polyfill.autoplayAfterOperation) { setTimeout((function() { t.play(); }), 20); } else t.play(); }, pause: function() { var t = this._video; this._playing && t && t.pause(); }, resume: function() { this.play(); }, stop: function() { var t = this._video; if (t && this._visible) { this._ignorePause = !0; t.currentTime = 0; t.pause(); setTimeout(function() { this._dispatchEvent(c.EventType.STOPPED); this._ignorePause = !1; }.bind(this), 0); } }, setVolume: function(t) { var e = this._video; e && (e.volume = t); }, seekTo: function(t) { var e = this._video; if (e) { if (this._loaded) e.currentTime = t; else { e.addEventListener(c._polyfill.event, (function i() { e.currentTime = t; e.removeEventListener(c._polyfill.event, i); })); } c._polyfill.autoplayAfterOperation && this.isPlaying() && setTimeout((function() { e.play(); }), 20); } }, isPlaying: function() { var t = this._video; c._polyfill.autoplayAfterOperation && this._playing && setTimeout((function() { t.play(); }), 20); return this._playing; }, duration: function() { var t = this._video, e = -1; if (!t) return e; e = t.duration; e <= 0 && cc.logID(7702); return e; }, currentTime: function() { var t = this._video; return t ? t.currentTime : -1; }, setKeepAspectRatioEnabled: function() { 0; cc.logID(7700); }, isKeepAspectRatioEnabled: function() { return !0; }, setFullScreenEnabled: function(t) { var e = this._video; if (e) { this._fullScreenEnabled = t; t ? cc.screen.requestFullScreen(e) : cc.screen.fullScreen() && cc.screen.exitFullScreen(e); } }, isFullScreenEnabled: function() { return this._fullScreenEnabled; }, setEventListener: function(t, e) { this._EventList[t] = e; }, removeEventListener: function(t) { this._EventList[t] = null; }, _dispatchEvent: function(t) { var e = this._EventList[t]; e && e.call(this, this, this._video.src); }, onPlayEvent: function() { this._EventList[c.EventType.PLAYING].call(this, this, this._video.src); }, enable: function() { var t = c.elements; -1 === t.indexOf(this) && t.push(this); this.setVisible(!0); }, disable: function() { var t = c.elements, e = t.indexOf(this); -1 !== e && t.splice(e, 1); this.setVisible(!1); }, destroy: function() { this.disable(); this.removeDom(); }, setVisible: function(t) { if (this._visible !== t) { this._visible = !!t; this._updateVisibility(); } }, updateMatrix: function(t) { if (this._video && this._visible) { t.getWorldMatrix(a); var e = cc.Camera._findRendererCamera(t); e && e.worldMatrixToScreen(a, a, cc.visibleRect.width, cc.visibleRect.height); if (this._forceUpdate || this._m00 !== a.m00 || this._m01 !== a.m01 || this._m04 !== a.m04 || this._m05 !== a.m05 || this._m12 !== a.m12 || this._m13 !== a.m13 || this._w !== t._contentSize.width || this._h !== t._contentSize.height) { this._m00 = a.m00; this._m01 = a.m01; this._m04 = a.m04; this._m05 = a.m05; this._m12 = a.m12; this._m13 = a.m13; this._w = t._contentSize.width; this._h = t._contentSize.height; var i = cc.view._scaleX, n = cc.view._scaleY, r = cc.view._devicePixelRatio; i /= r; n /= r; var s = cc.game.container, o = a.m00 * i, l = a.m01, h = a.m04, u = a.m05 * n, _ = s && s.style.paddingLeft ? parseInt(s.style.paddingLeft) : 0, f = s && s.style.paddingBottom ? parseInt(s.style.paddingBottom) : 0, d = void 0, m = void 0; if (c._polyfill.zoomInvalid) { this._updateSize(this._w * o, this._h * u); o = 1; u = 1; d = this._w * i; m = this._h * n; } else { d = this._w * i; m = this._h * n; this._updateSize(this._w, this._h); } var p = d * a.m00 * t._anchorPoint.x, v = m * a.m05 * t._anchorPoint.y, y = cc.view._viewportRect; _ += y.x / r; f += y.y / r; var g = "matrix(" + o + "," + -l + "," + -h + "," + u + "," + (a.m12 * i - p + _) + "," + -(a.m13 * n - v + f) + ")"; this._video.style.transform = g; this._video.style["-webkit-transform"] = g; this._video.style["transform-origin"] = "0px 100% 0px"; this._video.style["-webkit-transform-origin"] = "0px 100% 0px"; } } } }); c.EventType = { PLAYING: 0, PAUSED: 1, STOPPED: 2, COMPLETED: 3, META_LOADED: 4, CLICKED: 5, READY_TO_PLAY: 6 }; c.elements = []; c.pauseElements = []; cc.game.on(cc.game.EVENT_HIDE, (function() { for (var t, e = c.elements, i = 0; i < e.length; i++) if ((t = e[i]).isPlaying()) { t.pause(); c.pauseElements.push(t); } })); cc.game.on(cc.game.EVENT_SHOW, (function() { for (var t = c.pauseElements, e = t.pop(); e; ) { e.play(); e = t.pop(); } })); c._polyfill = { devicePixelRatio: !1, event: "canplay", canPlayType: [] }; var l = document.createElement("video"); if (l.canPlayType) { if (l.canPlayType("video/ogg")) { c._polyfill.canPlayType.push(".ogg"); c._polyfill.canPlayType.push(".ogv"); } l.canPlayType("video/mp4") && c._polyfill.canPlayType.push(".mp4"); l.canPlayType("video/webm") && c._polyfill.canPlayType.push(".webm"); } s.browserType === s.BROWSER_TYPE_FIREFOX && (c._polyfill.autoplayAfterOperation = !0); s.OS_ANDROID !== s.os || s.browserType !== s.BROWSER_TYPE_SOUGOU && s.browserType !== s.BROWSER_TYPE_360 || (c._polyfill.zoomInvalid = !0); var h = document.createElement("style"); h.innerHTML = ".cocosVideo:-moz-full-screen{transform:matrix(1,0,0,1,0,0) !important;}.cocosVideo:full-screen{transform:matrix(1,0,0,1,0,0) !important;}.cocosVideo:-webkit-full-screen{transform:matrix(1,0,0,1,0,0) !important;}"; document.head.appendChild(h); e.exports = c; }), { "../core/platform/CCSys": 210, "../core/platform/utils": 225, "../core/vmath": 317 } ], 386: [ (function(t, e, i) { "use strict"; var n = t("./webview-impl"), r = n.EventType; function s() {} var o = cc.Class({ name: "cc.WebView", extends: cc.Component, editor: !1, properties: { _useOriginalSize: !0, _url: "", url: { type: String, tooltip: !1, get: function() { return this._url; }, set: function(t) { this._url = t; var e = this._impl; e && e.loadURL(t); } }, webviewEvents: { default: [], type: cc.Component.EventHandler } }, statics: { EventType: r, Impl: n }, ctor: function() { this._impl = new o.Impl(); }, onRestore: function() { this._impl || (this._impl = new o.Impl()); }, onEnable: function() { var t = this._impl; t.createDomElementIfNeeded(this.node.width, this.node.height); t.setEventListener(r.LOADED, this._onWebViewLoaded.bind(this)); t.setEventListener(r.LOADING, this._onWebViewLoading.bind(this)); t.setEventListener(r.ERROR, this._onWebViewLoadError.bind(this)); t.loadURL(this._url); t.setVisible(!0); }, onDisable: function() { var t = this._impl; t.setVisible(!1); t.setEventListener(r.LOADED, s); t.setEventListener(r.LOADING, s); t.setEventListener(r.ERROR, s); }, onDestroy: function() { if (this._impl) { this._impl.destroy(); this._impl = null; } }, update: function(t) { this._impl && this._impl.updateMatrix(this.node); }, _onWebViewLoaded: function() { cc.Component.EventHandler.emitEvents(this.webviewEvents, this, r.LOADED); this.node.emit("loaded", this); }, _onWebViewLoading: function() { cc.Component.EventHandler.emitEvents(this.webviewEvents, this, r.LOADING); this.node.emit("loading", this); return !0; }, _onWebViewLoadError: function() { cc.Component.EventHandler.emitEvents(this.webviewEvents, this, r.ERROR); this.node.emit("error", this); }, setJavascriptInterfaceScheme: function(t) { this._impl && this._impl.setJavascriptInterfaceScheme(t); }, setOnJSCallback: function(t) { this._impl && this._impl.setOnJSCallback(t); }, evaluateJS: function(t) { this._impl && this._impl.evaluateJS(t); } }); cc.WebView = e.exports = o; }), { "./webview-impl": 387 } ], 387: [ (function(t, e, i) { "use strict"; var n = t("../core/vmath"), r = t("../core/platform/utils"), s = t("../core/platform/CCSys"), o = n.mat4.create(), a = cc.Class({ name: "WebViewImpl", ctor: function() { this._EventList = {}; this._visible = !1; this._parent = null; this._div = null; this._iframe = null; this._listener = null; this._forceUpdate = !0; this._m00 = 0; this._m01 = 0; this._m04 = 0; this._m05 = 0; this._m12 = 0; this._m13 = 0; this._w = 0; this._h = 0; this.__eventListeners = {}; }, _updateVisibility: function() { if (this._div) { var t = this._div; this._visible ? t.style.visibility = "visible" : t.style.visibility = "hidden"; this._forceUpdate = !0; } }, _updateSize: function(t, e) { var i = this._div; if (i) { i.style.width = t + "px"; i.style.height = e + "px"; } }, _initEvent: function() { var t = this._iframe; if (t) { var e = this.__eventListeners, i = this; e.load = function() { i._dispatchEvent(a.EventType.LOADED); }; e.error = function() { i._dispatchEvent(a.EventType.ERROR); }; t.addEventListener("load", e.load); t.addEventListener("error", e.error); } }, _initStyle: function() { if (this._div) { var t = this._div; t.style.position = "absolute"; t.style.bottom = "0px"; t.style.left = "0px"; } }, _setOpacity: function(t) { var e = this._iframe; e && e.style && (e.style.opacity = t / 255); }, _createDom: function(t, e) { if (a._polyfill.enableDiv) { this._div = document.createElement("div"); this._div.style["-webkit-overflow"] = "auto"; this._div.style["-webkit-overflow-scrolling"] = "touch"; this._iframe = document.createElement("iframe"); this._div.appendChild(this._iframe); this._iframe.style.width = "100%"; this._iframe.style.height = "100%"; } else this._div = this._iframe = document.createElement("iframe"); a._polyfill.enableBG && (this._div.style.background = "#FFF0"); this._div.style.background = "#FFF0"; this._div.style.height = e + "px"; this._div.style.width = t + "px"; this._div.style.overflow = "scroll"; this._iframe.style.border = "none"; cc.game.container.appendChild(this._div); this._updateVisibility(); }, _createNativeControl: function(t, e) { this._createDom(t, e); this._initStyle(); this._initEvent(); }, createDomElementIfNeeded: function(t, e) { this._div ? this._updateSize(t, e) : this._createNativeControl(t, e); }, removeDom: function() { var t = this._div; if (t) { r.contains(cc.game.container, t) && cc.game.container.removeChild(t); this._div = null; } var e = this._iframe; if (e) { var i = this.__eventListeners; e.removeEventListener("load", i.load); e.removeEventListener("error", i.error); i.load = null; i.error = null; this._iframe = null; } }, setOnJSCallback: function(t) {}, setJavascriptInterfaceScheme: function(t) {}, loadData: function(t, e, i, n) {}, loadHTMLString: function(t, e) {}, loadURL: function(t) { var e = this._iframe; if (e) { e.src = t; var i = this; e.addEventListener("load", (function t() { i._loaded = !0; i._updateVisibility(); e.removeEventListener("load", t); })); this._dispatchEvent(a.EventType.LOADING); } }, stopLoading: function() { cc.logID(7800); }, reload: function() { var t = this._iframe; if (t) { var e = t.contentWindow; e && e.location && e.location.reload(); } }, canGoBack: function() { cc.logID(7801); return !0; }, canGoForward: function() { cc.logID(7802); return !0; }, goBack: function() { try { if (a._polyfill.closeHistory) return cc.logID(7803); var t = this._iframe; if (t) { var e = t.contentWindow; e && e.location && e.history.back.call(e); } } catch (t) { cc.log(t); } }, goForward: function() { try { if (a._polyfill.closeHistory) return cc.logID(7804); var t = this._iframe; if (t) { var e = t.contentWindow; e && e.location && e.history.forward.call(e); } } catch (t) { cc.log(t); } }, evaluateJS: function(t) { var e = this._iframe; if (e) { var i = e.contentWindow; try { i.eval(t); this._dispatchEvent(a.EventType.JS_EVALUATED); } catch (t) { console.error(t); } } }, setScalesPageToFit: function() { cc.logID(7805); }, setEventListener: function(t, e) { this._EventList[t] = e; }, removeEventListener: function(t) { this._EventList[t] = null; }, _dispatchEvent: function(t) { var e = this._EventList[t]; e && e.call(this, this, this._iframe.src); }, _createRenderCmd: function() { return new a.RenderCmd(this); }, destroy: function() { this.removeDom(); }, setVisible: function(t) { if (this._visible !== t) { this._visible = !!t; this._updateVisibility(); } }, updateMatrix: function(t) { if (this._div && this._visible) { t.getWorldMatrix(o); var e = cc.Camera._findRendererCamera(t); e && e.worldMatrixToScreen(o, o, cc.visibleRect.width, cc.visibleRect.height); if (this._forceUpdate || this._m00 !== o.m00 || this._m01 !== o.m01 || this._m04 !== o.m04 || this._m05 !== o.m05 || this._m12 !== o.m12 || this._m13 !== o.m13 || this._w !== t._contentSize.width || this._h !== t._contentSize.height) { this._m00 = o.m00; this._m01 = o.m01; this._m04 = o.m04; this._m05 = o.m05; this._m12 = o.m12; this._m13 = o.m13; this._w = t._contentSize.width; this._h = t._contentSize.height; var i = cc.view._scaleX, n = cc.view._scaleY, r = cc.view._devicePixelRatio; i /= r; n /= r; var s = cc.game.container, a = o.m00 * i, c = o.m01, l = o.m04, h = o.m05 * n, u = s && s.style.paddingLeft ? parseInt(s.style.paddingLeft) : 0, _ = s && s.style.paddingBottom ? parseInt(s.style.paddingBottom) : 0; this._updateSize(this._w, this._h); var f = this._div.clientWidth * i, d = this._div.clientHeight * n, m = f * o.m00 * t._anchorPoint.x, p = d * o.m05 * t._anchorPoint.y, v = cc.view._viewportRect; u += v.x / r; _ += v.y / r; var y = "matrix(" + a + "," + -c + "," + -l + "," + h + "," + (o.m12 * i - m + u) + "," + -(o.m13 * n - p + _) + ")"; this._div.style.transform = y; this._div.style["-webkit-transform"] = y; this._div.style["transform-origin"] = "0px 100% 0px"; this._div.style["-webkit-transform-origin"] = "0px 100% 0px"; this._setOpacity(t.opacity); } } } }); a.EventType = { LOADING: 0, LOADED: 1, ERROR: 2, JS_EVALUATED: 3 }; var c = a._polyfill = { devicePixelRatio: !1, enableDiv: !1 }; s.os === s.OS_IOS && (c.enableDiv = !0); s.isMobile ? s.browserType === s.BROWSER_TYPE_FIREFOX && (c.enableBG = !0) : s.browserType === s.BROWSER_TYPE_IE && (c.closeHistory = !0); e.exports = a; }), { "../core/platform/CCSys": 210, "../core/platform/utils": 225, "../core/vmath": 317 } ], 388: [ (function(t, e, i) { "use strict"; t("./cocos2d/core"); t("./cocos2d/animation"); t("./cocos2d/particle"); t("./cocos2d/tilemap"); t("./cocos2d/videoplayer/CCVideoPlayer"); t("./cocos2d/webview/CCWebView"); t("./cocos2d/core/components/CCStudioComponent"); t("./extensions/ccpool/CCNodePool"); t("./cocos2d/actions"); t("./extensions/spine"); t("./extensions/dragonbones"); t("./cocos2d/deprecated"); }), { "./cocos2d/actions": 7, "./cocos2d/animation": 16, "./cocos2d/core": 146, "./cocos2d/core/components/CCStudioComponent": 112, "./cocos2d/deprecated": 327, "./cocos2d/particle": 333, "./cocos2d/particle/CCParticleAsset": 330, "./cocos2d/tilemap": 382, "./cocos2d/tilemap/CCTiledMapAsset": 379, "./cocos2d/videoplayer/CCVideoPlayer": 384, "./cocos2d/webview/CCWebView": 386, "./extensions/ccpool/CCNodePool": 389, "./extensions/dragonbones": 393, "./extensions/spine": 396 } ], 389: [ (function(t, e, i) { "use strict"; cc.NodePool = function(t) { this.poolHandlerComp = t; this._pool = []; }; cc.NodePool.prototype = { constructor: cc.NodePool, size: function() { return this._pool.length; }, clear: function() { for (var t = this._pool.length, e = 0; e < t; ++e) this._pool[e].destroy(); this._pool.length = 0; }, put: function(t) { if (t && -1 === this._pool.indexOf(t)) { t.removeFromParent(!1); var e = this.poolHandlerComp ? t.getComponent(this.poolHandlerComp) : null; e && e.unuse && e.unuse(); this._pool.push(t); } }, get: function() { var t = this._pool.length - 1; if (t < 0) return null; var e = this._pool[t]; this._pool.length = t; var i = this.poolHandlerComp ? e.getComponent(this.poolHandlerComp) : null; i && i.reuse && i.reuse.apply(i, arguments); return e; } }; e.exports = cc.NodePool; }), {} ], 390: [ (function(t, e, i) { "use strict"; var n = t("../../cocos2d/core/components/CCRenderComponent"), r = t("../../cocos2d/core/assets/material/CCMaterial"), s = t("../../cocos2d/core/event/event-target"), o = (t("../../cocos2d/core/CCNode"), t("../../cocos2d/core/graphics/graphics")), a = t("./ArmatureCache"), c = cc.Enum({ default: -1 }), l = cc.Enum({ "": 0 }), h = (cc.Enum({ REALTIME: 0 }), cc.Enum({ REALTIME: 0, SHARED_CACHE: 1, PRIVATE_CACHE: 2 })); var u = cc.Class({ name: "dragonBones.ArmatureDisplay", extends: n, editor: !1, statics: { AnimationCacheMode: h }, properties: { _factory: { default: null, type: dragonBones.CCFactory, serializable: !1 }, dragonAsset: { default: null, type: dragonBones.DragonBonesAsset, notify: function() { this._refresh(); 0; }, tooltip: !1 }, dragonAtlasAsset: { default: null, type: dragonBones.DragonBonesAtlasAsset, notify: function() { this._parseDragonAtlasAsset(); this._refresh(); this._activateMaterial(); }, tooltip: !1 }, _armatureName: "", armatureName: { get: function() { return this._armatureName; }, set: function(t) { this._armatureName = t; var e = this.getAnimationNames(this._armatureName); (!this.animationName || e.indexOf(this.animationName) < 0) && (this.animationName = ""); this._armature && !this.isAnimationCached() && this._factory._dragonBones.clock.remove(this._armature); this._refresh(); this._armature && !this.isAnimationCached() && this._factory._dragonBones.clock.add(this._armature); }, visible: !1 }, _animationName: "", animationName: { get: function() { return this._animationName; }, set: function(t) { this._animationName = t; }, visible: !1 }, _defaultArmatureIndex: { default: 0, notify: function() { var t = ""; if (this.dragonAsset) { var e = void 0; this.dragonAsset && (e = this.dragonAsset.getArmatureEnum()); if (!e) return cc.errorID(7400, this.name); t = e[this._defaultArmatureIndex]; } void 0 !== t ? this.armatureName = t : cc.errorID(7401, this.name); }, type: c, visible: !0, editorOnly: !0, animatable: !1, displayName: "Armature", tooltip: !1 }, _animationIndex: { default: 0, notify: function() { if (0 !== this._animationIndex) { var t = void 0; this.dragonAsset && (t = this.dragonAsset.getAnimsEnum(this.armatureName)); if (t) { var e = t[this._animationIndex]; void 0 !== e ? this.playAnimation(e, this.playTimes) : cc.errorID(7402, this.name); } } else this.animationName = ""; }, type: l, visible: !0, editorOnly: !0, displayName: "Animation", tooltip: !1 }, _preCacheMode: -1, _cacheMode: h.REALTIME, _defaultCacheMode: { default: 0, type: h, notify: function() { this.setAnimationCacheMode(this._defaultCacheMode); }, editorOnly: !0, visible: !0, animatable: !1, displayName: "Animation Cache Mode", tooltip: !1 }, timeScale: { default: 1, notify: function() { this._armature && (this._armature.animation.timeScale = this.timeScale); }, tooltip: !1 }, playTimes: { default: -1, tooltip: !1 }, premultipliedAlpha: { default: !1, tooltip: !1 }, debugBones: { default: !1, notify: function() { this._updateDebugDraw(); }, tooltip: !1 }, enableBatch: { default: !1, notify: function() { this._updateBatch(); }, tooltip: !1 }, _armatureKey: "", _accTime: 0, _playCount: 0, _frameCache: null, _curFrame: null, _playing: !1, _armatureCache: null }, ctor: function() { this._eventTarget = new s(); this._materialCache = {}; this._inited = !1; this._factory = dragonBones.CCFactory.getInstance(); }, onLoad: function() { for (var t = this.node.children, e = 0, i = t.length; e < i; e++) { var n = t[e]; 0 === (n._name && n._name.search("CHILD_ARMATURE-")) && n.destroy(); } }, _updateBatch: function() { var t = this._materialCache; for (var e in t) { var i = t[e]; i && i.define("_USE_MODEL", !this.enableBatch); } }, setMaterial: function(t, e) { this._super(t, e); this._materialCache = {}; }, __preload: function() { this._init(); }, _init: function() { if (!this._inited) { this._inited = !0; this._cacheMode = h.REALTIME; this._parseDragonAtlasAsset(); this._refresh(); this._activateMaterial(); for (var t = this.node.children, e = 0, i = t.length; e < i; e++) { var n = t[e]; n && "DEBUG_DRAW_NODE" === n._name && n.destroy(); } this._updateDebugDraw(); } }, getArmatureKey: function() { return this._armatureKey; }, setAnimationCacheMode: function(t) {}, isAnimationCached: function() { 0; return this._cacheMode !== h.REALTIME; }, onEnable: function() { this._super(); this._armature && !this.isAnimationCached() && this._factory._dragonBones.clock.add(this._armature); this._activateMaterial(); }, onDisable: function() { this._super(); this._armature && !this.isAnimationCached() && this._factory._dragonBones.clock.remove(this._armature); }, update: function(t) { if (this.isAnimationCached() && this._playing) { var e = this._frameCache, i = e.frames, n = a.FrameTime; 0 == this._accTime && 0 == this._playCount && this._eventTarget && this._eventTarget.emit(dragonBones.EventObject.START); var r = dragonBones.timeScale; this._accTime += t * this.timeScale * r; var s = Math.floor(this._accTime / n); e.isCompleted || e.updateToFrame(s); if (e.isCompleted && s >= i.length) { this._eventTarget && this._eventTarget.emit(dragonBones.EventObject.LOOP_COMPLETE); this._eventTarget && this._eventTarget.emit(dragonBones.EventObject.COMPLETE); this._playCount++; if (this.playTimes > 0 && this._playCount >= this.playTimes) { this._curFrame = i[i.length - 1]; this._accTime = 0; this._playing = !1; this._playCount = 0; return; } this._accTime = 0; s = 0; } this._curFrame = i[s]; } }, onDestroy: function() { this._super(); this._inited = !1; if (this._cacheMode === h.PRIVATE_CACHE) { this._armatureCache.dispose(); this._armatureCache = null; this._armature = null; } else if (this._cacheMode === h.SHARED_CACHE) { this._armatureCache = null; this._armature = null; } else if (this._armature) { this._armature.dispose(); this._armature = null; } }, _updateDebugDraw: function() { if (this.debugBones) { if (!this._debugDraw) { var t = new cc.PrivateNode(); t.name = "DEBUG_DRAW_NODE"; var e = t.addComponent(o); e.lineWidth = 1; e.strokeColor = cc.color(255, 0, 0, 255); this._debugDraw = e; } this._debugDraw.node.parent = this.node; } else this._debugDraw && (this._debugDraw.node.parent = null); }, _activateMaterial: function() { var t = this.dragonAtlasAsset && this.dragonAtlasAsset.texture; if (t) { var e = this.sharedMaterials[0]; (e = e ? r.getInstantiatedMaterial(e, this) : r.getInstantiatedBuiltinMaterial("2d-sprite", this)).define("_USE_MODEL", !0); e.setProperty("texture", t); this.setMaterial(0, e); this.markForRender(!0); } else this.disableRender(); }, _buildArmature: function() { if (this.dragonAsset && this.dragonAtlasAsset && this.armatureName) { if (this._armature) { this._preCacheMode === h.PRIVATE_CACHE ? this._armatureCache.dispose() : this._preCacheMode === h.REALTIME && this._armature.dispose(); this._armatureCache = null; this._armature = null; this._displayProxy = null; this._frameCache = null; this._curFrame = null; this._playing = !1; this._preCacheMode = null; } this._cacheMode === h.SHARED_CACHE ? this._armatureCache = a.sharedCache : this._cacheMode === h.PRIVATE_CACHE && (this._armatureCache = new a()); var t = this.dragonAtlasAsset._uuid; this._armatureKey = this.dragonAsset.init(this._factory, t); if (this.isAnimationCached()) { this._armature = this._armatureCache.getArmatureCache(this.armatureName, this._armatureKey, t); this._armature || (this._cacheMode = h.REALTIME); } this._preCacheMode = this._cacheMode; if (this._cacheMode === h.REALTIME) { this._displayProxy = this._factory.buildArmatureDisplay(this.armatureName, this._armatureKey, "", t); if (!this._displayProxy) return; this._displayProxy._ccNode = this.node; this._displayProxy.setEventTarget(this._eventTarget); this._armature = this._displayProxy._armature; this._armature.animation.timeScale = this.timeScale; } this._cacheMode !== h.REALTIME && this.debugBones && cc.warn("Debug bones is invalid in cached mode"); this._updateBatch(); this.animationName && this.playAnimation(this.animationName, this.playTimes); } }, _parseDragonAtlasAsset: function() { this.dragonAtlasAsset && this.dragonAtlasAsset.init(this._factory); }, _refresh: function() { this._buildArmature(); 0; }, _updateCacheModeEnum: !1, _updateAnimEnum: !1, _updateArmatureEnum: !1, playAnimation: function(t, e) { this.playTimes = void 0 === e ? -1 : e; this.animationName = t; if (this.isAnimationCached()) { var i = this._armatureCache.getAnimationCache(this._armatureKey, t); i || (i = this._armatureCache.initAnimationCache(this._armatureKey, t)).begin(); if (i) { this._accTime = 0; this._playCount = 0; this._frameCache = i; this._playing = !0; this._curFrame = this._frameCache.frames[0]; } } else if (this._armature) return this._armature.animation.play(t, this.playTimes); }, updateAnimationCache: function(t) { if (this.isAnimationCached()) { var e = this._armatureCache.updateAnimationCache(this._armatureKey, t); this._frameCache = e || this._frameCache; } }, getArmatureNames: function() { var t = this._factory.getDragonBonesData(this._armatureKey); return t && t.armatureNames || []; }, getAnimationNames: function(t) { var e = [], i = this._factory.getDragonBonesData(this._armatureKey); if (i) { var n = i.getArmature(t); if (n) for (var r in n.animations) n.animations.hasOwnProperty(r) && e.push(r); } return e; }, on: function(t, e, i) { this.addEventListener(t, e, i); }, off: function(t, e, i) { this.removeEventListener(t, e, i); }, once: function(t, e, i) { this._eventTarget.once(t, e, i); }, addEventListener: function(t, e, i) { this._eventTarget.on(t, e, i); }, removeEventListener: function(t, e, i) { this._eventTarget.off(t, e, i); }, buildArmature: function(t, e) { return this._factory.createArmatureNode(this, t, e); }, armature: function() { return this._armature; } }); e.exports = dragonBones.ArmatureDisplay = u; }), { "../../cocos2d/core/CCNode": 52, "../../cocos2d/core/assets/material/CCMaterial": 75, "../../cocos2d/core/components/CCRenderComponent": 106, "../../cocos2d/core/event/event-target": 133, "../../cocos2d/core/graphics/graphics": 142, "./ArmatureCache": void 0 } ], 391: [ (function(t, e, i) { "use strict"; var n = cc.Class({ name: "dragonBones.DragonBonesAsset", extends: cc.Asset, ctor: function() { this.reset(); }, properties: { _dragonBonesJson: "", dragonBonesJson: { get: function() { return this._dragonBonesJson; }, set: function(t) { this._dragonBonesJson = t; this.reset(); } }, _nativeAsset: { get: function() { return this._buffer; }, set: function(t) { this._buffer = t.buffer || t; this.reset(); }, override: !0 } }, statics: { preventDeferredLoadDependents: !0 }, createNode: !1, reset: function() { this._clear(); 0; }, init: function(t, e) { this._factory = t; var i = null; i = this.dragonBonesJson ? JSON.parse(this.dragonBonesJson) : this._nativeAsset; if (!this._uuid) { var n = this._factory.getDragonBonesDataByRawData(i); n ? this._uuid = n.name : cc.warn("dragonbones name is empty"); } var r = this._uuid + "#" + e; if (this._factory.getDragonBonesData(r)) return r; this._factory.parseDragonBonesData(i, r); return r; }, getArmatureEnum: !1, getAnimsEnum: !1, _clear: function() {}, destroy: function() { this._clear(); this._super(); } }); dragonBones.DragonBonesAsset = e.exports = n; }), { "./ArmatureCache": void 0 } ], 392: [ (function(t, e, i) { "use strict"; var n = cc.Class({ name: "dragonBones.DragonBonesAtlasAsset", extends: cc.Asset, ctor: function() { this._clear(); }, properties: { _atlasJson: "", atlasJson: { get: function() { return this._atlasJson; }, set: function(t) { this._atlasJson = t; this._clear(); } }, _texture: { default: null, type: cc.Texture2D, formerlySerializedAs: "texture" }, texture: { get: function() { return this._texture; }, set: function(t) { this._texture = t; this._clear(); } }, _textureAtlasData: null }, statics: { preventDeferredLoadDependents: !0 }, createNode: !1, init: function(t) { this._factory = t; var e = JSON.parse(this.atlasJson); this._uuid = this._uuid || e.name; this._textureAtlasData ? t.addTextureAtlasData(this._textureAtlasData, this._uuid) : this._textureAtlasData = t.parseTextureAtlasData(e, this.texture, this._uuid); }, _clear: function() {}, destroy: function() { this._clear(); this._super(); } }); dragonBones.DragonBonesAtlasAsset = e.exports = n; }), { "./ArmatureCache": void 0 } ], 393: [ (function(i, n, r) { "use strict"; var s = "undefined" === ("object" === (e = typeof window) ? t(window) : e) ? global : window; 0; if (void 0 !== s.dragonBones) { dragonBones._timeScale = 1; Object.defineProperty(dragonBones, "timeScale", { get: function() { return this._timeScale; }, set: function(t) { this._timeScale = t; this.CCFactory.getInstance()._dragonBones.clock.timeScale = t; }, configurable: !0 }); dragonBones.DisplayType = { Image: 0, Armature: 1, Mesh: 2 }; dragonBones.ArmatureType = { Armature: 0, MovieClip: 1, Stage: 2 }; dragonBones.ExtensionType = { FFD: 0, AdjustColor: 10, BevelFilter: 11, BlurFilter: 12, DropShadowFilter: 13, GlowFilter: 14, GradientBevelFilter: 15, GradientGlowFilter: 16 }; dragonBones.EventType = { Frame: 0, Sound: 1 }; dragonBones.ActionType = { Play: 0, Stop: 1, GotoAndPlay: 2, GotoAndStop: 3, FadeIn: 4, FadeOut: 5 }; dragonBones.AnimationFadeOutMode = { None: 0, SameLayer: 1, SameGroup: 2, SameLayerAndGroup: 3, All: 4 }; dragonBones.BinaryOffset = { WeigthBoneCount: 0, WeigthFloatOffset: 1, WeigthBoneIndices: 2, MeshVertexCount: 0, MeshTriangleCount: 1, MeshFloatOffset: 2, MeshWeightOffset: 3, MeshVertexIndices: 4, TimelineScale: 0, TimelineOffset: 1, TimelineKeyFrameCount: 2, TimelineFrameValueCount: 3, TimelineFrameValueOffset: 4, TimelineFrameOffset: 5, FramePosition: 0, FrameTweenType: 1, FrameTweenEasingOrCurveSampleCount: 2, FrameCurveSamples: 3, DeformMeshOffset: 0, DeformCount: 1, DeformValueCount: 2, DeformValueOffset: 3, DeformFloatOffset: 4 }; dragonBones.BoneType = { Bone: 0, Surface: 1 }; 0; i("./DragonBonesAsset"); i("./DragonBonesAtlasAsset"); i("./ArmatureDisplay"); i("./webgl-assembler"); } }), { "./ArmatureCache": void 0, "./ArmatureDisplay": 390, "./CCArmatureDisplay": void 0, "./CCFactory": void 0, "./CCSlot": void 0, "./CCTextureData": void 0, "./DragonBonesAsset": 391, "./DragonBonesAtlasAsset": 392, "./lib/dragonBones": void 0, "./webgl-assembler": 394 } ], 394: [ (function(t, e, i) { "use strict"; var n = t("./ArmatureDisplay"), r = t("../../cocos2d/core/renderer/render-flow"), s = (t("../../cocos2d/core/assets/material/CCMaterial"), cc.gfx), o = cc.vmath.mat4, a = cc.color(255, 0, 0, 255), c = cc.color(0, 0, 255, 255), l = void 0, h = void 0, u = void 0, _ = void 0, f = void 0, d = void 0, m = void 0, p = void 0, v = void 0, y = void 0, g = void 0, x = void 0, C = void 0, b = void 0, A = void 0, S = void 0, w = void 0, T = void 0, E = void 0, M = void 0, B = void 0, D = void 0, I = void 0, P = void 0, R = void 0, L = void 0, F = void 0, O = void 0, V = void 0, N = void 0; function k(t, e) { if (!t) return null; var i = void 0, n = void 0; switch (e) { case 1: i = f ? cc.macro.ONE : cc.macro.SRC_ALPHA; n = cc.macro.ONE; break; case 10: i = cc.macro.DST_COLOR; n = cc.macro.ONE_MINUS_SRC_ALPHA; break; case 12: i = cc.macro.ONE; n = cc.macro.ONE_MINUS_SRC_COLOR; break; case 0: default: i = f ? cc.macro.ONE : cc.macro.SRC_ALPHA; n = cc.macro.ONE_MINUS_SRC_ALPHA; } var r = !g.enableBatch, o = t.url + i + n + r, a = g.sharedMaterials[0]; if (!a) return null; var c = g._materialCache, l = c[o]; if (l) { if (l.texture !== t) { l.setProperty("texture", t); l.updateHash(o); } } else { c[a._hash] ? (l = new cc.Material()).copy(a) : l = a; l.define("_USE_MODEL", r); l.setProperty("texture", t); l.effect.getDefaultTechnique().passes[0].setBlend(!0, s.BLEND_FUNC_ADD, i, n, s.BLEND_FUNC_ADD, i, n); c[o] = l; l.updateHash(o); } return l; } function z(t, e) { I = t.a * e * _; d = f ? I / 255 : 1; M = t.r * l * d; B = t.g * h * d; D = t.b * u * d; E = (I << 24 >>> 0) + (D << 16) + (B << 8) + M; } var G = { updateRenderData: function(t, e) {}, realTimeTraverse: function(t, e, i) { for (var n = t._slots, r = void 0, s = void 0, a = void 0, c = void 0, l = void 0, h = void 0, u = void 0, _ = void 0, f = void 0, d = void 0, g = 0, M = n.length; g < M; g++) { u = (_ = n[g])._color; if (_._visible && _._displayData) { e ? _._mulMat(_._worldMatrix, e, _._matrix) : o.copy(_._worldMatrix, _._matrix); if (_.childArmature) this.realTimeTraverse(_.childArmature, _._worldMatrix, i * u.a / 255); else if (c = k(_.getTexture(), _._blendMode)) { if (m || c._hash !== y.material._hash) { m = !1; y._flush(); y.node = v; y.material = c; } z(u, i); f = _._worldMatrix; l = _._localVertices; A = l.length >> 2; h = _._indices; S = h.length; d = p.request(A, S); C = d.indiceOffset; x = d.byteOffset >> 2; b = d.vertexOffset; r = p._vData; s = p._iData; a = p._uintVData; R = f.m00; L = f.m04; F = f.m12; O = f.m01; V = f.m05; N = f.m13; for (var B = 0, D = l.length; B < D; ) { w = l[B++]; T = l[B++]; r[x++] = w * R + T * L + F; r[x++] = w * O + T * V + N; r[x++] = l[B++]; r[x++] = l[B++]; a[x++] = E; } for (var I = 0, P = h.length; I < P; I++) s[C++] = b + h[I]; } } } }, cacheTraverse: function(t, e) { if (t) { var i = t.segments; if (0 != i.length) { var n = void 0, r = void 0, s = void 0, o = void 0, a = void 0, c = t.vertices, l = t.indices, h = t.uintVert, u = 0, _ = 0, f = 0; if (e) { R = e.m00; L = e.m04; F = e.m12; O = e.m01; V = e.m05; N = e.m13; } var d = 0, g = t.colors, M = g[d++], B = M.vfOffset; z(M, 1); for (var D = 0, I = i.length; D < I; D++) { var G = i[D]; o = k(G.tex, G.blendMode); if (m || o._hash !== y.material._hash) { m = !1; y._flush(); y.node = v; y.material = o; } A = G.vertexCount; S = G.indexCount; a = p.request(A, S); C = a.indiceOffset; b = a.vertexOffset; x = a.byteOffset >> 2; n = p._vData; r = p._iData; s = p._uintVData; for (var U = C, j = C + S; U < j; U++) r[U] = b + l[_++]; f = G.vfCount; switch (P) { case 1: case 0: n.set(c.subarray(u, u + f), x); u += f; break; case 16: case 17: for (var W = x, H = x + f; W < H; ) { w = c[u++]; T = c[u++]; n[W++] = w * R + T * L + F; n[W++] = w * O + T * V + N; n[W++] = c[u++]; n[W++] = c[u++]; s[W++] = h[u++]; } } if (1 & P) for (var q = u - f, X = x + 4, Y = x + 4 + f; X < Y; X += 5, q += 5) { if (q >= B) { z(M = g[d++], 1); B = M.vfOffset; } s[X] = E; } } } } }, fillBuffers: function(t, e) { t.node._renderFlag |= r.FLAG_UPDATE_RENDER_DATA; m = !0; f = t.premultipliedAlpha; v = t.node; p = e._meshBuffer; y = e; g = t; P = 0; var i = v._color; l = i.r / 255; h = i.g / 255; u = i.b / 255; _ = i.a / 255; 4294967295 !== i._val && (P |= 1); var n = void 0; if (g.enableBatch) { n = v._worldMatrix; m = !1; P |= 16; } if (t.isAnimationCached()) this.cacheTraverse(t._curFrame, n); else { var s = t._armature; if (!s) return; this.realTimeTraverse(s, n, 1); var o = t._debugDraw; if (t.debugBones && o) { o.clear(); o.lineWidth = 5; o.strokeColor = a; o.fillColor = c; for (var d = s.getBones(), x = 0, C = d.length; x < C; x++) { var b = d[x], A = Math.max(b.boneData.length, 5), S = b.globalTransformMatrix.tx, w = -b.globalTransformMatrix.ty, T = S + b.globalTransformMatrix.a * A, E = w - b.globalTransformMatrix.b * A; o.moveTo(S, w); o.lineTo(T, E); o.stroke(); } } } v = void 0; p = void 0; y = void 0; g = void 0; } }; e.exports = n._assembler = G; }), { "../../cocos2d/core/assets/material/CCMaterial": 75, "../../cocos2d/core/renderer/render-flow": 245, "./ArmatureDisplay": 390 } ], 395: [ (function(t, e, i) { "use strict"; var n = t("./track-entry-listeners"), r = t("../../cocos2d/core/components/CCRenderComponent"), s = t("./lib/spine"), o = t("../../cocos2d/core/assets/material/CCMaterial"), a = t("../../cocos2d/core/graphics/graphics"), c = t("./skeleton-cache"), l = cc.Enum({ default: -1 }), h = cc.Enum({ "": 0 }), u = cc.Enum({ REALTIME: 0, SHARED_CACHE: 1, PRIVATE_CACHE: 2 }); sp.Skeleton = cc.Class({ name: "sp.Skeleton", extends: r, editor: !1, statics: { AnimationCacheMode: u }, properties: { paused: { default: !1, visible: !1 }, skeletonData: { default: null, type: sp.SkeletonData, notify: function() { this.defaultSkin = ""; this.defaultAnimation = ""; 0; this._updateSkeletonData(); }, tooltip: !1 }, defaultSkin: { default: "", visible: !1 }, defaultAnimation: { default: "", visible: !1 }, animation: { get: function() { if (this.isAnimationCached()) return this._animationName; var t = this.getCurrent(0); return t && t.animation.name || ""; }, set: function(t) { this.defaultAnimation = t; if (t) this.setAnimation(0, t, this.loop); else if (!this.isAnimationCached()) { this.clearTrack(0); this.setToSetupPose(); } }, visible: !1 }, _defaultSkinIndex: { get: function() { if (this.skeletonData && this.defaultSkin) { var t = this.skeletonData.getSkinsEnum(); if (t) { var e = t[this.defaultSkin]; if (void 0 !== e) return e; } } return 0; }, set: function(t) { var e; this.skeletonData && (e = this.skeletonData.getSkinsEnum()); if (!e) return cc.errorID("", this.name); var i = e[t]; if (void 0 !== i) { this.defaultSkin = i; this.setSkin(this.defaultSkin); 0; } else cc.errorID(7501, this.name); }, type: l, visible: !0, displayName: "Default Skin", tooltip: !1 }, _animationIndex: { get: function() { var t = this.animation; if (this.skeletonData && t) { var e = this.skeletonData.getAnimsEnum(); if (e) { var i = e[t]; if (void 0 !== i) return i; } } return 0; }, set: function(t) { if (0 !== t) { var e; this.skeletonData && (e = this.skeletonData.getAnimsEnum()); if (!e) return cc.errorID(7502, this.name); var i = e[t]; void 0 !== i ? this.animation = i : cc.errorID(7503, this.name); } else this.animation = ""; }, type: h, visible: !0, displayName: "Animation", tooltip: !1 }, _preCacheMode: -1, _cacheMode: u.REALTIME, _defaultCacheMode: { default: 0, type: u, notify: function() { this.setAnimationCacheMode(this._defaultCacheMode); }, editorOnly: !0, visible: !0, animatable: !1, displayName: "Animation Cache Mode", tooltip: !1 }, loop: { default: !0, tooltip: !1 }, premultipliedAlpha: { default: !0, tooltip: !1 }, timeScale: { default: 1, tooltip: !1 }, debugSlots: { default: !1, editorOnly: !0, tooltip: !1, notify: function() { this._updateDebugDraw(); } }, debugBones: { default: !1, editorOnly: !0, tooltip: !1, notify: function() { this._updateDebugDraw(); } }, useTint: { default: !1, tooltip: !1, notify: function() { this._updateUseTint(); } }, enableBatch: { default: !1, notify: function() { this._updateBatch(); }, tooltip: !1 }, _accTime: 0, _playCount: 0, _frameCache: null, _curFrame: null, _skeletonCache: null, _animationName: "", _animationQueue: [], _headAniInfo: null, _playTimes: 0, _isAniComplete: !0 }, ctor: function() { this._skeleton = null; this._rootBone = null; this._listener = null; this._boundingBox = cc.rect(); this._materialCache = {}; this._debugRenderer = null; this._startSlotIndex = -1; this._endSlotIndex = -1; this._startEntry = { animation: { name: "" }, trackIndex: 0 }; this._endEntry = { animation: { name: "" }, trackIndex: 0 }; }, setMaterial: function(t, e) { this._super(t, e); this._materialCache = {}; }, _updateUseTint: function() { var t = this._materialCache; for (var e in t) { var i = t[e]; i && i.define("USE_TINT", this.useTint); } }, _updateBatch: function() { var t = this._materialCache; for (var e in t) { var i = t[e]; i && i.define("_USE_MODEL", !this.enableBatch); } }, setSkeletonData: function(t) { null != t.width && null != t.height && this.node.setContentSize(t.width, t.height); this._cacheMode === u.SHARED_CACHE ? this._skeletonCache = c.sharedCache : this._cacheMode === u.PRIVATE_CACHE && (this._skeletonCache = new c()); if (this.isAnimationCached()) { (this.debugBones || this.debugSlots) && cc.warn("Debug bones or slots is invalid in cached mode"); var e = this._skeletonCache.getSkeletonCache(this.skeletonData._uuid, t); this._skeleton = e.skeleton; this._clipper = e.clipper; this._rootBone = this._skeleton.getRootBone(); } else { this._skeleton = new s.Skeleton(t); this._clipper = new s.SkeletonClipping(); this._rootBone = this._skeleton.getRootBone(); } }, setSlotsRange: function(t, e) { if (this.isAnimationCached()) console.warn("Slots visible range can not be modified in cached mode."); else { this._startSlotIndex = t; this._endSlotIndex = e; } }, setAnimationStateData: function(t) { if (this.isAnimationCached()) console.warn("'setAnimationStateData' interface can not be invoked in cached mode."); else { var e = new s.AnimationState(t); if (this._listener) { this._state && this._state.removeListener(this._listener); e.addListener(this._listener); } this._state = e; } }, __preload: function() { for (var t = this.node.children, e = 0, i = t.length; e < i; e++) { var n = t[e]; n && "DEBUG_DRAW_NODE" === n._name && n.destroy(); } this._cacheMode = u.REALTIME; this._activateMaterial(); this._updateSkeletonData(); this._updateDebugDraw(); this._updateUseTint(); this._updateBatch(); }, setAnimationCacheMode: function(t) {}, isAnimationCached: function() { 0; return this._cacheMode !== u.REALTIME; }, update: function(t) { 0; if (!this.paused) { t *= this.timeScale * sp.timeScale; if (this.isAnimationCached()) { if (this._isAniComplete) { if (0 === this._animationQueue.length && !this._headAniInfo) return; this._headAniInfo || (this._headAniInfo = this._animationQueue.shift()); this._accTime += t; if (this._accTime > this._headAniInfo.delay) { var e = this._headAniInfo; this._headAniInfo = null; this.setAnimation(0, e.animationName, e.loop); } return; } this._updateCache(t); } else this._updateRealtime(t); } }, _updateCache: function(t) { var e = this._frameCache, i = e.frames, n = c.FrameTime; if (0 == this._accTime && 0 == this._playCount) { this._startEntry.animation.name = this._animationName; this._listener && this._listener.start && this._listener.start(this._startEntry); } this._accTime += t; var r = Math.floor(this._accTime / n); e.isCompleted || e.updateToFrame(r); if (e.isCompleted && r >= i.length) { this._endEntry.animation.name = this._animationName; this._listener && this._listener.complete && this._listener.complete(this._endEntry); this._listener && this._listener.end && this._listener.end(this._endEntry); this._playCount++; if (this._playTimes > 0 && this._playCount >= this._playTimes) { this._curFrame = i[i.length - 1]; this._accTime = 0; this._playCount = 0; this._isAniComplete = !0; return; } this._accTime = 0; r = 0; } this._curFrame = i[r]; }, _updateRealtime: function(t) { var e = this._skeleton, i = this._state; if (e) { e.update(t); if (i) { i.update(t); i.apply(e); } } }, _activateMaterial: function() { var t = this.sharedMaterials[0]; (t = t ? o.getInstantiatedMaterial(t, this) : o.getInstantiatedBuiltinMaterial("2d-spine", this)).define("_USE_MODEL", !0); this.setMaterial(0, t); this.markForRender(!0); }, onEnable: function() { this._super(); this._activateMaterial(); }, onRestore: function() { this._boundingBox = cc.rect(); }, updateWorldTransform: function() { this.isAnimationCached() && this._skeleton && this._skeleton.updateWorldTransform(); }, setToSetupPose: function() { this.isAnimationCached() ? cc.warn("'SetToSetupPose' interface can not be invoked in cached mode.") : this._skeleton && this._skeleton.setToSetupPose(); }, setBonesToSetupPose: function() { this.isAnimationCached() ? cc.warn("'setBonesToSetupPose' interface can not be invoked in cached mode.") : this._skeleton && this._skeleton.setBonesToSetupPose(); }, setSlotsToSetupPose: function() { this.isAnimationCached() ? cc.warn("'setSlotsToSetupPose' interface can not be invoked in cached mode.") : this._skeleton && this._skeleton.setSlotsToSetupPose(); }, updateAnimationCache: function(t) { if (this.isAnimationCached()) { var e = this._skeletonCache.updateAnimationCache(this.skeletonData._uuid, t); this._frameCache = e || this._frameCache; } }, findBone: function(t) { return this._skeleton ? this._skeleton.findBone(t) : null; }, findSlot: function(t) { return this._skeleton ? this._skeleton.findSlot(t) : null; }, setSkin: function(t) { if (this.isAnimationCached()) this._skeletonCache.updateSkeletonSkin(this.skeletonData._uuid, t); else if (this._skeleton) { this._skeleton.setSkinByName(t); this._skeleton.setSlotsToSetupPose(); } }, getAttachment: function(t, e) { return this._skeleton ? this._skeleton.getAttachmentByName(t, e) : null; }, setAttachment: function(t, e) { this._skeleton && this._skeleton.setAttachment(t, e); }, getTextureAtlas: function(t) { return t.region; }, setMix: function(t, e, i) { this._state && this._state.data.setMix(t, e, i); }, setAnimation: function(t, e, i) { this._playTimes = i ? 0 : 1; this._animationName = e; if (this.isAnimationCached()) { 0 !== t && cc.warn("Track index can not greater than 0 in cached mode."); var n = this._skeletonCache.getAnimationCache(this.skeletonData._uuid, e); n || (n = this._skeletonCache.initAnimationCache(this.skeletonData._uuid, e)).begin(); if (n) { this._isAniComplete = !1; this._accTime = 0; this._playCount = 0; this._frameCache = n; this._curFrame = this._frameCache.frames[0]; } } else if (this._skeleton) { var r = this._skeleton.data.findAnimation(e); if (!r) { cc.logID(7509, e); return null; } var s = this._state.setAnimationWith(t, r, i); this._state.apply(this._skeleton); return s; } return null; }, addAnimation: function(t, e, i, n) { n = n || 0; if (this.isAnimationCached()) { 0 !== t && cc.warn("Track index can not greater than 0 in cached mode."); this._animationQueue.push({ animationName: e, loop: i, delay: n }); } else if (this._skeleton) { var r = this._skeleton.data.findAnimation(e); if (!r) { cc.logID(7510, e); return null; } return this._state.addAnimationWith(t, r, i, n); } return null; }, findAnimation: function(t) { return this._skeleton ? this._skeleton.data.findAnimation(t) : null; }, getCurrent: function(t) { if (this.isAnimationCached()) console.warn("'getCurrent' interface can not be invoked in cached mode."); else if (this._state) return this._state.getCurrent(t); return null; }, clearTracks: function() { this.isAnimationCached() ? console.warn("'clearTracks' interface can not be invoked in cached mode.") : this._state && this._state.clearTracks(); }, clearTrack: function(t) { if (this.isAnimationCached()) console.warn("'clearTrack' interface can not be invoked in cached mode."); else if (this._state) { this._state.clearTrack(t); 0; } }, setStartListener: function(t) { this._ensureListener(); this._listener.start = t; }, setInterruptListener: function(t) { this._ensureListener(); this._listener.interrupt = t; }, setEndListener: function(t) { this._ensureListener(); this._listener.end = t; }, setDisposeListener: function(t) { this._ensureListener(); this._listener.dispose = t; }, setCompleteListener: function(t) { this._ensureListener(); this._listener.complete = t; }, setEventListener: function(t) { this._ensureListener(); this._listener.event = t; }, setTrackStartListener: function(t, e) { n.getListeners(t).start = e; }, setTrackInterruptListener: function(t, e) { n.getListeners(t).interrupt = e; }, setTrackEndListener: function(t, e) { n.getListeners(t).end = e; }, setTrackDisposeListener: function(t, e) { n.getListeners(t).dispose = e; }, setTrackCompleteListener: function(t, e) { n.getListeners(t).complete = function(t) { var i = Math.floor(t.trackTime / t.animationEnd); e(t, i); }; }, setTrackEventListener: function(t, e) { n.getListeners(t).event = e; }, getState: function() { return this._state; }, _updateAnimEnum: !1, _updateSkinEnum: !1, _ensureListener: function() { if (!this._listener) { this._listener = new n(); this._state && this._state.addListener(this._listener); } }, _updateSkeletonData: function() { if (this.skeletonData) { var t = this.skeletonData.getRuntimeData(); if (t) { try { this.setSkeletonData(t); this.isAnimationCached() || this.setAnimationStateData(new s.AnimationStateData(this._skeleton.data)); this.defaultSkin && this.setSkin(this.defaultSkin); } catch (t) { cc.warn(t); } this._preCacheMode = this._cacheMode; this.animation = this.defaultAnimation; } } }, _refreshInspector: function() { this._updateAnimEnum(); this._updateSkinEnum(); Editor.Utils.refreshSelectedInspector("node", this.node.uuid); }, _updateDebugDraw: function() { if (this.debugBones || this.debugSlots) { if (!this._debugRenderer) { var t = new cc.PrivateNode(); t.name = "DEBUG_DRAW_NODE"; var e = t.addComponent(a); e.lineWidth = 1; e.strokeColor = cc.color(255, 0, 0, 255); this._debugRenderer = e; } this._debugRenderer.node.parent = this.node; this.isAnimationCached() && cc.warn("Debug bones or slots is invalid in cached mode"); } else this._debugRenderer && (this._debugRenderer.node.parent = null); } }); e.exports = sp.Skeleton; }), { "../../cocos2d/core/assets/material/CCMaterial": 75, "../../cocos2d/core/components/CCRenderComponent": 106, "../../cocos2d/core/graphics/graphics": 142, "./lib/spine": void 0, "./skeleton-cache": void 0, "./track-entry-listeners": 400 } ], 396: [ (function(i, n, r) { "use strict"; var s = "undefined" === ("object" === (e = typeof window) ? t(window) : e) ? global : window, o = !0; void 0 === s.spine && (o = !1); if (o) { s.sp = {}; sp._timeScale = 1; Object.defineProperty(sp, "timeScale", { get: function() { return this._timeScale; }, set: function(t) { this._timeScale = t; }, configurable: !0 }); sp.ATTACHMENT_TYPE = { REGION: 0, BOUNDING_BOX: 1, MESH: 2, SKINNED_MESH: 3 }; sp.AnimationEventType = cc.Enum({ START: 0, INTERRUPT: 1, END: 2, DISPOSE: 3, COMPLETE: 4, EVENT: 5 }); sp.spine = s.spine; i("./skeleton-texture"); i("./skeleton-data"); i("./Skeleton"); i("./spine-assembler"); } }), { "./Skeleton": 395, "./lib/spine": void 0, "./skeleton-data": 397, "./skeleton-texture": 398, "./spine-assembler": 399 } ], 397: [ (function(t, e, i) { "use strict"; var n = cc.Class({ name: "sp.SkeletonData", extends: cc.Asset, ctor: function() { this.reset(); }, properties: { skeletonJsonStr: "", _skeletonJson: null, skeletonJson: { get: function() { return this._skeletonJson; }, set: function(t) { this._skeletonJson = t; this.skeletonJsonStr = JSON.stringify(t); !this._uuid && t.skeleton && (this._uuid = t.skeleton.hash); this.reset(); } }, _atlasText: "", atlasText: { get: function() { return this._atlasText; }, set: function(t) { this._atlasText = t; this.reset(); } }, textures: { default: [], type: [ cc.Texture2D ] }, textureNames: { default: [], type: [ cc.String ] }, scale: 1 }, statics: { preventDeferredLoadDependents: !0, preventPreloadNativeObject: !0 }, createNode: !1, reset: function() { this._skeletonCache = null; this._atlasCache = null; 0; }, getRuntimeData: function(t) { if (this._skeletonCache) return this._skeletonCache; if (!(this.textures && this.textures.length > 0) && this.textureNames && this.textureNames.length > 0) { t || cc.errorID(7507, this.name); return null; } var e = this._getAtlas(t); if (!e) return null; var i = new sp.spine.AtlasAttachmentLoader(e), n = new sp.spine.SkeletonJson(i); n.scale = this.scale; var r = this.skeletonJson; this._skeletonCache = n.readSkeletonData(r); e.dispose(n); return this._skeletonCache; }, getSkinsEnum: !1, getAnimsEnum: !1, _getTexture: function(t) { for (var e = this.textureNames, i = 0; i < e.length; i++) if (e[i] === t) { var n = this.textures[i], r = new sp.SkeletonTexture({ width: n.width, height: n.height }); r.setRealTexture(n); return r; } cc.errorID(7506, t); return null; }, _getAtlas: function(t) { if (this._atlasCache) return this._atlasCache; if (!this.atlasText) { t || cc.errorID(7508, this.name); return null; } return this._atlasCache = new sp.spine.TextureAtlas(this.atlasText, this._getTexture.bind(this)); }, destroy: function() { 0; this._super(); } }); sp.SkeletonData = e.exports = n; }), { "./skeleton-cache": void 0 } ], 398: [ (function(t, e, i) { "use strict"; sp.SkeletonTexture = cc.Class({ name: "sp.SkeletonTexture", extends: sp.spine.Texture, _texture: null, _material: null, setRealTexture: function(t) { this._texture = t; }, getRealTexture: function() { return this._texture; }, setFilters: function(t, e) { this._texture && this._texture.setFilters(t, e); }, setWraps: function(t, e) { this._texture && this._texture.setWrapMode(t, e); }, dispose: function() {} }); }), {} ], 399: [ (function(t, e, i) { "use strict"; var n = t("./Skeleton"), r = t("./lib/spine"), s = t("../../cocos2d/core/renderer/render-flow"), o = t("../../cocos2d/core/renderer/webgl/vertex-format"), a = o.vfmtPosUvColor, c = o.vfmtPosUvTwoColor, l = cc.gfx, h = 0, u = [ 0, 1, 2, 2, 3, 0 ], _ = cc.color(0, 0, 255, 255), f = cc.color(255, 0, 0, 255), d = cc.color(0, 255, 0, 255), m = void 0, p = void 0; 0; var v = void 0, y = void 0, g = void 0, x = void 0, C = void 0, b = void 0, A = void 0, S = void 0, w = void 0, T = void 0, E = void 0, M = void 0, B = void 0, D = void 0, I = void 0, P = void 0, R = 0, L = 0, F = 0, O = 0, V = 0, N = 0, k = 0, z = void 0, G = void 0, U = void 0, j = void 0, W = void 0, H = void 0, q = void 0, X = void 0, Y = void 0, J = void 0, Z = void 0, K = void 0, Q = void 0, $ = void 0, tt = void 0, et = void 0, it = void 0, nt = void 0, rt = void 0, st = void 0, ot = void 0, at = void 0, ct = void 0, lt = void 0, ht = void 0, ut = void 0, _t = void 0, ft = void 0; function dt(t, e) { var i = void 0, n = void 0; switch (e) { case r.BlendMode.Additive: i = v ? cc.macro.ONE : cc.macro.SRC_ALPHA; n = cc.macro.ONE; break; case r.BlendMode.Multiply: i = cc.macro.DST_COLOR; n = cc.macro.ONE_MINUS_SRC_ALPHA; break; case r.BlendMode.Screen: i = cc.macro.ONE; n = cc.macro.ONE_MINUS_SRC_COLOR; break; case r.BlendMode.Normal: default: i = v ? cc.macro.ONE : cc.macro.SRC_ALPHA; n = cc.macro.ONE_MINUS_SRC_ALPHA; } var s = !lt.enableBatch, o = t.url + i + n + C + s, a = lt.sharedMaterials[0]; if (!a) return null; var c = lt._materialCache, h = c[o]; if (h) { if (h.getProperty("texture") !== t) { h.setProperty("texture", t); h.updateHash(o); } } else { c[a._hash] ? (h = new cc.Material()).copy(a) : h = a; h.define("_USE_MODEL", s); h.define("USE_TINT", C); h.setProperty("texture", t); h.effect.getDefaultTechnique().passes[0].setBlend(!0, l.BLEND_FUNC_ADD, i, n, l.BLEND_FUNC_ADD, i, n); h.updateHash(o); c[o] = h; } return h; } function mt(t) { st = t.fa * E; $ = S * (y = v ? st / 255 : 1); tt = w * y; et = T * y; it = t.fr * $; nt = t.fg * tt; rt = t.fb * et; M = (st << 24 >>> 0) + (rt << 16) + (nt << 8) + it; ot = t.dr * $; at = t.dg * tt; ct = t.db * et; B = ((v ? 255 : 0) << 24 >>> 0) + (ct << 16) + (at << 8) + ot; } var pt = { updateRenderData: function(t) { var e = t._skeleton; e && e.updateWorldTransform(); }, fillVertices: function(t, e, i, n, r) { var s = ht._vData, o = ht._iData, a = ht._uintVData, c = void 0; m.a = i.a * e.a * t.a * E * 255; y = v ? m.a : 255; z = S * e.r * t.r * y; G = w * e.g * t.g * y; U = T * e.b * t.b * y; m.r = z * i.r; m.g = G * i.g; m.b = U * i.b; if (null == r.darkColor) p.set(0, 0, 0, 1); else { p.r = r.darkColor.r * z; p.g = r.darkColor.g * G; p.b = r.darkColor.b * U; } p.a = v ? 255 : 0; if (n.isClipping()) { var l = s.subarray(F + 2); n.clipTriangles(s.subarray(F), R, o.subarray(N), V, l, m, p, C, I); var h = new Float32Array(n.clippedVertices), u = n.clippedTriangles; V = u.length; R = h.length / P * I; c = ht.request(R / I, V); N = c.indiceOffset, O = c.vertexOffset, F = c.byteOffset >> 2; s = ht._vData, o = ht._iData; a = ht._uintVData; o.set(u, N); if (C) for (var _ = 0, f = h.length, d = F; _ < f; _ += 12, d += I) { s[d] = h[_]; s[d + 1] = h[_ + 1]; s[d + 2] = h[_ + 6]; s[d + 3] = h[_ + 7]; M = (h[_ + 5] << 24 >>> 0) + (h[_ + 4] << 16) + (h[_ + 3] << 8) + h[_ + 2]; a[d + 4] = M; B = (h[_ + 11] << 24 >>> 0) + (h[_ + 10] << 16) + (h[_ + 9] << 8) + h[_ + 8]; a[d + 5] = B; } else for (var g = 0, x = h.length, b = F; g < x; g += 8, b += I) { s[b] = h[g]; s[b + 1] = h[g + 1]; s[b + 2] = h[g + 6]; s[b + 3] = h[g + 7]; M = (h[g + 5] << 24 >>> 0) + (h[g + 4] << 16) + (h[g + 3] << 8) + h[g + 2]; a[b + 4] = M; } } else { M = (m.a << 24 >>> 0) + (m.b << 16) + (m.g << 8) + m.r; B = (p.a << 24 >>> 0) + (p.b << 16) + (p.g << 8) + p.r; if (C) for (var A = F, D = F + R; A < D; A += I) { a[A + 4] = M; a[A + 5] = B; } else for (var L = F, k = F + R; L < k; L += I) a[L + 4] = M; } }, realTimeTraverse: function(t) { var e = void 0, i = void 0, n = lt._skeleton, s = n.color, o = lt._debugRenderer, a = lt._clipper, c = null, l = void 0, h = void 0, m = void 0, p = void 0, v = void 0, y = void 0, S = void 0, w = void 0, T = void 0; g = lt._startSlotIndex; x = lt._endSlotIndex; j = !1; -1 == g && (j = !0); b = lt.debugSlots; A = lt.debugBones; if (o && (A || b)) { o.clear(); o.strokeColor = _; o.lineWidth = 5; } P = C ? 12 : 8; R = 0; F = 0; O = 0; V = 0; N = 0; for (var E = 0, M = n.drawOrder.length; E < M; E++) { T = n.drawOrder[E]; g >= 0 && g == T.data.index && (j = !0); if (j) { x >= 0 && x == T.data.index && (j = !1); R = 0; V = 0; if (l = T.getAttachment()) { y = l instanceof r.RegionAttachment; S = l instanceof r.MeshAttachment; if (l instanceof r.ClippingAttachment) a.clipStart(T, l); else if (y || S) if (c = dt(l.region.texture._texture, T.data.blendMode)) { if (W || c._hash !== ut.material._hash) { W = !1; ut._flush(); ut.node = _t; ut.material = c; } if (y) { v = u; R = 4 * I; V = 6; w = ht.request(4, 6); N = w.indiceOffset, O = w.vertexOffset, F = w.byteOffset >> 2; e = ht._vData, i = ht._iData; l.computeWorldVertices(T.bone, e, F, I); if (o && b) { o.moveTo(e[F], e[F + 1]); for (var B = F + I, D = F + R; B < D; B += I) o.lineTo(e[B], e[B + 1]); o.close(); o.stroke(); } } else if (S) { v = l.triangles; R = (l.worldVerticesLength >> 1) * I; V = v.length; w = ht.request(R / I, V); N = w.indiceOffset, O = w.vertexOffset, F = w.byteOffset >> 2; e = ht._vData, i = ht._iData; l.computeWorldVertices(T, 0, l.worldVerticesLength, e, F, I); } if (0 != R && 0 != V) { i.set(v, N); p = l.uvs; for (var L = F, k = F + R, z = 0; L < k; L += I, z += 2) { e[L + 2] = p[z]; e[L + 3] = p[z + 1]; } h = l.color, m = T.color; this.fillVertices(s, h, m, a, T); if (V > 0) { for (var G = N, U = N + V; G < U; G++) i[G] += O; if (t) { X = t.m00; Y = t.m04; J = t.m12; Z = t.m01; K = t.m05; Q = t.m13; for (var $ = F, tt = F + R; $ < tt; $ += I) { H = e[$]; q = e[$ + 1]; e[$] = H * X + q * Y + J; e[$ + 1] = H * Z + q * K + Q; } } ht.adjust(R / I, V); } a.clipEndWithSlot(T); } else a.clipEndWithSlot(T); } else a.clipEndWithSlot(T); else a.clipEndWithSlot(T); } else a.clipEndWithSlot(T); } else a.clipEndWithSlot(T); } a.clipEnd(); if (o && A) { var et = void 0; o.strokeColor = f; o.fillColor = _; for (var it = 0, nt = n.bones.length; it < nt; it++) { var rt = (et = n.bones[it]).data.length * et.a + et.worldX, st = et.data.length * et.c + et.worldY; o.moveTo(et.worldX, et.worldY); o.lineTo(rt, st); o.stroke(); o.circle(et.worldX, et.worldY, 2 * Math.PI); o.fill(); 0 === it && (o.fillColor = d); } } }, cacheTraverse: function(t) { var e = lt._curFrame; if (e) { var i = e.segments; if (0 != i.length) { var n = void 0, r = void 0, s = void 0, o = void 0, a = void 0, c = e.vertices, l = e.indices, u = e.uintVert, _ = 0, f = 0, d = 0; if (t) { X = t.m00; Y = t.m04; J = t.m12; Z = t.m01; K = t.m05; Q = t.m13; } var m = 0, p = e.colors, v = p[m++], y = v.vfOffset; mt(v); for (var g = 0, x = i.length; g < x; g++) { var b = i[g]; if (o = dt(b.tex, b.blendMode)) { if (W || o._hash !== ut.material._hash) { W = !1; ut._flush(); ut.node = _t; ut.material = o; } L = b.vertexCount; V = b.indexCount; R = L * I; a = ht.request(L, V); N = a.indiceOffset; O = a.vertexOffset; k = a.byteOffset >> 2; n = ht._vData; r = ht._iData; s = ht._uintVData; for (var A = N, S = N + V; A < S; A++) r[A] = O + l[f++]; d = b.vfCount; switch (h) { case 0: for (var w = k, T = k + R; w < T; ) { n[w++] = c[_++]; n[w++] = c[_++]; n[w++] = c[_++]; n[w++] = c[_++]; s[w++] = u[_++]; _++; } break; case 1: n.set(c.subarray(_, _ + R), k); _ += R; break; case 16: for (var E = k, D = k + R; E < D; ) { H = c[_++]; q = c[_++]; n[E++] = H * X + q * Y + J; n[E++] = H * Z + q * K + Q; n[E++] = c[_++]; n[E++] = c[_++]; s[E++] = u[_++]; _++; } break; case 17: for (var P = k, F = k + R; P < F; ) { H = c[_++]; q = c[_++]; n[P++] = H * X + q * Y + J; n[P++] = H * Z + q * K + Q; n[P++] = c[_++]; n[P++] = c[_++]; s[P++] = u[_++]; s[P++] = u[_++]; } } ht.adjust(L, V); if (ft) for (var z = _ - d, G = k + 4, U = k + 4 + R; G < U; G += I, z += 6) { if (z >= y) { mt(v = p[m++]); y = v.vfOffset; } s[G] = M; C && (s[G + 1] = B); } } } } } }, fillBuffers: function(t, e) { var i = t.node; i._renderFlag |= s.FLAG_UPDATE_RENDER_DATA; if (t._skeleton) { var n = i._color; S = n.r / 255; w = n.g / 255; T = n.b / 255; E = n.a / 255; C = t.useTint; D = C ? c : a; I = C ? 6 : 5; _t = t.node; ht = e.getBuffer("spine", D); ut = e; lt = t; W = !0; v = t.premultipliedAlpha; y = 1; h = 0; ft = !1; (4294967295 !== n._val || v) && (ft = !0); C && (h |= 1); var r = void 0; if (lt.enableBatch) { r = _t._worldMatrix; W = !1; h |= 16; } t.isAnimationCached() ? this.cacheTraverse(r) : this.realTimeTraverse(r); _t = void 0; ht = void 0; ut = void 0; lt = void 0; } } }; n._assembler = pt; e.exports = pt; }), { "../../cocos2d/core/renderer/render-flow": 245, "../../cocos2d/core/renderer/webgl/vertex-format": 284, "./Skeleton": 395, "./lib/spine": void 0 } ], 400: [ (function(t, e, i) { "use strict"; var n = function() { this.start = null; this.end = null; this.complete = null; this.event = null; this.interrupt = null; this.dispose = null; }; n.getListeners = function(t) { t.listener || (t.listener = new n()); return t.listener; }; e.exports = n; }), {} ], 401: [ (function(i, n, r) { "use strict"; (function(i, s) { "object" === ("object" === (e = typeof r) ? t(r) : e) && "undefined" !== ("object" === (e = typeof n) ? t(n) : e) ? s(r) : "function" === ("object" === (e = typeof define) ? t(define) : e) && define.amd ? define([ "exports" ], s) : s(i.box2d = {}); })(void 0, (function(t) { function e(t, e) { return void 0 !== t ? t : e; } var i = 1e37, n = 1e-5, r = n * n, s = 3.14159265359, o = 2, a = 8, c = .008, l = 2 / 180 * s, h = 2 * c, u = -1; var _ = (function() { function t(t, e, i) { void 0 === t && (t = 0); void 0 === e && (e = 0); void 0 === i && (i = 0); this.major = 0; this.minor = 0; this.revision = 0; this.major = t; this.minor = e; this.revision = i; } t.prototype.toString = function() { return this.major + "." + this.minor + "." + this.revision; }; return t; })(), f = new _(2, 3, 2); function d(t, e) { for (var i = [], n = 0; n < t; ++n) i.push(e(n)); return i; } function m(t, e) { void 0 === e && (e = 0); for (var i = [], n = 0; n < t; ++n) i.push(e); return i; } var p = s / 180, v = 180 / s, y = Math.abs, g = Math.min, x = Math.max; function C(t, e, i) { return t < e ? e : t > i ? i : t; } var b = isFinite; function A(t) { return t * t; } function S(t) { return 1 / Math.sqrt(t); } var w = Math.sqrt, T = Math.pow; var E = Math.cos, M = Math.sin, B = Math.acos, D = Math.asin, I = Math.atan2; var P = (function() { function t(t, e) { void 0 === t && (t = 0); void 0 === e && (e = 0); this.x = t; this.y = e; } t.prototype.Clone = function() { return new t(this.x, this.y); }; t.prototype.SetZero = function() { this.x = 0; this.y = 0; return this; }; t.prototype.Set = function(t, e) { this.x = t; this.y = e; return this; }; t.prototype.Copy = function(t) { this.x = t.x; this.y = t.y; return this; }; t.prototype.SelfAdd = function(t) { this.x += t.x; this.y += t.y; return this; }; t.prototype.SelfAddXY = function(t, e) { this.x += t; this.y += e; return this; }; t.prototype.SelfSub = function(t) { this.x -= t.x; this.y -= t.y; return this; }; t.prototype.SelfSubXY = function(t, e) { this.x -= t; this.y -= e; return this; }; t.prototype.SelfMul = function(t) { this.x *= t; this.y *= t; return this; }; t.prototype.SelfMulAdd = function(t, e) { this.x += t * e.x; this.y += t * e.y; return this; }; t.prototype.SelfMulSub = function(t, e) { this.x -= t * e.x; this.y -= t * e.y; return this; }; t.prototype.Dot = function(t) { return this.x * t.x + this.y * t.y; }; t.prototype.Cross = function(t) { return this.x * t.y - this.y * t.x; }; t.prototype.Length = function() { var t = this.x, e = this.y; return Math.sqrt(t * t + e * e); }; t.prototype.LengthSquared = function() { var t = this.x, e = this.y; return t * t + e * e; }; t.prototype.Normalize = function() { var t = this.Length(); if (t >= n) { var e = 1 / t; this.x *= e; this.y *= e; } return t; }; t.prototype.SelfNormalize = function() { var t = this.Length(); if (t >= n) { var e = 1 / t; this.x *= e; this.y *= e; } return this; }; t.prototype.SelfRotate = function(t) { var e = Math.cos(t), i = Math.sin(t), n = this.x; this.x = e * n - i * this.y; this.y = i * n + e * this.y; return this; }; t.prototype.IsValid = function() { return isFinite(this.x) && isFinite(this.y); }; t.prototype.SelfCrossVS = function(t) { var e = this.x; this.x = t * this.y; this.y = -t * e; return this; }; t.prototype.SelfCrossSV = function(t) { var e = this.x; this.x = -t * this.y; this.y = t * e; return this; }; t.prototype.SelfMinV = function(t) { this.x = g(this.x, t.x); this.y = g(this.y, t.y); return this; }; t.prototype.SelfMaxV = function(t) { this.x = x(this.x, t.x); this.y = x(this.y, t.y); return this; }; t.prototype.SelfAbs = function() { this.x = y(this.x); this.y = y(this.y); return this; }; t.prototype.SelfNeg = function() { this.x = -this.x; this.y = -this.y; return this; }; t.prototype.SelfSkew = function() { var t = this.x; this.x = -this.y; this.y = t; return this; }; t.MakeArray = function(e) { return d(e, (function(e) { return new t(); })); }; t.AbsV = function(t, e) { e.x = y(t.x); e.y = y(t.y); return e; }; t.MinV = function(t, e, i) { i.x = g(t.x, e.x); i.y = g(t.y, e.y); return i; }; t.MaxV = function(t, e, i) { i.x = x(t.x, e.x); i.y = x(t.y, e.y); return i; }; t.ClampV = function(t, e, i, n) { n.x = C(t.x, e.x, i.x); n.y = C(t.y, e.y, i.y); return n; }; t.RotateV = function(t, e, i) { var n = t.x, r = t.y, s = Math.cos(e), o = Math.sin(e); i.x = s * n - o * r; i.y = o * n + s * r; return i; }; t.DotVV = function(t, e) { return t.x * e.x + t.y * e.y; }; t.CrossVV = function(t, e) { return t.x * e.y - t.y * e.x; }; t.CrossVS = function(t, e, i) { var n = t.x; i.x = e * t.y; i.y = -e * n; return i; }; t.CrossVOne = function(t, e) { var i = t.x; e.x = t.y; e.y = -i; return e; }; t.CrossSV = function(t, e, i) { var n = e.x; i.x = -t * e.y; i.y = t * n; return i; }; t.CrossOneV = function(t, e) { var i = t.x; e.x = -t.y; e.y = i; return e; }; t.AddVV = function(t, e, i) { i.x = t.x + e.x; i.y = t.y + e.y; return i; }; t.SubVV = function(t, e, i) { i.x = t.x - e.x; i.y = t.y - e.y; return i; }; t.MulSV = function(t, e, i) { i.x = e.x * t; i.y = e.y * t; return i; }; t.MulVS = function(t, e, i) { i.x = t.x * e; i.y = t.y * e; return i; }; t.AddVMulSV = function(t, e, i, n) { n.x = t.x + e * i.x; n.y = t.y + e * i.y; return n; }; t.SubVMulSV = function(t, e, i, n) { n.x = t.x - e * i.x; n.y = t.y - e * i.y; return n; }; t.AddVCrossSV = function(t, e, i, n) { var r = i.x; n.x = t.x - e * i.y; n.y = t.y + e * r; return n; }; t.MidVV = function(t, e, i) { i.x = .5 * (t.x + e.x); i.y = .5 * (t.y + e.y); return i; }; t.ExtVV = function(t, e, i) { i.x = .5 * (e.x - t.x); i.y = .5 * (e.y - t.y); return i; }; t.IsEqualToV = function(t, e) { return t.x === e.x && t.y === e.y; }; t.DistanceVV = function(t, e) { var i = t.x - e.x, n = t.y - e.y; return Math.sqrt(i * i + n * n); }; t.DistanceSquaredVV = function(t, e) { var i = t.x - e.x, n = t.y - e.y; return i * i + n * n; }; t.NegV = function(t, e) { e.x = -t.x; e.y = -t.y; return e; }; t.ZERO = new t(0, 0); t.UNITX = new t(1, 0); t.UNITY = new t(0, 1); t.s_t0 = new t(); t.s_t1 = new t(); t.s_t2 = new t(); t.s_t3 = new t(); return t; })(), R = new P(0, 0), L = (function() { function t(t, e, i) { void 0 === t && (t = 0); void 0 === e && (e = 0); void 0 === i && (i = 0); this.x = t; this.y = e; this.z = i; } t.prototype.Clone = function() { return new t(this.x, this.y, this.z); }; t.prototype.SetZero = function() { this.x = 0; this.y = 0; this.z = 0; return this; }; t.prototype.SetXYZ = function(t, e, i) { this.x = t; this.y = e; this.z = i; return this; }; t.prototype.Copy = function(t) { this.x = t.x; this.y = t.y; this.z = t.z; return this; }; t.prototype.SelfNeg = function() { this.x = -this.x; this.y = -this.y; this.z = -this.z; return this; }; t.prototype.SelfAdd = function(t) { this.x += t.x; this.y += t.y; this.z += t.z; return this; }; t.prototype.SelfAddXYZ = function(t, e, i) { this.x += t; this.y += e; this.z += i; return this; }; t.prototype.SelfSub = function(t) { this.x -= t.x; this.y -= t.y; this.z -= t.z; return this; }; t.prototype.SelfSubXYZ = function(t, e, i) { this.x -= t; this.y -= e; this.z -= i; return this; }; t.prototype.SelfMul = function(t) { this.x *= t; this.y *= t; this.z *= t; return this; }; t.DotV3V3 = function(t, e) { return t.x * e.x + t.y * e.y + t.z * e.z; }; t.CrossV3V3 = function(t, e, i) { var n = t.x, r = t.y, s = t.z, o = e.x, a = e.y, c = e.z; i.x = r * c - s * a; i.y = s * o - n * c; i.z = n * a - r * o; return i; }; t.ZERO = new t(0, 0, 0); t.s_t0 = new t(); return t; })(), F = (function() { function t() { this.ex = new P(1, 0); this.ey = new P(0, 1); } t.prototype.Clone = function() { return new t().Copy(this); }; t.FromVV = function(e, i) { return new t().SetVV(e, i); }; t.FromSSSS = function(e, i, n, r) { return new t().SetSSSS(e, i, n, r); }; t.FromAngle = function(e) { return new t().SetAngle(e); }; t.prototype.SetSSSS = function(t, e, i, n) { this.ex.Set(t, i); this.ey.Set(e, n); return this; }; t.prototype.SetVV = function(t, e) { this.ex.Copy(t); this.ey.Copy(e); return this; }; t.prototype.SetAngle = function(t) { var e = Math.cos(t), i = Math.sin(t); this.ex.Set(e, i); this.ey.Set(-i, e); return this; }; t.prototype.Copy = function(t) { this.ex.Copy(t.ex); this.ey.Copy(t.ey); return this; }; t.prototype.SetIdentity = function() { this.ex.Set(1, 0); this.ey.Set(0, 1); return this; }; t.prototype.SetZero = function() { this.ex.SetZero(); this.ey.SetZero(); return this; }; t.prototype.GetAngle = function() { return Math.atan2(this.ex.y, this.ex.x); }; t.prototype.GetInverse = function(t) { var e = this.ex.x, i = this.ey.x, n = this.ex.y, r = this.ey.y, s = e * r - i * n; 0 !== s && (s = 1 / s); t.ex.x = s * r; t.ey.x = -s * i; t.ex.y = -s * n; t.ey.y = s * e; return t; }; t.prototype.Solve = function(t, e, i) { var n = this.ex.x, r = this.ey.x, s = this.ex.y, o = this.ey.y, a = n * o - r * s; 0 !== a && (a = 1 / a); i.x = a * (o * t - r * e); i.y = a * (n * e - s * t); return i; }; t.prototype.SelfAbs = function() { this.ex.SelfAbs(); this.ey.SelfAbs(); return this; }; t.prototype.SelfInv = function() { this.GetInverse(this); return this; }; t.prototype.SelfAddM = function(t) { this.ex.SelfAdd(t.ex); this.ey.SelfAdd(t.ey); return this; }; t.prototype.SelfSubM = function(t) { this.ex.SelfSub(t.ex); this.ey.SelfSub(t.ey); return this; }; t.AbsM = function(t, e) { var i = t.ex, n = t.ey; e.ex.x = y(i.x); e.ex.y = y(i.y); e.ey.x = y(n.x); e.ey.y = y(n.y); return e; }; t.MulMV = function(t, e, i) { var n = t.ex, r = t.ey, s = e.x, o = e.y; i.x = n.x * s + r.x * o; i.y = n.y * s + r.y * o; return i; }; t.MulTMV = function(t, e, i) { var n = t.ex, r = t.ey, s = e.x, o = e.y; i.x = n.x * s + n.y * o; i.y = r.x * s + r.y * o; return i; }; t.AddMM = function(t, e, i) { var n = t.ex, r = t.ey, s = e.ex, o = e.ey; i.ex.x = n.x + s.x; i.ex.y = n.y + s.y; i.ey.x = r.x + o.x; i.ey.y = r.y + o.y; return i; }; t.MulMM = function(t, e, i) { var n = t.ex.x, r = t.ex.y, s = t.ey.x, o = t.ey.y, a = e.ex.x, c = e.ex.y, l = e.ey.x, h = e.ey.y; i.ex.x = n * a + s * c; i.ex.y = r * a + o * c; i.ey.x = n * l + s * h; i.ey.y = r * l + o * h; return i; }; t.MulTMM = function(t, e, i) { var n = t.ex.x, r = t.ex.y, s = t.ey.x, o = t.ey.y, a = e.ex.x, c = e.ex.y, l = e.ey.x, h = e.ey.y; i.ex.x = n * a + r * c; i.ex.y = s * a + o * c; i.ey.x = n * l + r * h; i.ey.y = s * l + o * h; return i; }; t.IDENTITY = new t(); return t; })(), O = (function() { function t() { this.ex = new L(1, 0, 0); this.ey = new L(0, 1, 0); this.ez = new L(0, 0, 1); } t.prototype.Clone = function() { return new t().Copy(this); }; t.prototype.SetVVV = function(t, e, i) { this.ex.Copy(t); this.ey.Copy(e); this.ez.Copy(i); return this; }; t.prototype.Copy = function(t) { this.ex.Copy(t.ex); this.ey.Copy(t.ey); this.ez.Copy(t.ez); return this; }; t.prototype.SetIdentity = function() { this.ex.SetXYZ(1, 0, 0); this.ey.SetXYZ(0, 1, 0); this.ez.SetXYZ(0, 0, 1); return this; }; t.prototype.SetZero = function() { this.ex.SetZero(); this.ey.SetZero(); this.ez.SetZero(); return this; }; t.prototype.SelfAddM = function(t) { this.ex.SelfAdd(t.ex); this.ey.SelfAdd(t.ey); this.ez.SelfAdd(t.ez); return this; }; t.prototype.Solve33 = function(t, e, i, n) { var r = this.ex.x, s = this.ex.y, o = this.ex.z, a = this.ey.x, c = this.ey.y, l = this.ey.z, h = this.ez.x, u = this.ez.y, _ = this.ez.z, f = r * (c * _ - l * u) + s * (l * h - a * _) + o * (a * u - c * h); 0 !== f && (f = 1 / f); n.x = f * (t * (c * _ - l * u) + e * (l * h - a * _) + i * (a * u - c * h)); n.y = f * (r * (e * _ - i * u) + s * (i * h - t * _) + o * (t * u - e * h)); n.z = f * (r * (c * i - l * e) + s * (l * t - a * i) + o * (a * e - c * t)); return n; }; t.prototype.Solve22 = function(t, e, i) { var n = this.ex.x, r = this.ey.x, s = this.ex.y, o = this.ey.y, a = n * o - r * s; 0 !== a && (a = 1 / a); i.x = a * (o * t - r * e); i.y = a * (n * e - s * t); return i; }; t.prototype.GetInverse22 = function(t) { var e = this.ex.x, i = this.ey.x, n = this.ex.y, r = this.ey.y, s = e * r - i * n; 0 !== s && (s = 1 / s); t.ex.x = s * r; t.ey.x = -s * i; t.ex.z = 0; t.ex.y = -s * n; t.ey.y = s * e; t.ey.z = 0; t.ez.x = 0; t.ez.y = 0; t.ez.z = 0; }; t.prototype.GetSymInverse33 = function(t) { var e = L.DotV3V3(this.ex, L.CrossV3V3(this.ey, this.ez, L.s_t0)); 0 !== e && (e = 1 / e); var i = this.ex.x, n = this.ey.x, r = this.ez.x, s = this.ey.y, o = this.ez.y, a = this.ez.z; t.ex.x = e * (s * a - o * o); t.ex.y = e * (r * o - n * a); t.ex.z = e * (n * o - r * s); t.ey.x = t.ex.y; t.ey.y = e * (i * a - r * r); t.ey.z = e * (r * n - i * o); t.ez.x = t.ex.z; t.ez.y = t.ey.z; t.ez.z = e * (i * s - n * n); }; t.MulM33V3 = function(t, e, i) { var n = e.x, r = e.y, s = e.z; i.x = t.ex.x * n + t.ey.x * r + t.ez.x * s; i.y = t.ex.y * n + t.ey.y * r + t.ez.y * s; i.z = t.ex.z * n + t.ey.z * r + t.ez.z * s; return i; }; t.MulM33XYZ = function(t, e, i, n, r) { r.x = t.ex.x * e + t.ey.x * i + t.ez.x * n; r.y = t.ex.y * e + t.ey.y * i + t.ez.y * n; r.z = t.ex.z * e + t.ey.z * i + t.ez.z * n; return r; }; t.MulM33V2 = function(t, e, i) { var n = e.x, r = e.y; i.x = t.ex.x * n + t.ey.x * r; i.y = t.ex.y * n + t.ey.y * r; return i; }; t.MulM33XY = function(t, e, i, n) { n.x = t.ex.x * e + t.ey.x * i; n.y = t.ex.y * e + t.ey.y * i; return n; }; t.IDENTITY = new t(); return t; })(), V = (function() { function t(t) { void 0 === t && (t = 0); this.s = 0; this.c = 1; if (t) { this.s = Math.sin(t); this.c = Math.cos(t); } } t.prototype.Clone = function() { return new t().Copy(this); }; t.prototype.Copy = function(t) { this.s = t.s; this.c = t.c; return this; }; t.prototype.SetAngle = function(t) { this.s = Math.sin(t); this.c = Math.cos(t); return this; }; t.prototype.SetIdentity = function() { this.s = 0; this.c = 1; return this; }; t.prototype.GetAngle = function() { return Math.atan2(this.s, this.c); }; t.prototype.GetXAxis = function(t) { t.x = this.c; t.y = this.s; return t; }; t.prototype.GetYAxis = function(t) { t.x = -this.s; t.y = this.c; return t; }; t.MulRR = function(t, e, i) { var n = t.c, r = t.s, s = e.c, o = e.s; i.s = r * s + n * o; i.c = n * s - r * o; return i; }; t.MulTRR = function(t, e, i) { var n = t.c, r = t.s, s = e.c, o = e.s; i.s = n * o - r * s; i.c = n * s + r * o; return i; }; t.MulRV = function(t, e, i) { var n = t.c, r = t.s, s = e.x, o = e.y; i.x = n * s - r * o; i.y = r * s + n * o; return i; }; t.MulTRV = function(t, e, i) { var n = t.c, r = t.s, s = e.x, o = e.y; i.x = n * s + r * o; i.y = -r * s + n * o; return i; }; t.IDENTITY = new t(); return t; })(), N = (function() { function t() { this.p = new P(); this.q = new V(); } t.prototype.Clone = function() { return new t().Copy(this); }; t.prototype.Copy = function(t) { this.p.Copy(t.p); this.q.Copy(t.q); return this; }; t.prototype.SetIdentity = function() { this.p.SetZero(); this.q.SetIdentity(); return this; }; t.prototype.SetPositionRotation = function(t, e) { this.p.Copy(t); this.q.Copy(e); return this; }; t.prototype.SetPositionAngle = function(t, e) { this.p.Copy(t); this.q.SetAngle(e); return this; }; t.prototype.SetPosition = function(t) { this.p.Copy(t); return this; }; t.prototype.SetPositionXY = function(t, e) { this.p.Set(t, e); return this; }; t.prototype.SetRotation = function(t) { this.q.Copy(t); return this; }; t.prototype.SetRotationAngle = function(t) { this.q.SetAngle(t); return this; }; t.prototype.GetPosition = function() { return this.p; }; t.prototype.GetRotation = function() { return this.q; }; t.prototype.GetRotationAngle = function() { return this.q.GetAngle(); }; t.prototype.GetAngle = function() { return this.q.GetAngle(); }; t.MulXV = function(t, e, i) { var n = t.q.c, r = t.q.s, s = e.x, o = e.y; i.x = n * s - r * o + t.p.x; i.y = r * s + n * o + t.p.y; return i; }; t.MulTXV = function(t, e, i) { var n = t.q.c, r = t.q.s, s = e.x - t.p.x, o = e.y - t.p.y; i.x = n * s + r * o; i.y = -r * s + n * o; return i; }; t.MulXX = function(t, e, i) { V.MulRR(t.q, e.q, i.q); P.AddVV(V.MulRV(t.q, e.p, i.p), t.p, i.p); return i; }; t.MulTXX = function(t, e, i) { V.MulTRR(t.q, e.q, i.q); V.MulTRV(t.q, P.SubVV(e.p, t.p, i.p), i.p); return i; }; t.IDENTITY = new t(); return t; })(), k = (function() { function t() { this.localCenter = new P(); this.c0 = new P(); this.c = new P(); this.a0 = 0; this.a = 0; this.alpha0 = 0; } t.prototype.Clone = function() { return new t().Copy(this); }; t.prototype.Copy = function(t) { this.localCenter.Copy(t.localCenter); this.c0.Copy(t.c0); this.c.Copy(t.c); this.a0 = t.a0; this.a = t.a; this.alpha0 = t.alpha0; return this; }; t.prototype.GetTransform = function(t, e) { var i = 1 - e; t.p.x = i * this.c0.x + e * this.c.x; t.p.y = i * this.c0.y + e * this.c.y; var n = i * this.a0 + e * this.a; t.q.SetAngle(n); t.p.SelfSub(V.MulRV(t.q, this.localCenter, P.s_t0)); return t; }; t.prototype.Advance = function(t) { var e = (t - this.alpha0) / (1 - this.alpha0), i = 1 - e; this.c0.x = i * this.c0.x + e * this.c.x; this.c0.y = i * this.c0.y + e * this.c.y; this.a0 = i * this.a0 + e * this.a; this.alpha0 = t; }; t.prototype.Normalize = function() { var t = 6.28318530718 * Math.floor(this.a0 / 6.28318530718); this.a0 -= t; this.a -= t; }; return t; })(), z = (function() { function t(t, e, i, n) { void 0 === t && (t = .5); void 0 === e && (e = .5); void 0 === i && (i = .5); void 0 === n && (n = 1); this.r = t; this.g = e; this.b = i; this.a = n; } t.prototype.Clone = function() { return new t().Copy(this); }; t.prototype.Copy = function(t) { this.r = t.r; this.g = t.g; this.b = t.b; this.a = t.a; return this; }; t.prototype.IsEqual = function(t) { return this.r === t.r && this.g === t.g && this.b === t.b && this.a === t.a; }; t.prototype.IsZero = function() { return 0 === this.r && 0 === this.g && 0 === this.b && 0 === this.a; }; t.prototype.Set = function(t, e, i, n) { void 0 === n && (n = this.a); this.SetRGBA(t, e, i, n); }; t.prototype.SetByteRGB = function(t, e, i) { this.r = t / 255; this.g = e / 255; this.b = i / 255; return this; }; t.prototype.SetByteRGBA = function(t, e, i, n) { this.r = t / 255; this.g = e / 255; this.b = i / 255; this.a = n / 255; return this; }; t.prototype.SetRGB = function(t, e, i) { this.r = t; this.g = e; this.b = i; return this; }; t.prototype.SetRGBA = function(t, e, i, n) { this.r = t; this.g = e; this.b = i; this.a = n; return this; }; t.prototype.SelfAdd = function(t) { this.r += t.r; this.g += t.g; this.b += t.b; this.a += t.a; return this; }; t.prototype.Add = function(t, e) { e.r = this.r + t.r; e.g = this.g + t.g; e.b = this.b + t.b; e.a = this.a + t.a; return e; }; t.prototype.SelfSub = function(t) { this.r -= t.r; this.g -= t.g; this.b -= t.b; this.a -= t.a; return this; }; t.prototype.Sub = function(t, e) { e.r = this.r - t.r; e.g = this.g - t.g; e.b = this.b - t.b; e.a = this.a - t.a; return e; }; t.prototype.SelfMul = function(t) { this.r *= t; this.g *= t; this.b *= t; this.a *= t; return this; }; t.prototype.Mul = function(t, e) { e.r = this.r * t; e.g = this.g * t; e.b = this.b * t; e.a = this.a * t; return e; }; t.prototype.Mix = function(e, i) { t.MixColors(this, e, i); }; t.MixColors = function(t, e, i) { var n = i * (e.r - t.r), r = i * (e.g - t.g), s = i * (e.b - t.b), o = i * (e.a - t.a); t.r += n; t.g += r; t.b += s; t.a += o; e.r -= n; e.g -= r; e.b -= s; e.a -= o; }; t.prototype.MakeStyleString = function(e) { void 0 === e && (e = this.a); return t.MakeStyleString(this.r, this.g, this.b, e); }; t.MakeStyleString = function(t, e, i, n) { void 0 === n && (n = 1); t *= 255; e *= 255; i *= 255; return n < 1 ? "rgba(" + t + "," + e + "," + i + "," + n + ")" : "rgb(" + t + "," + e + "," + i + ")"; }; t.ZERO = new t(0, 0, 0, 0); t.RED = new t(1, 0, 0); t.GREEN = new t(0, 1, 0); t.BLUE = new t(0, 0, 1); return t; })(); (function(t) { t[t.e_none = 0] = "e_none"; t[t.e_shapeBit = 1] = "e_shapeBit"; t[t.e_jointBit = 2] = "e_jointBit"; t[t.e_aabbBit = 4] = "e_aabbBit"; t[t.e_pairBit = 8] = "e_pairBit"; t[t.e_centerOfMassBit = 16] = "e_centerOfMassBit"; t[t.e_particleBit = 32] = "e_particleBit"; t[t.e_controllerBit = 64] = "e_controllerBit"; t[t.e_all = 63] = "e_all"; })(t.b2DrawFlags || (t.b2DrawFlags = {})); var G = (function() { function t() { this.m_drawFlags = 0; } t.prototype.SetFlags = function(t) { this.m_drawFlags = t; }; t.prototype.GetFlags = function() { return this.m_drawFlags; }; t.prototype.AppendFlags = function(t) { this.m_drawFlags |= t; }; t.prototype.ClearFlags = function(t) { this.m_drawFlags &= ~t; }; return t; })(), U = (function() { function t() { this.m_start = Date.now(); } t.prototype.Reset = function() { this.m_start = Date.now(); return this; }; t.prototype.GetMilliseconds = function() { return Date.now() - this.m_start; }; return t; })(), j = (function() { function t() { this.m_count = 0; this.m_min_count = 0; this.m_max_count = 0; } t.prototype.GetCount = function() { return this.m_count; }; t.prototype.GetMinCount = function() { return this.m_min_count; }; t.prototype.GetMaxCount = function() { return this.m_max_count; }; t.prototype.ResetCount = function() { var t = this.m_count; this.m_count = 0; return t; }; t.prototype.ResetMinCount = function() { this.m_min_count = 0; }; t.prototype.ResetMaxCount = function() { this.m_max_count = 0; }; t.prototype.Increment = function() { this.m_count++; this.m_max_count < this.m_count && (this.m_max_count = this.m_count); }; t.prototype.Decrement = function() { this.m_count--; this.m_min_count > this.m_count && (this.m_min_count = this.m_count); }; return t; })(), W = (function() { function t(t) { this.m_stack = []; this.m_count = 0; this.m_stack = d(t, (function(t) { return null; })); this.m_count = 0; } t.prototype.Reset = function() { this.m_count = 0; return this; }; t.prototype.Push = function(t) { this.m_stack[this.m_count] = t; this.m_count++; }; t.prototype.Pop = function() { this.m_count--; var t = this.m_stack[this.m_count]; this.m_stack[this.m_count] = null; if (null === t) throw new Error(); return t; }; t.prototype.GetCount = function() { return this.m_count; }; return t; })(), H = (function() { return function() {}; })(), q = (function() { return function() {}; })(), X = (function() { function t() { this.m_buffer = P.MakeArray(2); this.m_vertices = this.m_buffer; this.m_count = 0; this.m_radius = 0; } t.prototype.Copy = function(t) { if (t.m_vertices === t.m_buffer) { this.m_vertices = this.m_buffer; this.m_buffer[0].Copy(t.m_buffer[0]); this.m_buffer[1].Copy(t.m_buffer[1]); } else this.m_vertices = t.m_vertices; this.m_count = t.m_count; this.m_radius = t.m_radius; return this; }; t.prototype.Reset = function() { this.m_vertices = this.m_buffer; this.m_count = 0; this.m_radius = 0; return this; }; t.prototype.SetShape = function(t, e) { t.SetupDistanceProxy(this, e); }; t.prototype.SetVerticesRadius = function(t, e, i) { this.m_vertices = t; this.m_count = e; this.m_radius = i; }; t.prototype.GetSupport = function(t) { for (var e = 0, i = P.DotVV(this.m_vertices[0], t), n = 1; n < this.m_count; ++n) { var r = P.DotVV(this.m_vertices[n], t); if (r > i) { e = n; i = r; } } return e; }; t.prototype.GetSupportVertex = function(t) { for (var e = 0, i = P.DotVV(this.m_vertices[0], t), n = 1; n < this.m_count; ++n) { var r = P.DotVV(this.m_vertices[n], t); if (r > i) { e = n; i = r; } } return this.m_vertices[e]; }; t.prototype.GetVertexCount = function() { return this.m_count; }; t.prototype.GetVertex = function(t) { return this.m_vertices[t]; }; return t; })(), Y = (function() { function t() { this.metric = 0; this.count = 0; this.indexA = [ 0, 0, 0 ]; this.indexB = [ 0, 0, 0 ]; } t.prototype.Reset = function() { this.metric = 0; this.count = 0; return this; }; return t; })(), J = (function() { function t() { this.proxyA = new X(); this.proxyB = new X(); this.transformA = new N(); this.transformB = new N(); this.useRadii = !1; } t.prototype.Reset = function() { this.proxyA.Reset(); this.proxyB.Reset(); this.transformA.SetIdentity(); this.transformB.SetIdentity(); this.useRadii = !1; return this; }; return t; })(), Z = (function() { function t() { this.pointA = new P(); this.pointB = new P(); this.distance = 0; this.iterations = 0; } t.prototype.Reset = function() { this.pointA.SetZero(); this.pointB.SetZero(); this.distance = 0; this.iterations = 0; return this; }; return t; })(), K = (function() { return function() { this.proxyA = new X(); this.proxyB = new X(); this.transformA = new N(); this.transformB = new N(); this.translationB = new P(); }; })(), Q = (function() { return function() { this.point = new P(); this.normal = new P(); this.lambda = 0; this.iterations = 0; }; })(); t.b2_gjkCalls = 0; t.b2_gjkIters = 0; t.b2_gjkMaxIters = 0; var $ = (function() { function t() { this.wA = new P(); this.wB = new P(); this.w = new P(); this.a = 0; this.indexA = 0; this.indexB = 0; } t.prototype.Copy = function(t) { this.wA.Copy(t.wA); this.wB.Copy(t.wB); this.w.Copy(t.w); this.a = t.a; this.indexA = t.indexA; this.indexB = t.indexB; return this; }; return t; })(), tt = (function() { function t() { this.m_v1 = new $(); this.m_v2 = new $(); this.m_v3 = new $(); this.m_vertices = []; this.m_count = 0; this.m_vertices[0] = this.m_v1; this.m_vertices[1] = this.m_v2; this.m_vertices[2] = this.m_v3; } t.prototype.ReadCache = function(t, e, i, r, s) { this.m_count = t.count; for (var o = this.m_vertices, a = 0; a < this.m_count; ++a) { (_ = o[a]).indexA = t.indexA[a]; _.indexB = t.indexB[a]; var c = e.GetVertex(_.indexA), l = r.GetVertex(_.indexB); N.MulXV(i, c, _.wA); N.MulXV(s, l, _.wB); P.SubVV(_.wB, _.wA, _.w); _.a = 0; } if (this.m_count > 1) { var h = t.metric, u = this.GetMetric(); (u < .5 * h || 2 * h < u || u < n) && (this.m_count = 0); } if (0 === this.m_count) { var _; (_ = o[0]).indexA = 0; _.indexB = 0; c = e.GetVertex(0), l = r.GetVertex(0); N.MulXV(i, c, _.wA); N.MulXV(s, l, _.wB); P.SubVV(_.wB, _.wA, _.w); _.a = 1; this.m_count = 1; } }; t.prototype.WriteCache = function(t) { t.metric = this.GetMetric(); t.count = this.m_count; for (var e = this.m_vertices, i = 0; i < this.m_count; ++i) { t.indexA[i] = e[i].indexA; t.indexB[i] = e[i].indexB; } }; t.prototype.GetSearchDirection = function(t) { switch (this.m_count) { case 1: return P.NegV(this.m_v1.w, t); case 2: var e = P.SubVV(this.m_v2.w, this.m_v1.w, t); return P.CrossVV(e, P.NegV(this.m_v1.w, P.s_t0)) > 0 ? P.CrossOneV(e, t) : P.CrossVOne(e, t); default: return t.SetZero(); } }; t.prototype.GetClosestPoint = function(t) { switch (this.m_count) { case 0: return t.SetZero(); case 1: return t.Copy(this.m_v1.w); case 2: return t.Set(this.m_v1.a * this.m_v1.w.x + this.m_v2.a * this.m_v2.w.x, this.m_v1.a * this.m_v1.w.y + this.m_v2.a * this.m_v2.w.y); case 3: default: return t.SetZero(); } }; t.prototype.GetWitnessPoints = function(t, e) { switch (this.m_count) { case 0: break; case 1: t.Copy(this.m_v1.wA); e.Copy(this.m_v1.wB); break; case 2: t.x = this.m_v1.a * this.m_v1.wA.x + this.m_v2.a * this.m_v2.wA.x; t.y = this.m_v1.a * this.m_v1.wA.y + this.m_v2.a * this.m_v2.wA.y; e.x = this.m_v1.a * this.m_v1.wB.x + this.m_v2.a * this.m_v2.wB.x; e.y = this.m_v1.a * this.m_v1.wB.y + this.m_v2.a * this.m_v2.wB.y; break; case 3: e.x = t.x = this.m_v1.a * this.m_v1.wA.x + this.m_v2.a * this.m_v2.wA.x + this.m_v3.a * this.m_v3.wA.x; e.y = t.y = this.m_v1.a * this.m_v1.wA.y + this.m_v2.a * this.m_v2.wA.y + this.m_v3.a * this.m_v3.wA.y; } }; t.prototype.GetMetric = function() { switch (this.m_count) { case 0: case 1: return 0; case 2: return P.DistanceVV(this.m_v1.w, this.m_v2.w); case 3: return P.CrossVV(P.SubVV(this.m_v2.w, this.m_v1.w, P.s_t0), P.SubVV(this.m_v3.w, this.m_v1.w, P.s_t1)); default: return 0; } }; t.prototype.Solve2 = function() { var e = this.m_v1.w, i = this.m_v2.w, n = P.SubVV(i, e, t.s_e12), r = -P.DotVV(e, n); if (r <= 0) { this.m_v1.a = 1; this.m_count = 1; } else { var s = P.DotVV(i, n); if (s <= 0) { this.m_v2.a = 1; this.m_count = 1; this.m_v1.Copy(this.m_v2); } else { var o = 1 / (s + r); this.m_v1.a = s * o; this.m_v2.a = r * o; this.m_count = 2; } } }; t.prototype.Solve3 = function() { var e = this.m_v1.w, i = this.m_v2.w, n = this.m_v3.w, r = P.SubVV(i, e, t.s_e12), s = P.DotVV(e, r), o = P.DotVV(i, r), a = -s, c = P.SubVV(n, e, t.s_e13), l = P.DotVV(e, c), h = P.DotVV(n, c), u = -l, _ = P.SubVV(n, i, t.s_e23), f = P.DotVV(i, _), d = P.DotVV(n, _), m = -f, p = P.CrossVV(r, c), v = p * P.CrossVV(i, n), y = p * P.CrossVV(n, e), g = p * P.CrossVV(e, i); if (a <= 0 && u <= 0) { this.m_v1.a = 1; this.m_count = 1; } else if (o > 0 && a > 0 && g <= 0) { var x = 1 / (o + a); this.m_v1.a = o * x; this.m_v2.a = a * x; this.m_count = 2; } else if (h > 0 && u > 0 && y <= 0) { var C = 1 / (h + u); this.m_v1.a = h * C; this.m_v3.a = u * C; this.m_count = 2; this.m_v2.Copy(this.m_v3); } else if (o <= 0 && m <= 0) { this.m_v2.a = 1; this.m_count = 1; this.m_v1.Copy(this.m_v2); } else if (h <= 0 && d <= 0) { this.m_v3.a = 1; this.m_count = 1; this.m_v1.Copy(this.m_v3); } else if (d > 0 && m > 0 && v <= 0) { var b = 1 / (d + m); this.m_v2.a = d * b; this.m_v3.a = m * b; this.m_count = 2; this.m_v1.Copy(this.m_v3); } else { var A = 1 / (v + y + g); this.m_v1.a = v * A; this.m_v2.a = y * A; this.m_v3.a = g * A; this.m_count = 3; } }; t.s_e12 = new P(); t.s_e13 = new P(); t.s_e23 = new P(); return t; })(), et = new tt(), it = [ 0, 0, 0 ], nt = [ 0, 0, 0 ], rt = new P(), st = new P(), ot = new P(), at = new P(), ct = new P(); function lt(e, i, s) { ++t.b2_gjkCalls; var o = s.proxyA, a = s.proxyB, c = s.transformA, l = s.transformB, h = et; h.ReadCache(i, o, c, a, l); for (var u = h.m_vertices, _ = it, f = nt, d = 0, m = 0; m < 20; ) { d = h.m_count; for (var p = 0; p < d; ++p) { _[p] = u[p].indexA; f[p] = u[p].indexB; } switch (h.m_count) { case 1: break; case 2: h.Solve2(); break; case 3: h.Solve3(); } if (3 === h.m_count) break; var v = h.GetSearchDirection(st); if (v.LengthSquared() < r) break; var y = u[h.m_count]; y.indexA = o.GetSupport(V.MulTRV(c.q, P.NegV(v, P.s_t0), at)); N.MulXV(c, o.GetVertex(y.indexA), y.wA); y.indexB = a.GetSupport(V.MulTRV(l.q, v, ct)); N.MulXV(l, a.GetVertex(y.indexB), y.wB); P.SubVV(y.wB, y.wA, y.w); ++m; ++t.b2_gjkIters; var g = !1; for (p = 0; p < d; ++p) if (y.indexA === _[p] && y.indexB === f[p]) { g = !0; break; } if (g) break; ++h.m_count; } t.b2_gjkMaxIters = x(t.b2_gjkMaxIters, m); h.GetWitnessPoints(e.pointA, e.pointB); e.distance = P.DistanceVV(e.pointA, e.pointB); e.iterations = m; h.WriteCache(i); if (s.useRadii) { var C = o.m_radius, b = a.m_radius; if (e.distance > C + b && e.distance > n) { e.distance -= C + b; var A = P.SubVV(e.pointB, e.pointA, ot); A.Normalize(); e.pointA.SelfMulAdd(C, A); e.pointB.SelfMulSub(b, A); } else { var S = P.MidVV(e.pointA, e.pointB, rt); e.pointA.Copy(S); e.pointB.Copy(S); e.distance = 0; } } } var ht = new P(), ut = new tt(), _t = new P(), ft = new P(), dt = new P(), mt = new P(), pt = new P(), vt = new P(); (function(t) { t[t.e_vertex = 0] = "e_vertex"; t[t.e_face = 1] = "e_face"; })(t.b2ContactFeatureType || (t.b2ContactFeatureType = {})); var yt = (function() { function t() { this._key = 0; this._key_invalid = !1; this._indexA = 0; this._indexB = 0; this._typeA = 0; this._typeB = 0; } Object.defineProperty(t.prototype, "key", { get: function() { if (this._key_invalid) { this._key_invalid = !1; this._key = this._indexA | this._indexB << 8 | this._typeA << 16 | this._typeB << 24; } return this._key; }, set: function(t) { this._key = t; this._key_invalid = !1; this._indexA = 255 & this._key; this._indexB = this._key >> 8 & 255; this._typeA = this._key >> 16 & 255; this._typeB = this._key >> 24 & 255; }, enumerable: !0, configurable: !0 }); Object.defineProperty(t.prototype, "indexA", { get: function() { return this._indexA; }, set: function(t) { this._indexA = t; this._key_invalid = !0; }, enumerable: !0, configurable: !0 }); Object.defineProperty(t.prototype, "indexB", { get: function() { return this._indexB; }, set: function(t) { this._indexB = t; this._key_invalid = !0; }, enumerable: !0, configurable: !0 }); Object.defineProperty(t.prototype, "typeA", { get: function() { return this._typeA; }, set: function(t) { this._typeA = t; this._key_invalid = !0; }, enumerable: !0, configurable: !0 }); Object.defineProperty(t.prototype, "typeB", { get: function() { return this._typeB; }, set: function(t) { this._typeB = t; this._key_invalid = !0; }, enumerable: !0, configurable: !0 }); return t; })(), gt = (function() { function t() { this.cf = new yt(); } t.prototype.Copy = function(t) { this.key = t.key; return this; }; t.prototype.Clone = function() { return new t().Copy(this); }; Object.defineProperty(t.prototype, "key", { get: function() { return this.cf.key; }, set: function(t) { this.cf.key = t; }, enumerable: !0, configurable: !0 }); return t; })(), xt = (function() { function t() { this.localPoint = new P(); this.normalImpulse = 0; this.tangentImpulse = 0; this.id = new gt(); } t.MakeArray = function(e) { return d(e, (function(e) { return new t(); })); }; t.prototype.Reset = function() { this.localPoint.SetZero(); this.normalImpulse = 0; this.tangentImpulse = 0; this.id.key = 0; }; t.prototype.Copy = function(t) { this.localPoint.Copy(t.localPoint); this.normalImpulse = t.normalImpulse; this.tangentImpulse = t.tangentImpulse; this.id.Copy(t.id); return this; }; return t; })(); (function(t) { t[t.e_unknown = -1] = "e_unknown"; t[t.e_circles = 0] = "e_circles"; t[t.e_faceA = 1] = "e_faceA"; t[t.e_faceB = 2] = "e_faceB"; })(t.b2ManifoldType || (t.b2ManifoldType = {})); var Ct = (function() { function e() { this.points = xt.MakeArray(o); this.localNormal = new P(); this.localPoint = new P(); this.type = t.b2ManifoldType.e_unknown; this.pointCount = 0; } e.prototype.Reset = function() { for (var e = 0; e < o; ++e) this.points[e].Reset(); this.localNormal.SetZero(); this.localPoint.SetZero(); this.type = t.b2ManifoldType.e_unknown; this.pointCount = 0; }; e.prototype.Copy = function(t) { this.pointCount = t.pointCount; for (var e = 0; e < o; ++e) this.points[e].Copy(t.points[e]); this.localNormal.Copy(t.localNormal); this.localPoint.Copy(t.localPoint); this.type = t.type; return this; }; e.prototype.Clone = function() { return new e().Copy(this); }; return e; })(), bt = (function() { function e() { this.normal = new P(); this.points = P.MakeArray(o); this.separations = m(o); } e.prototype.Initialize = function(i, n, s, o, a) { if (0 !== i.pointCount) switch (i.type) { case t.b2ManifoldType.e_circles: this.normal.Set(1, 0); var c = N.MulXV(n, i.localPoint, e.Initialize_s_pointA), l = N.MulXV(o, i.points[0].localPoint, e.Initialize_s_pointB); P.DistanceSquaredVV(c, l) > r && P.SubVV(l, c, this.normal).SelfNormalize(); var h = P.AddVMulSV(c, s, this.normal, e.Initialize_s_cA), u = P.SubVMulSV(l, a, this.normal, e.Initialize_s_cB); P.MidVV(h, u, this.points[0]); this.separations[0] = P.DotVV(P.SubVV(u, h, P.s_t0), this.normal); break; case t.b2ManifoldType.e_faceA: V.MulRV(n.q, i.localNormal, this.normal); for (var _ = N.MulXV(n, i.localPoint, e.Initialize_s_planePoint), f = 0; f < i.pointCount; ++f) { var d = N.MulXV(o, i.points[f].localPoint, e.Initialize_s_clipPoint), m = s - P.DotVV(P.SubVV(d, _, P.s_t0), this.normal); h = P.AddVMulSV(d, m, this.normal, e.Initialize_s_cA), u = P.SubVMulSV(d, a, this.normal, e.Initialize_s_cB); P.MidVV(h, u, this.points[f]); this.separations[f] = P.DotVV(P.SubVV(u, h, P.s_t0), this.normal); } break; case t.b2ManifoldType.e_faceB: V.MulRV(o.q, i.localNormal, this.normal); for (_ = N.MulXV(o, i.localPoint, e.Initialize_s_planePoint), f = 0; f < i.pointCount; ++f) { d = N.MulXV(n, i.points[f].localPoint, e.Initialize_s_clipPoint), m = a - P.DotVV(P.SubVV(d, _, P.s_t0), this.normal), u = P.AddVMulSV(d, m, this.normal, e.Initialize_s_cB), h = P.SubVMulSV(d, s, this.normal, e.Initialize_s_cA); P.MidVV(h, u, this.points[f]); this.separations[f] = P.DotVV(P.SubVV(h, u, P.s_t0), this.normal); } this.normal.SelfNeg(); } }; e.Initialize_s_pointA = new P(); e.Initialize_s_pointB = new P(); e.Initialize_s_cA = new P(); e.Initialize_s_cB = new P(); e.Initialize_s_planePoint = new P(); e.Initialize_s_clipPoint = new P(); return e; })(); (function(t) { t[t.b2_nullState = 0] = "b2_nullState"; t[t.b2_addState = 1] = "b2_addState"; t[t.b2_persistState = 2] = "b2_persistState"; t[t.b2_removeState = 3] = "b2_removeState"; })(t.b2PointState || (t.b2PointState = {})); var At = (function() { function t() { this.v = new P(); this.id = new gt(); } t.MakeArray = function(e) { return d(e, (function(e) { return new t(); })); }; t.prototype.Copy = function(t) { this.v.Copy(t.v); this.id.Copy(t.id); return this; }; return t; })(), St = (function() { function t() { this.p1 = new P(); this.p2 = new P(); this.maxFraction = 1; } t.prototype.Copy = function(t) { this.p1.Copy(t.p1); this.p2.Copy(t.p2); this.maxFraction = t.maxFraction; return this; }; return t; })(), wt = (function() { function t() { this.normal = new P(); this.fraction = 0; } t.prototype.Copy = function(t) { this.normal.Copy(t.normal); this.fraction = t.fraction; return this; }; return t; })(), Tt = (function() { function t() { this.lowerBound = new P(); this.upperBound = new P(); this.m_cache_center = new P(); this.m_cache_extent = new P(); } t.prototype.Copy = function(t) { this.lowerBound.Copy(t.lowerBound); this.upperBound.Copy(t.upperBound); return this; }; t.prototype.IsValid = function() { var t = this.upperBound.x - this.lowerBound.x, e = this.upperBound.y - this.lowerBound.y, i = t >= 0 && e >= 0; return i = i && this.lowerBound.IsValid() && this.upperBound.IsValid(); }; t.prototype.GetCenter = function() { return P.MidVV(this.lowerBound, this.upperBound, this.m_cache_center); }; t.prototype.GetExtents = function() { return P.ExtVV(this.lowerBound, this.upperBound, this.m_cache_extent); }; t.prototype.GetPerimeter = function() { return 2 * (this.upperBound.x - this.lowerBound.x + (this.upperBound.y - this.lowerBound.y)); }; t.prototype.Combine1 = function(t) { this.lowerBound.x = g(this.lowerBound.x, t.lowerBound.x); this.lowerBound.y = g(this.lowerBound.y, t.lowerBound.y); this.upperBound.x = x(this.upperBound.x, t.upperBound.x); this.upperBound.y = x(this.upperBound.y, t.upperBound.y); return this; }; t.prototype.Combine2 = function(t, e) { this.lowerBound.x = g(t.lowerBound.x, e.lowerBound.x); this.lowerBound.y = g(t.lowerBound.y, e.lowerBound.y); this.upperBound.x = x(t.upperBound.x, e.upperBound.x); this.upperBound.y = x(t.upperBound.y, e.upperBound.y); return this; }; t.Combine = function(t, e, i) { i.Combine2(t, e); return i; }; t.prototype.Contains = function(t) { var e = !0; return e = (e = (e = (e = e && this.lowerBound.x <= t.lowerBound.x) && this.lowerBound.y <= t.lowerBound.y) && t.upperBound.x <= this.upperBound.x) && t.upperBound.y <= this.upperBound.y; }; t.prototype.RayCast = function(t, e) { var r = -i, s = i, o = e.p1.x, a = e.p1.y, c = e.p2.x - e.p1.x, l = e.p2.y - e.p1.y, h = y(c), u = y(l), _ = t.normal; if (h < n) { if (o < this.lowerBound.x || this.upperBound.x < o) return !1; } else { var f = 1 / c, d = -1; if ((p = (this.lowerBound.x - o) * f) > (v = (this.upperBound.x - o) * f)) { var m = p; p = v; v = m; d = 1; } if (p > r) { _.x = d; _.y = 0; r = p; } if (r > (s = g(s, v))) return !1; } if (u < n) { if (a < this.lowerBound.y || this.upperBound.y < a) return !1; } else { var p, v; f = 1 / l, d = -1; if ((p = (this.lowerBound.y - a) * f) > (v = (this.upperBound.y - a) * f)) { m = p; p = v; v = m; d = 1; } if (p > r) { _.x = 0; _.y = d; r = p; } if (r > (s = g(s, v))) return !1; } if (r < 0 || e.maxFraction < r) return !1; t.fraction = r; return !0; }; t.prototype.TestContain = function(t) { return !(t.x < this.lowerBound.x || this.upperBound.x < t.x) && !(t.y < this.lowerBound.y || this.upperBound.y < t.y); }; t.prototype.TestOverlap = function(t) { var e = t.lowerBound.x - this.upperBound.x, i = t.lowerBound.y - this.upperBound.y, n = this.lowerBound.x - t.upperBound.x, r = this.lowerBound.y - t.upperBound.y; return !(e > 0 || i > 0) && !(n > 0 || r > 0); }; return t; })(); function Et(t, e) { var i = e.lowerBound.x - t.upperBound.x, n = e.lowerBound.y - t.upperBound.y, r = t.lowerBound.x - e.upperBound.x, s = t.lowerBound.y - e.upperBound.y; return !(i > 0 || n > 0) && !(r > 0 || s > 0); } function Mt(e, i, n, r, s) { var o = 0, a = i[0], c = i[1], l = P.DotVV(n, a.v) - r, h = P.DotVV(n, c.v) - r; l <= 0 && e[o++].Copy(a); h <= 0 && e[o++].Copy(c); if (l * h < 0) { var u = l / (l - h), _ = e[o].v; _.x = a.v.x + u * (c.v.x - a.v.x); _.y = a.v.y + u * (c.v.y - a.v.y); var f = e[o].id; f.cf.indexA = s; f.cf.indexB = a.id.cf.indexB; f.cf.typeA = t.b2ContactFeatureType.e_vertex; f.cf.typeB = t.b2ContactFeatureType.e_face; ++o; } return o; } var Bt = new J(), Dt = new Y(), It = new Z(); function Pt(t, e, i, r, s, o) { var a = Bt.Reset(); a.proxyA.SetShape(t, e); a.proxyB.SetShape(i, r); a.transformA.Copy(s); a.transformB.Copy(o); a.useRadii = !0; var c = Dt.Reset(); c.count = 0; var l = It.Reset(); lt(l, c, a); return l.distance < 10 * n; } function Rt(t) { if (null === t) throw new Error(); return t; } var Lt = (function() { function t(t) { void 0 === t && (t = 0); this.m_id = 0; this.aabb = new Tt(); this.parent = null; this.child1 = null; this.child2 = null; this.height = 0; this.m_id = t; } t.prototype.IsLeaf = function() { return null === this.child1; }; return t; })(), Ft = (function() { function t() { this.m_root = null; this.m_freeList = null; this.m_path = 0; this.m_insertionCount = 0; this.m_stack = new W(256); } t.prototype.Query = function(t, e) { if (null !== this.m_root) { var i = this.m_stack.Reset(); i.Push(this.m_root); for (;i.GetCount() > 0; ) { var n = i.Pop(); if (n.aabb.TestOverlap(t)) if (n.IsLeaf()) { if (!e(n)) return; } else { i.Push(Rt(n.child1)); i.Push(Rt(n.child2)); } } } }; t.prototype.QueryPoint = function(t, e) { if (null !== this.m_root) { var i = this.m_stack.Reset(); i.Push(this.m_root); for (;i.GetCount() > 0; ) { var n = i.Pop(); if (n.aabb.TestContain(t)) if (n.IsLeaf()) { if (!e(n)) return; } else { i.Push(Rt(n.child1)); i.Push(Rt(n.child2)); } } } }; t.prototype.RayCast = function(e, i) { if (null !== this.m_root) { var n = e.p1, r = e.p2, s = P.SubVV(r, n, t.s_r); s.Normalize(); var o = P.CrossOneV(s, t.s_v), a = P.AbsV(o, t.s_abs_v), c = e.maxFraction, l = t.s_segmentAABB, h = n.x + c * (r.x - n.x), u = n.y + c * (r.y - n.y); l.lowerBound.x = g(n.x, h); l.lowerBound.y = g(n.y, u); l.upperBound.x = x(n.x, h); l.upperBound.y = x(n.y, u); var _ = this.m_stack.Reset(); _.Push(this.m_root); for (;_.GetCount() > 0; ) { var f = _.Pop(); if (Et(f.aabb, l)) { var d = f.aabb.GetCenter(), m = f.aabb.GetExtents(); if (!(y(P.DotVV(o, P.SubVV(n, d, P.s_t0))) - P.DotVV(a, m) > 0)) if (f.IsLeaf()) { var p = t.s_subInput; p.p1.Copy(e.p1); p.p2.Copy(e.p2); p.maxFraction = c; var v = i(p, f); if (0 === v) return; if (v > 0) { c = v; h = n.x + c * (r.x - n.x); u = n.y + c * (r.y - n.y); l.lowerBound.x = g(n.x, h); l.lowerBound.y = g(n.y, u); l.upperBound.x = x(n.x, h); l.upperBound.y = x(n.y, u); } } else { _.Push(Rt(f.child1)); _.Push(Rt(f.child2)); } } } } }; t.prototype.AllocateNode = function() { if (this.m_freeList) { var e = this.m_freeList; this.m_freeList = e.parent; e.parent = null; e.child1 = null; e.child2 = null; e.height = 0; delete e.userData; return e; } return new Lt(t.s_node_id++); }; t.prototype.FreeNode = function(t) { t.parent = this.m_freeList; t.child1 = null; t.child2 = null; t.height = -1; delete t.userData; this.m_freeList = t; }; t.prototype.CreateProxy = function(t, e) { var i = this.AllocateNode(); i.aabb.lowerBound.x = t.lowerBound.x - .1; i.aabb.lowerBound.y = t.lowerBound.y - .1; i.aabb.upperBound.x = t.upperBound.x + .1; i.aabb.upperBound.y = t.upperBound.y + .1; i.userData = e; i.height = 0; this.InsertLeaf(i); return i; }; t.prototype.DestroyProxy = function(t) { this.RemoveLeaf(t); this.FreeNode(t); }; t.prototype.MoveProxy = function(t, e, i) { if (t.aabb.Contains(e)) return !1; this.RemoveLeaf(t); var n = .1 + 2 * (i.x > 0 ? i.x : -i.x), r = .1 + 2 * (i.y > 0 ? i.y : -i.y); t.aabb.lowerBound.x = e.lowerBound.x - n; t.aabb.lowerBound.y = e.lowerBound.y - r; t.aabb.upperBound.x = e.upperBound.x + n; t.aabb.upperBound.y = e.upperBound.y + r; this.InsertLeaf(t); return !0; }; t.prototype.InsertLeaf = function(e) { ++this.m_insertionCount; if (null !== this.m_root) { for (var i = e.aabb, n = this.m_root; !n.IsLeaf(); ) { var r = Rt(n.child1), s = Rt(n.child2), o = n.aabb.GetPerimeter(), a = t.s_combinedAABB; a.Combine2(n.aabb, i); var c = a.GetPerimeter(), l = 2 * c, h = 2 * (c - o), u = void 0, _ = t.s_aabb, f = void 0; if (r.IsLeaf()) { _.Combine2(i, r.aabb); u = _.GetPerimeter() + h; } else { _.Combine2(i, r.aabb); f = r.aabb.GetPerimeter(); u = _.GetPerimeter() - f + h; } var d = void 0; if (s.IsLeaf()) { _.Combine2(i, s.aabb); d = _.GetPerimeter() + h; } else { _.Combine2(i, s.aabb); f = s.aabb.GetPerimeter(); d = _.GetPerimeter() - f + h; } if (l < u && l < d) break; n = u < d ? r : s; } var m = n, p = m.parent, v = this.AllocateNode(); v.parent = p; delete v.userData; v.aabb.Combine2(i, m.aabb); v.height = m.height + 1; if (p) { p.child1 === m ? p.child1 = v : p.child2 = v; v.child1 = m; v.child2 = e; m.parent = v; e.parent = v; } else { v.child1 = m; v.child2 = e; m.parent = v; e.parent = v; this.m_root = v; } for (var y = e.parent; null !== y; ) { r = Rt((y = this.Balance(y)).child1), s = Rt(y.child2); y.height = 1 + x(r.height, s.height); y.aabb.Combine2(r.aabb, s.aabb); y = y.parent; } } else { this.m_root = e; this.m_root.parent = null; } }; t.prototype.RemoveLeaf = function(t) { if (t !== this.m_root) { var e, i = Rt(t.parent), n = i && i.parent; e = i.child1 === t ? Rt(i.child2) : Rt(i.child1); if (n) { n.child1 === i ? n.child1 = e : n.child2 = e; e.parent = n; this.FreeNode(i); for (var r = n; r; ) { var s = Rt((r = this.Balance(r)).child1), o = Rt(r.child2); r.aabb.Combine2(s.aabb, o.aabb); r.height = 1 + x(s.height, o.height); r = r.parent; } } else { this.m_root = e; e.parent = null; this.FreeNode(i); } } else this.m_root = null; }; t.prototype.Balance = function(t) { if (t.IsLeaf() || t.height < 2) return t; var e = Rt(t.child1), i = Rt(t.child2), n = i.height - e.height; if (n > 1) { var r = Rt(i.child1), s = Rt(i.child2); i.child1 = t; i.parent = t.parent; t.parent = i; null !== i.parent ? i.parent.child1 === t ? i.parent.child1 = i : i.parent.child2 = i : this.m_root = i; if (r.height > s.height) { i.child2 = r; t.child2 = s; s.parent = t; t.aabb.Combine2(e.aabb, s.aabb); i.aabb.Combine2(t.aabb, r.aabb); t.height = 1 + x(e.height, s.height); i.height = 1 + x(t.height, r.height); } else { i.child2 = s; t.child2 = r; r.parent = t; t.aabb.Combine2(e.aabb, r.aabb); i.aabb.Combine2(t.aabb, s.aabb); t.height = 1 + x(e.height, r.height); i.height = 1 + x(t.height, s.height); } return i; } if (n < -1) { var o = Rt(e.child1), a = Rt(e.child2); e.child1 = t; e.parent = t.parent; t.parent = e; null !== e.parent ? e.parent.child1 === t ? e.parent.child1 = e : e.parent.child2 = e : this.m_root = e; if (o.height > a.height) { e.child2 = o; t.child1 = a; a.parent = t; t.aabb.Combine2(i.aabb, a.aabb); e.aabb.Combine2(t.aabb, o.aabb); t.height = 1 + x(i.height, a.height); e.height = 1 + x(t.height, o.height); } else { e.child2 = a; t.child1 = o; o.parent = t; t.aabb.Combine2(i.aabb, o.aabb); e.aabb.Combine2(t.aabb, a.aabb); t.height = 1 + x(i.height, o.height); e.height = 1 + x(t.height, a.height); } return e; } return t; }; t.prototype.GetHeight = function() { return null === this.m_root ? 0 : this.m_root.height; }; t.GetAreaNode = function(e) { if (null === e) return 0; if (e.IsLeaf()) return 0; var i = e.aabb.GetPerimeter(); i += t.GetAreaNode(e.child1); return i += t.GetAreaNode(e.child2); }; t.prototype.GetAreaRatio = function() { if (null === this.m_root) return 0; var e = this.m_root.aabb.GetPerimeter(); return t.GetAreaNode(this.m_root) / e; }; t.prototype.ComputeHeightNode = function(t) { if (!t || t.IsLeaf()) return 0; var e = this.ComputeHeightNode(t.child1), i = this.ComputeHeightNode(t.child2); return 1 + x(e, i); }; t.prototype.ComputeHeight = function() { return this.ComputeHeightNode(this.m_root); }; t.prototype.ValidateStructure = function(t) { if (null !== t) { this.m_root; var e = t; if (!e.IsLeaf()) { var i = Rt(e.child1), n = Rt(e.child2); this.ValidateStructure(i); this.ValidateStructure(n); } } }; t.prototype.ValidateMetrics = function(e) { if (null !== e) { var i = e; if (!i.IsLeaf()) { var n = Rt(i.child1), r = Rt(i.child2); t.s_aabb.Combine2(n.aabb, r.aabb); this.ValidateMetrics(n); this.ValidateMetrics(r); } } }; t.prototype.Validate = function() {}; t.GetMaxBalanceNode = function(t, e) { if (null === t) return e; if (t.height <= 1) return e; var i = Rt(t.child1), n = Rt(t.child2), r = y(n.height - i.height); return x(e, r); }; t.prototype.GetMaxBalance = function() { return t.GetMaxBalanceNode(this.m_root, 0); }; t.prototype.RebuildBottomUp = function() { this.Validate(); }; t.ShiftOriginNode = function(e, i) { if (null !== e && !(e.height <= 1)) { var n = e.child1, r = e.child2; t.ShiftOriginNode(n, i); t.ShiftOriginNode(r, i); e.aabb.lowerBound.SelfSub(i); e.aabb.upperBound.SelfSub(i); } }; t.prototype.ShiftOrigin = function(e) { t.ShiftOriginNode(this.m_root, e); }; t.s_r = new P(); t.s_v = new P(); t.s_abs_v = new P(); t.s_segmentAABB = new Tt(); t.s_subInput = new St(); t.s_combinedAABB = new Tt(); t.s_aabb = new Tt(); t.s_node_id = 0; return t; })(), Ot = (function() { return function(t, e) { this.proxyA = t; this.proxyB = e; }; })(), Vt = (function() { function t() { this.m_tree = new Ft(); this.m_proxyCount = 0; this.m_moveCount = 0; this.m_moveBuffer = []; this.m_pairCount = 0; this.m_pairBuffer = []; } t.prototype.CreateProxy = function(t, e) { var i = this.m_tree.CreateProxy(t, e); ++this.m_proxyCount; this.BufferMove(i); return i; }; t.prototype.DestroyProxy = function(t) { this.UnBufferMove(t); --this.m_proxyCount; this.m_tree.DestroyProxy(t); }; t.prototype.MoveProxy = function(t, e, i) { this.m_tree.MoveProxy(t, e, i) && this.BufferMove(t); }; t.prototype.TouchProxy = function(t) { this.BufferMove(t); }; t.prototype.GetProxyCount = function() { return this.m_proxyCount; }; t.prototype.UpdatePairs = function(t) { var e = this; this.m_pairCount = 0; for (var i = function(t) { var i = n.m_moveBuffer[t]; if (null === i) return "continue"; var r = i.aabb; n.m_tree.Query(r, (function(t) { if (t.m_id === i.m_id) return !0; var n, r; if (t.m_id < i.m_id) { n = t; r = i; } else { n = i; r = t; } if (e.m_pairCount === e.m_pairBuffer.length) e.m_pairBuffer[e.m_pairCount] = new Ot(n, r); else { var s = e.m_pairBuffer[e.m_pairCount]; s.proxyA = n; s.proxyB = r; } ++e.m_pairCount; return !0; })); }, n = this, r = 0; r < this.m_moveCount; ++r) i(r); this.m_moveCount = 0; this.m_pairBuffer.length = this.m_pairCount; this.m_pairBuffer.sort(Nt); for (var s = 0; s < this.m_pairCount; ) { var o = this.m_pairBuffer[s], a = o.proxyA.userData, c = o.proxyB.userData; a && c && t(a, c); ++s; for (;s < this.m_pairCount; ) { var l = this.m_pairBuffer[s]; if (l.proxyA.m_id !== o.proxyA.m_id || l.proxyB.m_id !== o.proxyB.m_id) break; ++s; } } }; t.prototype.Query = function(t, e) { this.m_tree.Query(t, e); }; t.prototype.QueryPoint = function(t, e) { this.m_tree.QueryPoint(t, e); }; t.prototype.RayCast = function(t, e) { this.m_tree.RayCast(t, e); }; t.prototype.GetTreeHeight = function() { return this.m_tree.GetHeight(); }; t.prototype.GetTreeBalance = function() { return this.m_tree.GetMaxBalance(); }; t.prototype.GetTreeQuality = function() { return this.m_tree.GetAreaRatio(); }; t.prototype.ShiftOrigin = function(t) { this.m_tree.ShiftOrigin(t); }; t.prototype.BufferMove = function(t) { this.m_moveBuffer[this.m_moveCount] = t; ++this.m_moveCount; }; t.prototype.UnBufferMove = function(t) { var e = this.m_moveBuffer.indexOf(t); this.m_moveBuffer[e] = null; }; return t; })(); function Nt(t, e) { return t.proxyA.m_id === e.proxyA.m_id ? t.proxyB.m_id - e.proxyB.m_id : t.proxyA.m_id - e.proxyA.m_id; } t.b2_toiTime = 0; t.b2_toiMaxTime = 0; t.b2_toiCalls = 0; t.b2_toiIters = 0; t.b2_toiMaxIters = 0; t.b2_toiRootIters = 0; t.b2_toiMaxRootIters = 0; var kt = new N(), zt = new N(), Gt = new P(), Ut = new P(), jt = new P(), Wt = new P(), Ht = new P(), qt = (function() { return function() { this.proxyA = new X(); this.proxyB = new X(); this.sweepA = new k(); this.sweepB = new k(); this.tMax = 0; }; })(); (function(t) { t[t.e_unknown = 0] = "e_unknown"; t[t.e_failed = 1] = "e_failed"; t[t.e_overlapped = 2] = "e_overlapped"; t[t.e_touching = 3] = "e_touching"; t[t.e_separated = 4] = "e_separated"; })(t.b2TOIOutputState || (t.b2TOIOutputState = {})); var Xt = (function() { return function() { this.state = t.b2TOIOutputState.e_unknown; this.t = 0; }; })(); (function(t) { t[t.e_unknown = -1] = "e_unknown"; t[t.e_points = 0] = "e_points"; t[t.e_faceA = 1] = "e_faceA"; t[t.e_faceB = 2] = "e_faceB"; })(t.b2SeparationFunctionType || (t.b2SeparationFunctionType = {})); var Yt = (function() { function e() { this.m_sweepA = new k(); this.m_sweepB = new k(); this.m_type = t.b2SeparationFunctionType.e_unknown; this.m_localPoint = new P(); this.m_axis = new P(); } e.prototype.Initialize = function(e, i, n, r, s, o) { this.m_proxyA = i; this.m_proxyB = r; var a = e.count; this.m_sweepA.Copy(n); this.m_sweepB.Copy(s); var c = kt, l = zt; this.m_sweepA.GetTransform(c, o); this.m_sweepB.GetTransform(l, o); if (1 === a) { this.m_type = t.b2SeparationFunctionType.e_points; var h = this.m_proxyA.GetVertex(e.indexA[0]), u = this.m_proxyB.GetVertex(e.indexB[0]), _ = N.MulXV(c, h, Gt), f = N.MulXV(l, u, Ut); P.SubVV(f, _, this.m_axis); var d = this.m_axis.Normalize(); this.m_localPoint.SetZero(); return d; } if (e.indexA[0] === e.indexA[1]) { this.m_type = t.b2SeparationFunctionType.e_faceB; var m = this.m_proxyB.GetVertex(e.indexB[0]), p = this.m_proxyB.GetVertex(e.indexB[1]); P.CrossVOne(P.SubVV(p, m, P.s_t0), this.m_axis).SelfNormalize(); var v = V.MulRV(l.q, this.m_axis, jt); P.MidVV(m, p, this.m_localPoint); f = N.MulXV(l, this.m_localPoint, Ut), h = this.m_proxyA.GetVertex(e.indexA[0]), _ = N.MulXV(c, h, Gt); if ((d = P.DotVV(P.SubVV(_, f, P.s_t0), v)) < 0) { this.m_axis.SelfNeg(); d = -d; } return d; } this.m_type = t.b2SeparationFunctionType.e_faceA; var y = this.m_proxyA.GetVertex(e.indexA[0]), g = this.m_proxyA.GetVertex(e.indexA[1]); P.CrossVOne(P.SubVV(g, y, P.s_t0), this.m_axis).SelfNormalize(); v = V.MulRV(c.q, this.m_axis, jt); P.MidVV(y, g, this.m_localPoint); _ = N.MulXV(c, this.m_localPoint, Gt), u = this.m_proxyB.GetVertex(e.indexB[0]), f = N.MulXV(l, u, Ut); if ((d = P.DotVV(P.SubVV(f, _, P.s_t0), v)) < 0) { this.m_axis.SelfNeg(); d = -d; } return d; }; e.prototype.FindMinSeparation = function(e, i, n) { var r = kt, s = zt; this.m_sweepA.GetTransform(r, n); this.m_sweepB.GetTransform(s, n); switch (this.m_type) { case t.b2SeparationFunctionType.e_points: var o = V.MulTRV(r.q, this.m_axis, Wt), a = V.MulTRV(s.q, P.NegV(this.m_axis, P.s_t0), Ht); e[0] = this.m_proxyA.GetSupport(o); i[0] = this.m_proxyB.GetSupport(a); var c = this.m_proxyA.GetVertex(e[0]), l = this.m_proxyB.GetVertex(i[0]), h = N.MulXV(r, c, Gt), u = N.MulXV(s, l, Ut); return P.DotVV(P.SubVV(u, h, P.s_t0), this.m_axis); case t.b2SeparationFunctionType.e_faceA: var _ = V.MulRV(r.q, this.m_axis, jt); h = N.MulXV(r, this.m_localPoint, Gt), a = V.MulTRV(s.q, P.NegV(_, P.s_t0), Ht); e[0] = -1; i[0] = this.m_proxyB.GetSupport(a); l = this.m_proxyB.GetVertex(i[0]), u = N.MulXV(s, l, Ut); return P.DotVV(P.SubVV(u, h, P.s_t0), _); case t.b2SeparationFunctionType.e_faceB: _ = V.MulRV(s.q, this.m_axis, jt), u = N.MulXV(s, this.m_localPoint, Ut), o = V.MulTRV(r.q, P.NegV(_, P.s_t0), Wt); i[0] = -1; e[0] = this.m_proxyA.GetSupport(o); c = this.m_proxyA.GetVertex(e[0]), h = N.MulXV(r, c, Gt); return P.DotVV(P.SubVV(h, u, P.s_t0), _); default: e[0] = -1; i[0] = -1; return 0; } }; e.prototype.Evaluate = function(e, i, n) { var r = kt, s = zt; this.m_sweepA.GetTransform(r, n); this.m_sweepB.GetTransform(s, n); switch (this.m_type) { case t.b2SeparationFunctionType.e_points: var o = this.m_proxyA.GetVertex(e), a = this.m_proxyB.GetVertex(i), c = N.MulXV(r, o, Gt), l = N.MulXV(s, a, Ut); return P.DotVV(P.SubVV(l, c, P.s_t0), this.m_axis); case t.b2SeparationFunctionType.e_faceA: var h = V.MulRV(r.q, this.m_axis, jt); c = N.MulXV(r, this.m_localPoint, Gt), a = this.m_proxyB.GetVertex(i), l = N.MulXV(s, a, Ut); return P.DotVV(P.SubVV(l, c, P.s_t0), h); case t.b2SeparationFunctionType.e_faceB: h = V.MulRV(s.q, this.m_axis, jt), l = N.MulXV(s, this.m_localPoint, Ut), o = this.m_proxyA.GetVertex(e), c = N.MulXV(r, o, Gt); return P.DotVV(P.SubVV(c, l, P.s_t0), h); default: return 0; } }; return e; })(), Jt = new U(), Zt = new Y(), Kt = new J(), Qt = new Z(), $t = new Yt(), te = [ 0 ], ee = [ 0 ], ie = new k(), ne = new k(); function re(e, i) { var n = Jt.Reset(); ++t.b2_toiCalls; e.state = t.b2TOIOutputState.e_unknown; e.t = i.tMax; var r = i.proxyA, s = i.proxyB, o = ie.Copy(i.sweepA), l = ne.Copy(i.sweepB); o.Normalize(); l.Normalize(); var h = i.tMax, u = r.m_radius + s.m_radius, _ = x(c, u - 3 * c), f = .25 * c, d = 0, m = 0, p = Zt; p.count = 0; var v = Kt; v.proxyA.Copy(i.proxyA); v.proxyB.Copy(i.proxyB); v.useRadii = !1; for (;;) { var g = kt, C = zt; o.GetTransform(g, d); l.GetTransform(C, d); v.transformA.Copy(g); v.transformB.Copy(C); var b = Qt; lt(b, p, v); if (b.distance <= 0) { e.state = t.b2TOIOutputState.e_overlapped; e.t = 0; break; } if (b.distance < _ + f) { e.state = t.b2TOIOutputState.e_touching; e.t = d; break; } var A = $t; A.Initialize(p, r, o, s, l, d); for (var S = !1, w = h, T = 0; ;) { var E = te, M = ee, B = A.FindMinSeparation(E, M, w); if (B > _ + f) { e.state = t.b2TOIOutputState.e_separated; e.t = h; S = !0; break; } if (B > _ - f) { d = w; break; } var D = A.Evaluate(E[0], M[0], d); if (D < _ - f) { e.state = t.b2TOIOutputState.e_failed; e.t = d; S = !0; break; } if (D <= _ + f) { e.state = t.b2TOIOutputState.e_touching; e.t = d; S = !0; break; } for (var I = 0, P = d, R = w; ;) { var L = 0; L = 1 & I ? P + (_ - D) * (R - P) / (B - D) : .5 * (P + R); ++I; ++t.b2_toiRootIters; var F = A.Evaluate(E[0], M[0], L); if (y(F - _) < f) { w = L; break; } if (F > _) { P = L; D = F; } else { R = L; B = F; } if (50 === I) break; } t.b2_toiMaxRootIters = x(t.b2_toiMaxRootIters, I); if (++T === a) break; } ++m; ++t.b2_toiIters; if (S) break; if (20 === m) { e.state = t.b2TOIOutputState.e_failed; e.t = d; break; } } t.b2_toiMaxIters = x(t.b2_toiMaxIters, m); var O = n.GetMilliseconds(); t.b2_toiMaxTime = x(t.b2_toiMaxTime, O); t.b2_toiTime += O; } var se = new P(), oe = new P(); function ae(e, i, n, r, s) { e.pointCount = 0; var o = N.MulXV(n, i.m_p, se), a = N.MulXV(s, r.m_p, oe), c = P.DistanceSquaredVV(o, a), l = i.m_radius + r.m_radius; if (!(c > l * l)) { e.type = t.b2ManifoldType.e_circles; e.localPoint.Copy(i.m_p); e.localNormal.SetZero(); e.pointCount = 1; e.points[0].localPoint.Copy(r.m_p); e.points[0].id.key = 0; } } var ce = new P(), le = new P(), he = new P(); function ue(e, r, s, o, a) { e.pointCount = 0; for (var c = N.MulXV(a, o.m_p, ce), l = N.MulTXV(s, c, le), h = 0, u = -i, _ = r.m_radius + o.m_radius, f = r.m_count, d = r.m_vertices, m = r.m_normals, p = 0; p < f; ++p) { var v = P.DotVV(m[p], P.SubVV(l, d[p], P.s_t0)); if (v > _) return; if (v > u) { u = v; h = p; } } var y = h, g = (y + 1) % f, x = d[y], C = d[g]; if (u < n) { e.pointCount = 1; e.type = t.b2ManifoldType.e_faceA; e.localNormal.Copy(m[h]); P.MidVV(x, C, e.localPoint); e.points[0].localPoint.Copy(o.m_p); e.points[0].id.key = 0; } else { var b = P.DotVV(P.SubVV(l, x, P.s_t0), P.SubVV(C, x, P.s_t1)), A = P.DotVV(P.SubVV(l, C, P.s_t0), P.SubVV(x, C, P.s_t1)); if (b <= 0) { if (P.DistanceSquaredVV(l, x) > _ * _) return; e.pointCount = 1; e.type = t.b2ManifoldType.e_faceA; P.SubVV(l, x, e.localNormal).SelfNormalize(); e.localPoint.Copy(x); e.points[0].localPoint.Copy(o.m_p); e.points[0].id.key = 0; } else if (A <= 0) { if (P.DistanceSquaredVV(l, C) > _ * _) return; e.pointCount = 1; e.type = t.b2ManifoldType.e_faceA; P.SubVV(l, C, e.localNormal).SelfNormalize(); e.localPoint.Copy(C); e.points[0].localPoint.Copy(o.m_p); e.points[0].id.key = 0; } else { var S = P.MidVV(x, C, he); if (P.DotVV(P.SubVV(l, S, P.s_t1), m[y]) > _) return; e.pointCount = 1; e.type = t.b2ManifoldType.e_faceA; e.localNormal.Copy(m[y]).SelfNormalize(); e.localPoint.Copy(S); e.points[0].localPoint.Copy(o.m_p); e.points[0].id.key = 0; } } } var _e = new P(), fe = new P(), de = new P(), me = new P(); function pe(t, e, n, r, s) { for (var o = t.m_vertices, a = t.m_normals, c = r.m_count, l = r.m_vertices, h = V.MulRV(e.q, a[n], _e), u = V.MulTRV(s.q, h, fe), _ = 0, f = i, d = 0; d < c; ++d) { var m = P.DotVV(l[d], u); if (m < f) { f = m; _ = d; } } var p = N.MulXV(e, o[n], de), v = N.MulXV(s, l[_], me); return P.DotVV(P.SubVV(v, p, P.s_t0), h); } var ve = new P(), ye = new P(); function ge(t, e, n, r, s) { for (var o = e.m_count, a = e.m_normals, c = P.SubVV(N.MulXV(s, r.m_centroid, P.s_t0), N.MulXV(n, e.m_centroid, P.s_t1), ve), l = V.MulTRV(n.q, c, ye), h = 0, u = -i, _ = 0; _ < o; ++_) { var f = P.DotVV(a[_], l); if (f > u) { u = f; h = _; } } var d = pe(e, n, h, r, s), m = (h + o - 1) % o, p = pe(e, n, m, r, s), v = (h + 1) % o, y = pe(e, n, v, r, s), g = 0, x = 0, C = 0; if (p > d && p > y) { C = -1; g = m; x = p; } else { if (!(y > d)) { t[0] = h; return d; } C = 1; g = v; x = y; } for (;(d = pe(e, n, h = -1 === C ? (g + o - 1) % o : (g + 1) % o, r, s)) > x; ) { g = h; x = d; } t[0] = g; return x; } var xe = new P(); function Ce(e, n, r, s, o, a) { for (var c = n.m_normals, l = o.m_count, h = o.m_vertices, u = o.m_normals, _ = V.MulTRV(a.q, V.MulRV(r.q, c[s], P.s_t0), xe), f = 0, d = i, m = 0; m < l; ++m) { var p = P.DotVV(_, u[m]); if (p < d) { d = p; f = m; } } var v = f, y = (v + 1) % l, g = e[0]; N.MulXV(a, h[v], g.v); var x = g.id.cf; x.indexA = s; x.indexB = v; x.typeA = t.b2ContactFeatureType.e_face; x.typeB = t.b2ContactFeatureType.e_vertex; var C = e[1]; N.MulXV(a, h[y], C.v); var b = C.id.cf; b.indexA = s; b.indexB = y; b.typeA = t.b2ContactFeatureType.e_face; b.typeB = t.b2ContactFeatureType.e_vertex; } var be = At.MakeArray(2), Ae = At.MakeArray(2), Se = At.MakeArray(2), we = [ 0 ], Te = [ 0 ], Ee = new P(), Me = new P(), Be = new P(), De = new P(), Ie = new P(), Pe = new P(), Re = new P(), Le = new P(); function Fe(e, i, n, r, s) { e.pointCount = 0; var a = i.m_radius + r.m_radius, c = we; c[0] = 0; var l = ge(c, i, n, r, s); if (!(l > a)) { var h = Te; h[0] = 0; var u = ge(h, r, s, i, n); if (!(u > a)) { var _, f, d, m, p = 0, v = 0; if (u > .98 * l + .001) { _ = r; f = i; d = s; m = n; p = h[0]; e.type = t.b2ManifoldType.e_faceB; v = 1; } else { _ = i; f = r; d = n; m = s; p = c[0]; e.type = t.b2ManifoldType.e_faceA; v = 0; } var y = be; Ce(y, _, d, p, f, m); var g = _.m_count, x = _.m_vertices, C = p, b = (p + 1) % g, A = x[C], S = x[b], w = P.SubVV(S, A, Ee); w.Normalize(); var T = P.CrossVOne(w, Me), E = P.MidVV(A, S, Be), M = V.MulRV(d.q, w, Ie), B = P.CrossVOne(M, De), D = N.MulXV(d, A, Re), I = N.MulXV(d, S, Le), R = P.DotVV(B, D), L = -P.DotVV(M, D) + a, F = P.DotVV(M, I) + a, O = Ae, k = Se; if (!(Mt(O, y, P.NegV(M, Pe), L, C) < 2 || Mt(k, O, M, F, b) < 2)) { e.localNormal.Copy(T); e.localPoint.Copy(E); for (var z = 0, G = 0; G < o; ++G) { var U = k[G]; if (P.DotVV(B, U.v) - R <= a) { var j = e.points[z]; N.MulTXV(m, U.v, j.localPoint); j.id.Copy(U.id); if (v) { var W = j.id.cf; j.id.cf.indexA = W.indexB; j.id.cf.indexB = W.indexA; j.id.cf.typeA = W.typeB; j.id.cf.typeB = W.typeA; } ++z; } } e.pointCount = z; } } } } var Oe = new P(), Ve = new P(), Ne = new P(), ke = new P(), ze = new P(), Ge = new P(), Ue = new P(), je = new gt(); function We(e, i, n, r, s) { e.pointCount = 0; var o = N.MulTXV(n, N.MulXV(s, r.m_p, P.s_t0), Oe), a = i.m_vertex1, c = i.m_vertex2, l = P.SubVV(c, a, Ve), h = P.DotVV(l, P.SubVV(c, o, P.s_t0)), u = P.DotVV(l, P.SubVV(o, a, P.s_t0)), _ = i.m_radius + r.m_radius, f = je; f.cf.indexB = 0; f.cf.typeB = t.b2ContactFeatureType.e_vertex; if (u <= 0) { var d = a, m = P.SubVV(o, d, Ne); if (P.DotVV(m, m) > _ * _) return; if (i.m_hasVertex0) { var p = i.m_vertex0, v = a, y = P.SubVV(v, p, ke); if (P.DotVV(y, P.SubVV(v, o, P.s_t0)) > 0) return; } f.cf.indexA = 0; f.cf.typeA = t.b2ContactFeatureType.e_vertex; e.pointCount = 1; e.type = t.b2ManifoldType.e_circles; e.localNormal.SetZero(); e.localPoint.Copy(d); e.points[0].id.Copy(f); e.points[0].localPoint.Copy(r.m_p); } else if (h <= 0) { var g = c, x = P.SubVV(o, g, Ne); if (P.DotVV(x, x) > _ * _) return; if (i.m_hasVertex3) { var C = i.m_vertex3, b = c, A = P.SubVV(C, b, ze); if (P.DotVV(A, P.SubVV(o, b, P.s_t0)) > 0) return; } f.cf.indexA = 1; f.cf.typeA = t.b2ContactFeatureType.e_vertex; e.pointCount = 1; e.type = t.b2ManifoldType.e_circles; e.localNormal.SetZero(); e.localPoint.Copy(g); e.points[0].id.Copy(f); e.points[0].localPoint.Copy(r.m_p); } else { var S = P.DotVV(l, l), w = Ge; w.x = 1 / S * (h * a.x + u * c.x); w.y = 1 / S * (h * a.y + u * c.y); var T = P.SubVV(o, w, Ne); if (!(P.DotVV(T, T) > _ * _)) { var E = Ue.Set(-l.y, l.x); P.DotVV(E, P.SubVV(o, a, P.s_t0)) < 0 && E.Set(-E.x, -E.y); E.Normalize(); f.cf.indexA = 0; f.cf.typeA = t.b2ContactFeatureType.e_face; e.pointCount = 1; e.type = t.b2ManifoldType.e_faceA; e.localNormal.Copy(E); e.localPoint.Copy(a); e.points[0].id.Copy(f); e.points[0].localPoint.Copy(r.m_p); } } } var He = (function() { return function() { this.type = 0; this.index = 0; this.separation = 0; }; })(), qe = (function() { return function() { this.vertices = P.MakeArray(a); this.normals = P.MakeArray(a); this.count = 0; }; })(), Xe = (function() { return function() { this.i1 = 0; this.i2 = 0; this.v1 = new P(); this.v2 = new P(); this.normal = new P(); this.sideNormal1 = new P(); this.sideOffset1 = 0; this.sideNormal2 = new P(); this.sideOffset2 = 0; }; })(), Ye = new (function() { function e() { this.m_polygonB = new qe(); this.m_xf = new N(); this.m_centroidB = new P(); this.m_v0 = new P(); this.m_v1 = new P(); this.m_v2 = new P(); this.m_v3 = new P(); this.m_normal0 = new P(); this.m_normal1 = new P(); this.m_normal2 = new P(); this.m_normal = new P(); this.m_type1 = 0; this.m_type2 = 0; this.m_lowerLimit = new P(); this.m_upperLimit = new P(); this.m_radius = 0; this.m_front = !1; } e.prototype.Collide = function(i, n, r, s, a) { N.MulTXX(r, a, this.m_xf); N.MulXV(this.m_xf, s.m_centroid, this.m_centroidB); this.m_v0.Copy(n.m_vertex0); this.m_v1.Copy(n.m_vertex1); this.m_v2.Copy(n.m_vertex2); this.m_v3.Copy(n.m_vertex3); var c = n.m_hasVertex0, l = n.m_hasVertex3, h = P.SubVV(this.m_v2, this.m_v1, e.s_edge1); h.Normalize(); this.m_normal1.Set(h.y, -h.x); var u = P.DotVV(this.m_normal1, P.SubVV(this.m_centroidB, this.m_v1, P.s_t0)), _ = 0, f = 0, d = !1, m = !1; if (c) { var p = P.SubVV(this.m_v1, this.m_v0, e.s_edge0); p.Normalize(); this.m_normal0.Set(p.y, -p.x); d = P.CrossVV(p, h) >= 0; _ = P.DotVV(this.m_normal0, P.SubVV(this.m_centroidB, this.m_v0, P.s_t0)); } if (l) { var v = P.SubVV(this.m_v3, this.m_v2, e.s_edge2); v.Normalize(); this.m_normal2.Set(v.y, -v.x); m = P.CrossVV(h, v) > 0; f = P.DotVV(this.m_normal2, P.SubVV(this.m_centroidB, this.m_v2, P.s_t0)); } if (c && l) if (d && m) { this.m_front = _ >= 0 || u >= 0 || f >= 0; if (this.m_front) { this.m_normal.Copy(this.m_normal1); this.m_lowerLimit.Copy(this.m_normal0); this.m_upperLimit.Copy(this.m_normal2); } else { this.m_normal.Copy(this.m_normal1).SelfNeg(); this.m_lowerLimit.Copy(this.m_normal1).SelfNeg(); this.m_upperLimit.Copy(this.m_normal1).SelfNeg(); } } else if (d) { this.m_front = _ >= 0 || u >= 0 && f >= 0; if (this.m_front) { this.m_normal.Copy(this.m_normal1); this.m_lowerLimit.Copy(this.m_normal0); this.m_upperLimit.Copy(this.m_normal1); } else { this.m_normal.Copy(this.m_normal1).SelfNeg(); this.m_lowerLimit.Copy(this.m_normal2).SelfNeg(); this.m_upperLimit.Copy(this.m_normal1).SelfNeg(); } } else if (m) { this.m_front = f >= 0 || _ >= 0 && u >= 0; if (this.m_front) { this.m_normal.Copy(this.m_normal1); this.m_lowerLimit.Copy(this.m_normal1); this.m_upperLimit.Copy(this.m_normal2); } else { this.m_normal.Copy(this.m_normal1).SelfNeg(); this.m_lowerLimit.Copy(this.m_normal1).SelfNeg(); this.m_upperLimit.Copy(this.m_normal0).SelfNeg(); } } else { this.m_front = _ >= 0 && u >= 0 && f >= 0; if (this.m_front) { this.m_normal.Copy(this.m_normal1); this.m_lowerLimit.Copy(this.m_normal1); this.m_upperLimit.Copy(this.m_normal1); } else { this.m_normal.Copy(this.m_normal1).SelfNeg(); this.m_lowerLimit.Copy(this.m_normal2).SelfNeg(); this.m_upperLimit.Copy(this.m_normal0).SelfNeg(); } } else if (c) if (d) { this.m_front = _ >= 0 || u >= 0; if (this.m_front) { this.m_normal.Copy(this.m_normal1); this.m_lowerLimit.Copy(this.m_normal0); this.m_upperLimit.Copy(this.m_normal1).SelfNeg(); } else { this.m_normal.Copy(this.m_normal1).SelfNeg(); this.m_lowerLimit.Copy(this.m_normal1); this.m_upperLimit.Copy(this.m_normal1).SelfNeg(); } } else { this.m_front = _ >= 0 && u >= 0; if (this.m_front) { this.m_normal.Copy(this.m_normal1); this.m_lowerLimit.Copy(this.m_normal1); this.m_upperLimit.Copy(this.m_normal1).SelfNeg(); } else { this.m_normal.Copy(this.m_normal1).SelfNeg(); this.m_lowerLimit.Copy(this.m_normal1); this.m_upperLimit.Copy(this.m_normal0).SelfNeg(); } } else if (l) if (m) { this.m_front = u >= 0 || f >= 0; if (this.m_front) { this.m_normal.Copy(this.m_normal1); this.m_lowerLimit.Copy(this.m_normal1).SelfNeg(); this.m_upperLimit.Copy(this.m_normal2); } else { this.m_normal.Copy(this.m_normal1).SelfNeg(); this.m_lowerLimit.Copy(this.m_normal1).SelfNeg(); this.m_upperLimit.Copy(this.m_normal1); } } else { this.m_front = u >= 0 && f >= 0; if (this.m_front) { this.m_normal.Copy(this.m_normal1); this.m_lowerLimit.Copy(this.m_normal1).SelfNeg(); this.m_upperLimit.Copy(this.m_normal1); } else { this.m_normal.Copy(this.m_normal1).SelfNeg(); this.m_lowerLimit.Copy(this.m_normal2).SelfNeg(); this.m_upperLimit.Copy(this.m_normal1); } } else { this.m_front = u >= 0; if (this.m_front) { this.m_normal.Copy(this.m_normal1); this.m_lowerLimit.Copy(this.m_normal1).SelfNeg(); this.m_upperLimit.Copy(this.m_normal1).SelfNeg(); } else { this.m_normal.Copy(this.m_normal1).SelfNeg(); this.m_lowerLimit.Copy(this.m_normal1); this.m_upperLimit.Copy(this.m_normal1); } } this.m_polygonB.count = s.m_count; for (var y = 0; y < s.m_count; ++y) { N.MulXV(this.m_xf, s.m_vertices[y], this.m_polygonB.vertices[y]); V.MulRV(this.m_xf.q, s.m_normals[y], this.m_polygonB.normals[y]); } this.m_radius = s.m_radius + n.m_radius; i.pointCount = 0; var g = this.ComputeEdgeSeparation(e.s_edgeAxis); if (0 !== g.type && !(g.separation > this.m_radius)) { var x = this.ComputePolygonSeparation(e.s_polygonAxis); if (!(0 !== x.type && x.separation > this.m_radius)) { var C; C = 0 === x.type ? g : x.separation > .98 * g.separation + .001 ? x : g; var b = e.s_ie, A = e.s_rf; if (1 === C.type) { i.type = t.b2ManifoldType.e_faceA; var S = 0, w = P.DotVV(this.m_normal, this.m_polygonB.normals[0]); for (y = 1; y < this.m_polygonB.count; ++y) { var T = P.DotVV(this.m_normal, this.m_polygonB.normals[y]); if (T < w) { w = T; S = y; } } var E = S, M = (E + 1) % this.m_polygonB.count; (B = b[0]).v.Copy(this.m_polygonB.vertices[E]); B.id.cf.indexA = 0; B.id.cf.indexB = E; B.id.cf.typeA = t.b2ContactFeatureType.e_face; B.id.cf.typeB = t.b2ContactFeatureType.e_vertex; (D = b[1]).v.Copy(this.m_polygonB.vertices[M]); D.id.cf.indexA = 0; D.id.cf.indexB = M; D.id.cf.typeA = t.b2ContactFeatureType.e_face; D.id.cf.typeB = t.b2ContactFeatureType.e_vertex; if (this.m_front) { A.i1 = 0; A.i2 = 1; A.v1.Copy(this.m_v1); A.v2.Copy(this.m_v2); A.normal.Copy(this.m_normal1); } else { A.i1 = 1; A.i2 = 0; A.v1.Copy(this.m_v2); A.v2.Copy(this.m_v1); A.normal.Copy(this.m_normal1).SelfNeg(); } } else { i.type = t.b2ManifoldType.e_faceB; var B, D; (B = b[0]).v.Copy(this.m_v1); B.id.cf.indexA = 0; B.id.cf.indexB = C.index; B.id.cf.typeA = t.b2ContactFeatureType.e_vertex; B.id.cf.typeB = t.b2ContactFeatureType.e_face; (D = b[1]).v.Copy(this.m_v2); D.id.cf.indexA = 0; D.id.cf.indexB = C.index; D.id.cf.typeA = t.b2ContactFeatureType.e_vertex; D.id.cf.typeB = t.b2ContactFeatureType.e_face; A.i1 = C.index; A.i2 = (A.i1 + 1) % this.m_polygonB.count; A.v1.Copy(this.m_polygonB.vertices[A.i1]); A.v2.Copy(this.m_polygonB.vertices[A.i2]); A.normal.Copy(this.m_polygonB.normals[A.i1]); } A.sideNormal1.Set(A.normal.y, -A.normal.x); A.sideNormal2.Copy(A.sideNormal1).SelfNeg(); A.sideOffset1 = P.DotVV(A.sideNormal1, A.v1); A.sideOffset2 = P.DotVV(A.sideNormal2, A.v2); var I = e.s_clipPoints1, R = e.s_clipPoints2; if (!(Mt(I, b, A.sideNormal1, A.sideOffset1, A.i1) < o || Mt(R, I, A.sideNormal2, A.sideOffset2, A.i2) < o)) { if (1 === C.type) { i.localNormal.Copy(A.normal); i.localPoint.Copy(A.v1); } else { i.localNormal.Copy(s.m_normals[A.i1]); i.localPoint.Copy(s.m_vertices[A.i1]); } var L = 0; for (y = 0; y < o; ++y) { if (P.DotVV(A.normal, P.SubVV(R[y].v, A.v1, P.s_t0)) <= this.m_radius) { var F = i.points[L]; if (1 === C.type) { N.MulTXV(this.m_xf, R[y].v, F.localPoint); F.id = R[y].id; } else { F.localPoint.Copy(R[y].v); F.id.cf.typeA = R[y].id.cf.typeB; F.id.cf.typeB = R[y].id.cf.typeA; F.id.cf.indexA = R[y].id.cf.indexB; F.id.cf.indexB = R[y].id.cf.indexA; } ++L; } } i.pointCount = L; } } } }; e.prototype.ComputeEdgeSeparation = function(t) { var e = t; e.type = 1; e.index = this.m_front ? 0 : 1; e.separation = i; for (var n = 0; n < this.m_polygonB.count; ++n) { var r = P.DotVV(this.m_normal, P.SubVV(this.m_polygonB.vertices[n], this.m_v1, P.s_t0)); r < e.separation && (e.separation = r); } return e; }; e.prototype.ComputePolygonSeparation = function(t) { var n = t; n.type = 0; n.index = -1; n.separation = -i; for (var r = e.s_perp.Set(-this.m_normal.y, this.m_normal.x), s = 0; s < this.m_polygonB.count; ++s) { var o = P.NegV(this.m_polygonB.normals[s], e.s_n), a = P.DotVV(o, P.SubVV(this.m_polygonB.vertices[s], this.m_v1, P.s_t0)), c = P.DotVV(o, P.SubVV(this.m_polygonB.vertices[s], this.m_v2, P.s_t0)), h = g(a, c); if (h > this.m_radius) { n.type = 2; n.index = s; n.separation = h; return n; } if (P.DotVV(o, r) >= 0) { if (P.DotVV(P.SubVV(o, this.m_upperLimit, P.s_t0), this.m_normal) < -l) continue; } else if (P.DotVV(P.SubVV(o, this.m_lowerLimit, P.s_t0), this.m_normal) < -l) continue; if (h > n.separation) { n.type = 2; n.index = s; n.separation = h; } } return n; }; e.s_edge1 = new P(); e.s_edge0 = new P(); e.s_edge2 = new P(); e.s_ie = At.MakeArray(2); e.s_rf = new Xe(); e.s_clipPoints1 = At.MakeArray(2); e.s_clipPoints2 = At.MakeArray(2); e.s_edgeAxis = new He(); e.s_polygonAxis = new He(); e.s_n = new P(); e.s_perp = new P(); return e; }())(); function Je(t, e, i, n, r) { Ye.Collide(t, e, i, n, r); } var Ze = (function() { return function() { this.mass = 0; this.center = new P(0, 0); this.I = 0; }; })(); (function(t) { t[t.e_unknown = -1] = "e_unknown"; t[t.e_circleShape = 0] = "e_circleShape"; t[t.e_edgeShape = 1] = "e_edgeShape"; t[t.e_polygonShape = 2] = "e_polygonShape"; t[t.e_chainShape = 3] = "e_chainShape"; t[t.e_shapeTypeCount = 4] = "e_shapeTypeCount"; })(t.b2ShapeType || (t.b2ShapeType = {})); var Ke = (function() { function e(e, i) { this.m_type = t.b2ShapeType.e_unknown; this.m_radius = 0; this.m_type = e; this.m_radius = i; } e.prototype.Copy = function(t) { this.m_radius = t.m_radius; return this; }; e.prototype.GetType = function() { return this.m_type; }; return e; })(), Qe = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(t, e) { t.__proto__ = e; } || function(t, e) { for (var i in e) e.hasOwnProperty(i) && (t[i] = e[i]); }; function $e(t, e) { Qe(t, e); function i() { this.constructor = t; } t.prototype = null === e ? Object.create(e) : (i.prototype = e.prototype, new i()); } var ti = (function(e) { $e(i, e); function i(i) { void 0 === i && (i = 0); var n = e.call(this, t.b2ShapeType.e_circleShape, i) || this; n.m_p = new P(); return n; } i.prototype.Set = function(t, e) { void 0 === e && (e = this.m_radius); this.m_p.Copy(t); this.m_radius = e; return this; }; i.prototype.Clone = function() { return new i().Copy(this); }; i.prototype.Copy = function(t) { e.prototype.Copy.call(this, t); this.m_p.Copy(t.m_p); return this; }; i.prototype.GetChildCount = function() { return 1; }; i.prototype.TestPoint = function(t, e) { var n = N.MulXV(t, this.m_p, i.TestPoint_s_center), r = P.SubVV(e, n, i.TestPoint_s_d); return P.DotVV(r, r) <= A(this.m_radius); }; i.prototype.ComputeDistance = function(t, e, n, r) { var s = N.MulXV(t, this.m_p, i.ComputeDistance_s_center); P.SubVV(e, s, n); return n.Normalize() - this.m_radius; }; i.prototype.RayCast = function(t, e, r, s) { var o = N.MulXV(r, this.m_p, i.RayCast_s_position), a = P.SubVV(e.p1, o, i.RayCast_s_s), c = P.DotVV(a, a) - A(this.m_radius), l = P.SubVV(e.p2, e.p1, i.RayCast_s_r), h = P.DotVV(a, l), u = P.DotVV(l, l), _ = h * h - u * c; if (_ < 0 || u < n) return !1; var f = -(h + w(_)); if (0 <= f && f <= e.maxFraction * u) { f /= u; t.fraction = f; P.AddVMulSV(a, f, l, t.normal).SelfNormalize(); return !0; } return !1; }; i.prototype.ComputeAABB = function(t, e, n) { var r = N.MulXV(e, this.m_p, i.ComputeAABB_s_p); t.lowerBound.Set(r.x - this.m_radius, r.y - this.m_radius); t.upperBound.Set(r.x + this.m_radius, r.y + this.m_radius); }; i.prototype.ComputeMass = function(t, e) { var i = A(this.m_radius); t.mass = e * s * i; t.center.Copy(this.m_p); t.I = t.mass * (.5 * i + P.DotVV(this.m_p, this.m_p)); }; i.prototype.SetupDistanceProxy = function(t, e) { t.m_vertices = t.m_buffer; t.m_vertices[0].Copy(this.m_p); t.m_count = 1; t.m_radius = this.m_radius; }; i.prototype.ComputeSubmergedArea = function(t, e, i, r) { var o = N.MulXV(i, this.m_p, new P()), a = -(P.DotVV(t, o) - e); if (a < -this.m_radius + n) return 0; if (a > this.m_radius) { r.Copy(o); return s * this.m_radius * this.m_radius; } var c = this.m_radius * this.m_radius, l = a * a, h = c * (D(a / this.m_radius) + s / 2) + a * w(c - l), u = -2 / 3 * T(c - l, 1.5) / h; r.x = o.x + t.x * u; r.y = o.y + t.y * u; return h; }; i.prototype.Dump = function(t) { t(" const shape: b2CircleShape = new b2CircleShape();\n"); t(" shape.m_radius = %.15f;\n", this.m_radius); t(" shape.m_p.Set(%.15f, %.15f);\n", this.m_p.x, this.m_p.y); }; i.TestPoint_s_center = new P(); i.TestPoint_s_d = new P(); i.ComputeDistance_s_center = new P(); i.RayCast_s_position = new P(); i.RayCast_s_s = new P(); i.RayCast_s_r = new P(); i.ComputeAABB_s_p = new P(); return i; })(Ke), ei = (function(e) { $e(r, e); function r() { var i = e.call(this, t.b2ShapeType.e_polygonShape, h) || this; i.m_centroid = new P(0, 0); i.m_vertices = []; i.m_normals = []; i.m_count = 0; return i; } r.prototype.Clone = function() { return new r().Copy(this); }; r.prototype.Copy = function(t) { e.prototype.Copy.call(this, t); this.m_centroid.Copy(t.m_centroid); this.m_count = t.m_count; this.m_vertices = P.MakeArray(this.m_count); this.m_normals = P.MakeArray(this.m_count); for (var i = 0; i < this.m_count; ++i) { this.m_vertices[i].Copy(t.m_vertices[i]); this.m_normals[i].Copy(t.m_normals[i]); } return this; }; r.prototype.GetChildCount = function() { return 1; }; r.prototype.Set = function(t, e, i) { void 0 === e && (e = t.length); void 0 === i && (i = 0); if (e < 3) return this.SetAsBox(1, 1); for (var n = g(e, a), s = r.Set_s_ps, o = 0, l = 0; l < n; ++l) { for (var h = t[i + l], u = !0, _ = 0; _ < o; ++_) if (P.DistanceSquaredVV(h, s[_]) < .5 * c * (.5 * c)) { u = !1; break; } u && s[o++].Copy(h); } if ((n = o) < 3) return this.SetAsBox(1, 1); var f = 0, d = s[0].x; for (l = 1; l < n; ++l) { var m = s[l].x; if (m > d || m === d && s[l].y < s[f].y) { f = l; d = m; } } for (var p = r.Set_s_hull, v = 0, y = f; ;) { p[v] = y; var x = 0; for (_ = 1; _ < n; ++_) if (x !== y) { var C = P.SubVV(s[x], s[p[v]], r.Set_s_r), b = (h = P.SubVV(s[_], s[p[v]], r.Set_s_v), P.CrossVV(C, h)); b < 0 && (x = _); 0 === b && h.LengthSquared() > C.LengthSquared() && (x = _); } else x = _; ++v; y = x; if (x === f) break; } this.m_count = v; this.m_vertices = P.MakeArray(this.m_count); this.m_normals = P.MakeArray(this.m_count); for (l = 0; l < v; ++l) this.m_vertices[l].Copy(s[p[l]]); for (l = 0; l < v; ++l) { var A = this.m_vertices[l], S = this.m_vertices[(l + 1) % v], w = P.SubVV(S, A, P.s_t0); P.CrossVOne(w, this.m_normals[l]).SelfNormalize(); } r.ComputeCentroid(this.m_vertices, v, this.m_centroid); return this; }; r.prototype.SetAsArray = function(t, e) { void 0 === e && (e = t.length); return this.Set(t, e); }; r.prototype.SetAsBox = function(t, e, i, n) { void 0 === n && (n = 0); this.m_count = 4; this.m_vertices = P.MakeArray(this.m_count); this.m_normals = P.MakeArray(this.m_count); this.m_vertices[0].Set(-t, -e); this.m_vertices[1].Set(t, -e); this.m_vertices[2].Set(t, e); this.m_vertices[3].Set(-t, e); this.m_normals[0].Set(0, -1); this.m_normals[1].Set(1, 0); this.m_normals[2].Set(0, 1); this.m_normals[3].Set(-1, 0); this.m_centroid.SetZero(); if (i) { this.m_centroid.Copy(i); var r = new N(); r.SetPosition(i); r.SetRotationAngle(n); for (var s = 0; s < this.m_count; ++s) { N.MulXV(r, this.m_vertices[s], this.m_vertices[s]); V.MulRV(r.q, this.m_normals[s], this.m_normals[s]); } } return this; }; r.prototype.TestPoint = function(t, e) { for (var i = N.MulTXV(t, e, r.TestPoint_s_pLocal), n = 0; n < this.m_count; ++n) { if (P.DotVV(this.m_normals[n], P.SubVV(i, this.m_vertices[n], P.s_t0)) > 0) return !1; } return !0; }; r.prototype.ComputeDistance = function(t, e, n, s) { for (var o = N.MulTXV(t, e, r.ComputeDistance_s_pLocal), a = -i, c = r.ComputeDistance_s_normalForMaxDistance.Copy(o), l = 0; l < this.m_count; ++l) { var h = P.DotVV(this.m_normals[l], P.SubVV(o, this.m_vertices[l], P.s_t0)); if (h > a) { a = h; c.Copy(this.m_normals[l]); } } if (a > 0) { var u = r.ComputeDistance_s_minDistance.Copy(c), _ = a * a; for (l = 0; l < this.m_count; ++l) { var f = P.SubVV(o, this.m_vertices[l], r.ComputeDistance_s_distance), d = f.LengthSquared(); if (_ > d) { u.Copy(f); _ = d; } } V.MulRV(t.q, u, n); n.Normalize(); return Math.sqrt(_); } V.MulRV(t.q, c, n); return a; }; r.prototype.RayCast = function(t, e, i, n) { for (var s = N.MulTXV(i, e.p1, r.RayCast_s_p1), o = N.MulTXV(i, e.p2, r.RayCast_s_p2), a = P.SubVV(o, s, r.RayCast_s_d), c = 0, l = e.maxFraction, h = -1, u = 0; u < this.m_count; ++u) { var _ = P.DotVV(this.m_normals[u], P.SubVV(this.m_vertices[u], s, P.s_t0)), f = P.DotVV(this.m_normals[u], a); if (0 === f) { if (_ < 0) return !1; } else if (f < 0 && _ < c * f) { c = _ / f; h = u; } else f > 0 && _ < l * f && (l = _ / f); if (l < c) return !1; } if (h >= 0) { t.fraction = c; V.MulRV(i.q, this.m_normals[h], t.normal); return !0; } return !1; }; r.prototype.ComputeAABB = function(t, e, i) { for (var n = N.MulXV(e, this.m_vertices[0], t.lowerBound), s = t.upperBound.Copy(n), o = 0; o < this.m_count; ++o) { var a = N.MulXV(e, this.m_vertices[o], r.ComputeAABB_s_v); P.MinV(a, n, n); P.MaxV(a, s, s); } var c = this.m_radius; n.SelfSubXY(c, c); s.SelfAddXY(c, c); }; r.prototype.ComputeMass = function(t, e) { for (var i = r.ComputeMass_s_center.SetZero(), n = 0, s = 0, o = r.ComputeMass_s_s.SetZero(), a = 0; a < this.m_count; ++a) o.SelfAdd(this.m_vertices[a]); o.SelfMul(1 / this.m_count); for (a = 0; a < this.m_count; ++a) { var c = P.SubVV(this.m_vertices[a], o, r.ComputeMass_s_e1), l = P.SubVV(this.m_vertices[(a + 1) % this.m_count], o, r.ComputeMass_s_e2), h = P.CrossVV(c, l), u = .5 * h; n += u; i.SelfAdd(P.MulSV(u * (1 / 3), P.AddVV(c, l, P.s_t0), P.s_t1)); var _ = c.x, f = c.y, d = l.x, m = l.y; s += 1 / 3 * .25 * h * (_ * _ + d * _ + d * d + (f * f + m * f + m * m)); } t.mass = e * n; i.SelfMul(1 / n); P.AddVV(i, o, t.center); t.I = e * s; t.I += t.mass * (P.DotVV(t.center, t.center) - P.DotVV(i, i)); }; r.prototype.Validate = function() { for (var t = 0; t < this.m_count; ++t) for (var e = t, i = (t + 1) % this.m_count, n = this.m_vertices[e], s = P.SubVV(this.m_vertices[i], n, r.Validate_s_e), o = 0; o < this.m_count; ++o) if (o !== e && o !== i) { var a = P.SubVV(this.m_vertices[o], n, r.Validate_s_v); if (P.CrossVV(s, a) < 0) return !1; } return !0; }; r.prototype.SetupDistanceProxy = function(t, e) { t.m_vertices = this.m_vertices; t.m_count = this.m_count; t.m_radius = this.m_radius; }; r.prototype.ComputeSubmergedArea = function(t, e, i, s) { for (var o = V.MulTRV(i.q, t, r.ComputeSubmergedArea_s_normalL), a = e - P.DotVV(t, i.p), c = r.ComputeSubmergedArea_s_depths, l = 0, h = -1, u = -1, _ = !1, f = 0; f < this.m_count; ++f) { c[f] = P.DotVV(o, this.m_vertices[f]) - a; var d = c[f] < -n; if (f > 0) if (d) { if (!_) { h = f - 1; l++; } } else if (_) { u = f - 1; l++; } _ = d; } switch (l) { case 0: if (_) { var m = r.ComputeSubmergedArea_s_md; this.ComputeMass(m, 1); N.MulXV(i, m.center, s); return m.mass; } return 0; case 1: -1 === h ? h = this.m_count - 1 : u = this.m_count - 1; } for (var p, v = (h + 1) % this.m_count, y = (u + 1) % this.m_count, g = (0 - c[h]) / (c[v] - c[h]), x = (0 - c[u]) / (c[y] - c[u]), C = r.ComputeSubmergedArea_s_intoVec.Set(this.m_vertices[h].x * (1 - g) + this.m_vertices[v].x * g, this.m_vertices[h].y * (1 - g) + this.m_vertices[v].y * g), b = r.ComputeSubmergedArea_s_outoVec.Set(this.m_vertices[u].x * (1 - x) + this.m_vertices[y].x * x, this.m_vertices[u].y * (1 - x) + this.m_vertices[y].y * x), A = 0, S = r.ComputeSubmergedArea_s_center.SetZero(), w = this.m_vertices[v], T = v; T !== y; ) { p = (T = (T + 1) % this.m_count) === y ? b : this.m_vertices[T]; var E = .5 * ((w.x - C.x) * (p.y - C.y) - (w.y - C.y) * (p.x - C.x)); A += E; S.x += E * (C.x + w.x + p.x) / 3; S.y += E * (C.y + w.y + p.y) / 3; w = p; } S.SelfMul(1 / A); N.MulXV(i, S, s); return A; }; r.prototype.Dump = function(t) { t(" const shape: b2PolygonShape = new b2PolygonShape();\n"); t(" const vs: b2Vec2[] = b2Vec2.MakeArray(%d);\n", a); for (var e = 0; e < this.m_count; ++e) t(" vs[%d].Set(%.15f, %.15f);\n", e, this.m_vertices[e].x, this.m_vertices[e].y); t(" shape.Set(vs, %d);\n", this.m_count); }; r.ComputeCentroid = function(t, e, i) { var n = i; n.SetZero(); for (var s = 0, o = r.ComputeCentroid_s_pRef.SetZero(), a = 0; a < e; ++a) { var c = o, l = t[a], h = t[(a + 1) % e], u = P.SubVV(l, c, r.ComputeCentroid_s_e1), _ = P.SubVV(h, c, r.ComputeCentroid_s_e2), f = .5 * P.CrossVV(u, _); s += f; n.x += f * (1 / 3) * (c.x + l.x + h.x); n.y += f * (1 / 3) * (c.y + l.y + h.y); } n.SelfMul(1 / s); return n; }; r.Set_s_ps = P.MakeArray(a); r.Set_s_hull = m(a); r.Set_s_r = new P(); r.Set_s_v = new P(); r.TestPoint_s_pLocal = new P(); r.ComputeDistance_s_pLocal = new P(); r.ComputeDistance_s_normalForMaxDistance = new P(); r.ComputeDistance_s_minDistance = new P(); r.ComputeDistance_s_distance = new P(); r.RayCast_s_p1 = new P(); r.RayCast_s_p2 = new P(); r.RayCast_s_d = new P(); r.ComputeAABB_s_v = new P(); r.ComputeMass_s_center = new P(); r.ComputeMass_s_s = new P(); r.ComputeMass_s_e1 = new P(); r.ComputeMass_s_e2 = new P(); r.Validate_s_e = new P(); r.Validate_s_v = new P(); r.ComputeSubmergedArea_s_normalL = new P(); r.ComputeSubmergedArea_s_depths = m(a); r.ComputeSubmergedArea_s_md = new Ze(); r.ComputeSubmergedArea_s_intoVec = new P(); r.ComputeSubmergedArea_s_outoVec = new P(); r.ComputeSubmergedArea_s_center = new P(); r.ComputeCentroid_s_pRef = new P(); r.ComputeCentroid_s_e1 = new P(); r.ComputeCentroid_s_e2 = new P(); return r; })(Ke), ii = (function(e) { $e(i, e); function i() { var i = e.call(this, t.b2ShapeType.e_edgeShape, h) || this; i.m_vertex1 = new P(); i.m_vertex2 = new P(); i.m_vertex0 = new P(); i.m_vertex3 = new P(); i.m_hasVertex0 = !1; i.m_hasVertex3 = !1; return i; } i.prototype.Set = function(t, e) { this.m_vertex1.Copy(t); this.m_vertex2.Copy(e); this.m_hasVertex0 = !1; this.m_hasVertex3 = !1; return this; }; i.prototype.Clone = function() { return new i().Copy(this); }; i.prototype.Copy = function(t) { e.prototype.Copy.call(this, t); this.m_vertex1.Copy(t.m_vertex1); this.m_vertex2.Copy(t.m_vertex2); this.m_vertex0.Copy(t.m_vertex0); this.m_vertex3.Copy(t.m_vertex3); this.m_hasVertex0 = t.m_hasVertex0; this.m_hasVertex3 = t.m_hasVertex3; return this; }; i.prototype.GetChildCount = function() { return 1; }; i.prototype.TestPoint = function(t, e) { return !1; }; i.prototype.ComputeDistance = function(t, e, n, r) { var s = N.MulXV(t, this.m_vertex1, i.ComputeDistance_s_v1), o = N.MulXV(t, this.m_vertex2, i.ComputeDistance_s_v2), a = P.SubVV(e, s, i.ComputeDistance_s_d), c = P.SubVV(o, s, i.ComputeDistance_s_s), l = P.DotVV(a, c); if (l > 0) { var h = P.DotVV(c, c); l > h ? P.SubVV(e, o, a) : a.SelfMulSub(l / h, c); } n.Copy(a); return n.Normalize(); }; i.prototype.RayCast = function(t, e, n, r) { var s = N.MulTXV(n, e.p1, i.RayCast_s_p1), o = N.MulTXV(n, e.p2, i.RayCast_s_p2), a = P.SubVV(o, s, i.RayCast_s_d), c = this.m_vertex1, l = this.m_vertex2, h = P.SubVV(l, c, i.RayCast_s_e), u = t.normal.Set(h.y, -h.x).SelfNormalize(), _ = P.DotVV(u, P.SubVV(c, s, P.s_t0)), f = P.DotVV(u, a); if (0 === f) return !1; var d = _ / f; if (d < 0 || e.maxFraction < d) return !1; var m = P.AddVMulSV(s, d, a, i.RayCast_s_q), p = P.SubVV(l, c, i.RayCast_s_r), v = P.DotVV(p, p); if (0 === v) return !1; var y = P.DotVV(P.SubVV(m, c, P.s_t0), p) / v; if (y < 0 || 1 < y) return !1; t.fraction = d; V.MulRV(n.q, t.normal, t.normal); _ > 0 && t.normal.SelfNeg(); return !0; }; i.prototype.ComputeAABB = function(t, e, n) { var r = N.MulXV(e, this.m_vertex1, i.ComputeAABB_s_v1), s = N.MulXV(e, this.m_vertex2, i.ComputeAABB_s_v2); P.MinV(r, s, t.lowerBound); P.MaxV(r, s, t.upperBound); var o = this.m_radius; t.lowerBound.SelfSubXY(o, o); t.upperBound.SelfAddXY(o, o); }; i.prototype.ComputeMass = function(t, e) { t.mass = 0; P.MidVV(this.m_vertex1, this.m_vertex2, t.center); t.I = 0; }; i.prototype.SetupDistanceProxy = function(t, e) { t.m_vertices = t.m_buffer; t.m_vertices[0].Copy(this.m_vertex1); t.m_vertices[1].Copy(this.m_vertex2); t.m_count = 2; t.m_radius = this.m_radius; }; i.prototype.ComputeSubmergedArea = function(t, e, i, n) { n.SetZero(); return 0; }; i.prototype.Dump = function(t) { t(" const shape: b2EdgeShape = new b2EdgeShape();\n"); t(" shape.m_radius = %.15f;\n", this.m_radius); t(" shape.m_vertex0.Set(%.15f, %.15f);\n", this.m_vertex0.x, this.m_vertex0.y); t(" shape.m_vertex1.Set(%.15f, %.15f);\n", this.m_vertex1.x, this.m_vertex1.y); t(" shape.m_vertex2.Set(%.15f, %.15f);\n", this.m_vertex2.x, this.m_vertex2.y); t(" shape.m_vertex3.Set(%.15f, %.15f);\n", this.m_vertex3.x, this.m_vertex3.y); t(" shape.m_hasVertex0 = %s;\n", this.m_hasVertex0); t(" shape.m_hasVertex3 = %s;\n", this.m_hasVertex3); }; i.ComputeDistance_s_v1 = new P(); i.ComputeDistance_s_v2 = new P(); i.ComputeDistance_s_d = new P(); i.ComputeDistance_s_s = new P(); i.RayCast_s_p1 = new P(); i.RayCast_s_p2 = new P(); i.RayCast_s_d = new P(); i.RayCast_s_e = new P(); i.RayCast_s_q = new P(); i.RayCast_s_r = new P(); i.ComputeAABB_s_v1 = new P(); i.ComputeAABB_s_v2 = new P(); return i; })(Ke), ni = (function(e) { $e(i, e); function i() { var i = e.call(this, t.b2ShapeType.e_chainShape, h) || this; i.m_vertices = []; i.m_count = 0; i.m_prevVertex = new P(); i.m_nextVertex = new P(); i.m_hasPrevVertex = !1; i.m_hasNextVertex = !1; return i; } i.prototype.CreateLoop = function(t, e, i) { void 0 === e && (e = t.length); void 0 === i && (i = 0); if (e < 3) return this; this.m_count = e + 1; this.m_vertices = P.MakeArray(this.m_count); for (var n = 0; n < e; ++n) this.m_vertices[n].Copy(t[i + n]); this.m_vertices[e].Copy(this.m_vertices[0]); this.m_prevVertex.Copy(this.m_vertices[this.m_count - 2]); this.m_nextVertex.Copy(this.m_vertices[1]); this.m_hasPrevVertex = !0; this.m_hasNextVertex = !0; return this; }; i.prototype.CreateChain = function(t, e, i) { void 0 === e && (e = t.length); void 0 === i && (i = 0); this.m_count = e; this.m_vertices = P.MakeArray(e); for (var n = 0; n < e; ++n) this.m_vertices[n].Copy(t[i + n]); this.m_hasPrevVertex = !1; this.m_hasNextVertex = !1; this.m_prevVertex.SetZero(); this.m_nextVertex.SetZero(); return this; }; i.prototype.SetPrevVertex = function(t) { this.m_prevVertex.Copy(t); this.m_hasPrevVertex = !0; return this; }; i.prototype.SetNextVertex = function(t) { this.m_nextVertex.Copy(t); this.m_hasNextVertex = !0; return this; }; i.prototype.Clone = function() { return new i().Copy(this); }; i.prototype.Copy = function(t) { e.prototype.Copy.call(this, t); this.CreateChain(t.m_vertices, t.m_count); this.m_prevVertex.Copy(t.m_prevVertex); this.m_nextVertex.Copy(t.m_nextVertex); this.m_hasPrevVertex = t.m_hasPrevVertex; this.m_hasNextVertex = t.m_hasNextVertex; return this; }; i.prototype.GetChildCount = function() { return this.m_count - 1; }; i.prototype.GetChildEdge = function(e, i) { e.m_type = t.b2ShapeType.e_edgeShape; e.m_radius = this.m_radius; e.m_vertex1.Copy(this.m_vertices[i]); e.m_vertex2.Copy(this.m_vertices[i + 1]); if (i > 0) { e.m_vertex0.Copy(this.m_vertices[i - 1]); e.m_hasVertex0 = !0; } else { e.m_vertex0.Copy(this.m_prevVertex); e.m_hasVertex0 = this.m_hasPrevVertex; } if (i < this.m_count - 2) { e.m_vertex3.Copy(this.m_vertices[i + 2]); e.m_hasVertex3 = !0; } else { e.m_vertex3.Copy(this.m_nextVertex); e.m_hasVertex3 = this.m_hasNextVertex; } }; i.prototype.TestPoint = function(t, e) { return !1; }; i.prototype.ComputeDistance = function(t, e, n, r) { var s = i.ComputeDistance_s_edgeShape; this.GetChildEdge(s, r); return s.ComputeDistance(t, e, n, 0); }; i.prototype.RayCast = function(t, e, n, r) { var s = i.RayCast_s_edgeShape; s.m_vertex1.Copy(this.m_vertices[r]); s.m_vertex2.Copy(this.m_vertices[(r + 1) % this.m_count]); return s.RayCast(t, e, n, 0); }; i.prototype.ComputeAABB = function(t, e, n) { var r = this.m_vertices[n], s = this.m_vertices[(n + 1) % this.m_count], o = N.MulXV(e, r, i.ComputeAABB_s_v1), a = N.MulXV(e, s, i.ComputeAABB_s_v2); P.MinV(o, a, t.lowerBound); P.MaxV(o, a, t.upperBound); }; i.prototype.ComputeMass = function(t, e) { t.mass = 0; t.center.SetZero(); t.I = 0; }; i.prototype.SetupDistanceProxy = function(t, e) { t.m_vertices = t.m_buffer; t.m_vertices[0].Copy(this.m_vertices[e]); e + 1 < this.m_count ? t.m_vertices[1].Copy(this.m_vertices[e + 1]) : t.m_vertices[1].Copy(this.m_vertices[0]); t.m_count = 2; t.m_radius = this.m_radius; }; i.prototype.ComputeSubmergedArea = function(t, e, i, n) { n.SetZero(); return 0; }; i.prototype.Dump = function(t) { t(" const shape: b2ChainShape = new b2ChainShape();\n"); t(" const vs: b2Vec2[] = b2Vec2.MakeArray(%d);\n", a); for (var e = 0; e < this.m_count; ++e) t(" vs[%d].Set(%.15f, %.15f);\n", e, this.m_vertices[e].x, this.m_vertices[e].y); t(" shape.CreateChain(vs, %d);\n", this.m_count); t(" shape.m_prevVertex.Set(%.15f, %.15f);\n", this.m_prevVertex.x, this.m_prevVertex.y); t(" shape.m_nextVertex.Set(%.15f, %.15f);\n", this.m_nextVertex.x, this.m_nextVertex.y); t(" shape.m_hasPrevVertex = %s;\n", this.m_hasPrevVertex ? "true" : "false"); t(" shape.m_hasNextVertex = %s;\n", this.m_hasNextVertex ? "true" : "false"); }; i.ComputeDistance_s_edgeShape = new ii(); i.RayCast_s_edgeShape = new ii(); i.ComputeAABB_s_v1 = new P(); i.ComputeAABB_s_v2 = new P(); return i; })(Ke), ri = (function() { function t() { this.categoryBits = 1; this.maskBits = 65535; this.groupIndex = 0; } t.prototype.Clone = function() { return new t().Copy(this); }; t.prototype.Copy = function(t) { this.categoryBits = t.categoryBits; this.maskBits = t.maskBits; this.groupIndex = t.groupIndex || 0; return this; }; t.DEFAULT = new t(); return t; })(), si = (function() { return function() { this.userData = null; this.friction = .2; this.restitution = 0; this.density = 0; this.isSensor = !1; this.filter = new ri(); }; })(), oi = (function() { return function(t) { this.aabb = new Tt(); this.childIndex = 0; this.fixture = t; }; })(), ai = (function() { function t(t, e) { this.m_density = 0; this.m_next = null; this.m_friction = 0; this.m_restitution = 0; this.m_proxies = []; this.m_proxyCount = 0; this.m_filter = new ri(); this.m_isSensor = !1; this.m_userData = null; this.m_body = e; this.m_shape = t.shape.Clone(); } t.prototype.GetType = function() { return this.m_shape.GetType(); }; t.prototype.GetShape = function() { return this.m_shape; }; t.prototype.SetSensor = function(t) { if (t !== this.m_isSensor) { this.m_body.SetAwake(!0); this.m_isSensor = t; } }; t.prototype.IsSensor = function() { return this.m_isSensor; }; t.prototype.SetFilterData = function(t) { this.m_filter.Copy(t); this.Refilter(); }; t.prototype.GetFilterData = function() { return this.m_filter; }; t.prototype.Refilter = function() { for (var t = this.m_body.GetContactList(); t; ) { var e = t.contact, i = e.GetFixtureA(), n = e.GetFixtureB(); i !== this && n !== this || e.FlagForFiltering(); t = t.next; } var r = this.m_body.GetWorld(); if (null !== r) for (var s = r.m_contactManager.m_broadPhase, o = 0; o < this.m_proxyCount; ++o) s.TouchProxy(this.m_proxies[o].treeNode); }; t.prototype.GetBody = function() { return this.m_body; }; t.prototype.GetNext = function() { return this.m_next; }; t.prototype.GetUserData = function() { return this.m_userData; }; t.prototype.SetUserData = function(t) { this.m_userData = t; }; t.prototype.TestPoint = function(t) { return this.m_shape.TestPoint(this.m_body.GetTransform(), t); }; t.prototype.ComputeDistance = function(t, e, i) { return this.m_shape.ComputeDistance(this.m_body.GetTransform(), t, e, i); }; t.prototype.RayCast = function(t, e, i) { return this.m_shape.RayCast(t, e, this.m_body.GetTransform(), i); }; t.prototype.GetMassData = function(t) { void 0 === t && (t = new Ze()); this.m_shape.ComputeMass(t, this.m_density); return t; }; t.prototype.SetDensity = function(t) { this.m_density = t; }; t.prototype.GetDensity = function() { return this.m_density; }; t.prototype.GetFriction = function() { return this.m_friction; }; t.prototype.SetFriction = function(t) { this.m_friction = t; }; t.prototype.GetRestitution = function() { return this.m_restitution; }; t.prototype.SetRestitution = function(t) { this.m_restitution = t; }; t.prototype.GetAABB = function(t) { return this.m_proxies[t].aabb; }; t.prototype.Dump = function(t, e) { t(" const fd: b2FixtureDef = new b2FixtureDef();\n"); t(" fd.friction = %.15f;\n", this.m_friction); t(" fd.restitution = %.15f;\n", this.m_restitution); t(" fd.density = %.15f;\n", this.m_density); t(" fd.isSensor = %s;\n", this.m_isSensor ? "true" : "false"); t(" fd.filter.categoryBits = %d;\n", this.m_filter.categoryBits); t(" fd.filter.maskBits = %d;\n", this.m_filter.maskBits); t(" fd.filter.groupIndex = %d;\n", this.m_filter.groupIndex); this.m_shape.Dump(t); t("\n"); t(" fd.shape = shape;\n"); t("\n"); t(" bodies[%d].CreateFixture(fd);\n", e); }; t.prototype.Create = function(t) { var i = this; this.m_userData = t.userData; this.m_friction = e(t.friction, .2); this.m_restitution = e(t.restitution, 0); this.m_next = null; this.m_filter.Copy(e(t.filter, ri.DEFAULT)); this.m_isSensor = e(t.isSensor, !1); this.m_proxies = d(this.m_shape.GetChildCount(), (function(t) { return new oi(i); })); this.m_proxyCount = 0; this.m_density = e(t.density, 0); }; t.prototype.Destroy = function() {}; t.prototype.CreateProxies = function(t) { var e = this.m_body.m_world.m_contactManager.m_broadPhase; this.m_proxyCount = this.m_shape.GetChildCount(); for (var i = 0; i < this.m_proxyCount; ++i) { var n = this.m_proxies[i] = new oi(this); this.m_shape.ComputeAABB(n.aabb, t, i); n.treeNode = e.CreateProxy(n.aabb, n); n.childIndex = i; } }; t.prototype.DestroyProxies = function() { for (var t = this.m_body.m_world.m_contactManager.m_broadPhase, e = 0; e < this.m_proxyCount; ++e) { var i = this.m_proxies[e]; delete i.treeNode.userData; t.DestroyProxy(i.treeNode); delete i.treeNode; } this.m_proxyCount = 0; }; t.prototype.TouchProxies = function() { for (var t = this.m_body.m_world.m_contactManager.m_broadPhase, e = this.m_proxyCount, i = 0; i < e; ++i) t.TouchProxy(this.m_proxies[i].treeNode); }; t.prototype.Synchronize = function(e, i) { if (0 !== this.m_proxyCount) for (var n = this.m_body.m_world.m_contactManager.m_broadPhase, r = 0; r < this.m_proxyCount; ++r) { var s = this.m_proxies[r], o = t.Synchronize_s_aabb1, a = t.Synchronize_s_aabb2; this.m_shape.ComputeAABB(o, e, r); this.m_shape.ComputeAABB(a, i, r); s.aabb.Combine2(o, a); var c = P.SubVV(i.p, e.p, t.Synchronize_s_displacement); n.MoveProxy(s.treeNode, s.aabb, c); } }; t.Synchronize_s_aabb1 = new Tt(); t.Synchronize_s_aabb2 = new Tt(); t.Synchronize_s_displacement = new P(); return t; })(); (function(t) { t[t.b2_unknown = -1] = "b2_unknown"; t[t.b2_staticBody = 0] = "b2_staticBody"; t[t.b2_kinematicBody = 1] = "b2_kinematicBody"; t[t.b2_dynamicBody = 2] = "b2_dynamicBody"; })(t.b2BodyType || (t.b2BodyType = {})); var ci = (function() { return function() { this.type = t.b2BodyType.b2_staticBody; this.position = new P(0, 0); this.angle = 0; this.linearVelocity = new P(0, 0); this.angularVelocity = 0; this.linearDamping = 0; this.angularDamping = 0; this.allowSleep = !0; this.awake = !0; this.fixedRotation = !1; this.bullet = !1; this.active = !0; this.userData = null; this.gravityScale = 1; }; })(), li = (function() { function i(i, n) { this.m_type = t.b2BodyType.b2_staticBody; this.m_islandFlag = !1; this.m_awakeFlag = !1; this.m_autoSleepFlag = !1; this.m_bulletFlag = !1; this.m_fixedRotationFlag = !1; this.m_activeFlag = !1; this.m_toiFlag = !1; this.m_islandIndex = 0; this.m_xf = new N(); this.m_xf0 = new N(); this.m_sweep = new k(); this.m_linearVelocity = new P(); this.m_angularVelocity = 0; this.m_force = new P(); this.m_torque = 0; this.m_prev = null; this.m_next = null; this.m_fixtureList = null; this.m_fixtureCount = 0; this.m_jointList = null; this.m_contactList = null; this.m_mass = 1; this.m_invMass = 1; this.m_I = 0; this.m_invI = 0; this.m_linearDamping = 0; this.m_angularDamping = 0; this.m_gravityScale = 1; this.m_sleepTime = 0; this.m_userData = null; this.m_controllerList = null; this.m_controllerCount = 0; this.m_bulletFlag = e(i.bullet, !1); this.m_fixedRotationFlag = e(i.fixedRotation, !1); this.m_autoSleepFlag = e(i.allowSleep, !0); this.m_awakeFlag = e(i.awake, !0); this.m_activeFlag = e(i.active, !0); this.m_world = n; this.m_xf.p.Copy(e(i.position, P.ZERO)); this.m_xf.q.SetAngle(e(i.angle, 0)); this.m_xf0.Copy(this.m_xf); this.m_sweep.localCenter.SetZero(); this.m_sweep.c0.Copy(this.m_xf.p); this.m_sweep.c.Copy(this.m_xf.p); this.m_sweep.a0 = this.m_sweep.a = this.m_xf.q.GetAngle(); this.m_sweep.alpha0 = 0; this.m_linearVelocity.Copy(e(i.linearVelocity, P.ZERO)); this.m_angularVelocity = e(i.angularVelocity, 0); this.m_linearDamping = e(i.linearDamping, 0); this.m_angularDamping = e(i.angularDamping, 0); this.m_gravityScale = e(i.gravityScale, 1); this.m_force.SetZero(); this.m_torque = 0; this.m_sleepTime = 0; this.m_type = e(i.type, t.b2BodyType.b2_staticBody); if (i.type === t.b2BodyType.b2_dynamicBody) { this.m_mass = 1; this.m_invMass = 1; } else { this.m_mass = 0; this.m_invMass = 0; } this.m_I = 0; this.m_invI = 0; this.m_userData = i.userData; this.m_fixtureList = null; this.m_fixtureCount = 0; this.m_controllerList = null; this.m_controllerCount = 0; } i.prototype.CreateFixture = function(t, e) { void 0 === e && (e = 0); return t instanceof Ke ? this.CreateFixtureShapeDensity(t, e) : this.CreateFixtureDef(t); }; i.prototype.CreateFixtureDef = function(t) { if (this.m_world.IsLocked()) throw new Error(); var e = new ai(t, this); e.Create(t); this.m_activeFlag && e.CreateProxies(this.m_xf); e.m_next = this.m_fixtureList; this.m_fixtureList = e; ++this.m_fixtureCount; e.m_density > 0 && this.ResetMassData(); this.m_world.m_newFixture = !0; return e; }; i.prototype.CreateFixtureShapeDensity = function(t, e) { void 0 === e && (e = 0); var n = i.CreateFixtureShapeDensity_s_def; n.shape = t; n.density = e; return this.CreateFixtureDef(n); }; i.prototype.DestroyFixture = function(t) { if (this.m_world.IsLocked()) throw new Error(); for (var e = this.m_fixtureList, i = null; null !== e; ) { if (e === t) { i ? i.m_next = t.m_next : this.m_fixtureList = t.m_next; break; } i = e; e = e.m_next; } for (var n = this.m_contactList; n; ) { var r = n.contact; n = n.next; var s = r.GetFixtureA(), o = r.GetFixtureB(); t !== s && t !== o || this.m_world.m_contactManager.Destroy(r); } this.m_activeFlag && t.DestroyProxies(); t.m_next = null; t.Destroy(); --this.m_fixtureCount; this.ResetMassData(); }; i.prototype.SetTransformVec = function(t, e) { this.SetTransformXY(t.x, t.y, e); }; i.prototype.SetTransformXY = function(t, e, i) { if (this.m_world.IsLocked()) throw new Error(); this.m_xf.q.SetAngle(i); this.m_xf.p.Set(t, e); this.m_xf0.Copy(this.m_xf); N.MulXV(this.m_xf, this.m_sweep.localCenter, this.m_sweep.c); this.m_sweep.a = i; this.m_sweep.c0.Copy(this.m_sweep.c); this.m_sweep.a0 = i; for (var n = this.m_fixtureList; n; n = n.m_next) n.Synchronize(this.m_xf, this.m_xf); this.m_world.m_contactManager.FindNewContacts(); }; i.prototype.SetTransform = function(t) { this.SetTransformVec(t.p, t.GetAngle()); }; i.prototype.GetTransform = function() { return this.m_xf; }; i.prototype.GetPosition = function() { return this.m_xf.p; }; i.prototype.SetPosition = function(t) { this.SetTransformVec(t, this.GetAngle()); }; i.prototype.SetPositionXY = function(t, e) { this.SetTransformXY(t, e, this.GetAngle()); }; i.prototype.GetAngle = function() { return this.m_sweep.a; }; i.prototype.SetAngle = function(t) { this.SetTransformVec(this.GetPosition(), t); }; i.prototype.GetWorldCenter = function() { return this.m_sweep.c; }; i.prototype.GetLocalCenter = function() { return this.m_sweep.localCenter; }; i.prototype.SetLinearVelocity = function(e) { if (this.m_type !== t.b2BodyType.b2_staticBody) { P.DotVV(e, e) > 0 && this.SetAwake(!0); this.m_linearVelocity.Copy(e); } }; i.prototype.GetLinearVelocity = function() { return this.m_linearVelocity; }; i.prototype.SetAngularVelocity = function(e) { if (this.m_type !== t.b2BodyType.b2_staticBody) { e * e > 0 && this.SetAwake(!0); this.m_angularVelocity = e; } }; i.prototype.GetAngularVelocity = function() { return this.m_angularVelocity; }; i.prototype.GetDefinition = function(t) { t.type = this.GetType(); t.allowSleep = this.m_autoSleepFlag; t.angle = this.GetAngle(); t.angularDamping = this.m_angularDamping; t.gravityScale = this.m_gravityScale; t.angularVelocity = this.m_angularVelocity; t.fixedRotation = this.m_fixedRotationFlag; t.bullet = this.m_bulletFlag; t.awake = this.m_awakeFlag; t.linearDamping = this.m_linearDamping; t.linearVelocity.Copy(this.GetLinearVelocity()); t.position.Copy(this.GetPosition()); t.userData = this.GetUserData(); return t; }; i.prototype.ApplyForce = function(e, i, n) { void 0 === n && (n = !0); if (this.m_type === t.b2BodyType.b2_dynamicBody) { n && !this.m_awakeFlag && this.SetAwake(!0); if (this.m_awakeFlag) { this.m_force.x += e.x; this.m_force.y += e.y; this.m_torque += (i.x - this.m_sweep.c.x) * e.y - (i.y - this.m_sweep.c.y) * e.x; } } }; i.prototype.ApplyForceToCenter = function(e, i) { void 0 === i && (i = !0); if (this.m_type === t.b2BodyType.b2_dynamicBody) { i && !this.m_awakeFlag && this.SetAwake(!0); if (this.m_awakeFlag) { this.m_force.x += e.x; this.m_force.y += e.y; } } }; i.prototype.ApplyTorque = function(e, i) { void 0 === i && (i = !0); if (this.m_type === t.b2BodyType.b2_dynamicBody) { i && !this.m_awakeFlag && this.SetAwake(!0); this.m_awakeFlag && (this.m_torque += e); } }; i.prototype.ApplyLinearImpulse = function(e, i, n) { void 0 === n && (n = !0); if (this.m_type === t.b2BodyType.b2_dynamicBody) { n && !this.m_awakeFlag && this.SetAwake(!0); if (this.m_awakeFlag) { this.m_linearVelocity.x += this.m_invMass * e.x; this.m_linearVelocity.y += this.m_invMass * e.y; this.m_angularVelocity += this.m_invI * ((i.x - this.m_sweep.c.x) * e.y - (i.y - this.m_sweep.c.y) * e.x); } } }; i.prototype.ApplyLinearImpulseToCenter = function(e, i) { void 0 === i && (i = !0); if (this.m_type === t.b2BodyType.b2_dynamicBody) { i && !this.m_awakeFlag && this.SetAwake(!0); if (this.m_awakeFlag) { this.m_linearVelocity.x += this.m_invMass * e.x; this.m_linearVelocity.y += this.m_invMass * e.y; } } }; i.prototype.ApplyAngularImpulse = function(e, i) { void 0 === i && (i = !0); if (this.m_type === t.b2BodyType.b2_dynamicBody) { i && !this.m_awakeFlag && this.SetAwake(!0); this.m_awakeFlag && (this.m_angularVelocity += this.m_invI * e); } }; i.prototype.GetMass = function() { return this.m_mass; }; i.prototype.GetInertia = function() { return this.m_I + this.m_mass * P.DotVV(this.m_sweep.localCenter, this.m_sweep.localCenter); }; i.prototype.GetMassData = function(t) { t.mass = this.m_mass; t.I = this.m_I + this.m_mass * P.DotVV(this.m_sweep.localCenter, this.m_sweep.localCenter); t.center.Copy(this.m_sweep.localCenter); return t; }; i.prototype.SetMassData = function(e) { if (this.m_world.IsLocked()) throw new Error(); if (this.m_type === t.b2BodyType.b2_dynamicBody) { this.m_invMass = 0; this.m_I = 0; this.m_invI = 0; this.m_mass = e.mass; this.m_mass <= 0 && (this.m_mass = 1); this.m_invMass = 1 / this.m_mass; if (e.I > 0 && !this.m_fixedRotationFlag) { this.m_I = e.I - this.m_mass * P.DotVV(e.center, e.center); this.m_invI = 1 / this.m_I; } var n = i.SetMassData_s_oldCenter.Copy(this.m_sweep.c); this.m_sweep.localCenter.Copy(e.center); N.MulXV(this.m_xf, this.m_sweep.localCenter, this.m_sweep.c); this.m_sweep.c0.Copy(this.m_sweep.c); P.AddVCrossSV(this.m_linearVelocity, this.m_angularVelocity, P.SubVV(this.m_sweep.c, n, P.s_t0), this.m_linearVelocity); } }; i.prototype.ResetMassData = function() { this.m_mass = 0; this.m_invMass = 0; this.m_I = 0; this.m_invI = 0; this.m_sweep.localCenter.SetZero(); if (this.m_type !== t.b2BodyType.b2_staticBody && this.m_type !== t.b2BodyType.b2_kinematicBody) { for (var e = i.ResetMassData_s_localCenter.SetZero(), n = this.m_fixtureList; n; n = n.m_next) if (0 !== n.m_density) { var r = n.GetMassData(i.ResetMassData_s_massData); this.m_mass += r.mass; e.x += r.center.x * r.mass; e.y += r.center.y * r.mass; this.m_I += r.I; } if (this.m_mass > 0) { this.m_invMass = 1 / this.m_mass; e.x *= this.m_invMass; e.y *= this.m_invMass; } else { this.m_mass = 1; this.m_invMass = 1; } if (this.m_I > 0 && !this.m_fixedRotationFlag) { this.m_I -= this.m_mass * P.DotVV(e, e); this.m_invI = 1 / this.m_I; } else { this.m_I = 0; this.m_invI = 0; } var s = i.ResetMassData_s_oldCenter.Copy(this.m_sweep.c); this.m_sweep.localCenter.Copy(e); N.MulXV(this.m_xf, this.m_sweep.localCenter, this.m_sweep.c); this.m_sweep.c0.Copy(this.m_sweep.c); P.AddVCrossSV(this.m_linearVelocity, this.m_angularVelocity, P.SubVV(this.m_sweep.c, s, P.s_t0), this.m_linearVelocity); } else { this.m_sweep.c0.Copy(this.m_xf.p); this.m_sweep.c.Copy(this.m_xf.p); this.m_sweep.a0 = this.m_sweep.a; } }; i.prototype.GetWorldPoint = function(t, e) { return N.MulXV(this.m_xf, t, e); }; i.prototype.GetWorldVector = function(t, e) { return V.MulRV(this.m_xf.q, t, e); }; i.prototype.GetLocalPoint = function(t, e) { return N.MulTXV(this.m_xf, t, e); }; i.prototype.GetLocalVector = function(t, e) { return V.MulTRV(this.m_xf.q, t, e); }; i.prototype.GetLinearVelocityFromWorldPoint = function(t, e) { return P.AddVCrossSV(this.m_linearVelocity, this.m_angularVelocity, P.SubVV(t, this.m_sweep.c, P.s_t0), e); }; i.prototype.GetLinearVelocityFromLocalPoint = function(t, e) { return this.GetLinearVelocityFromWorldPoint(this.GetWorldPoint(t, e), e); }; i.prototype.GetLinearDamping = function() { return this.m_linearDamping; }; i.prototype.SetLinearDamping = function(t) { this.m_linearDamping = t; }; i.prototype.GetAngularDamping = function() { return this.m_angularDamping; }; i.prototype.SetAngularDamping = function(t) { this.m_angularDamping = t; }; i.prototype.GetGravityScale = function() { return this.m_gravityScale; }; i.prototype.SetGravityScale = function(t) { this.m_gravityScale = t; }; i.prototype.SetType = function(e) { if (this.m_world.IsLocked()) throw new Error(); if (this.m_type !== e) { this.m_type = e; this.ResetMassData(); if (this.m_type === t.b2BodyType.b2_staticBody) { this.m_linearVelocity.SetZero(); this.m_angularVelocity = 0; this.m_sweep.a0 = this.m_sweep.a; this.m_sweep.c0.Copy(this.m_sweep.c); this.SynchronizeFixtures(); } this.SetAwake(!0); this.m_force.SetZero(); this.m_torque = 0; for (var i = this.m_contactList; i; ) { var n = i; i = i.next; this.m_world.m_contactManager.Destroy(n.contact); } this.m_contactList = null; for (var r = this.m_fixtureList; r; r = r.m_next) r.TouchProxies(); } }; i.prototype.GetType = function() { return this.m_type; }; i.prototype.SetBullet = function(t) { this.m_bulletFlag = t; }; i.prototype.IsBullet = function() { return this.m_bulletFlag; }; i.prototype.SetSleepingAllowed = function(t) { this.m_autoSleepFlag = t; t || this.SetAwake(!0); }; i.prototype.IsSleepingAllowed = function() { return this.m_autoSleepFlag; }; i.prototype.SetAwake = function(t) { if (t) { this.m_awakeFlag = !0; this.m_sleepTime = 0; } else { this.m_awakeFlag = !1; this.m_sleepTime = 0; this.m_linearVelocity.SetZero(); this.m_angularVelocity = 0; this.m_force.SetZero(); this.m_torque = 0; } }; i.prototype.IsAwake = function() { return this.m_awakeFlag; }; i.prototype.SetActive = function(t) { if (this.m_world.IsLocked()) throw new Error(); if (t !== this.IsActive()) { this.m_activeFlag = t; if (t) for (var e = this.m_fixtureList; e; e = e.m_next) e.CreateProxies(this.m_xf); else { for (e = this.m_fixtureList; e; e = e.m_next) e.DestroyProxies(); for (var i = this.m_contactList; i; ) { var n = i; i = i.next; this.m_world.m_contactManager.Destroy(n.contact); } this.m_contactList = null; } } }; i.prototype.IsActive = function() { return this.m_activeFlag; }; i.prototype.SetFixedRotation = function(t) { if (this.m_fixedRotationFlag !== t) { this.m_fixedRotationFlag = t; this.m_angularVelocity = 0; this.ResetMassData(); } }; i.prototype.IsFixedRotation = function() { return this.m_fixedRotationFlag; }; i.prototype.GetFixtureList = function() { return this.m_fixtureList; }; i.prototype.GetJointList = function() { return this.m_jointList; }; i.prototype.GetContactList = function() { return this.m_contactList; }; i.prototype.GetNext = function() { return this.m_next; }; i.prototype.GetUserData = function() { return this.m_userData; }; i.prototype.SetUserData = function(t) { this.m_userData = t; }; i.prototype.GetWorld = function() { return this.m_world; }; i.prototype.Dump = function(e) { var i = this.m_islandIndex; e("{\n"); e(" const bd: b2BodyDef = new b2BodyDef();\n"); var n = ""; switch (this.m_type) { case t.b2BodyType.b2_staticBody: n = "b2BodyType.b2_staticBody"; break; case t.b2BodyType.b2_kinematicBody: n = "b2BodyType.b2_kinematicBody"; break; case t.b2BodyType.b2_dynamicBody: n = "b2BodyType.b2_dynamicBody"; } e(" bd.type = %s;\n", n); e(" bd.position.Set(%.15f, %.15f);\n", this.m_xf.p.x, this.m_xf.p.y); e(" bd.angle = %.15f;\n", this.m_sweep.a); e(" bd.linearVelocity.Set(%.15f, %.15f);\n", this.m_linearVelocity.x, this.m_linearVelocity.y); e(" bd.angularVelocity = %.15f;\n", this.m_angularVelocity); e(" bd.linearDamping = %.15f;\n", this.m_linearDamping); e(" bd.angularDamping = %.15f;\n", this.m_angularDamping); e(" bd.allowSleep = %s;\n", this.m_autoSleepFlag ? "true" : "false"); e(" bd.awake = %s;\n", this.m_awakeFlag ? "true" : "false"); e(" bd.fixedRotation = %s;\n", this.m_fixedRotationFlag ? "true" : "false"); e(" bd.bullet = %s;\n", this.m_bulletFlag ? "true" : "false"); e(" bd.active = %s;\n", this.m_activeFlag ? "true" : "false"); e(" bd.gravityScale = %.15f;\n", this.m_gravityScale); e("\n"); e(" bodies[%d] = this.m_world.CreateBody(bd);\n", this.m_islandIndex); e("\n"); for (var r = this.m_fixtureList; r; r = r.m_next) { e(" {\n"); r.Dump(e, i); e(" }\n"); } e("}\n"); }; i.prototype.SynchronizeFixtures = function() { var t = i.SynchronizeFixtures_s_xf1; t.q.SetAngle(this.m_sweep.a0); V.MulRV(t.q, this.m_sweep.localCenter, t.p); P.SubVV(this.m_sweep.c0, t.p, t.p); for (var e = this.m_fixtureList; e; e = e.m_next) e.Synchronize(t, this.m_xf); }; i.prototype.SynchronizeTransform = function() { this.m_xf.q.SetAngle(this.m_sweep.a); V.MulRV(this.m_xf.q, this.m_sweep.localCenter, this.m_xf.p); P.SubVV(this.m_sweep.c, this.m_xf.p, this.m_xf.p); }; i.prototype.ShouldCollide = function(e) { return (this.m_type !== t.b2BodyType.b2_staticBody || e.m_type !== t.b2BodyType.b2_staticBody) && this.ShouldCollideConnected(e); }; i.prototype.ShouldCollideConnected = function(t) { for (var e = this.m_jointList; e; e = e.next) if (e.other === t && !e.joint.m_collideConnected) return !1; return !0; }; i.prototype.Advance = function(t) { this.m_sweep.Advance(t); this.m_sweep.c.Copy(this.m_sweep.c0); this.m_sweep.a = this.m_sweep.a0; this.m_xf.q.SetAngle(this.m_sweep.a); V.MulRV(this.m_xf.q, this.m_sweep.localCenter, this.m_xf.p); P.SubVV(this.m_sweep.c, this.m_xf.p, this.m_xf.p); }; i.prototype.GetControllerList = function() { return this.m_controllerList; }; i.prototype.GetControllerCount = function() { return this.m_controllerCount; }; i.CreateFixtureShapeDensity_s_def = new si(); i.SetMassData_s_oldCenter = new P(); i.ResetMassData_s_localCenter = new P(); i.ResetMassData_s_oldCenter = new P(); i.ResetMassData_s_massData = new Ze(); i.SynchronizeFixtures_s_xf1 = new N(); return i; })(); (function(t) { t[t.e_unknownJoint = 0] = "e_unknownJoint"; t[t.e_revoluteJoint = 1] = "e_revoluteJoint"; t[t.e_prismaticJoint = 2] = "e_prismaticJoint"; t[t.e_distanceJoint = 3] = "e_distanceJoint"; t[t.e_pulleyJoint = 4] = "e_pulleyJoint"; t[t.e_mouseJoint = 5] = "e_mouseJoint"; t[t.e_gearJoint = 6] = "e_gearJoint"; t[t.e_wheelJoint = 7] = "e_wheelJoint"; t[t.e_weldJoint = 8] = "e_weldJoint"; t[t.e_frictionJoint = 9] = "e_frictionJoint"; t[t.e_ropeJoint = 10] = "e_ropeJoint"; t[t.e_motorJoint = 11] = "e_motorJoint"; t[t.e_areaJoint = 12] = "e_areaJoint"; })(t.b2JointType || (t.b2JointType = {})); (function(t) { t[t.e_inactiveLimit = 0] = "e_inactiveLimit"; t[t.e_atLowerLimit = 1] = "e_atLowerLimit"; t[t.e_atUpperLimit = 2] = "e_atUpperLimit"; t[t.e_equalLimits = 3] = "e_equalLimits"; })(t.b2LimitState || (t.b2LimitState = {})); var hi = (function() { function t() { this.linear = new P(); this.angularA = 0; this.angularB = 0; } t.prototype.SetZero = function() { this.linear.SetZero(); this.angularA = 0; this.angularB = 0; return this; }; t.prototype.Set = function(t, e, i) { this.linear.Copy(t); this.angularA = e; this.angularB = i; return this; }; return t; })(), ui = (function() { return function(t, e) { this.prev = null; this.next = null; this.joint = t; this.other = e; }; })(), _i = (function() { return function(e) { this.type = t.b2JointType.e_unknownJoint; this.userData = null; this.collideConnected = !1; this.type = e; }; })(), fi = (function() { function i(i) { this.m_type = t.b2JointType.e_unknownJoint; this.m_prev = null; this.m_next = null; this.m_index = 0; this.m_islandFlag = !1; this.m_collideConnected = !1; this.m_userData = null; this.m_type = i.type; this.m_edgeA = new ui(this, i.bodyB); this.m_edgeB = new ui(this, i.bodyA); this.m_bodyA = i.bodyA; this.m_bodyB = i.bodyB; this.m_collideConnected = e(i.collideConnected, !1); this.m_userData = i.userData; } i.prototype.GetType = function() { return this.m_type; }; i.prototype.GetBodyA = function() { return this.m_bodyA; }; i.prototype.GetBodyB = function() { return this.m_bodyB; }; i.prototype.GetNext = function() { return this.m_next; }; i.prototype.GetUserData = function() { return this.m_userData; }; i.prototype.SetUserData = function(t) { this.m_userData = t; }; i.prototype.IsActive = function() { return this.m_bodyA.IsActive() && this.m_bodyB.IsActive(); }; i.prototype.GetCollideConnected = function() { return this.m_collideConnected; }; i.prototype.Dump = function(t) { t("// Dump is not supported for this joint type.\n"); }; i.prototype.ShiftOrigin = function(t) {}; return i; })(), di = (function(e) { $e(i, e); function i() { var i = e.call(this, t.b2JointType.e_distanceJoint) || this; i.localAnchorA = new P(); i.localAnchorB = new P(); i.length = 1; i.frequencyHz = 0; i.dampingRatio = 0; return i; } i.prototype.Initialize = function(t, e, i, n) { this.bodyA = t; this.bodyB = e; this.bodyA.GetLocalPoint(i, this.localAnchorA); this.bodyB.GetLocalPoint(n, this.localAnchorB); this.length = P.DistanceVV(i, n); this.frequencyHz = 0; this.dampingRatio = 0; }; return i; })(_i), mi = (function(t) { $e(i, t); function i(i) { var n = t.call(this, i) || this; n.m_frequencyHz = 0; n.m_dampingRatio = 0; n.m_bias = 0; n.m_localAnchorA = new P(); n.m_localAnchorB = new P(); n.m_gamma = 0; n.m_impulse = 0; n.m_length = 0; n.m_indexA = 0; n.m_indexB = 0; n.m_u = new P(); n.m_rA = new P(); n.m_rB = new P(); n.m_localCenterA = new P(); n.m_localCenterB = new P(); n.m_invMassA = 0; n.m_invMassB = 0; n.m_invIA = 0; n.m_invIB = 0; n.m_mass = 0; n.m_qA = new V(); n.m_qB = new V(); n.m_lalcA = new P(); n.m_lalcB = new P(); n.m_frequencyHz = e(i.frequencyHz, 0); n.m_dampingRatio = e(i.dampingRatio, 0); n.m_localAnchorA.Copy(i.localAnchorA); n.m_localAnchorB.Copy(i.localAnchorB); n.m_length = i.length; return n; } i.prototype.GetAnchorA = function(t) { return this.m_bodyA.GetWorldPoint(this.m_localAnchorA, t); }; i.prototype.GetAnchorB = function(t) { return this.m_bodyB.GetWorldPoint(this.m_localAnchorB, t); }; i.prototype.GetReactionForce = function(t, e) { e.x = t * this.m_impulse * this.m_u.x; e.y = t * this.m_impulse * this.m_u.y; return e; }; i.prototype.GetReactionTorque = function(t) { return 0; }; i.prototype.GetLocalAnchorA = function() { return this.m_localAnchorA; }; i.prototype.GetLocalAnchorB = function() { return this.m_localAnchorB; }; i.prototype.SetLength = function(t) { this.m_length = t; }; i.prototype.Length = function() { return this.m_length; }; i.prototype.SetFrequency = function(t) { this.m_frequencyHz = t; }; i.prototype.GetFrequency = function() { return this.m_frequencyHz; }; i.prototype.SetDampingRatio = function(t) { this.m_dampingRatio = t; }; i.prototype.GetDampingRatio = function() { return this.m_dampingRatio; }; i.prototype.Dump = function(t) { var e = this.m_bodyA.m_islandIndex, i = this.m_bodyB.m_islandIndex; t(" const jd: b2DistanceJointDef = new b2DistanceJointDef();\n"); t(" jd.bodyA = bodies[%d];\n", e); t(" jd.bodyB = bodies[%d];\n", i); t(" jd.collideConnected = %s;\n", this.m_collideConnected ? "true" : "false"); t(" jd.localAnchorA.Set(%.15f, %.15f);\n", this.m_localAnchorA.x, this.m_localAnchorA.y); t(" jd.localAnchorB.Set(%.15f, %.15f);\n", this.m_localAnchorB.x, this.m_localAnchorB.y); t(" jd.length = %.15f;\n", this.m_length); t(" jd.frequencyHz = %.15f;\n", this.m_frequencyHz); t(" jd.dampingRatio = %.15f;\n", this.m_dampingRatio); t(" joints[%d] = this.m_world.CreateJoint(jd);\n", this.m_index); }; i.prototype.InitVelocityConstraints = function(t) { this.m_indexA = this.m_bodyA.m_islandIndex; this.m_indexB = this.m_bodyB.m_islandIndex; this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter); this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter); this.m_invMassA = this.m_bodyA.m_invMass; this.m_invMassB = this.m_bodyB.m_invMass; this.m_invIA = this.m_bodyA.m_invI; this.m_invIB = this.m_bodyB.m_invI; var e = t.positions[this.m_indexA].c, n = t.positions[this.m_indexA].a, r = t.velocities[this.m_indexA].v, o = t.velocities[this.m_indexA].w, a = t.positions[this.m_indexB].c, l = t.positions[this.m_indexB].a, h = t.velocities[this.m_indexB].v, u = t.velocities[this.m_indexB].w, _ = this.m_qA.SetAngle(n), f = this.m_qB.SetAngle(l); P.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA); V.MulRV(_, this.m_lalcA, this.m_rA); P.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); V.MulRV(f, this.m_lalcB, this.m_rB); this.m_u.x = a.x + this.m_rB.x - e.x - this.m_rA.x; this.m_u.y = a.y + this.m_rB.y - e.y - this.m_rA.y; var d = this.m_u.Length(); d > c ? this.m_u.SelfMul(1 / d) : this.m_u.SetZero(); var m = P.CrossVV(this.m_rA, this.m_u), p = P.CrossVV(this.m_rB, this.m_u), v = this.m_invMassA + this.m_invIA * m * m + this.m_invMassB + this.m_invIB * p * p; this.m_mass = 0 !== v ? 1 / v : 0; if (this.m_frequencyHz > 0) { var y = d - this.m_length, g = 2 * s * this.m_frequencyHz, x = 2 * this.m_mass * this.m_dampingRatio * g, C = this.m_mass * g * g, b = t.step.dt; this.m_gamma = b * (x + b * C); this.m_gamma = 0 !== this.m_gamma ? 1 / this.m_gamma : 0; this.m_bias = y * b * C * this.m_gamma; v += this.m_gamma; this.m_mass = 0 !== v ? 1 / v : 0; } else { this.m_gamma = 0; this.m_bias = 0; } if (t.step.warmStarting) { this.m_impulse *= t.step.dtRatio; var A = P.MulSV(this.m_impulse, this.m_u, i.InitVelocityConstraints_s_P); r.SelfMulSub(this.m_invMassA, A); o -= this.m_invIA * P.CrossVV(this.m_rA, A); h.SelfMulAdd(this.m_invMassB, A); u += this.m_invIB * P.CrossVV(this.m_rB, A); } else this.m_impulse = 0; t.velocities[this.m_indexA].w = o; t.velocities[this.m_indexB].w = u; }; i.prototype.SolveVelocityConstraints = function(t) { var e = t.velocities[this.m_indexA].v, n = t.velocities[this.m_indexA].w, r = t.velocities[this.m_indexB].v, s = t.velocities[this.m_indexB].w, o = P.AddVCrossSV(e, n, this.m_rA, i.SolveVelocityConstraints_s_vpA), a = P.AddVCrossSV(r, s, this.m_rB, i.SolveVelocityConstraints_s_vpB), c = P.DotVV(this.m_u, P.SubVV(a, o, P.s_t0)), l = -this.m_mass * (c + this.m_bias + this.m_gamma * this.m_impulse); this.m_impulse += l; var h = P.MulSV(l, this.m_u, i.SolveVelocityConstraints_s_P); e.SelfMulSub(this.m_invMassA, h); n -= this.m_invIA * P.CrossVV(this.m_rA, h); r.SelfMulAdd(this.m_invMassB, h); s += this.m_invIB * P.CrossVV(this.m_rB, h); t.velocities[this.m_indexA].w = n; t.velocities[this.m_indexB].w = s; }; i.prototype.SolvePositionConstraints = function(t) { if (this.m_frequencyHz > 0) return !0; var e = t.positions[this.m_indexA].c, n = t.positions[this.m_indexA].a, r = t.positions[this.m_indexB].c, s = t.positions[this.m_indexB].a, o = this.m_qA.SetAngle(n), a = this.m_qB.SetAngle(s), l = V.MulRV(o, this.m_lalcA, this.m_rA), h = V.MulRV(a, this.m_lalcB, this.m_rB), u = this.m_u; u.x = r.x + h.x - e.x - l.x; u.y = r.y + h.y - e.y - l.y; var _ = this.m_u.Normalize() - this.m_length; _ = C(_, -.2, .2); var f = -this.m_mass * _, d = P.MulSV(f, u, i.SolvePositionConstraints_s_P); e.SelfMulSub(this.m_invMassA, d); n -= this.m_invIA * P.CrossVV(l, d); r.SelfMulAdd(this.m_invMassB, d); s += this.m_invIB * P.CrossVV(h, d); t.positions[this.m_indexA].a = n; t.positions[this.m_indexB].a = s; return y(_) < c; }; i.InitVelocityConstraints_s_P = new P(); i.SolveVelocityConstraints_s_vpA = new P(); i.SolveVelocityConstraints_s_vpB = new P(); i.SolveVelocityConstraints_s_P = new P(); i.SolvePositionConstraints_s_P = new P(); return i; })(fi), pi = (function(e) { $e(i, e); function i() { var i = e.call(this, t.b2JointType.e_areaJoint) || this; i.bodies = []; i.frequencyHz = 0; i.dampingRatio = 0; return i; } i.prototype.AddBody = function(t) { this.bodies.push(t); 1 === this.bodies.length ? this.bodyA = t : 2 === this.bodies.length && (this.bodyB = t); }; return i; })(_i), vi = (function(t) { $e(i, t); function i(i) { var n = t.call(this, i) || this; n.m_frequencyHz = 0; n.m_dampingRatio = 0; n.m_impulse = 0; n.m_targetArea = 0; n.m_bodies = i.bodies; n.m_frequencyHz = e(i.frequencyHz, 0); n.m_dampingRatio = e(i.dampingRatio, 0); n.m_targetLengths = m(i.bodies.length); n.m_normals = P.MakeArray(i.bodies.length); n.m_joints = []; n.m_deltas = P.MakeArray(i.bodies.length); n.m_delta = new P(); var r = new di(); r.frequencyHz = n.m_frequencyHz; r.dampingRatio = n.m_dampingRatio; n.m_targetArea = 0; for (var s = 0; s < n.m_bodies.length; ++s) { var o = n.m_bodies[s], a = n.m_bodies[(s + 1) % n.m_bodies.length], c = o.GetWorldCenter(), l = a.GetWorldCenter(); n.m_targetLengths[s] = P.DistanceVV(c, l); n.m_targetArea += P.CrossVV(c, l); r.Initialize(o, a, c, l); n.m_joints[s] = o.GetWorld().CreateJoint(r); } n.m_targetArea *= .5; return n; } i.prototype.GetAnchorA = function(t) { return t; }; i.prototype.GetAnchorB = function(t) { return t; }; i.prototype.GetReactionForce = function(t, e) { return e; }; i.prototype.GetReactionTorque = function(t) { return 0; }; i.prototype.SetFrequency = function(t) { this.m_frequencyHz = t; for (var e = 0; e < this.m_joints.length; ++e) this.m_joints[e].SetFrequency(t); }; i.prototype.GetFrequency = function() { return this.m_frequencyHz; }; i.prototype.SetDampingRatio = function(t) { this.m_dampingRatio = t; for (var e = 0; e < this.m_joints.length; ++e) this.m_joints[e].SetDampingRatio(t); }; i.prototype.GetDampingRatio = function() { return this.m_dampingRatio; }; i.prototype.Dump = function(t) { t("Area joint dumping is not supported.\n"); }; i.prototype.InitVelocityConstraints = function(t) { for (var e = 0; e < this.m_bodies.length; ++e) { var i = this.m_bodies[(e + this.m_bodies.length - 1) % this.m_bodies.length], n = this.m_bodies[(e + 1) % this.m_bodies.length], r = t.positions[i.m_islandIndex].c, s = t.positions[n.m_islandIndex].c, o = this.m_deltas[e]; P.SubVV(s, r, o); } if (t.step.warmStarting) { this.m_impulse *= t.step.dtRatio; for (e = 0; e < this.m_bodies.length; ++e) { var a = this.m_bodies[e], c = t.velocities[a.m_islandIndex].v; o = this.m_deltas[e]; c.x += a.m_invMass * o.y * .5 * this.m_impulse; c.y += a.m_invMass * -o.x * .5 * this.m_impulse; } } else this.m_impulse = 0; }; i.prototype.SolveVelocityConstraints = function(t) { for (var e = 0, i = 0, n = 0; n < this.m_bodies.length; ++n) { var r = this.m_bodies[n], s = t.velocities[r.m_islandIndex].v; e += (a = this.m_deltas[n]).LengthSquared() / r.GetMass(); i += P.CrossVV(s, a); } var o = -2 * i / e; this.m_impulse += o; for (n = 0; n < this.m_bodies.length; ++n) { r = this.m_bodies[n], s = t.velocities[r.m_islandIndex].v; var a = this.m_deltas[n]; s.x += r.m_invMass * a.y * .5 * o; s.y += r.m_invMass * -a.x * .5 * o; } }; i.prototype.SolvePositionConstraints = function(t) { for (var e = 0, i = 0, r = 0; r < this.m_bodies.length; ++r) { var s = this.m_bodies[r], o = this.m_bodies[(r + 1) % this.m_bodies.length], a = t.positions[s.m_islandIndex].c, l = t.positions[o.m_islandIndex].c, h = (f = P.SubVV(l, a, this.m_delta)).Length(); h < n && (h = 1); this.m_normals[r].x = f.y / h; this.m_normals[r].y = -f.x / h; e += h; i += P.CrossVV(a, l); } i *= .5; var u = .5 * (this.m_targetArea - i) / e, _ = !0; for (r = 0; r < this.m_bodies.length; ++r) { s = this.m_bodies[r], a = t.positions[s.m_islandIndex].c; var f, d = (r + 1) % this.m_bodies.length; (f = P.AddVV(this.m_normals[r], this.m_normals[d], this.m_delta)).SelfMul(u); var m = f.LengthSquared(); m > A(.2) && f.SelfMul(.2 / w(m)); m > A(c) && (_ = !1); a.x += f.x; a.y += f.y; } return _; }; return i; })(fi), yi = (function(e) { $e(i, e); function i() { var i = e.call(this, t.b2JointType.e_frictionJoint) || this; i.localAnchorA = new P(); i.localAnchorB = new P(); i.maxForce = 0; i.maxTorque = 0; return i; } i.prototype.Initialize = function(t, e, i) { this.bodyA = t; this.bodyB = e; this.bodyA.GetLocalPoint(i, this.localAnchorA); this.bodyB.GetLocalPoint(i, this.localAnchorB); }; return i; })(_i), gi = (function(t) { $e(i, t); function i(i) { var n = t.call(this, i) || this; n.m_localAnchorA = new P(); n.m_localAnchorB = new P(); n.m_linearImpulse = new P(); n.m_angularImpulse = 0; n.m_maxForce = 0; n.m_maxTorque = 0; n.m_indexA = 0; n.m_indexB = 0; n.m_rA = new P(); n.m_rB = new P(); n.m_localCenterA = new P(); n.m_localCenterB = new P(); n.m_invMassA = 0; n.m_invMassB = 0; n.m_invIA = 0; n.m_invIB = 0; n.m_linearMass = new F(); n.m_angularMass = 0; n.m_qA = new V(); n.m_qB = new V(); n.m_lalcA = new P(); n.m_lalcB = new P(); n.m_K = new F(); n.m_localAnchorA.Copy(i.localAnchorA); n.m_localAnchorB.Copy(i.localAnchorB); n.m_linearImpulse.SetZero(); n.m_maxForce = e(i.maxForce, 0); n.m_maxTorque = e(i.maxTorque, 0); n.m_linearMass.SetZero(); return n; } i.prototype.InitVelocityConstraints = function(t) { this.m_indexA = this.m_bodyA.m_islandIndex; this.m_indexB = this.m_bodyB.m_islandIndex; this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter); this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter); this.m_invMassA = this.m_bodyA.m_invMass; this.m_invMassB = this.m_bodyB.m_invMass; this.m_invIA = this.m_bodyA.m_invI; this.m_invIB = this.m_bodyB.m_invI; var e = t.positions[this.m_indexA].a, i = t.velocities[this.m_indexA].v, n = t.velocities[this.m_indexA].w, r = t.positions[this.m_indexB].a, s = t.velocities[this.m_indexB].v, o = t.velocities[this.m_indexB].w, a = this.m_qA.SetAngle(e), c = this.m_qB.SetAngle(r); P.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA); var l = V.MulRV(a, this.m_lalcA, this.m_rA); P.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); var h = V.MulRV(c, this.m_lalcB, this.m_rB), u = this.m_invMassA, _ = this.m_invMassB, f = this.m_invIA, d = this.m_invIB, m = this.m_K; m.ex.x = u + _ + f * l.y * l.y + d * h.y * h.y; m.ex.y = -f * l.x * l.y - d * h.x * h.y; m.ey.x = m.ex.y; m.ey.y = u + _ + f * l.x * l.x + d * h.x * h.x; m.GetInverse(this.m_linearMass); this.m_angularMass = f + d; this.m_angularMass > 0 && (this.m_angularMass = 1 / this.m_angularMass); if (t.step.warmStarting) { this.m_linearImpulse.SelfMul(t.step.dtRatio); this.m_angularImpulse *= t.step.dtRatio; var p = this.m_linearImpulse; i.SelfMulSub(u, p); n -= f * (P.CrossVV(this.m_rA, p) + this.m_angularImpulse); s.SelfMulAdd(_, p); o += d * (P.CrossVV(this.m_rB, p) + this.m_angularImpulse); } else { this.m_linearImpulse.SetZero(); this.m_angularImpulse = 0; } t.velocities[this.m_indexA].w = n; t.velocities[this.m_indexB].w = o; }; i.prototype.SolveVelocityConstraints = function(t) { var e = t.velocities[this.m_indexA].v, n = t.velocities[this.m_indexA].w, r = t.velocities[this.m_indexB].v, s = t.velocities[this.m_indexB].w, o = this.m_invMassA, a = this.m_invMassB, c = this.m_invIA, l = this.m_invIB, h = t.step.dt, u = s - n, _ = -this.m_angularMass * u, f = this.m_angularImpulse, d = h * this.m_maxTorque; this.m_angularImpulse = C(this.m_angularImpulse + _, -d, d); n -= c * (_ = this.m_angularImpulse - f); s += l * _; var m = P.SubVV(P.AddVCrossSV(r, s, this.m_rB, P.s_t0), P.AddVCrossSV(e, n, this.m_rA, P.s_t1), i.SolveVelocityConstraints_s_Cdot_v2), p = F.MulMV(this.m_linearMass, m, i.SolveVelocityConstraints_s_impulseV).SelfNeg(), v = i.SolveVelocityConstraints_s_oldImpulseV.Copy(this.m_linearImpulse); this.m_linearImpulse.SelfAdd(p); d = h * this.m_maxForce; if (this.m_linearImpulse.LengthSquared() > d * d) { this.m_linearImpulse.Normalize(); this.m_linearImpulse.SelfMul(d); } P.SubVV(this.m_linearImpulse, v, p); e.SelfMulSub(o, p); n -= c * P.CrossVV(this.m_rA, p); r.SelfMulAdd(a, p); s += l * P.CrossVV(this.m_rB, p); t.velocities[this.m_indexA].w = n; t.velocities[this.m_indexB].w = s; }; i.prototype.SolvePositionConstraints = function(t) { return !0; }; i.prototype.GetAnchorA = function(t) { return this.m_bodyA.GetWorldPoint(this.m_localAnchorA, t); }; i.prototype.GetAnchorB = function(t) { return this.m_bodyB.GetWorldPoint(this.m_localAnchorB, t); }; i.prototype.GetReactionForce = function(t, e) { e.x = t * this.m_linearImpulse.x; e.y = t * this.m_linearImpulse.y; return e; }; i.prototype.GetReactionTorque = function(t) { return t * this.m_angularImpulse; }; i.prototype.GetLocalAnchorA = function() { return this.m_localAnchorA; }; i.prototype.GetLocalAnchorB = function() { return this.m_localAnchorB; }; i.prototype.SetMaxForce = function(t) { this.m_maxForce = t; }; i.prototype.GetMaxForce = function() { return this.m_maxForce; }; i.prototype.SetMaxTorque = function(t) { this.m_maxTorque = t; }; i.prototype.GetMaxTorque = function() { return this.m_maxTorque; }; i.prototype.Dump = function(t) { var e = this.m_bodyA.m_islandIndex, i = this.m_bodyB.m_islandIndex; t(" const jd: b2FrictionJointDef = new b2FrictionJointDef();\n"); t(" jd.bodyA = bodies[%d];\n", e); t(" jd.bodyB = bodies[%d];\n", i); t(" jd.collideConnected = %s;\n", this.m_collideConnected ? "true" : "false"); t(" jd.localAnchorA.Set(%.15f, %.15f);\n", this.m_localAnchorA.x, this.m_localAnchorA.y); t(" jd.localAnchorB.Set(%.15f, %.15f);\n", this.m_localAnchorB.x, this.m_localAnchorB.y); t(" jd.maxForce = %.15f;\n", this.m_maxForce); t(" jd.maxTorque = %.15f;\n", this.m_maxTorque); t(" joints[%d] = this.m_world.CreateJoint(jd);\n", this.m_index); }; i.SolveVelocityConstraints_s_Cdot_v2 = new P(); i.SolveVelocityConstraints_s_impulseV = new P(); i.SolveVelocityConstraints_s_oldImpulseV = new P(); return i; })(fi), xi = (function(e) { $e(i, e); function i() { var i = e.call(this, t.b2JointType.e_gearJoint) || this; i.ratio = 1; return i; } return i; })(_i), Ci = (function(i) { $e(n, i); function n(n) { var r, s, o = i.call(this, n) || this; o.m_typeA = t.b2JointType.e_unknownJoint; o.m_typeB = t.b2JointType.e_unknownJoint; o.m_localAnchorA = new P(); o.m_localAnchorB = new P(); o.m_localAnchorC = new P(); o.m_localAnchorD = new P(); o.m_localAxisC = new P(); o.m_localAxisD = new P(); o.m_referenceAngleA = 0; o.m_referenceAngleB = 0; o.m_constant = 0; o.m_ratio = 0; o.m_impulse = 0; o.m_indexA = 0; o.m_indexB = 0; o.m_indexC = 0; o.m_indexD = 0; o.m_lcA = new P(); o.m_lcB = new P(); o.m_lcC = new P(); o.m_lcD = new P(); o.m_mA = 0; o.m_mB = 0; o.m_mC = 0; o.m_mD = 0; o.m_iA = 0; o.m_iB = 0; o.m_iC = 0; o.m_iD = 0; o.m_JvAC = new P(); o.m_JvBD = new P(); o.m_JwA = 0; o.m_JwB = 0; o.m_JwC = 0; o.m_JwD = 0; o.m_mass = 0; o.m_qA = new V(); o.m_qB = new V(); o.m_qC = new V(); o.m_qD = new V(); o.m_lalcA = new P(); o.m_lalcB = new P(); o.m_lalcC = new P(); o.m_lalcD = new P(); o.m_joint1 = n.joint1; o.m_joint2 = n.joint2; o.m_typeA = o.m_joint1.GetType(); o.m_typeB = o.m_joint2.GetType(); o.m_bodyC = o.m_joint1.GetBodyA(); o.m_bodyA = o.m_joint1.GetBodyB(); var a = o.m_bodyA.m_xf, c = o.m_bodyA.m_sweep.a, l = o.m_bodyC.m_xf, h = o.m_bodyC.m_sweep.a; if (o.m_typeA === t.b2JointType.e_revoluteJoint) { var u = n.joint1; o.m_localAnchorC.Copy(u.m_localAnchorA); o.m_localAnchorA.Copy(u.m_localAnchorB); o.m_referenceAngleA = u.m_referenceAngle; o.m_localAxisC.SetZero(); r = c - h - o.m_referenceAngleA; } else { var _ = n.joint1; o.m_localAnchorC.Copy(_.m_localAnchorA); o.m_localAnchorA.Copy(_.m_localAnchorB); o.m_referenceAngleA = _.m_referenceAngle; o.m_localAxisC.Copy(_.m_localXAxisA); var f = o.m_localAnchorC, d = V.MulTRV(l.q, P.AddVV(V.MulRV(a.q, o.m_localAnchorA, P.s_t0), P.SubVV(a.p, l.p, P.s_t1), P.s_t0), P.s_t0); r = P.DotVV(P.SubVV(d, f, P.s_t0), o.m_localAxisC); } o.m_bodyD = o.m_joint2.GetBodyA(); o.m_bodyB = o.m_joint2.GetBodyB(); var m = o.m_bodyB.m_xf, p = o.m_bodyB.m_sweep.a, v = o.m_bodyD.m_xf, y = o.m_bodyD.m_sweep.a; if (o.m_typeB === t.b2JointType.e_revoluteJoint) { u = n.joint2; o.m_localAnchorD.Copy(u.m_localAnchorA); o.m_localAnchorB.Copy(u.m_localAnchorB); o.m_referenceAngleB = u.m_referenceAngle; o.m_localAxisD.SetZero(); s = p - y - o.m_referenceAngleB; } else { _ = n.joint2; o.m_localAnchorD.Copy(_.m_localAnchorA); o.m_localAnchorB.Copy(_.m_localAnchorB); o.m_referenceAngleB = _.m_referenceAngle; o.m_localAxisD.Copy(_.m_localXAxisA); var g = o.m_localAnchorD, x = V.MulTRV(v.q, P.AddVV(V.MulRV(m.q, o.m_localAnchorB, P.s_t0), P.SubVV(m.p, v.p, P.s_t1), P.s_t0), P.s_t0); s = P.DotVV(P.SubVV(x, g, P.s_t0), o.m_localAxisD); } o.m_ratio = e(n.ratio, 1); o.m_constant = r + o.m_ratio * s; o.m_impulse = 0; return o; } n.prototype.InitVelocityConstraints = function(e) { this.m_indexA = this.m_bodyA.m_islandIndex; this.m_indexB = this.m_bodyB.m_islandIndex; this.m_indexC = this.m_bodyC.m_islandIndex; this.m_indexD = this.m_bodyD.m_islandIndex; this.m_lcA.Copy(this.m_bodyA.m_sweep.localCenter); this.m_lcB.Copy(this.m_bodyB.m_sweep.localCenter); this.m_lcC.Copy(this.m_bodyC.m_sweep.localCenter); this.m_lcD.Copy(this.m_bodyD.m_sweep.localCenter); this.m_mA = this.m_bodyA.m_invMass; this.m_mB = this.m_bodyB.m_invMass; this.m_mC = this.m_bodyC.m_invMass; this.m_mD = this.m_bodyD.m_invMass; this.m_iA = this.m_bodyA.m_invI; this.m_iB = this.m_bodyB.m_invI; this.m_iC = this.m_bodyC.m_invI; this.m_iD = this.m_bodyD.m_invI; var i = e.positions[this.m_indexA].a, r = e.velocities[this.m_indexA].v, s = e.velocities[this.m_indexA].w, o = e.positions[this.m_indexB].a, a = e.velocities[this.m_indexB].v, c = e.velocities[this.m_indexB].w, l = e.positions[this.m_indexC].a, h = e.velocities[this.m_indexC].v, u = e.velocities[this.m_indexC].w, _ = e.positions[this.m_indexD].a, f = e.velocities[this.m_indexD].v, d = e.velocities[this.m_indexD].w, m = this.m_qA.SetAngle(i), p = this.m_qB.SetAngle(o), v = this.m_qC.SetAngle(l), y = this.m_qD.SetAngle(_); this.m_mass = 0; if (this.m_typeA === t.b2JointType.e_revoluteJoint) { this.m_JvAC.SetZero(); this.m_JwA = 1; this.m_JwC = 1; this.m_mass += this.m_iA + this.m_iC; } else { var g = V.MulRV(v, this.m_localAxisC, n.InitVelocityConstraints_s_u); P.SubVV(this.m_localAnchorC, this.m_lcC, this.m_lalcC); var x = V.MulRV(v, this.m_lalcC, n.InitVelocityConstraints_s_rC); P.SubVV(this.m_localAnchorA, this.m_lcA, this.m_lalcA); var C = V.MulRV(m, this.m_lalcA, n.InitVelocityConstraints_s_rA); this.m_JvAC.Copy(g); this.m_JwC = P.CrossVV(x, g); this.m_JwA = P.CrossVV(C, g); this.m_mass += this.m_mC + this.m_mA + this.m_iC * this.m_JwC * this.m_JwC + this.m_iA * this.m_JwA * this.m_JwA; } if (this.m_typeB === t.b2JointType.e_revoluteJoint) { this.m_JvBD.SetZero(); this.m_JwB = this.m_ratio; this.m_JwD = this.m_ratio; this.m_mass += this.m_ratio * this.m_ratio * (this.m_iB + this.m_iD); } else { g = V.MulRV(y, this.m_localAxisD, n.InitVelocityConstraints_s_u); P.SubVV(this.m_localAnchorD, this.m_lcD, this.m_lalcD); var b = V.MulRV(y, this.m_lalcD, n.InitVelocityConstraints_s_rD); P.SubVV(this.m_localAnchorB, this.m_lcB, this.m_lalcB); var A = V.MulRV(p, this.m_lalcB, n.InitVelocityConstraints_s_rB); P.MulSV(this.m_ratio, g, this.m_JvBD); this.m_JwD = this.m_ratio * P.CrossVV(b, g); this.m_JwB = this.m_ratio * P.CrossVV(A, g); this.m_mass += this.m_ratio * this.m_ratio * (this.m_mD + this.m_mB) + this.m_iD * this.m_JwD * this.m_JwD + this.m_iB * this.m_JwB * this.m_JwB; } this.m_mass = this.m_mass > 0 ? 1 / this.m_mass : 0; if (e.step.warmStarting) { r.SelfMulAdd(this.m_mA * this.m_impulse, this.m_JvAC); s += this.m_iA * this.m_impulse * this.m_JwA; a.SelfMulAdd(this.m_mB * this.m_impulse, this.m_JvBD); c += this.m_iB * this.m_impulse * this.m_JwB; h.SelfMulSub(this.m_mC * this.m_impulse, this.m_JvAC); u -= this.m_iC * this.m_impulse * this.m_JwC; f.SelfMulSub(this.m_mD * this.m_impulse, this.m_JvBD); d -= this.m_iD * this.m_impulse * this.m_JwD; } else this.m_impulse = 0; e.velocities[this.m_indexA].w = s; e.velocities[this.m_indexB].w = c; e.velocities[this.m_indexC].w = u; e.velocities[this.m_indexD].w = d; }; n.prototype.SolveVelocityConstraints = function(t) { var e = t.velocities[this.m_indexA].v, i = t.velocities[this.m_indexA].w, n = t.velocities[this.m_indexB].v, r = t.velocities[this.m_indexB].w, s = t.velocities[this.m_indexC].v, o = t.velocities[this.m_indexC].w, a = t.velocities[this.m_indexD].v, c = t.velocities[this.m_indexD].w, l = P.DotVV(this.m_JvAC, P.SubVV(e, s, P.s_t0)) + P.DotVV(this.m_JvBD, P.SubVV(n, a, P.s_t0)); l += this.m_JwA * i - this.m_JwC * o + (this.m_JwB * r - this.m_JwD * c); var h = -this.m_mass * l; this.m_impulse += h; e.SelfMulAdd(this.m_mA * h, this.m_JvAC); i += this.m_iA * h * this.m_JwA; n.SelfMulAdd(this.m_mB * h, this.m_JvBD); r += this.m_iB * h * this.m_JwB; s.SelfMulSub(this.m_mC * h, this.m_JvAC); o -= this.m_iC * h * this.m_JwC; a.SelfMulSub(this.m_mD * h, this.m_JvBD); c -= this.m_iD * h * this.m_JwD; t.velocities[this.m_indexA].w = i; t.velocities[this.m_indexB].w = r; t.velocities[this.m_indexC].w = o; t.velocities[this.m_indexD].w = c; }; n.prototype.SolvePositionConstraints = function(e) { var i, r, s, o, a, l, h = e.positions[this.m_indexA].c, u = e.positions[this.m_indexA].a, _ = e.positions[this.m_indexB].c, f = e.positions[this.m_indexB].a, d = e.positions[this.m_indexC].c, m = e.positions[this.m_indexC].a, p = e.positions[this.m_indexD].c, v = e.positions[this.m_indexD].a, y = this.m_qA.SetAngle(u), g = this.m_qB.SetAngle(f), x = this.m_qC.SetAngle(m), C = this.m_qD.SetAngle(v), b = this.m_JvAC, A = this.m_JvBD, S = 0; if (this.m_typeA === t.b2JointType.e_revoluteJoint) { b.SetZero(); s = 1; a = 1; S += this.m_iA + this.m_iC; i = u - m - this.m_referenceAngleA; } else { var w = V.MulRV(x, this.m_localAxisC, n.SolvePositionConstraints_s_u), T = V.MulRV(x, this.m_lalcC, n.SolvePositionConstraints_s_rC), E = V.MulRV(y, this.m_lalcA, n.SolvePositionConstraints_s_rA); b.Copy(w); a = P.CrossVV(T, w); s = P.CrossVV(E, w); S += this.m_mC + this.m_mA + this.m_iC * a * a + this.m_iA * s * s; var M = this.m_lalcC, B = V.MulTRV(x, P.AddVV(E, P.SubVV(h, d, P.s_t0), P.s_t0), P.s_t0); i = P.DotVV(P.SubVV(B, M, P.s_t0), this.m_localAxisC); } if (this.m_typeB === t.b2JointType.e_revoluteJoint) { A.SetZero(); o = this.m_ratio; l = this.m_ratio; S += this.m_ratio * this.m_ratio * (this.m_iB + this.m_iD); r = f - v - this.m_referenceAngleB; } else { w = V.MulRV(C, this.m_localAxisD, n.SolvePositionConstraints_s_u); var D = V.MulRV(C, this.m_lalcD, n.SolvePositionConstraints_s_rD), I = V.MulRV(g, this.m_lalcB, n.SolvePositionConstraints_s_rB); P.MulSV(this.m_ratio, w, A); l = this.m_ratio * P.CrossVV(D, w); o = this.m_ratio * P.CrossVV(I, w); S += this.m_ratio * this.m_ratio * (this.m_mD + this.m_mB) + this.m_iD * l * l + this.m_iB * o * o; var R = this.m_lalcD, L = V.MulTRV(C, P.AddVV(I, P.SubVV(_, p, P.s_t0), P.s_t0), P.s_t0); r = P.DotVV(P.SubVV(L, R, P.s_t0), this.m_localAxisD); } var F = i + this.m_ratio * r - this.m_constant, O = 0; S > 0 && (O = -F / S); h.SelfMulAdd(this.m_mA * O, b); u += this.m_iA * O * s; _.SelfMulAdd(this.m_mB * O, A); f += this.m_iB * O * o; d.SelfMulSub(this.m_mC * O, b); m -= this.m_iC * O * a; p.SelfMulSub(this.m_mD * O, A); v -= this.m_iD * O * l; e.positions[this.m_indexA].a = u; e.positions[this.m_indexB].a = f; e.positions[this.m_indexC].a = m; e.positions[this.m_indexD].a = v; return 0 < c; }; n.prototype.GetAnchorA = function(t) { return this.m_bodyA.GetWorldPoint(this.m_localAnchorA, t); }; n.prototype.GetAnchorB = function(t) { return this.m_bodyB.GetWorldPoint(this.m_localAnchorB, t); }; n.prototype.GetReactionForce = function(t, e) { return P.MulSV(t * this.m_impulse, this.m_JvAC, e); }; n.prototype.GetReactionTorque = function(t) { return t * this.m_impulse * this.m_JwA; }; n.prototype.GetJoint1 = function() { return this.m_joint1; }; n.prototype.GetJoint2 = function() { return this.m_joint2; }; n.prototype.GetRatio = function() { return this.m_ratio; }; n.prototype.SetRatio = function(t) { this.m_ratio = t; }; n.prototype.Dump = function(t) { var e = this.m_bodyA.m_islandIndex, i = this.m_bodyB.m_islandIndex, n = this.m_joint1.m_index, r = this.m_joint2.m_index; t(" const jd: b2GearJointDef = new b2GearJointDef();\n"); t(" jd.bodyA = bodies[%d];\n", e); t(" jd.bodyB = bodies[%d];\n", i); t(" jd.collideConnected = %s;\n", this.m_collideConnected ? "true" : "false"); t(" jd.joint1 = joints[%d];\n", n); t(" jd.joint2 = joints[%d];\n", r); t(" jd.ratio = %.15f;\n", this.m_ratio); t(" joints[%d] = this.m_world.CreateJoint(jd);\n", this.m_index); }; n.InitVelocityConstraints_s_u = new P(); n.InitVelocityConstraints_s_rA = new P(); n.InitVelocityConstraints_s_rB = new P(); n.InitVelocityConstraints_s_rC = new P(); n.InitVelocityConstraints_s_rD = new P(); n.SolvePositionConstraints_s_u = new P(); n.SolvePositionConstraints_s_rA = new P(); n.SolvePositionConstraints_s_rB = new P(); n.SolvePositionConstraints_s_rC = new P(); n.SolvePositionConstraints_s_rD = new P(); return n; })(fi), bi = (function(e) { $e(i, e); function i() { var i = e.call(this, t.b2JointType.e_motorJoint) || this; i.linearOffset = new P(0, 0); i.angularOffset = 0; i.maxForce = 1; i.maxTorque = 1; i.correctionFactor = .3; return i; } i.prototype.Initialize = function(t, e) { this.bodyA = t; this.bodyB = e; this.bodyA.GetLocalPoint(this.bodyB.GetPosition(), this.linearOffset); var i = this.bodyA.GetAngle(), n = this.bodyB.GetAngle(); this.angularOffset = n - i; }; return i; })(_i), Ai = (function(t) { $e(i, t); function i(i) { var n = t.call(this, i) || this; n.m_linearOffset = new P(); n.m_angularOffset = 0; n.m_linearImpulse = new P(); n.m_angularImpulse = 0; n.m_maxForce = 0; n.m_maxTorque = 0; n.m_correctionFactor = .3; n.m_indexA = 0; n.m_indexB = 0; n.m_rA = new P(); n.m_rB = new P(); n.m_localCenterA = new P(); n.m_localCenterB = new P(); n.m_linearError = new P(); n.m_angularError = 0; n.m_invMassA = 0; n.m_invMassB = 0; n.m_invIA = 0; n.m_invIB = 0; n.m_linearMass = new F(); n.m_angularMass = 0; n.m_qA = new V(); n.m_qB = new V(); n.m_K = new F(); n.m_linearOffset.Copy(e(i.linearOffset, P.ZERO)); n.m_linearImpulse.SetZero(); n.m_maxForce = e(i.maxForce, 0); n.m_maxTorque = e(i.maxTorque, 0); n.m_correctionFactor = e(i.correctionFactor, .3); return n; } i.prototype.GetAnchorA = function(t) { var e = this.m_bodyA.GetPosition(); t.x = e.x; t.y = e.y; return t; }; i.prototype.GetAnchorB = function(t) { var e = this.m_bodyB.GetPosition(); t.x = e.x; t.y = e.y; return t; }; i.prototype.GetReactionForce = function(t, e) { return P.MulSV(t, this.m_linearImpulse, e); }; i.prototype.GetReactionTorque = function(t) { return t * this.m_angularImpulse; }; i.prototype.SetLinearOffset = function(t) { if (!P.IsEqualToV(t, this.m_linearOffset)) { this.m_bodyA.SetAwake(!0); this.m_bodyB.SetAwake(!0); this.m_linearOffset.Copy(t); } }; i.prototype.GetLinearOffset = function() { return this.m_linearOffset; }; i.prototype.SetAngularOffset = function(t) { if (t !== this.m_angularOffset) { this.m_bodyA.SetAwake(!0); this.m_bodyB.SetAwake(!0); this.m_angularOffset = t; } }; i.prototype.GetAngularOffset = function() { return this.m_angularOffset; }; i.prototype.SetMaxForce = function(t) { this.m_maxForce = t; }; i.prototype.GetMaxForce = function() { return this.m_maxForce; }; i.prototype.SetMaxTorque = function(t) { this.m_maxTorque = t; }; i.prototype.GetMaxTorque = function() { return this.m_maxTorque; }; i.prototype.InitVelocityConstraints = function(t) { this.m_indexA = this.m_bodyA.m_islandIndex; this.m_indexB = this.m_bodyB.m_islandIndex; this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter); this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter); this.m_invMassA = this.m_bodyA.m_invMass; this.m_invMassB = this.m_bodyB.m_invMass; this.m_invIA = this.m_bodyA.m_invI; this.m_invIB = this.m_bodyB.m_invI; var e = t.positions[this.m_indexA].c, i = t.positions[this.m_indexA].a, n = t.velocities[this.m_indexA].v, r = t.velocities[this.m_indexA].w, s = t.positions[this.m_indexB].c, o = t.positions[this.m_indexB].a, a = t.velocities[this.m_indexB].v, c = t.velocities[this.m_indexB].w, l = this.m_qA.SetAngle(i), h = this.m_qB.SetAngle(o), u = V.MulRV(l, P.SubVV(this.m_linearOffset, this.m_localCenterA, P.s_t0), this.m_rA), _ = V.MulRV(h, P.NegV(this.m_localCenterB, P.s_t0), this.m_rB), f = this.m_invMassA, d = this.m_invMassB, m = this.m_invIA, p = this.m_invIB, v = this.m_K; v.ex.x = f + d + m * u.y * u.y + p * _.y * _.y; v.ex.y = -m * u.x * u.y - p * _.x * _.y; v.ey.x = v.ex.y; v.ey.y = f + d + m * u.x * u.x + p * _.x * _.x; v.GetInverse(this.m_linearMass); this.m_angularMass = m + p; this.m_angularMass > 0 && (this.m_angularMass = 1 / this.m_angularMass); P.SubVV(P.AddVV(s, _, P.s_t0), P.AddVV(e, u, P.s_t1), this.m_linearError); this.m_angularError = o - i - this.m_angularOffset; if (t.step.warmStarting) { this.m_linearImpulse.SelfMul(t.step.dtRatio); this.m_angularImpulse *= t.step.dtRatio; var y = this.m_linearImpulse; n.SelfMulSub(f, y); r -= m * (P.CrossVV(u, y) + this.m_angularImpulse); a.SelfMulAdd(d, y); c += p * (P.CrossVV(_, y) + this.m_angularImpulse); } else { this.m_linearImpulse.SetZero(); this.m_angularImpulse = 0; } t.velocities[this.m_indexA].w = r; t.velocities[this.m_indexB].w = c; }; i.prototype.SolveVelocityConstraints = function(t) { var e = t.velocities[this.m_indexA].v, n = t.velocities[this.m_indexA].w, r = t.velocities[this.m_indexB].v, s = t.velocities[this.m_indexB].w, o = this.m_invMassA, a = this.m_invMassB, c = this.m_invIA, l = this.m_invIB, h = t.step.dt, u = t.step.inv_dt, _ = s - n + u * this.m_correctionFactor * this.m_angularError, f = -this.m_angularMass * _, d = this.m_angularImpulse, m = h * this.m_maxTorque; this.m_angularImpulse = C(this.m_angularImpulse + f, -m, m); n -= c * (f = this.m_angularImpulse - d); s += l * f; var p = this.m_rA, v = this.m_rB, y = P.AddVV(P.SubVV(P.AddVV(r, P.CrossSV(s, v, P.s_t0), P.s_t0), P.AddVV(e, P.CrossSV(n, p, P.s_t1), P.s_t1), P.s_t2), P.MulSV(u * this.m_correctionFactor, this.m_linearError, P.s_t3), i.SolveVelocityConstraints_s_Cdot_v2), g = F.MulMV(this.m_linearMass, y, i.SolveVelocityConstraints_s_impulse_v2).SelfNeg(), x = i.SolveVelocityConstraints_s_oldImpulse_v2.Copy(this.m_linearImpulse); this.m_linearImpulse.SelfAdd(g); m = h * this.m_maxForce; if (this.m_linearImpulse.LengthSquared() > m * m) { this.m_linearImpulse.Normalize(); this.m_linearImpulse.SelfMul(m); } P.SubVV(this.m_linearImpulse, x, g); e.SelfMulSub(o, g); n -= c * P.CrossVV(p, g); r.SelfMulAdd(a, g); s += l * P.CrossVV(v, g); t.velocities[this.m_indexA].w = n; t.velocities[this.m_indexB].w = s; }; i.prototype.SolvePositionConstraints = function(t) { return !0; }; i.prototype.Dump = function(t) { var e = this.m_bodyA.m_islandIndex, i = this.m_bodyB.m_islandIndex; t(" const jd: b2MotorJointDef = new b2MotorJointDef();\n"); t(" jd.bodyA = bodies[%d];\n", e); t(" jd.bodyB = bodies[%d];\n", i); t(" jd.collideConnected = %s;\n", this.m_collideConnected ? "true" : "false"); t(" jd.linearOffset.Set(%.15f, %.15f);\n", this.m_linearOffset.x, this.m_linearOffset.y); t(" jd.angularOffset = %.15f;\n", this.m_angularOffset); t(" jd.maxForce = %.15f;\n", this.m_maxForce); t(" jd.maxTorque = %.15f;\n", this.m_maxTorque); t(" jd.correctionFactor = %.15f;\n", this.m_correctionFactor); t(" joints[%d] = this.m_world.CreateJoint(jd);\n", this.m_index); }; i.SolveVelocityConstraints_s_Cdot_v2 = new P(); i.SolveVelocityConstraints_s_impulse_v2 = new P(); i.SolveVelocityConstraints_s_oldImpulse_v2 = new P(); return i; })(fi), Si = (function(e) { $e(i, e); function i() { var i = e.call(this, t.b2JointType.e_mouseJoint) || this; i.target = new P(); i.maxForce = 0; i.frequencyHz = 5; i.dampingRatio = .7; return i; } return i; })(_i), wi = (function(t) { $e(i, t); function i(i) { var n = t.call(this, i) || this; n.m_localAnchorB = new P(); n.m_targetA = new P(); n.m_frequencyHz = 0; n.m_dampingRatio = 0; n.m_beta = 0; n.m_impulse = new P(); n.m_maxForce = 0; n.m_gamma = 0; n.m_indexA = 0; n.m_indexB = 0; n.m_rB = new P(); n.m_localCenterB = new P(); n.m_invMassB = 0; n.m_invIB = 0; n.m_mass = new F(); n.m_C = new P(); n.m_qB = new V(); n.m_lalcB = new P(); n.m_K = new F(); n.m_targetA.Copy(e(i.target, P.ZERO)); N.MulTXV(n.m_bodyB.GetTransform(), n.m_targetA, n.m_localAnchorB); n.m_maxForce = e(i.maxForce, 0); n.m_impulse.SetZero(); n.m_frequencyHz = e(i.frequencyHz, 0); n.m_dampingRatio = e(i.dampingRatio, 0); n.m_beta = 0; n.m_gamma = 0; return n; } i.prototype.SetTarget = function(t) { this.m_bodyB.IsAwake() || this.m_bodyB.SetAwake(!0); this.m_targetA.Copy(t); }; i.prototype.GetTarget = function() { return this.m_targetA; }; i.prototype.SetMaxForce = function(t) { this.m_maxForce = t; }; i.prototype.GetMaxForce = function() { return this.m_maxForce; }; i.prototype.SetFrequency = function(t) { this.m_frequencyHz = t; }; i.prototype.GetFrequency = function() { return this.m_frequencyHz; }; i.prototype.SetDampingRatio = function(t) { this.m_dampingRatio = t; }; i.prototype.GetDampingRatio = function() { return this.m_dampingRatio; }; i.prototype.InitVelocityConstraints = function(t) { this.m_indexB = this.m_bodyB.m_islandIndex; this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter); this.m_invMassB = this.m_bodyB.m_invMass; this.m_invIB = this.m_bodyB.m_invI; var e = t.positions[this.m_indexB].c, i = t.positions[this.m_indexB].a, n = t.velocities[this.m_indexB].v, r = t.velocities[this.m_indexB].w, o = this.m_qB.SetAngle(i), a = this.m_bodyB.GetMass(), c = 2 * s * this.m_frequencyHz, l = 2 * a * this.m_dampingRatio * c, h = a * (c * c), u = t.step.dt; this.m_gamma = u * (l + u * h); 0 !== this.m_gamma && (this.m_gamma = 1 / this.m_gamma); this.m_beta = u * h * this.m_gamma; P.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); V.MulRV(o, this.m_lalcB, this.m_rB); var _ = this.m_K; _.ex.x = this.m_invMassB + this.m_invIB * this.m_rB.y * this.m_rB.y + this.m_gamma; _.ex.y = -this.m_invIB * this.m_rB.x * this.m_rB.y; _.ey.x = _.ex.y; _.ey.y = this.m_invMassB + this.m_invIB * this.m_rB.x * this.m_rB.x + this.m_gamma; _.GetInverse(this.m_mass); this.m_C.x = e.x + this.m_rB.x - this.m_targetA.x; this.m_C.y = e.y + this.m_rB.y - this.m_targetA.y; this.m_C.SelfMul(this.m_beta); r *= .98; if (t.step.warmStarting) { this.m_impulse.SelfMul(t.step.dtRatio); n.x += this.m_invMassB * this.m_impulse.x; n.y += this.m_invMassB * this.m_impulse.y; r += this.m_invIB * P.CrossVV(this.m_rB, this.m_impulse); } else this.m_impulse.SetZero(); t.velocities[this.m_indexB].w = r; }; i.prototype.SolveVelocityConstraints = function(t) { var e = t.velocities[this.m_indexB].v, n = t.velocities[this.m_indexB].w, r = P.AddVCrossSV(e, n, this.m_rB, i.SolveVelocityConstraints_s_Cdot), s = F.MulMV(this.m_mass, P.AddVV(r, P.AddVV(this.m_C, P.MulSV(this.m_gamma, this.m_impulse, P.s_t0), P.s_t0), P.s_t0).SelfNeg(), i.SolveVelocityConstraints_s_impulse), o = i.SolveVelocityConstraints_s_oldImpulse.Copy(this.m_impulse); this.m_impulse.SelfAdd(s); var a = t.step.dt * this.m_maxForce; this.m_impulse.LengthSquared() > a * a && this.m_impulse.SelfMul(a / this.m_impulse.Length()); P.SubVV(this.m_impulse, o, s); e.SelfMulAdd(this.m_invMassB, s); n += this.m_invIB * P.CrossVV(this.m_rB, s); t.velocities[this.m_indexB].w = n; }; i.prototype.SolvePositionConstraints = function(t) { return !0; }; i.prototype.GetAnchorA = function(t) { t.x = this.m_targetA.x; t.y = this.m_targetA.y; return t; }; i.prototype.GetAnchorB = function(t) { return this.m_bodyB.GetWorldPoint(this.m_localAnchorB, t); }; i.prototype.GetReactionForce = function(t, e) { return P.MulSV(t, this.m_impulse, e); }; i.prototype.GetReactionTorque = function(t) { return 0; }; i.prototype.Dump = function(t) { t("Mouse joint dumping is not supported.\n"); }; i.prototype.ShiftOrigin = function(t) { this.m_targetA.SelfSub(t); }; i.SolveVelocityConstraints_s_Cdot = new P(); i.SolveVelocityConstraints_s_impulse = new P(); i.SolveVelocityConstraints_s_oldImpulse = new P(); return i; })(fi), Ti = (function(e) { $e(i, e); function i() { var i = e.call(this, t.b2JointType.e_prismaticJoint) || this; i.localAnchorA = new P(); i.localAnchorB = new P(); i.localAxisA = new P(1, 0); i.referenceAngle = 0; i.enableLimit = !1; i.lowerTranslation = 0; i.upperTranslation = 0; i.enableMotor = !1; i.maxMotorForce = 0; i.motorSpeed = 0; return i; } i.prototype.Initialize = function(t, e, i, n) { this.bodyA = t; this.bodyB = e; this.bodyA.GetLocalPoint(i, this.localAnchorA); this.bodyB.GetLocalPoint(i, this.localAnchorB); this.bodyA.GetLocalVector(n, this.localAxisA); this.referenceAngle = this.bodyB.GetAngle() - this.bodyA.GetAngle(); }; return i; })(_i), Ei = (function(i) { $e(n, i); function n(n) { var r = i.call(this, n) || this; r.m_localAnchorA = new P(); r.m_localAnchorB = new P(); r.m_localXAxisA = new P(); r.m_localYAxisA = new P(); r.m_referenceAngle = 0; r.m_impulse = new L(0, 0, 0); r.m_motorImpulse = 0; r.m_lowerTranslation = 0; r.m_upperTranslation = 0; r.m_maxMotorForce = 0; r.m_motorSpeed = 0; r.m_enableLimit = !1; r.m_enableMotor = !1; r.m_limitState = t.b2LimitState.e_inactiveLimit; r.m_indexA = 0; r.m_indexB = 0; r.m_localCenterA = new P(); r.m_localCenterB = new P(); r.m_invMassA = 0; r.m_invMassB = 0; r.m_invIA = 0; r.m_invIB = 0; r.m_axis = new P(0, 0); r.m_perp = new P(0, 0); r.m_s1 = 0; r.m_s2 = 0; r.m_a1 = 0; r.m_a2 = 0; r.m_K = new O(); r.m_K3 = new O(); r.m_K2 = new F(); r.m_motorMass = 0; r.m_qA = new V(); r.m_qB = new V(); r.m_lalcA = new P(); r.m_lalcB = new P(); r.m_rA = new P(); r.m_rB = new P(); r.m_localAnchorA.Copy(e(n.localAnchorA, P.ZERO)); r.m_localAnchorB.Copy(e(n.localAnchorB, P.ZERO)); r.m_localXAxisA.Copy(e(n.localAxisA, new P(1, 0))).SelfNormalize(); P.CrossOneV(r.m_localXAxisA, r.m_localYAxisA); r.m_referenceAngle = e(n.referenceAngle, 0); r.m_lowerTranslation = e(n.lowerTranslation, 0); r.m_upperTranslation = e(n.upperTranslation, 0); r.m_maxMotorForce = e(n.maxMotorForce, 0); r.m_motorSpeed = e(n.motorSpeed, 0); r.m_enableLimit = e(n.enableLimit, !1); r.m_enableMotor = e(n.enableMotor, !1); return r; } n.prototype.InitVelocityConstraints = function(e) { this.m_indexA = this.m_bodyA.m_islandIndex; this.m_indexB = this.m_bodyB.m_islandIndex; this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter); this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter); this.m_invMassA = this.m_bodyA.m_invMass; this.m_invMassB = this.m_bodyB.m_invMass; this.m_invIA = this.m_bodyA.m_invI; this.m_invIB = this.m_bodyB.m_invI; var i = e.positions[this.m_indexA].c, r = e.positions[this.m_indexA].a, s = e.velocities[this.m_indexA].v, o = e.velocities[this.m_indexA].w, a = e.positions[this.m_indexB].c, l = e.positions[this.m_indexB].a, h = e.velocities[this.m_indexB].v, u = e.velocities[this.m_indexB].w, _ = this.m_qA.SetAngle(r), f = this.m_qB.SetAngle(l); P.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA); var d = V.MulRV(_, this.m_lalcA, this.m_rA); P.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); var m = V.MulRV(f, this.m_lalcB, this.m_rB), p = P.AddVV(P.SubVV(a, i, P.s_t0), P.SubVV(m, d, P.s_t1), n.InitVelocityConstraints_s_d), v = this.m_invMassA, g = this.m_invMassB, x = this.m_invIA, C = this.m_invIB; V.MulRV(_, this.m_localXAxisA, this.m_axis); this.m_a1 = P.CrossVV(P.AddVV(p, d, P.s_t0), this.m_axis); this.m_a2 = P.CrossVV(m, this.m_axis); this.m_motorMass = v + g + x * this.m_a1 * this.m_a1 + C * this.m_a2 * this.m_a2; this.m_motorMass > 0 && (this.m_motorMass = 1 / this.m_motorMass); V.MulRV(_, this.m_localYAxisA, this.m_perp); this.m_s1 = P.CrossVV(P.AddVV(p, d, P.s_t0), this.m_perp); this.m_s2 = P.CrossVV(m, this.m_perp); this.m_K.ex.x = v + g + x * this.m_s1 * this.m_s1 + C * this.m_s2 * this.m_s2; this.m_K.ex.y = x * this.m_s1 + C * this.m_s2; this.m_K.ex.z = x * this.m_s1 * this.m_a1 + C * this.m_s2 * this.m_a2; this.m_K.ey.x = this.m_K.ex.y; this.m_K.ey.y = x + C; 0 === this.m_K.ey.y && (this.m_K.ey.y = 1); this.m_K.ey.z = x * this.m_a1 + C * this.m_a2; this.m_K.ez.x = this.m_K.ex.z; this.m_K.ez.y = this.m_K.ey.z; this.m_K.ez.z = v + g + x * this.m_a1 * this.m_a1 + C * this.m_a2 * this.m_a2; if (this.m_enableLimit) { var b = P.DotVV(this.m_axis, p); if (y(this.m_upperTranslation - this.m_lowerTranslation) < 2 * c) this.m_limitState = t.b2LimitState.e_equalLimits; else if (b <= this.m_lowerTranslation) { if (this.m_limitState !== t.b2LimitState.e_atLowerLimit) { this.m_limitState = t.b2LimitState.e_atLowerLimit; this.m_impulse.z = 0; } } else if (b >= this.m_upperTranslation) { if (this.m_limitState !== t.b2LimitState.e_atUpperLimit) { this.m_limitState = t.b2LimitState.e_atUpperLimit; this.m_impulse.z = 0; } } else { this.m_limitState = t.b2LimitState.e_inactiveLimit; this.m_impulse.z = 0; } } else { this.m_limitState = t.b2LimitState.e_inactiveLimit; this.m_impulse.z = 0; } this.m_enableMotor || (this.m_motorImpulse = 0); if (e.step.warmStarting) { this.m_impulse.SelfMul(e.step.dtRatio); this.m_motorImpulse *= e.step.dtRatio; var A = P.AddVV(P.MulSV(this.m_impulse.x, this.m_perp, P.s_t0), P.MulSV(this.m_motorImpulse + this.m_impulse.z, this.m_axis, P.s_t1), n.InitVelocityConstraints_s_P), S = this.m_impulse.x * this.m_s1 + this.m_impulse.y + (this.m_motorImpulse + this.m_impulse.z) * this.m_a1, w = this.m_impulse.x * this.m_s2 + this.m_impulse.y + (this.m_motorImpulse + this.m_impulse.z) * this.m_a2; s.SelfMulSub(v, A); o -= x * S; h.SelfMulAdd(g, A); u += C * w; } else { this.m_impulse.SetZero(); this.m_motorImpulse = 0; } e.velocities[this.m_indexA].w = o; e.velocities[this.m_indexB].w = u; }; n.prototype.SolveVelocityConstraints = function(e) { var i = e.velocities[this.m_indexA].v, r = e.velocities[this.m_indexA].w, s = e.velocities[this.m_indexB].v, o = e.velocities[this.m_indexB].w, a = this.m_invMassA, c = this.m_invMassB, l = this.m_invIA, h = this.m_invIB; if (this.m_enableMotor && this.m_limitState !== t.b2LimitState.e_equalLimits) { var u = P.DotVV(this.m_axis, P.SubVV(s, i, P.s_t0)) + this.m_a2 * o - this.m_a1 * r, _ = this.m_motorMass * (this.m_motorSpeed - u), f = this.m_motorImpulse, d = e.step.dt * this.m_maxMotorForce; this.m_motorImpulse = C(this.m_motorImpulse + _, -d, d); _ = this.m_motorImpulse - f; var m = P.MulSV(_, this.m_axis, n.SolveVelocityConstraints_s_P), p = _ * this.m_a1, v = _ * this.m_a2; i.SelfMulSub(a, m); r -= l * p; s.SelfMulAdd(c, m); o += h * v; } var y = P.DotVV(this.m_perp, P.SubVV(s, i, P.s_t0)) + this.m_s2 * o - this.m_s1 * r, b = o - r; if (this.m_enableLimit && this.m_limitState !== t.b2LimitState.e_inactiveLimit) { var A = P.DotVV(this.m_axis, P.SubVV(s, i, P.s_t0)) + this.m_a2 * o - this.m_a1 * r, S = n.SolveVelocityConstraints_s_f1.Copy(this.m_impulse), w = this.m_K.Solve33(-y, -b, -A, n.SolveVelocityConstraints_s_df3); this.m_impulse.SelfAdd(w); this.m_limitState === t.b2LimitState.e_atLowerLimit ? this.m_impulse.z = x(this.m_impulse.z, 0) : this.m_limitState === t.b2LimitState.e_atUpperLimit && (this.m_impulse.z = g(this.m_impulse.z, 0)); var T = -y - (this.m_impulse.z - S.z) * this.m_K.ez.x, E = -b - (this.m_impulse.z - S.z) * this.m_K.ez.y, M = this.m_K.Solve22(T, E, n.SolveVelocityConstraints_s_f2r); M.x += S.x; M.y += S.y; this.m_impulse.x = M.x; this.m_impulse.y = M.y; w.x = this.m_impulse.x - S.x; w.y = this.m_impulse.y - S.y; w.z = this.m_impulse.z - S.z; m = P.AddVV(P.MulSV(w.x, this.m_perp, P.s_t0), P.MulSV(w.z, this.m_axis, P.s_t1), n.SolveVelocityConstraints_s_P), p = w.x * this.m_s1 + w.y + w.z * this.m_a1, v = w.x * this.m_s2 + w.y + w.z * this.m_a2; i.SelfMulSub(a, m); r -= l * p; s.SelfMulAdd(c, m); o += h * v; } else { var B = this.m_K.Solve22(-y, -b, n.SolveVelocityConstraints_s_df2); this.m_impulse.x += B.x; this.m_impulse.y += B.y; m = P.MulSV(B.x, this.m_perp, n.SolveVelocityConstraints_s_P), p = B.x * this.m_s1 + B.y, v = B.x * this.m_s2 + B.y; i.SelfMulSub(a, m); r -= l * p; s.SelfMulAdd(c, m); o += h * v; } e.velocities[this.m_indexA].w = r; e.velocities[this.m_indexB].w = o; }; n.prototype.SolvePositionConstraints = function(t) { var e = t.positions[this.m_indexA].c, i = t.positions[this.m_indexA].a, r = t.positions[this.m_indexB].c, s = t.positions[this.m_indexB].a, o = this.m_qA.SetAngle(i), a = this.m_qB.SetAngle(s), h = this.m_invMassA, u = this.m_invMassB, _ = this.m_invIA, f = this.m_invIB, d = V.MulRV(o, this.m_lalcA, this.m_rA), m = V.MulRV(a, this.m_lalcB, this.m_rB), p = P.SubVV(P.AddVV(r, m, P.s_t0), P.AddVV(e, d, P.s_t1), n.SolvePositionConstraints_s_d), v = V.MulRV(o, this.m_localXAxisA, this.m_axis), g = P.CrossVV(P.AddVV(p, d, P.s_t0), v), b = P.CrossVV(m, v), A = V.MulRV(o, this.m_localYAxisA, this.m_perp), S = P.CrossVV(P.AddVV(p, d, P.s_t0), A), w = P.CrossVV(m, A), T = n.SolvePositionConstraints_s_impulse, E = P.DotVV(A, p), M = s - i - this.m_referenceAngle, B = y(E), D = y(M), I = !1, R = 0; if (this.m_enableLimit) { var L = P.DotVV(v, p); if (y(this.m_upperTranslation - this.m_lowerTranslation) < 2 * c) { R = C(L, -.2, .2); B = x(B, y(L)); I = !0; } else if (L <= this.m_lowerTranslation) { R = C(L - this.m_lowerTranslation + c, -.2, 0); B = x(B, this.m_lowerTranslation - L); I = !0; } else if (L >= this.m_upperTranslation) { R = C(L - this.m_upperTranslation - c, 0, .2); B = x(B, L - this.m_upperTranslation); I = !0; } } if (I) { var F = h + u + _ * S * S + f * w * w, O = _ * S + f * w, N = _ * S * g + f * w * b; 0 === (U = _ + f) && (U = 1); var k = _ * g + f * b, z = h + u + _ * g * g + f * b * b, G = this.m_K3; G.ex.SetXYZ(F, O, N); G.ey.SetXYZ(O, U, k); G.ez.SetXYZ(N, k, z); T = G.Solve33(-E, -M, -R, T); } else { var U; F = h + u + _ * S * S + f * w * w, O = _ * S + f * w; 0 === (U = _ + f) && (U = 1); var j = this.m_K2; j.ex.Set(F, O); j.ey.Set(O, U); var W = j.Solve(-E, -M, n.SolvePositionConstraints_s_impulse1); T.x = W.x; T.y = W.y; T.z = 0; } var H = P.AddVV(P.MulSV(T.x, A, P.s_t0), P.MulSV(T.z, v, P.s_t1), n.SolvePositionConstraints_s_P), q = T.x * S + T.y + T.z * g, X = T.x * w + T.y + T.z * b; e.SelfMulSub(h, H); i -= _ * q; r.SelfMulAdd(u, H); s += f * X; t.positions[this.m_indexA].a = i; t.positions[this.m_indexB].a = s; return B <= c && D <= l; }; n.prototype.GetAnchorA = function(t) { return this.m_bodyA.GetWorldPoint(this.m_localAnchorA, t); }; n.prototype.GetAnchorB = function(t) { return this.m_bodyB.GetWorldPoint(this.m_localAnchorB, t); }; n.prototype.GetReactionForce = function(t, e) { e.x = t * (this.m_impulse.x * this.m_perp.x + (this.m_motorImpulse + this.m_impulse.z) * this.m_axis.x); e.y = t * (this.m_impulse.x * this.m_perp.y + (this.m_motorImpulse + this.m_impulse.z) * this.m_axis.y); return e; }; n.prototype.GetReactionTorque = function(t) { return t * this.m_impulse.y; }; n.prototype.GetLocalAnchorA = function() { return this.m_localAnchorA; }; n.prototype.GetLocalAnchorB = function() { return this.m_localAnchorB; }; n.prototype.GetLocalAxisA = function() { return this.m_localXAxisA; }; n.prototype.GetReferenceAngle = function() { return this.m_referenceAngle; }; n.prototype.GetJointTranslation = function() { var t = this.m_bodyA.GetWorldPoint(this.m_localAnchorA, n.GetJointTranslation_s_pA), e = this.m_bodyB.GetWorldPoint(this.m_localAnchorB, n.GetJointTranslation_s_pB), i = P.SubVV(e, t, n.GetJointTranslation_s_d), r = this.m_bodyA.GetWorldVector(this.m_localXAxisA, n.GetJointTranslation_s_axis); return P.DotVV(i, r); }; n.prototype.GetJointSpeed = function() { var t = this.m_bodyA, e = this.m_bodyB; P.SubVV(this.m_localAnchorA, t.m_sweep.localCenter, this.m_lalcA); var i = V.MulRV(t.m_xf.q, this.m_lalcA, this.m_rA); P.SubVV(this.m_localAnchorB, e.m_sweep.localCenter, this.m_lalcB); var n = V.MulRV(e.m_xf.q, this.m_lalcB, this.m_rB), r = P.AddVV(t.m_sweep.c, i, P.s_t0), s = P.AddVV(e.m_sweep.c, n, P.s_t1), o = P.SubVV(s, r, P.s_t2), a = t.GetWorldVector(this.m_localXAxisA, this.m_axis), c = t.m_linearVelocity, l = e.m_linearVelocity, h = t.m_angularVelocity, u = e.m_angularVelocity; return P.DotVV(o, P.CrossSV(h, a, P.s_t0)) + P.DotVV(a, P.SubVV(P.AddVCrossSV(l, u, n, P.s_t0), P.AddVCrossSV(c, h, i, P.s_t1), P.s_t0)); }; n.prototype.IsLimitEnabled = function() { return this.m_enableLimit; }; n.prototype.EnableLimit = function(t) { if (t !== this.m_enableLimit) { this.m_bodyA.SetAwake(!0); this.m_bodyB.SetAwake(!0); this.m_enableLimit = t; this.m_impulse.z = 0; } }; n.prototype.GetLowerLimit = function() { return this.m_lowerTranslation; }; n.prototype.GetUpperLimit = function() { return this.m_upperTranslation; }; n.prototype.SetLimits = function(t, e) { if (t !== this.m_lowerTranslation || e !== this.m_upperTranslation) { this.m_bodyA.SetAwake(!0); this.m_bodyB.SetAwake(!0); this.m_lowerTranslation = t; this.m_upperTranslation = e; this.m_impulse.z = 0; } }; n.prototype.IsMotorEnabled = function() { return this.m_enableMotor; }; n.prototype.EnableMotor = function(t) { if (t !== this.m_enableMotor) { this.m_bodyA.SetAwake(!0); this.m_bodyB.SetAwake(!0); this.m_enableMotor = t; } }; n.prototype.SetMotorSpeed = function(t) { if (t !== this.m_motorSpeed) { this.m_bodyA.SetAwake(!0); this.m_bodyB.SetAwake(!0); this.m_motorSpeed = t; } }; n.prototype.GetMotorSpeed = function() { return this.m_motorSpeed; }; n.prototype.SetMaxMotorForce = function(t) { if (t !== this.m_maxMotorForce) { this.m_bodyA.SetAwake(!0); this.m_bodyB.SetAwake(!0); this.m_maxMotorForce = t; } }; n.prototype.GetMaxMotorForce = function() { return this.m_maxMotorForce; }; n.prototype.GetMotorForce = function(t) { return t * this.m_motorImpulse; }; n.prototype.Dump = function(t) { var e = this.m_bodyA.m_islandIndex, i = this.m_bodyB.m_islandIndex; t(" const jd: b2PrismaticJointDef = new b2PrismaticJointDef();\n"); t(" jd.bodyA = bodies[%d];\n", e); t(" jd.bodyB = bodies[%d];\n", i); t(" jd.collideConnected = %s;\n", this.m_collideConnected ? "true" : "false"); t(" jd.localAnchorA.Set(%.15f, %.15f);\n", this.m_localAnchorA.x, this.m_localAnchorA.y); t(" jd.localAnchorB.Set(%.15f, %.15f);\n", this.m_localAnchorB.x, this.m_localAnchorB.y); t(" jd.localAxisA.Set(%.15f, %.15f);\n", this.m_localXAxisA.x, this.m_localXAxisA.y); t(" jd.referenceAngle = %.15f;\n", this.m_referenceAngle); t(" jd.enableLimit = %s;\n", this.m_enableLimit ? "true" : "false"); t(" jd.lowerTranslation = %.15f;\n", this.m_lowerTranslation); t(" jd.upperTranslation = %.15f;\n", this.m_upperTranslation); t(" jd.enableMotor = %s;\n", this.m_enableMotor ? "true" : "false"); t(" jd.motorSpeed = %.15f;\n", this.m_motorSpeed); t(" jd.maxMotorForce = %.15f;\n", this.m_maxMotorForce); t(" joints[%d] = this.m_world.CreateJoint(jd);\n", this.m_index); }; n.InitVelocityConstraints_s_d = new P(); n.InitVelocityConstraints_s_P = new P(); n.SolveVelocityConstraints_s_P = new P(); n.SolveVelocityConstraints_s_f2r = new P(); n.SolveVelocityConstraints_s_f1 = new L(); n.SolveVelocityConstraints_s_df3 = new L(); n.SolveVelocityConstraints_s_df2 = new P(); n.SolvePositionConstraints_s_d = new P(); n.SolvePositionConstraints_s_impulse = new L(); n.SolvePositionConstraints_s_impulse1 = new P(); n.SolvePositionConstraints_s_P = new P(); n.GetJointTranslation_s_pA = new P(); n.GetJointTranslation_s_pB = new P(); n.GetJointTranslation_s_d = new P(); n.GetJointTranslation_s_axis = new P(); return n; })(fi), Mi = (function(e) { $e(i, e); function i() { var i = e.call(this, t.b2JointType.e_pulleyJoint) || this; i.groundAnchorA = new P(-1, 1); i.groundAnchorB = new P(1, 1); i.localAnchorA = new P(-1, 0); i.localAnchorB = new P(1, 0); i.lengthA = 0; i.lengthB = 0; i.ratio = 1; i.collideConnected = !0; return i; } i.prototype.Initialize = function(t, e, i, n, r, s, o) { this.bodyA = t; this.bodyB = e; this.groundAnchorA.Copy(i); this.groundAnchorB.Copy(n); this.bodyA.GetLocalPoint(r, this.localAnchorA); this.bodyB.GetLocalPoint(s, this.localAnchorB); this.lengthA = P.DistanceVV(r, i); this.lengthB = P.DistanceVV(s, n); this.ratio = o; }; return i; })(_i), Bi = (function(t) { $e(i, t); function i(i) { var n = t.call(this, i) || this; n.m_groundAnchorA = new P(); n.m_groundAnchorB = new P(); n.m_lengthA = 0; n.m_lengthB = 0; n.m_localAnchorA = new P(); n.m_localAnchorB = new P(); n.m_constant = 0; n.m_ratio = 0; n.m_impulse = 0; n.m_indexA = 0; n.m_indexB = 0; n.m_uA = new P(); n.m_uB = new P(); n.m_rA = new P(); n.m_rB = new P(); n.m_localCenterA = new P(); n.m_localCenterB = new P(); n.m_invMassA = 0; n.m_invMassB = 0; n.m_invIA = 0; n.m_invIB = 0; n.m_mass = 0; n.m_qA = new V(); n.m_qB = new V(); n.m_lalcA = new P(); n.m_lalcB = new P(); n.m_groundAnchorA.Copy(e(i.groundAnchorA, new P(-1, 1))); n.m_groundAnchorB.Copy(e(i.groundAnchorB, new P(1, 0))); n.m_localAnchorA.Copy(e(i.localAnchorA, new P(-1, 0))); n.m_localAnchorB.Copy(e(i.localAnchorB, new P(1, 0))); n.m_lengthA = e(i.lengthA, 0); n.m_lengthB = e(i.lengthB, 0); n.m_ratio = e(i.ratio, 1); n.m_constant = e(i.lengthA, 0) + n.m_ratio * e(i.lengthB, 0); n.m_impulse = 0; return n; } i.prototype.InitVelocityConstraints = function(t) { this.m_indexA = this.m_bodyA.m_islandIndex; this.m_indexB = this.m_bodyB.m_islandIndex; this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter); this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter); this.m_invMassA = this.m_bodyA.m_invMass; this.m_invMassB = this.m_bodyB.m_invMass; this.m_invIA = this.m_bodyA.m_invI; this.m_invIB = this.m_bodyB.m_invI; var e = t.positions[this.m_indexA].c, n = t.positions[this.m_indexA].a, r = t.velocities[this.m_indexA].v, s = t.velocities[this.m_indexA].w, o = t.positions[this.m_indexB].c, a = t.positions[this.m_indexB].a, l = t.velocities[this.m_indexB].v, h = t.velocities[this.m_indexB].w, u = this.m_qA.SetAngle(n), _ = this.m_qB.SetAngle(a); P.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA); V.MulRV(u, this.m_lalcA, this.m_rA); P.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); V.MulRV(_, this.m_lalcB, this.m_rB); this.m_uA.Copy(e).SelfAdd(this.m_rA).SelfSub(this.m_groundAnchorA); this.m_uB.Copy(o).SelfAdd(this.m_rB).SelfSub(this.m_groundAnchorB); var f = this.m_uA.Length(), d = this.m_uB.Length(); f > 10 * c ? this.m_uA.SelfMul(1 / f) : this.m_uA.SetZero(); d > 10 * c ? this.m_uB.SelfMul(1 / d) : this.m_uB.SetZero(); var m = P.CrossVV(this.m_rA, this.m_uA), p = P.CrossVV(this.m_rB, this.m_uB), v = this.m_invMassA + this.m_invIA * m * m, y = this.m_invMassB + this.m_invIB * p * p; this.m_mass = v + this.m_ratio * this.m_ratio * y; this.m_mass > 0 && (this.m_mass = 1 / this.m_mass); if (t.step.warmStarting) { this.m_impulse *= t.step.dtRatio; var g = P.MulSV(-this.m_impulse, this.m_uA, i.InitVelocityConstraints_s_PA), x = P.MulSV(-this.m_ratio * this.m_impulse, this.m_uB, i.InitVelocityConstraints_s_PB); r.SelfMulAdd(this.m_invMassA, g); s += this.m_invIA * P.CrossVV(this.m_rA, g); l.SelfMulAdd(this.m_invMassB, x); h += this.m_invIB * P.CrossVV(this.m_rB, x); } else this.m_impulse = 0; t.velocities[this.m_indexA].w = s; t.velocities[this.m_indexB].w = h; }; i.prototype.SolveVelocityConstraints = function(t) { var e = t.velocities[this.m_indexA].v, n = t.velocities[this.m_indexA].w, r = t.velocities[this.m_indexB].v, s = t.velocities[this.m_indexB].w, o = P.AddVCrossSV(e, n, this.m_rA, i.SolveVelocityConstraints_s_vpA), a = P.AddVCrossSV(r, s, this.m_rB, i.SolveVelocityConstraints_s_vpB), c = -P.DotVV(this.m_uA, o) - this.m_ratio * P.DotVV(this.m_uB, a), l = -this.m_mass * c; this.m_impulse += l; var h = P.MulSV(-l, this.m_uA, i.SolveVelocityConstraints_s_PA), u = P.MulSV(-this.m_ratio * l, this.m_uB, i.SolveVelocityConstraints_s_PB); e.SelfMulAdd(this.m_invMassA, h); n += this.m_invIA * P.CrossVV(this.m_rA, h); r.SelfMulAdd(this.m_invMassB, u); s += this.m_invIB * P.CrossVV(this.m_rB, u); t.velocities[this.m_indexA].w = n; t.velocities[this.m_indexB].w = s; }; i.prototype.SolvePositionConstraints = function(t) { var e = t.positions[this.m_indexA].c, n = t.positions[this.m_indexA].a, r = t.positions[this.m_indexB].c, s = t.positions[this.m_indexB].a, o = this.m_qA.SetAngle(n), a = this.m_qB.SetAngle(s); P.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA); var l = V.MulRV(o, this.m_lalcA, this.m_rA); P.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); var h = V.MulRV(a, this.m_lalcB, this.m_rB), u = this.m_uA.Copy(e).SelfAdd(l).SelfSub(this.m_groundAnchorA), _ = this.m_uB.Copy(r).SelfAdd(h).SelfSub(this.m_groundAnchorB), f = u.Length(), d = _.Length(); f > 10 * c ? u.SelfMul(1 / f) : u.SetZero(); d > 10 * c ? _.SelfMul(1 / d) : _.SetZero(); var m = P.CrossVV(l, u), p = P.CrossVV(h, _), v = this.m_invMassA + this.m_invIA * m * m, g = this.m_invMassB + this.m_invIB * p * p, x = v + this.m_ratio * this.m_ratio * g; x > 0 && (x = 1 / x); var C = this.m_constant - f - this.m_ratio * d, b = y(C), A = -x * C, S = P.MulSV(-A, u, i.SolvePositionConstraints_s_PA), w = P.MulSV(-this.m_ratio * A, _, i.SolvePositionConstraints_s_PB); e.SelfMulAdd(this.m_invMassA, S); n += this.m_invIA * P.CrossVV(l, S); r.SelfMulAdd(this.m_invMassB, w); s += this.m_invIB * P.CrossVV(h, w); t.positions[this.m_indexA].a = n; t.positions[this.m_indexB].a = s; return b < c; }; i.prototype.GetAnchorA = function(t) { return this.m_bodyA.GetWorldPoint(this.m_localAnchorA, t); }; i.prototype.GetAnchorB = function(t) { return this.m_bodyB.GetWorldPoint(this.m_localAnchorB, t); }; i.prototype.GetReactionForce = function(t, e) { e.x = t * this.m_impulse * this.m_uB.x; e.y = t * this.m_impulse * this.m_uB.y; return e; }; i.prototype.GetReactionTorque = function(t) { return 0; }; i.prototype.GetGroundAnchorA = function() { return this.m_groundAnchorA; }; i.prototype.GetGroundAnchorB = function() { return this.m_groundAnchorB; }; i.prototype.GetLengthA = function() { return this.m_lengthA; }; i.prototype.GetLengthB = function() { return this.m_lengthB; }; i.prototype.GetRatio = function() { return this.m_ratio; }; i.prototype.GetCurrentLengthA = function() { var t = this.m_bodyA.GetWorldPoint(this.m_localAnchorA, i.GetCurrentLengthA_s_p), e = this.m_groundAnchorA; return P.DistanceVV(t, e); }; i.prototype.GetCurrentLengthB = function() { var t = this.m_bodyB.GetWorldPoint(this.m_localAnchorB, i.GetCurrentLengthB_s_p), e = this.m_groundAnchorB; return P.DistanceVV(t, e); }; i.prototype.Dump = function(t) { var e = this.m_bodyA.m_islandIndex, i = this.m_bodyB.m_islandIndex; t(" const jd: b2PulleyJointDef = new b2PulleyJointDef();\n"); t(" jd.bodyA = bodies[%d];\n", e); t(" jd.bodyB = bodies[%d];\n", i); t(" jd.collideConnected = %s;\n", this.m_collideConnected ? "true" : "false"); t(" jd.groundAnchorA.Set(%.15f, %.15f);\n", this.m_groundAnchorA.x, this.m_groundAnchorA.y); t(" jd.groundAnchorB.Set(%.15f, %.15f);\n", this.m_groundAnchorB.x, this.m_groundAnchorB.y); t(" jd.localAnchorA.Set(%.15f, %.15f);\n", this.m_localAnchorA.x, this.m_localAnchorA.y); t(" jd.localAnchorB.Set(%.15f, %.15f);\n", this.m_localAnchorB.x, this.m_localAnchorB.y); t(" jd.lengthA = %.15f;\n", this.m_lengthA); t(" jd.lengthB = %.15f;\n", this.m_lengthB); t(" jd.ratio = %.15f;\n", this.m_ratio); t(" joints[%d] = this.m_world.CreateJoint(jd);\n", this.m_index); }; i.prototype.ShiftOrigin = function(t) { this.m_groundAnchorA.SelfSub(t); this.m_groundAnchorB.SelfSub(t); }; i.InitVelocityConstraints_s_PA = new P(); i.InitVelocityConstraints_s_PB = new P(); i.SolveVelocityConstraints_s_vpA = new P(); i.SolveVelocityConstraints_s_vpB = new P(); i.SolveVelocityConstraints_s_PA = new P(); i.SolveVelocityConstraints_s_PB = new P(); i.SolvePositionConstraints_s_PA = new P(); i.SolvePositionConstraints_s_PB = new P(); i.GetCurrentLengthA_s_p = new P(); i.GetCurrentLengthB_s_p = new P(); return i; })(fi), Di = (function(e) { $e(i, e); function i() { var i = e.call(this, t.b2JointType.e_revoluteJoint) || this; i.localAnchorA = new P(0, 0); i.localAnchorB = new P(0, 0); i.referenceAngle = 0; i.enableLimit = !1; i.lowerAngle = 0; i.upperAngle = 0; i.enableMotor = !1; i.motorSpeed = 0; i.maxMotorTorque = 0; return i; } i.prototype.Initialize = function(t, e, i) { this.bodyA = t; this.bodyB = e; this.bodyA.GetLocalPoint(i, this.localAnchorA); this.bodyB.GetLocalPoint(i, this.localAnchorB); this.referenceAngle = this.bodyB.GetAngle() - this.bodyA.GetAngle(); }; return i; })(_i), Ii = (function(i) { $e(n, i); function n(n) { var r = i.call(this, n) || this; r.m_localAnchorA = new P(); r.m_localAnchorB = new P(); r.m_impulse = new L(); r.m_motorImpulse = 0; r.m_enableMotor = !1; r.m_maxMotorTorque = 0; r.m_motorSpeed = 0; r.m_enableLimit = !1; r.m_referenceAngle = 0; r.m_lowerAngle = 0; r.m_upperAngle = 0; r.m_indexA = 0; r.m_indexB = 0; r.m_rA = new P(); r.m_rB = new P(); r.m_localCenterA = new P(); r.m_localCenterB = new P(); r.m_invMassA = 0; r.m_invMassB = 0; r.m_invIA = 0; r.m_invIB = 0; r.m_mass = new O(); r.m_motorMass = 0; r.m_limitState = t.b2LimitState.e_inactiveLimit; r.m_qA = new V(); r.m_qB = new V(); r.m_lalcA = new P(); r.m_lalcB = new P(); r.m_K = new F(); r.m_localAnchorA.Copy(e(n.localAnchorA, P.ZERO)); r.m_localAnchorB.Copy(e(n.localAnchorB, P.ZERO)); r.m_referenceAngle = e(n.referenceAngle, 0); r.m_impulse.SetZero(); r.m_motorImpulse = 0; r.m_lowerAngle = e(n.lowerAngle, 0); r.m_upperAngle = e(n.upperAngle, 0); r.m_maxMotorTorque = e(n.maxMotorTorque, 0); r.m_motorSpeed = e(n.motorSpeed, 0); r.m_enableLimit = e(n.enableLimit, !1); r.m_enableMotor = e(n.enableMotor, !1); r.m_limitState = t.b2LimitState.e_inactiveLimit; return r; } n.prototype.InitVelocityConstraints = function(e) { this.m_indexA = this.m_bodyA.m_islandIndex; this.m_indexB = this.m_bodyB.m_islandIndex; this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter); this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter); this.m_invMassA = this.m_bodyA.m_invMass; this.m_invMassB = this.m_bodyB.m_invMass; this.m_invIA = this.m_bodyA.m_invI; this.m_invIB = this.m_bodyB.m_invI; var i = e.positions[this.m_indexA].a, r = e.velocities[this.m_indexA].v, s = e.velocities[this.m_indexA].w, o = e.positions[this.m_indexB].a, a = e.velocities[this.m_indexB].v, c = e.velocities[this.m_indexB].w, h = this.m_qA.SetAngle(i), u = this.m_qB.SetAngle(o); P.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA); V.MulRV(h, this.m_lalcA, this.m_rA); P.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); V.MulRV(u, this.m_lalcB, this.m_rB); var _ = this.m_invMassA, f = this.m_invMassB, d = this.m_invIA, m = this.m_invIB, p = d + m === 0; this.m_mass.ex.x = _ + f + this.m_rA.y * this.m_rA.y * d + this.m_rB.y * this.m_rB.y * m; this.m_mass.ey.x = -this.m_rA.y * this.m_rA.x * d - this.m_rB.y * this.m_rB.x * m; this.m_mass.ez.x = -this.m_rA.y * d - this.m_rB.y * m; this.m_mass.ex.y = this.m_mass.ey.x; this.m_mass.ey.y = _ + f + this.m_rA.x * this.m_rA.x * d + this.m_rB.x * this.m_rB.x * m; this.m_mass.ez.y = this.m_rA.x * d + this.m_rB.x * m; this.m_mass.ex.z = this.m_mass.ez.x; this.m_mass.ey.z = this.m_mass.ez.y; this.m_mass.ez.z = d + m; this.m_motorMass = d + m; this.m_motorMass > 0 && (this.m_motorMass = 1 / this.m_motorMass); this.m_enableMotor && !p || (this.m_motorImpulse = 0); if (this.m_enableLimit && !p) { var v = o - i - this.m_referenceAngle; if (y(this.m_upperAngle - this.m_lowerAngle) < 2 * l) this.m_limitState = t.b2LimitState.e_equalLimits; else if (v <= this.m_lowerAngle) { this.m_limitState !== t.b2LimitState.e_atLowerLimit && (this.m_impulse.z = 0); this.m_limitState = t.b2LimitState.e_atLowerLimit; } else if (v >= this.m_upperAngle) { this.m_limitState !== t.b2LimitState.e_atUpperLimit && (this.m_impulse.z = 0); this.m_limitState = t.b2LimitState.e_atUpperLimit; } else { this.m_limitState = t.b2LimitState.e_inactiveLimit; this.m_impulse.z = 0; } } else this.m_limitState = t.b2LimitState.e_inactiveLimit; if (e.step.warmStarting) { this.m_impulse.SelfMul(e.step.dtRatio); this.m_motorImpulse *= e.step.dtRatio; var g = n.InitVelocityConstraints_s_P.Set(this.m_impulse.x, this.m_impulse.y); r.SelfMulSub(_, g); s -= d * (P.CrossVV(this.m_rA, g) + this.m_motorImpulse + this.m_impulse.z); a.SelfMulAdd(f, g); c += m * (P.CrossVV(this.m_rB, g) + this.m_motorImpulse + this.m_impulse.z); } else { this.m_impulse.SetZero(); this.m_motorImpulse = 0; } e.velocities[this.m_indexA].w = s; e.velocities[this.m_indexB].w = c; }; n.prototype.SolveVelocityConstraints = function(e) { var i = e.velocities[this.m_indexA].v, r = e.velocities[this.m_indexA].w, s = e.velocities[this.m_indexB].v, o = e.velocities[this.m_indexB].w, a = this.m_invMassA, c = this.m_invMassB, l = this.m_invIA, h = this.m_invIB, u = l + h === 0; if (this.m_enableMotor && this.m_limitState !== t.b2LimitState.e_equalLimits && !u) { var _ = o - r - this.m_motorSpeed, f = -this.m_motorMass * _, d = this.m_motorImpulse, m = e.step.dt * this.m_maxMotorTorque; this.m_motorImpulse = C(this.m_motorImpulse + f, -m, m); r -= l * (f = this.m_motorImpulse - d); o += h * f; } if (this.m_enableLimit && this.m_limitState !== t.b2LimitState.e_inactiveLimit && !u) { var p = P.SubVV(P.AddVCrossSV(s, o, this.m_rB, P.s_t0), P.AddVCrossSV(i, r, this.m_rA, P.s_t1), n.SolveVelocityConstraints_s_Cdot1), v = o - r, y = this.m_mass.Solve33(p.x, p.y, v, n.SolveVelocityConstraints_s_impulse_v3).SelfNeg(); if (this.m_limitState === t.b2LimitState.e_equalLimits) this.m_impulse.SelfAdd(y); else if (this.m_limitState === t.b2LimitState.e_atLowerLimit) { if (this.m_impulse.z + y.z < 0) { var g = -p.x + this.m_impulse.z * this.m_mass.ez.x, x = -p.y + this.m_impulse.z * this.m_mass.ez.y, b = this.m_mass.Solve22(g, x, n.SolveVelocityConstraints_s_reduced_v2); y.x = b.x; y.y = b.y; y.z = -this.m_impulse.z; this.m_impulse.x += b.x; this.m_impulse.y += b.y; this.m_impulse.z = 0; } else this.m_impulse.SelfAdd(y); } else if (this.m_limitState === t.b2LimitState.e_atUpperLimit) { if (this.m_impulse.z + y.z > 0) { g = -p.x + this.m_impulse.z * this.m_mass.ez.x, x = -p.y + this.m_impulse.z * this.m_mass.ez.y, b = this.m_mass.Solve22(g, x, n.SolveVelocityConstraints_s_reduced_v2); y.x = b.x; y.y = b.y; y.z = -this.m_impulse.z; this.m_impulse.x += b.x; this.m_impulse.y += b.y; this.m_impulse.z = 0; } else this.m_impulse.SelfAdd(y); } var A = n.SolveVelocityConstraints_s_P.Set(y.x, y.y); i.SelfMulSub(a, A); r -= l * (P.CrossVV(this.m_rA, A) + y.z); s.SelfMulAdd(c, A); o += h * (P.CrossVV(this.m_rB, A) + y.z); } else { var S = P.SubVV(P.AddVCrossSV(s, o, this.m_rB, P.s_t0), P.AddVCrossSV(i, r, this.m_rA, P.s_t1), n.SolveVelocityConstraints_s_Cdot_v2), w = this.m_mass.Solve22(-S.x, -S.y, n.SolveVelocityConstraints_s_impulse_v2); this.m_impulse.x += w.x; this.m_impulse.y += w.y; i.SelfMulSub(a, w); r -= l * P.CrossVV(this.m_rA, w); s.SelfMulAdd(c, w); o += h * P.CrossVV(this.m_rB, w); } e.velocities[this.m_indexA].w = r; e.velocities[this.m_indexB].w = o; }; n.prototype.SolvePositionConstraints = function(e) { var i, r = e.positions[this.m_indexA].c, s = e.positions[this.m_indexA].a, o = e.positions[this.m_indexB].c, a = e.positions[this.m_indexB].a, h = this.m_qA.SetAngle(s), u = this.m_qB.SetAngle(a), _ = 0, f = this.m_invIA + this.m_invIB === 0; if (this.m_enableLimit && this.m_limitState !== t.b2LimitState.e_inactiveLimit && !f) { var d = a - s - this.m_referenceAngle, m = 0; if (this.m_limitState === t.b2LimitState.e_equalLimits) { var p = C(d - this.m_lowerAngle, -.13962634015955555, .13962634015955555); m = -this.m_motorMass * p; _ = y(p); } else if (this.m_limitState === t.b2LimitState.e_atLowerLimit) { _ = -(p = d - this.m_lowerAngle); p = C(p + l, -.13962634015955555, 0); m = -this.m_motorMass * p; } else if (this.m_limitState === t.b2LimitState.e_atUpperLimit) { _ = p = d - this.m_upperAngle; p = C(p - l, 0, .13962634015955555); m = -this.m_motorMass * p; } s -= this.m_invIA * m; a += this.m_invIB * m; } h.SetAngle(s); u.SetAngle(a); P.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA); var v = V.MulRV(h, this.m_lalcA, this.m_rA); P.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); var g = V.MulRV(u, this.m_lalcB, this.m_rB), x = P.SubVV(P.AddVV(o, g, P.s_t0), P.AddVV(r, v, P.s_t1), n.SolvePositionConstraints_s_C_v2); i = x.Length(); var b = this.m_invMassA, A = this.m_invMassB, S = this.m_invIA, w = this.m_invIB, T = this.m_K; T.ex.x = b + A + S * v.y * v.y + w * g.y * g.y; T.ex.y = -S * v.x * v.y - w * g.x * g.y; T.ey.x = T.ex.y; T.ey.y = b + A + S * v.x * v.x + w * g.x * g.x; var E = T.Solve(x.x, x.y, n.SolvePositionConstraints_s_impulse).SelfNeg(); r.SelfMulSub(b, E); s -= S * P.CrossVV(v, E); o.SelfMulAdd(A, E); a += w * P.CrossVV(g, E); e.positions[this.m_indexA].a = s; e.positions[this.m_indexB].a = a; return i <= c && _ <= l; }; n.prototype.GetAnchorA = function(t) { return this.m_bodyA.GetWorldPoint(this.m_localAnchorA, t); }; n.prototype.GetAnchorB = function(t) { return this.m_bodyB.GetWorldPoint(this.m_localAnchorB, t); }; n.prototype.GetReactionForce = function(t, e) { e.x = t * this.m_impulse.x; e.y = t * this.m_impulse.y; return e; }; n.prototype.GetReactionTorque = function(t) { return t * this.m_impulse.z; }; n.prototype.GetLocalAnchorA = function() { return this.m_localAnchorA; }; n.prototype.GetLocalAnchorB = function() { return this.m_localAnchorB; }; n.prototype.GetReferenceAngle = function() { return this.m_referenceAngle; }; n.prototype.GetJointAngle = function() { return this.m_bodyB.m_sweep.a - this.m_bodyA.m_sweep.a - this.m_referenceAngle; }; n.prototype.GetJointSpeed = function() { return this.m_bodyB.m_angularVelocity - this.m_bodyA.m_angularVelocity; }; n.prototype.IsMotorEnabled = function() { return this.m_enableMotor; }; n.prototype.EnableMotor = function(t) { if (t !== this.m_enableMotor) { this.m_bodyA.SetAwake(!0); this.m_bodyB.SetAwake(!0); this.m_enableMotor = t; } }; n.prototype.GetMotorTorque = function(t) { return t * this.m_motorImpulse; }; n.prototype.GetMotorSpeed = function() { return this.m_motorSpeed; }; n.prototype.SetMaxMotorTorque = function(t) { if (t !== this.m_maxMotorTorque) { this.m_bodyA.SetAwake(!0); this.m_bodyB.SetAwake(!0); this.m_maxMotorTorque = t; } }; n.prototype.GetMaxMotorTorque = function() { return this.m_maxMotorTorque; }; n.prototype.IsLimitEnabled = function() { return this.m_enableLimit; }; n.prototype.EnableLimit = function(t) { if (t !== this.m_enableLimit) { this.m_bodyA.SetAwake(!0); this.m_bodyB.SetAwake(!0); this.m_enableLimit = t; this.m_impulse.z = 0; } }; n.prototype.GetLowerLimit = function() { return this.m_lowerAngle; }; n.prototype.GetUpperLimit = function() { return this.m_upperAngle; }; n.prototype.SetLimits = function(t, e) { if (t !== this.m_lowerAngle || e !== this.m_upperAngle) { this.m_bodyA.SetAwake(!0); this.m_bodyB.SetAwake(!0); this.m_impulse.z = 0; this.m_lowerAngle = t; this.m_upperAngle = e; } }; n.prototype.SetMotorSpeed = function(t) { if (t !== this.m_motorSpeed) { this.m_bodyA.SetAwake(!0); this.m_bodyB.SetAwake(!0); this.m_motorSpeed = t; } }; n.prototype.Dump = function(t) { var e = this.m_bodyA.m_islandIndex, i = this.m_bodyB.m_islandIndex; t(" const jd: b2RevoluteJointDef = new b2RevoluteJointDef();\n"); t(" jd.bodyA = bodies[%d];\n", e); t(" jd.bodyB = bodies[%d];\n", i); t(" jd.collideConnected = %s;\n", this.m_collideConnected ? "true" : "false"); t(" jd.localAnchorA.Set(%.15f, %.15f);\n", this.m_localAnchorA.x, this.m_localAnchorA.y); t(" jd.localAnchorB.Set(%.15f, %.15f);\n", this.m_localAnchorB.x, this.m_localAnchorB.y); t(" jd.referenceAngle = %.15f;\n", this.m_referenceAngle); t(" jd.enableLimit = %s;\n", this.m_enableLimit ? "true" : "false"); t(" jd.lowerAngle = %.15f;\n", this.m_lowerAngle); t(" jd.upperAngle = %.15f;\n", this.m_upperAngle); t(" jd.enableMotor = %s;\n", this.m_enableMotor ? "true" : "false"); t(" jd.motorSpeed = %.15f;\n", this.m_motorSpeed); t(" jd.maxMotorTorque = %.15f;\n", this.m_maxMotorTorque); t(" joints[%d] = this.m_world.CreateJoint(jd);\n", this.m_index); }; n.InitVelocityConstraints_s_P = new P(); n.SolveVelocityConstraints_s_P = new P(); n.SolveVelocityConstraints_s_Cdot_v2 = new P(); n.SolveVelocityConstraints_s_Cdot1 = new P(); n.SolveVelocityConstraints_s_impulse_v3 = new L(); n.SolveVelocityConstraints_s_reduced_v2 = new P(); n.SolveVelocityConstraints_s_impulse_v2 = new P(); n.SolvePositionConstraints_s_C_v2 = new P(); n.SolvePositionConstraints_s_impulse = new P(); return n; })(fi), Pi = (function(e) { $e(i, e); function i() { var i = e.call(this, t.b2JointType.e_ropeJoint) || this; i.localAnchorA = new P(-1, 0); i.localAnchorB = new P(1, 0); i.maxLength = 0; return i; } return i; })(_i), Ri = (function(i) { $e(n, i); function n(n) { var r = i.call(this, n) || this; r.m_localAnchorA = new P(); r.m_localAnchorB = new P(); r.m_maxLength = 0; r.m_length = 0; r.m_impulse = 0; r.m_indexA = 0; r.m_indexB = 0; r.m_u = new P(); r.m_rA = new P(); r.m_rB = new P(); r.m_localCenterA = new P(); r.m_localCenterB = new P(); r.m_invMassA = 0; r.m_invMassB = 0; r.m_invIA = 0; r.m_invIB = 0; r.m_mass = 0; r.m_state = t.b2LimitState.e_inactiveLimit; r.m_qA = new V(); r.m_qB = new V(); r.m_lalcA = new P(); r.m_lalcB = new P(); r.m_localAnchorA.Copy(e(n.localAnchorA, new P(-1, 0))); r.m_localAnchorB.Copy(e(n.localAnchorB, new P(1, 0))); r.m_maxLength = e(n.maxLength, 0); return r; } n.prototype.InitVelocityConstraints = function(e) { this.m_indexA = this.m_bodyA.m_islandIndex; this.m_indexB = this.m_bodyB.m_islandIndex; this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter); this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter); this.m_invMassA = this.m_bodyA.m_invMass; this.m_invMassB = this.m_bodyB.m_invMass; this.m_invIA = this.m_bodyA.m_invI; this.m_invIB = this.m_bodyB.m_invI; var i = e.positions[this.m_indexA].c, r = e.positions[this.m_indexA].a, s = e.velocities[this.m_indexA].v, o = e.velocities[this.m_indexA].w, a = e.positions[this.m_indexB].c, l = e.positions[this.m_indexB].a, h = e.velocities[this.m_indexB].v, u = e.velocities[this.m_indexB].w, _ = this.m_qA.SetAngle(r), f = this.m_qB.SetAngle(l); P.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA); V.MulRV(_, this.m_lalcA, this.m_rA); P.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); V.MulRV(f, this.m_lalcB, this.m_rB); this.m_u.Copy(a).SelfAdd(this.m_rB).SelfSub(i).SelfSub(this.m_rA); this.m_length = this.m_u.Length(); var d = this.m_length - this.m_maxLength; this.m_state = d > 0 ? t.b2LimitState.e_atUpperLimit : t.b2LimitState.e_inactiveLimit; if (this.m_length > c) { this.m_u.SelfMul(1 / this.m_length); var m = P.CrossVV(this.m_rA, this.m_u), p = P.CrossVV(this.m_rB, this.m_u), v = this.m_invMassA + this.m_invIA * m * m + this.m_invMassB + this.m_invIB * p * p; this.m_mass = 0 !== v ? 1 / v : 0; if (e.step.warmStarting) { this.m_impulse *= e.step.dtRatio; var y = P.MulSV(this.m_impulse, this.m_u, n.InitVelocityConstraints_s_P); s.SelfMulSub(this.m_invMassA, y); o -= this.m_invIA * P.CrossVV(this.m_rA, y); h.SelfMulAdd(this.m_invMassB, y); u += this.m_invIB * P.CrossVV(this.m_rB, y); } else this.m_impulse = 0; e.velocities[this.m_indexA].w = o; e.velocities[this.m_indexB].w = u; } else { this.m_u.SetZero(); this.m_mass = 0; this.m_impulse = 0; } }; n.prototype.SolveVelocityConstraints = function(t) { var e = t.velocities[this.m_indexA].v, i = t.velocities[this.m_indexA].w, r = t.velocities[this.m_indexB].v, s = t.velocities[this.m_indexB].w, o = P.AddVCrossSV(e, i, this.m_rA, n.SolveVelocityConstraints_s_vpA), a = P.AddVCrossSV(r, s, this.m_rB, n.SolveVelocityConstraints_s_vpB), c = this.m_length - this.m_maxLength, l = P.DotVV(this.m_u, P.SubVV(a, o, P.s_t0)); c < 0 && (l += t.step.inv_dt * c); var h = -this.m_mass * l, u = this.m_impulse; this.m_impulse = g(0, this.m_impulse + h); h = this.m_impulse - u; var _ = P.MulSV(h, this.m_u, n.SolveVelocityConstraints_s_P); e.SelfMulSub(this.m_invMassA, _); i -= this.m_invIA * P.CrossVV(this.m_rA, _); r.SelfMulAdd(this.m_invMassB, _); s += this.m_invIB * P.CrossVV(this.m_rB, _); t.velocities[this.m_indexA].w = i; t.velocities[this.m_indexB].w = s; }; n.prototype.SolvePositionConstraints = function(t) { var e = t.positions[this.m_indexA].c, i = t.positions[this.m_indexA].a, r = t.positions[this.m_indexB].c, s = t.positions[this.m_indexB].a, o = this.m_qA.SetAngle(i), a = this.m_qB.SetAngle(s); P.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA); var l = V.MulRV(o, this.m_lalcA, this.m_rA); P.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); var h = V.MulRV(a, this.m_lalcB, this.m_rB), u = this.m_u.Copy(r).SelfAdd(h).SelfSub(e).SelfSub(l), _ = u.Normalize(), f = _ - this.m_maxLength; f = C(f, 0, .2); var d = -this.m_mass * f, m = P.MulSV(d, u, n.SolvePositionConstraints_s_P); e.SelfMulSub(this.m_invMassA, m); i -= this.m_invIA * P.CrossVV(l, m); r.SelfMulAdd(this.m_invMassB, m); s += this.m_invIB * P.CrossVV(h, m); t.positions[this.m_indexA].a = i; t.positions[this.m_indexB].a = s; return _ - this.m_maxLength < c; }; n.prototype.GetAnchorA = function(t) { return this.m_bodyA.GetWorldPoint(this.m_localAnchorA, t); }; n.prototype.GetAnchorB = function(t) { return this.m_bodyB.GetWorldPoint(this.m_localAnchorB, t); }; n.prototype.GetReactionForce = function(t, e) { return P.MulSV(t * this.m_impulse, this.m_u, e); }; n.prototype.GetReactionTorque = function(t) { return 0; }; n.prototype.GetLocalAnchorA = function() { return this.m_localAnchorA; }; n.prototype.GetLocalAnchorB = function() { return this.m_localAnchorB; }; n.prototype.SetMaxLength = function(t) { this.m_maxLength = t; }; n.prototype.GetMaxLength = function() { return this.m_maxLength; }; n.prototype.GetLimitState = function() { return this.m_state; }; n.prototype.Dump = function(t) { var e = this.m_bodyA.m_islandIndex, i = this.m_bodyB.m_islandIndex; t(" const jd: b2RopeJointDef = new b2RopeJointDef();\n"); t(" jd.bodyA = bodies[%d];\n", e); t(" jd.bodyB = bodies[%d];\n", i); t(" jd.collideConnected = %s;\n", this.m_collideConnected ? "true" : "false"); t(" jd.localAnchorA.Set(%.15f, %.15f);\n", this.m_localAnchorA.x, this.m_localAnchorA.y); t(" jd.localAnchorB.Set(%.15f, %.15f);\n", this.m_localAnchorB.x, this.m_localAnchorB.y); t(" jd.maxLength = %.15f;\n", this.m_maxLength); t(" joints[%d] = this.m_world.CreateJoint(jd);\n", this.m_index); }; n.InitVelocityConstraints_s_P = new P(); n.SolveVelocityConstraints_s_vpA = new P(); n.SolveVelocityConstraints_s_vpB = new P(); n.SolveVelocityConstraints_s_P = new P(); n.SolvePositionConstraints_s_P = new P(); return n; })(fi), Li = (function(e) { $e(i, e); function i() { var i = e.call(this, t.b2JointType.e_weldJoint) || this; i.localAnchorA = new P(); i.localAnchorB = new P(); i.referenceAngle = 0; i.frequencyHz = 0; i.dampingRatio = 0; return i; } i.prototype.Initialize = function(t, e, i) { this.bodyA = t; this.bodyB = e; this.bodyA.GetLocalPoint(i, this.localAnchorA); this.bodyB.GetLocalPoint(i, this.localAnchorB); this.referenceAngle = this.bodyB.GetAngle() - this.bodyA.GetAngle(); }; return i; })(_i), Fi = (function(t) { $e(i, t); function i(i) { var n = t.call(this, i) || this; n.m_frequencyHz = 0; n.m_dampingRatio = 0; n.m_bias = 0; n.m_localAnchorA = new P(); n.m_localAnchorB = new P(); n.m_referenceAngle = 0; n.m_gamma = 0; n.m_impulse = new L(0, 0, 0); n.m_indexA = 0; n.m_indexB = 0; n.m_rA = new P(); n.m_rB = new P(); n.m_localCenterA = new P(); n.m_localCenterB = new P(); n.m_invMassA = 0; n.m_invMassB = 0; n.m_invIA = 0; n.m_invIB = 0; n.m_mass = new O(); n.m_qA = new V(); n.m_qB = new V(); n.m_lalcA = new P(); n.m_lalcB = new P(); n.m_K = new O(); n.m_frequencyHz = e(i.frequencyHz, 0); n.m_dampingRatio = e(i.dampingRatio, 0); n.m_localAnchorA.Copy(e(i.localAnchorA, P.ZERO)); n.m_localAnchorB.Copy(e(i.localAnchorB, P.ZERO)); n.m_referenceAngle = e(i.referenceAngle, 0); n.m_impulse.SetZero(); return n; } i.prototype.InitVelocityConstraints = function(t) { this.m_indexA = this.m_bodyA.m_islandIndex; this.m_indexB = this.m_bodyB.m_islandIndex; this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter); this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter); this.m_invMassA = this.m_bodyA.m_invMass; this.m_invMassB = this.m_bodyB.m_invMass; this.m_invIA = this.m_bodyA.m_invI; this.m_invIB = this.m_bodyB.m_invI; var e = t.positions[this.m_indexA].a, n = t.velocities[this.m_indexA].v, r = t.velocities[this.m_indexA].w, o = t.positions[this.m_indexB].a, a = t.velocities[this.m_indexB].v, c = t.velocities[this.m_indexB].w, l = this.m_qA.SetAngle(e), h = this.m_qB.SetAngle(o); P.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA); V.MulRV(l, this.m_lalcA, this.m_rA); P.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); V.MulRV(h, this.m_lalcB, this.m_rB); var u = this.m_invMassA, _ = this.m_invMassB, f = this.m_invIA, d = this.m_invIB, m = this.m_K; m.ex.x = u + _ + this.m_rA.y * this.m_rA.y * f + this.m_rB.y * this.m_rB.y * d; m.ey.x = -this.m_rA.y * this.m_rA.x * f - this.m_rB.y * this.m_rB.x * d; m.ez.x = -this.m_rA.y * f - this.m_rB.y * d; m.ex.y = m.ey.x; m.ey.y = u + _ + this.m_rA.x * this.m_rA.x * f + this.m_rB.x * this.m_rB.x * d; m.ez.y = this.m_rA.x * f + this.m_rB.x * d; m.ex.z = m.ez.x; m.ey.z = m.ez.y; m.ez.z = f + d; if (this.m_frequencyHz > 0) { m.GetInverse22(this.m_mass); var p = f + d, v = p > 0 ? 1 / p : 0, y = o - e - this.m_referenceAngle, g = 2 * s * this.m_frequencyHz, x = 2 * v * this.m_dampingRatio * g, C = v * g * g, b = t.step.dt; this.m_gamma = b * (x + b * C); this.m_gamma = 0 !== this.m_gamma ? 1 / this.m_gamma : 0; this.m_bias = y * b * C * this.m_gamma; p += this.m_gamma; this.m_mass.ez.z = 0 !== p ? 1 / p : 0; } else { m.GetSymInverse33(this.m_mass); this.m_gamma = 0; this.m_bias = 0; } if (t.step.warmStarting) { this.m_impulse.SelfMul(t.step.dtRatio); var A = i.InitVelocityConstraints_s_P.Set(this.m_impulse.x, this.m_impulse.y); n.SelfMulSub(u, A); r -= f * (P.CrossVV(this.m_rA, A) + this.m_impulse.z); a.SelfMulAdd(_, A); c += d * (P.CrossVV(this.m_rB, A) + this.m_impulse.z); } else this.m_impulse.SetZero(); t.velocities[this.m_indexA].w = r; t.velocities[this.m_indexB].w = c; }; i.prototype.SolveVelocityConstraints = function(t) { var e = t.velocities[this.m_indexA].v, n = t.velocities[this.m_indexA].w, r = t.velocities[this.m_indexB].v, s = t.velocities[this.m_indexB].w, o = this.m_invMassA, a = this.m_invMassB, c = this.m_invIA, l = this.m_invIB; if (this.m_frequencyHz > 0) { var h = s - n, u = -this.m_mass.ez.z * (h + this.m_bias + this.m_gamma * this.m_impulse.z); this.m_impulse.z += u; n -= c * u; s += l * u; var _ = P.SubVV(P.AddVCrossSV(r, s, this.m_rB, P.s_t0), P.AddVCrossSV(e, n, this.m_rA, P.s_t1), i.SolveVelocityConstraints_s_Cdot1), f = O.MulM33XY(this.m_mass, _.x, _.y, i.SolveVelocityConstraints_s_impulse1).SelfNeg(); this.m_impulse.x += f.x; this.m_impulse.y += f.y; var d = f; e.SelfMulSub(o, d); n -= c * P.CrossVV(this.m_rA, d); r.SelfMulAdd(a, d); s += l * P.CrossVV(this.m_rB, d); } else { _ = P.SubVV(P.AddVCrossSV(r, s, this.m_rB, P.s_t0), P.AddVCrossSV(e, n, this.m_rA, P.s_t1), i.SolveVelocityConstraints_s_Cdot1), h = s - n; var m = O.MulM33XYZ(this.m_mass, _.x, _.y, h, i.SolveVelocityConstraints_s_impulse).SelfNeg(); this.m_impulse.SelfAdd(m); d = i.SolveVelocityConstraints_s_P.Set(m.x, m.y); e.SelfMulSub(o, d); n -= c * (P.CrossVV(this.m_rA, d) + m.z); r.SelfMulAdd(a, d); s += l * (P.CrossVV(this.m_rB, d) + m.z); } t.velocities[this.m_indexA].w = n; t.velocities[this.m_indexB].w = s; }; i.prototype.SolvePositionConstraints = function(t) { var e = t.positions[this.m_indexA].c, n = t.positions[this.m_indexA].a, r = t.positions[this.m_indexB].c, s = t.positions[this.m_indexB].a, o = this.m_qA.SetAngle(n), a = this.m_qB.SetAngle(s), h = this.m_invMassA, u = this.m_invMassB, _ = this.m_invIA, f = this.m_invIB; P.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA); var d = V.MulRV(o, this.m_lalcA, this.m_rA); P.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); var m, p, v = V.MulRV(a, this.m_lalcB, this.m_rB), g = this.m_K; g.ex.x = h + u + d.y * d.y * _ + v.y * v.y * f; g.ey.x = -d.y * d.x * _ - v.y * v.x * f; g.ez.x = -d.y * _ - v.y * f; g.ex.y = g.ey.x; g.ey.y = h + u + d.x * d.x * _ + v.x * v.x * f; g.ez.y = d.x * _ + v.x * f; g.ex.z = g.ez.x; g.ey.z = g.ez.y; g.ez.z = _ + f; if (this.m_frequencyHz > 0) { m = (C = P.SubVV(P.AddVV(r, v, P.s_t0), P.AddVV(e, d, P.s_t1), i.SolvePositionConstraints_s_C1)).Length(); p = 0; var x = g.Solve22(C.x, C.y, i.SolvePositionConstraints_s_P).SelfNeg(); e.SelfMulSub(h, x); n -= _ * P.CrossVV(d, x); r.SelfMulAdd(u, x); s += f * P.CrossVV(v, x); } else { var C = P.SubVV(P.AddVV(r, v, P.s_t0), P.AddVV(e, d, P.s_t1), i.SolvePositionConstraints_s_C1), b = s - n - this.m_referenceAngle; m = C.Length(); p = y(b); var A = g.Solve33(C.x, C.y, b, i.SolvePositionConstraints_s_impulse).SelfNeg(); x = i.SolvePositionConstraints_s_P.Set(A.x, A.y); e.SelfMulSub(h, x); n -= _ * (P.CrossVV(this.m_rA, x) + A.z); r.SelfMulAdd(u, x); s += f * (P.CrossVV(this.m_rB, x) + A.z); } t.positions[this.m_indexA].a = n; t.positions[this.m_indexB].a = s; return m <= c && p <= l; }; i.prototype.GetAnchorA = function(t) { return this.m_bodyA.GetWorldPoint(this.m_localAnchorA, t); }; i.prototype.GetAnchorB = function(t) { return this.m_bodyB.GetWorldPoint(this.m_localAnchorB, t); }; i.prototype.GetReactionForce = function(t, e) { e.x = t * this.m_impulse.x; e.y = t * this.m_impulse.y; return e; }; i.prototype.GetReactionTorque = function(t) { return t * this.m_impulse.z; }; i.prototype.GetLocalAnchorA = function() { return this.m_localAnchorA; }; i.prototype.GetLocalAnchorB = function() { return this.m_localAnchorB; }; i.prototype.GetReferenceAngle = function() { return this.m_referenceAngle; }; i.prototype.SetFrequency = function(t) { this.m_frequencyHz = t; }; i.prototype.GetFrequency = function() { return this.m_frequencyHz; }; i.prototype.SetDampingRatio = function(t) { this.m_dampingRatio = t; }; i.prototype.GetDampingRatio = function() { return this.m_dampingRatio; }; i.prototype.Dump = function(t) { var e = this.m_bodyA.m_islandIndex, i = this.m_bodyB.m_islandIndex; t(" const jd: b2WeldJointDef = new b2WeldJointDef();\n"); t(" jd.bodyA = bodies[%d];\n", e); t(" jd.bodyB = bodies[%d];\n", i); t(" jd.collideConnected = %s;\n", this.m_collideConnected ? "true" : "false"); t(" jd.localAnchorA.Set(%.15f, %.15f);\n", this.m_localAnchorA.x, this.m_localAnchorA.y); t(" jd.localAnchorB.Set(%.15f, %.15f);\n", this.m_localAnchorB.x, this.m_localAnchorB.y); t(" jd.referenceAngle = %.15f;\n", this.m_referenceAngle); t(" jd.frequencyHz = %.15f;\n", this.m_frequencyHz); t(" jd.dampingRatio = %.15f;\n", this.m_dampingRatio); t(" joints[%d] = this.m_world.CreateJoint(jd);\n", this.m_index); }; i.InitVelocityConstraints_s_P = new P(); i.SolveVelocityConstraints_s_Cdot1 = new P(); i.SolveVelocityConstraints_s_impulse1 = new P(); i.SolveVelocityConstraints_s_impulse = new L(); i.SolveVelocityConstraints_s_P = new P(); i.SolvePositionConstraints_s_C1 = new P(); i.SolvePositionConstraints_s_P = new P(); i.SolvePositionConstraints_s_impulse = new L(); return i; })(fi), Oi = (function(e) { $e(i, e); function i() { var i = e.call(this, t.b2JointType.e_wheelJoint) || this; i.localAnchorA = new P(0, 0); i.localAnchorB = new P(0, 0); i.localAxisA = new P(1, 0); i.enableMotor = !1; i.maxMotorTorque = 0; i.motorSpeed = 0; i.frequencyHz = 2; i.dampingRatio = .7; return i; } i.prototype.Initialize = function(t, e, i, n) { this.bodyA = t; this.bodyB = e; this.bodyA.GetLocalPoint(i, this.localAnchorA); this.bodyB.GetLocalPoint(i, this.localAnchorB); this.bodyA.GetLocalVector(n, this.localAxisA); }; return i; })(_i), Vi = (function(t) { $e(i, t); function i(i) { var n = t.call(this, i) || this; n.m_frequencyHz = 0; n.m_dampingRatio = 0; n.m_localAnchorA = new P(); n.m_localAnchorB = new P(); n.m_localXAxisA = new P(); n.m_localYAxisA = new P(); n.m_impulse = 0; n.m_motorImpulse = 0; n.m_springImpulse = 0; n.m_maxMotorTorque = 0; n.m_motorSpeed = 0; n.m_enableMotor = !1; n.m_indexA = 0; n.m_indexB = 0; n.m_localCenterA = new P(); n.m_localCenterB = new P(); n.m_invMassA = 0; n.m_invMassB = 0; n.m_invIA = 0; n.m_invIB = 0; n.m_ax = new P(); n.m_ay = new P(); n.m_sAx = 0; n.m_sBx = 0; n.m_sAy = 0; n.m_sBy = 0; n.m_mass = 0; n.m_motorMass = 0; n.m_springMass = 0; n.m_bias = 0; n.m_gamma = 0; n.m_qA = new V(); n.m_qB = new V(); n.m_lalcA = new P(); n.m_lalcB = new P(); n.m_rA = new P(); n.m_rB = new P(); n.m_frequencyHz = e(i.frequencyHz, 2); n.m_dampingRatio = e(i.dampingRatio, .7); n.m_localAnchorA.Copy(e(i.localAnchorA, P.ZERO)); n.m_localAnchorB.Copy(e(i.localAnchorB, P.ZERO)); n.m_localXAxisA.Copy(e(i.localAxisA, P.UNITX)); P.CrossOneV(n.m_localXAxisA, n.m_localYAxisA); n.m_maxMotorTorque = e(i.maxMotorTorque, 0); n.m_motorSpeed = e(i.motorSpeed, 0); n.m_enableMotor = e(i.enableMotor, !1); n.m_ax.SetZero(); n.m_ay.SetZero(); return n; } i.prototype.GetMotorSpeed = function() { return this.m_motorSpeed; }; i.prototype.GetMaxMotorTorque = function() { return this.m_maxMotorTorque; }; i.prototype.SetSpringFrequencyHz = function(t) { this.m_frequencyHz = t; }; i.prototype.GetSpringFrequencyHz = function() { return this.m_frequencyHz; }; i.prototype.SetSpringDampingRatio = function(t) { this.m_dampingRatio = t; }; i.prototype.GetSpringDampingRatio = function() { return this.m_dampingRatio; }; i.prototype.InitVelocityConstraints = function(t) { this.m_indexA = this.m_bodyA.m_islandIndex; this.m_indexB = this.m_bodyB.m_islandIndex; this.m_localCenterA.Copy(this.m_bodyA.m_sweep.localCenter); this.m_localCenterB.Copy(this.m_bodyB.m_sweep.localCenter); this.m_invMassA = this.m_bodyA.m_invMass; this.m_invMassB = this.m_bodyB.m_invMass; this.m_invIA = this.m_bodyA.m_invI; this.m_invIB = this.m_bodyB.m_invI; var e = this.m_invMassA, n = this.m_invMassB, r = this.m_invIA, o = this.m_invIB, a = t.positions[this.m_indexA].c, c = t.positions[this.m_indexA].a, l = t.velocities[this.m_indexA].v, h = t.velocities[this.m_indexA].w, u = t.positions[this.m_indexB].c, _ = t.positions[this.m_indexB].a, f = t.velocities[this.m_indexB].v, d = t.velocities[this.m_indexB].w, m = this.m_qA.SetAngle(c), p = this.m_qB.SetAngle(_); P.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA); var v = V.MulRV(m, this.m_lalcA, this.m_rA); P.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); var y = V.MulRV(p, this.m_lalcB, this.m_rB), g = P.SubVV(P.AddVV(u, y, P.s_t0), P.AddVV(a, v, P.s_t1), i.InitVelocityConstraints_s_d); V.MulRV(m, this.m_localYAxisA, this.m_ay); this.m_sAy = P.CrossVV(P.AddVV(g, v, P.s_t0), this.m_ay); this.m_sBy = P.CrossVV(y, this.m_ay); this.m_mass = e + n + r * this.m_sAy * this.m_sAy + o * this.m_sBy * this.m_sBy; this.m_mass > 0 && (this.m_mass = 1 / this.m_mass); this.m_springMass = 0; this.m_bias = 0; this.m_gamma = 0; if (this.m_frequencyHz > 0) { V.MulRV(m, this.m_localXAxisA, this.m_ax); this.m_sAx = P.CrossVV(P.AddVV(g, v, P.s_t0), this.m_ax); this.m_sBx = P.CrossVV(y, this.m_ax); var x = e + n + r * this.m_sAx * this.m_sAx + o * this.m_sBx * this.m_sBx; if (x > 0) { this.m_springMass = 1 / x; var C = P.DotVV(g, this.m_ax), b = 2 * s * this.m_frequencyHz, A = 2 * this.m_springMass * this.m_dampingRatio * b, S = this.m_springMass * b * b, w = t.step.dt; this.m_gamma = w * (A + w * S); this.m_gamma > 0 && (this.m_gamma = 1 / this.m_gamma); this.m_bias = C * w * S * this.m_gamma; this.m_springMass = x + this.m_gamma; this.m_springMass > 0 && (this.m_springMass = 1 / this.m_springMass); } } else this.m_springImpulse = 0; if (this.m_enableMotor) { this.m_motorMass = r + o; this.m_motorMass > 0 && (this.m_motorMass = 1 / this.m_motorMass); } else { this.m_motorMass = 0; this.m_motorImpulse = 0; } if (t.step.warmStarting) { this.m_impulse *= t.step.dtRatio; this.m_springImpulse *= t.step.dtRatio; this.m_motorImpulse *= t.step.dtRatio; var T = P.AddVV(P.MulSV(this.m_impulse, this.m_ay, P.s_t0), P.MulSV(this.m_springImpulse, this.m_ax, P.s_t1), i.InitVelocityConstraints_s_P), E = this.m_impulse * this.m_sAy + this.m_springImpulse * this.m_sAx + this.m_motorImpulse, M = this.m_impulse * this.m_sBy + this.m_springImpulse * this.m_sBx + this.m_motorImpulse; l.SelfMulSub(this.m_invMassA, T); h -= this.m_invIA * E; f.SelfMulAdd(this.m_invMassB, T); d += this.m_invIB * M; } else { this.m_impulse = 0; this.m_springImpulse = 0; this.m_motorImpulse = 0; } t.velocities[this.m_indexA].w = h; t.velocities[this.m_indexB].w = d; }; i.prototype.SolveVelocityConstraints = function(t) { var e = this.m_invMassA, n = this.m_invMassB, r = this.m_invIA, s = this.m_invIB, o = t.velocities[this.m_indexA].v, a = t.velocities[this.m_indexA].w, c = t.velocities[this.m_indexB].v, l = t.velocities[this.m_indexB].w, h = P.DotVV(this.m_ax, P.SubVV(c, o, P.s_t0)) + this.m_sBx * l - this.m_sAx * a, u = -this.m_springMass * (h + this.m_bias + this.m_gamma * this.m_springImpulse); this.m_springImpulse += u; var _ = P.MulSV(u, this.m_ax, i.SolveVelocityConstraints_s_P), f = u * this.m_sAx, d = u * this.m_sBx; o.SelfMulSub(e, _); a -= r * f; c.SelfMulAdd(n, _); h = (l += s * d) - a - this.m_motorSpeed, u = -this.m_motorMass * h; var m = this.m_motorImpulse, p = t.step.dt * this.m_maxMotorTorque; this.m_motorImpulse = C(this.m_motorImpulse + u, -p, p); a -= r * (u = this.m_motorImpulse - m); l += s * u; h = P.DotVV(this.m_ay, P.SubVV(c, o, P.s_t0)) + this.m_sBy * l - this.m_sAy * a, u = -this.m_mass * h; this.m_impulse += u; _ = P.MulSV(u, this.m_ay, i.SolveVelocityConstraints_s_P), f = u * this.m_sAy, d = u * this.m_sBy; o.SelfMulSub(e, _); a -= r * f; c.SelfMulAdd(n, _); l += s * d; t.velocities[this.m_indexA].w = a; t.velocities[this.m_indexB].w = l; }; i.prototype.SolvePositionConstraints = function(t) { var e = t.positions[this.m_indexA].c, n = t.positions[this.m_indexA].a, r = t.positions[this.m_indexB].c, s = t.positions[this.m_indexB].a, o = this.m_qA.SetAngle(n), a = this.m_qB.SetAngle(s); P.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA); var l = V.MulRV(o, this.m_lalcA, this.m_rA); P.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB); var h, u = V.MulRV(a, this.m_lalcB, this.m_rB), _ = P.AddVV(P.SubVV(r, e, P.s_t0), P.SubVV(u, l, P.s_t1), i.SolvePositionConstraints_s_d), f = V.MulRV(o, this.m_localYAxisA, this.m_ay), d = P.CrossVV(P.AddVV(_, l, P.s_t0), f), m = P.CrossVV(u, f), p = P.DotVV(_, this.m_ay), v = this.m_invMassA + this.m_invMassB + this.m_invIA * this.m_sAy * this.m_sAy + this.m_invIB * this.m_sBy * this.m_sBy; h = 0 !== v ? -p / v : 0; var g = P.MulSV(h, f, i.SolvePositionConstraints_s_P), x = h * d, C = h * m; e.SelfMulSub(this.m_invMassA, g); n -= this.m_invIA * x; r.SelfMulAdd(this.m_invMassB, g); s += this.m_invIB * C; t.positions[this.m_indexA].a = n; t.positions[this.m_indexB].a = s; return y(p) <= c; }; i.prototype.GetDefinition = function(t) { return t; }; i.prototype.GetAnchorA = function(t) { return this.m_bodyA.GetWorldPoint(this.m_localAnchorA, t); }; i.prototype.GetAnchorB = function(t) { return this.m_bodyB.GetWorldPoint(this.m_localAnchorB, t); }; i.prototype.GetReactionForce = function(t, e) { e.x = t * (this.m_impulse * this.m_ay.x + this.m_springImpulse * this.m_ax.x); e.y = t * (this.m_impulse * this.m_ay.y + this.m_springImpulse * this.m_ax.y); return e; }; i.prototype.GetReactionTorque = function(t) { return t * this.m_motorImpulse; }; i.prototype.GetLocalAnchorA = function() { return this.m_localAnchorA; }; i.prototype.GetLocalAnchorB = function() { return this.m_localAnchorB; }; i.prototype.GetLocalAxisA = function() { return this.m_localXAxisA; }; i.prototype.GetJointTranslation = function() { return this.GetPrismaticJointTranslation(); }; i.prototype.GetJointLinearSpeed = function() { return this.GetPrismaticJointSpeed(); }; i.prototype.GetJointAngle = function() { return this.GetRevoluteJointAngle(); }; i.prototype.GetJointAngularSpeed = function() { return this.GetRevoluteJointSpeed(); }; i.prototype.GetPrismaticJointTranslation = function() { var t = this.m_bodyA, e = this.m_bodyB, i = t.GetWorldPoint(this.m_localAnchorA, new P()), n = e.GetWorldPoint(this.m_localAnchorB, new P()), r = P.SubVV(n, i, new P()), s = t.GetWorldVector(this.m_localXAxisA, new P()); return P.DotVV(r, s); }; i.prototype.GetPrismaticJointSpeed = function() { var t = this.m_bodyA, e = this.m_bodyB; P.SubVV(this.m_localAnchorA, t.m_sweep.localCenter, this.m_lalcA); var i = V.MulRV(t.m_xf.q, this.m_lalcA, this.m_rA); P.SubVV(this.m_localAnchorB, e.m_sweep.localCenter, this.m_lalcB); var n = V.MulRV(e.m_xf.q, this.m_lalcB, this.m_rB), r = P.AddVV(t.m_sweep.c, i, P.s_t0), s = P.AddVV(e.m_sweep.c, n, P.s_t1), o = P.SubVV(s, r, P.s_t2), a = t.GetWorldVector(this.m_localXAxisA, new P()), c = t.m_linearVelocity, l = e.m_linearVelocity, h = t.m_angularVelocity, u = e.m_angularVelocity; return P.DotVV(o, P.CrossSV(h, a, P.s_t0)) + P.DotVV(a, P.SubVV(P.AddVCrossSV(l, u, n, P.s_t0), P.AddVCrossSV(c, h, i, P.s_t1), P.s_t0)); }; i.prototype.GetRevoluteJointAngle = function() { return this.m_bodyB.m_sweep.a - this.m_bodyA.m_sweep.a; }; i.prototype.GetRevoluteJointSpeed = function() { var t = this.m_bodyA.m_angularVelocity; return this.m_bodyB.m_angularVelocity - t; }; i.prototype.IsMotorEnabled = function() { return this.m_enableMotor; }; i.prototype.EnableMotor = function(t) { if (t !== this.m_enableMotor) { this.m_bodyA.SetAwake(!0); this.m_bodyB.SetAwake(!0); this.m_enableMotor = t; } }; i.prototype.SetMotorSpeed = function(t) { if (t !== this.m_motorSpeed) { this.m_bodyA.SetAwake(!0); this.m_bodyB.SetAwake(!0); this.m_motorSpeed = t; } }; i.prototype.SetMaxMotorTorque = function(t) { if (t !== this.m_maxMotorTorque) { this.m_bodyA.SetAwake(!0); this.m_bodyB.SetAwake(!0); this.m_maxMotorTorque = t; } }; i.prototype.GetMotorTorque = function(t) { return t * this.m_motorImpulse; }; i.prototype.Dump = function(t) { var e = this.m_bodyA.m_islandIndex, i = this.m_bodyB.m_islandIndex; t(" const jd: b2WheelJointDef = new b2WheelJointDef();\n"); t(" jd.bodyA = bodies[%d];\n", e); t(" jd.bodyB = bodies[%d];\n", i); t(" jd.collideConnected = %s;\n", this.m_collideConnected ? "true" : "false"); t(" jd.localAnchorA.Set(%.15f, %.15f);\n", this.m_localAnchorA.x, this.m_localAnchorA.y); t(" jd.localAnchorB.Set(%.15f, %.15f);\n", this.m_localAnchorB.x, this.m_localAnchorB.y); t(" jd.localAxisA.Set(%.15f, %.15f);\n", this.m_localXAxisA.x, this.m_localXAxisA.y); t(" jd.enableMotor = %s;\n", this.m_enableMotor ? "true" : "false"); t(" jd.motorSpeed = %.15f;\n", this.m_motorSpeed); t(" jd.maxMotorTorque = %.15f;\n", this.m_maxMotorTorque); t(" jd.frequencyHz = %.15f;\n", this.m_frequencyHz); t(" jd.dampingRatio = %.15f;\n", this.m_dampingRatio); t(" joints[%d] = this.m_world.CreateJoint(jd);\n", this.m_index); }; i.InitVelocityConstraints_s_d = new P(); i.InitVelocityConstraints_s_P = new P(); i.SolveVelocityConstraints_s_P = new P(); i.SolvePositionConstraints_s_d = new P(); i.SolvePositionConstraints_s_P = new P(); return i; })(fi); function Ni(t, e) { return w(t * e); } function ki(t, e) { return t > e ? t : e; } var zi = (function() { return function(t) { this.prev = null; this.next = null; this.contact = t; }; })(), Gi = (function() { function t() { this.m_islandFlag = !1; this.m_touchingFlag = !1; this.m_enabledFlag = !1; this.m_filterFlag = !1; this.m_bulletHitFlag = !1; this.m_toiFlag = !1; this.m_prev = null; this.m_next = null; this.m_indexA = 0; this.m_indexB = 0; this.m_manifold = new Ct(); this.m_toiCount = 0; this.m_toi = 0; this.m_friction = 0; this.m_restitution = 0; this.m_tangentSpeed = 0; this.m_oldManifold = new Ct(); this.m_nodeA = new zi(this); this.m_nodeB = new zi(this); } t.prototype.GetManifold = function() { return this.m_manifold; }; t.prototype.GetWorldManifold = function(t) { var e = this.m_fixtureA.GetBody(), i = this.m_fixtureB.GetBody(), n = this.m_fixtureA.GetShape(), r = this.m_fixtureB.GetShape(); t.Initialize(this.m_manifold, e.GetTransform(), n.m_radius, i.GetTransform(), r.m_radius); }; t.prototype.IsTouching = function() { return this.m_touchingFlag; }; t.prototype.SetEnabled = function(t) { this.m_enabledFlag = t; }; t.prototype.IsEnabled = function() { return this.m_enabledFlag; }; t.prototype.GetNext = function() { return this.m_next; }; t.prototype.GetFixtureA = function() { return this.m_fixtureA; }; t.prototype.GetChildIndexA = function() { return this.m_indexA; }; t.prototype.GetFixtureB = function() { return this.m_fixtureB; }; t.prototype.GetChildIndexB = function() { return this.m_indexB; }; t.prototype.FlagForFiltering = function() { this.m_filterFlag = !0; }; t.prototype.SetFriction = function(t) { this.m_friction = t; }; t.prototype.GetFriction = function() { return this.m_friction; }; t.prototype.ResetFriction = function() { this.m_friction = Ni(this.m_fixtureA.m_friction, this.m_fixtureB.m_friction); }; t.prototype.SetRestitution = function(t) { this.m_restitution = t; }; t.prototype.GetRestitution = function() { return this.m_restitution; }; t.prototype.ResetRestitution = function() { this.m_restitution = ki(this.m_fixtureA.m_restitution, this.m_fixtureB.m_restitution); }; t.prototype.SetTangentSpeed = function(t) { this.m_tangentSpeed = t; }; t.prototype.GetTangentSpeed = function() { return this.m_tangentSpeed; }; t.prototype.Reset = function(t, e, i, n) { this.m_islandFlag = !1; this.m_touchingFlag = !1; this.m_enabledFlag = !0; this.m_filterFlag = !1; this.m_bulletHitFlag = !1; this.m_toiFlag = !1; this.m_fixtureA = t; this.m_fixtureB = i; this.m_indexA = e; this.m_indexB = n; this.m_manifold.pointCount = 0; this.m_prev = null; this.m_next = null; delete this.m_nodeA.contact; this.m_nodeA.prev = null; this.m_nodeA.next = null; delete this.m_nodeA.other; delete this.m_nodeB.contact; this.m_nodeB.prev = null; this.m_nodeB.next = null; delete this.m_nodeB.other; this.m_toiCount = 0; this.m_friction = Ni(this.m_fixtureA.m_friction, this.m_fixtureB.m_friction); this.m_restitution = ki(this.m_fixtureA.m_restitution, this.m_fixtureB.m_restitution); }; t.prototype.Update = function(t) { var e = this.m_oldManifold; this.m_oldManifold = this.m_manifold; this.m_manifold = e; this.m_enabledFlag = !0; var i = !1, n = this.m_touchingFlag, r = this.m_fixtureA.IsSensor(), s = this.m_fixtureB.IsSensor(), o = r || s, a = this.m_fixtureA.GetBody(), c = this.m_fixtureB.GetBody(), l = a.GetTransform(), h = c.GetTransform(); if (o) { var u = this.m_fixtureA.GetShape(), _ = this.m_fixtureB.GetShape(); i = Pt(u, this.m_indexA, _, this.m_indexB, l, h); this.m_manifold.pointCount = 0; } else { this.Evaluate(this.m_manifold, l, h); i = this.m_manifold.pointCount > 0; for (var f = 0; f < this.m_manifold.pointCount; ++f) { var d = this.m_manifold.points[f]; d.normalImpulse = 0; d.tangentImpulse = 0; for (var m = d.id, p = 0; p < this.m_oldManifold.pointCount; ++p) { var v = this.m_oldManifold.points[p]; if (v.id.key === m.key) { d.normalImpulse = v.normalImpulse; d.tangentImpulse = v.tangentImpulse; break; } } } if (i !== n) { a.SetAwake(!0); c.SetAwake(!0); } } this.m_touchingFlag = i; !n && i && t && t.BeginContact(this); n && !i && t && t.EndContact(this); !o && i && t && t.PreSolve(this, this.m_oldManifold); }; t.prototype.ComputeTOI = function(e, i) { var n = t.ComputeTOI_s_input; n.proxyA.SetShape(this.m_fixtureA.GetShape(), this.m_indexA); n.proxyB.SetShape(this.m_fixtureB.GetShape(), this.m_indexB); n.sweepA.Copy(e); n.sweepB.Copy(i); n.tMax = c; var r = t.ComputeTOI_s_output; re(r, n); return r.t; }; t.ComputeTOI_s_input = new qt(); t.ComputeTOI_s_output = new Xt(); return t; })(), Ui = (function(t) { $e(e, t); function e() { return t.call(this) || this; } e.Create = function(t) { return new e(); }; e.Destroy = function(t, e) {}; e.prototype.Reset = function(e, i, n, r) { t.prototype.Reset.call(this, e, i, n, r); }; e.prototype.Evaluate = function(t, e, i) { ae(t, this.m_fixtureA.GetShape(), e, this.m_fixtureB.GetShape(), i); }; return e; })(Gi), ji = (function(t) { $e(e, t); function e() { return t.call(this) || this; } e.Create = function(t) { return new e(); }; e.Destroy = function(t, e) {}; e.prototype.Reset = function(e, i, n, r) { t.prototype.Reset.call(this, e, i, n, r); }; e.prototype.Evaluate = function(t, e, i) { Fe(t, this.m_fixtureA.GetShape(), e, this.m_fixtureB.GetShape(), i); }; return e; })(Gi), Wi = (function(t) { $e(e, t); function e() { return t.call(this) || this; } e.Create = function(t) { return new e(); }; e.Destroy = function(t, e) {}; e.prototype.Reset = function(e, i, n, r) { t.prototype.Reset.call(this, e, i, n, r); }; e.prototype.Evaluate = function(t, e, i) { ue(t, this.m_fixtureA.GetShape(), e, this.m_fixtureB.GetShape(), i); }; return e; })(Gi), Hi = (function(t) { $e(e, t); function e() { return t.call(this) || this; } e.Create = function(t) { return new e(); }; e.Destroy = function(t, e) {}; e.prototype.Reset = function(e, i, n, r) { t.prototype.Reset.call(this, e, i, n, r); }; e.prototype.Evaluate = function(t, e, i) { We(t, this.m_fixtureA.GetShape(), e, this.m_fixtureB.GetShape(), i); }; return e; })(Gi), qi = (function(t) { $e(e, t); function e() { return t.call(this) || this; } e.Create = function(t) { return new e(); }; e.Destroy = function(t, e) {}; e.prototype.Reset = function(e, i, n, r) { t.prototype.Reset.call(this, e, i, n, r); }; e.prototype.Evaluate = function(t, e, i) { Je(t, this.m_fixtureA.GetShape(), e, this.m_fixtureB.GetShape(), i); }; return e; })(Gi), Xi = (function(t) { $e(e, t); function e() { return t.call(this) || this; } e.Create = function(t) { return new e(); }; e.Destroy = function(t, e) {}; e.prototype.Reset = function(e, i, n, r) { t.prototype.Reset.call(this, e, i, n, r); }; e.prototype.Evaluate = function(t, i, n) { var r = this.m_fixtureA.GetShape(), s = this.m_fixtureB.GetShape(), o = r, a = e.Evaluate_s_edge; o.GetChildEdge(a, this.m_indexA); We(t, a, i, s, n); }; e.Evaluate_s_edge = new ii(); return e; })(Gi), Yi = (function(t) { $e(e, t); function e() { return t.call(this) || this; } e.Create = function(t) { return new e(); }; e.Destroy = function(t, e) {}; e.prototype.Reset = function(e, i, n, r) { t.prototype.Reset.call(this, e, i, n, r); }; e.prototype.Evaluate = function(t, i, n) { var r = this.m_fixtureA.GetShape(), s = this.m_fixtureB.GetShape(), o = r, a = e.Evaluate_s_edge; o.GetChildEdge(a, this.m_indexA); Je(t, a, i, s, n); }; e.Evaluate_s_edge = new ii(); return e; })(Gi), Ji = (function() { return function() { this.createFcn = null; this.destroyFcn = null; this.primary = !1; }; })(), Zi = (function() { function e(t) { this.m_allocator = null; this.m_allocator = t; this.InitializeRegisters(); } e.prototype.AddType = function(t, e, i, n) { var r = this, s = d(256, (function(e) { return t(r.m_allocator); })); function o(e) { return s.pop() || t(e); } function a(t, e) { s.push(t); } this.m_registers[i][n].createFcn = o; this.m_registers[i][n].destroyFcn = a; this.m_registers[i][n].primary = !0; if (i !== n) { this.m_registers[n][i].createFcn = o; this.m_registers[n][i].destroyFcn = a; this.m_registers[n][i].primary = !1; } }; e.prototype.InitializeRegisters = function() { this.m_registers = []; for (var e = 0; e < t.b2ShapeType.e_shapeTypeCount; e++) { this.m_registers[e] = []; for (var i = 0; i < t.b2ShapeType.e_shapeTypeCount; i++) this.m_registers[e][i] = new Ji(); } this.AddType(Ui.Create, Ui.Destroy, t.b2ShapeType.e_circleShape, t.b2ShapeType.e_circleShape); this.AddType(Wi.Create, Wi.Destroy, t.b2ShapeType.e_polygonShape, t.b2ShapeType.e_circleShape); this.AddType(ji.Create, ji.Destroy, t.b2ShapeType.e_polygonShape, t.b2ShapeType.e_polygonShape); this.AddType(Hi.Create, Hi.Destroy, t.b2ShapeType.e_edgeShape, t.b2ShapeType.e_circleShape); this.AddType(qi.Create, qi.Destroy, t.b2ShapeType.e_edgeShape, t.b2ShapeType.e_polygonShape); this.AddType(Xi.Create, Xi.Destroy, t.b2ShapeType.e_chainShape, t.b2ShapeType.e_circleShape); this.AddType(Yi.Create, Yi.Destroy, t.b2ShapeType.e_chainShape, t.b2ShapeType.e_polygonShape); }; e.prototype.Create = function(t, e, i, n) { var r = t.GetType(), s = i.GetType(), o = this.m_registers[r][s]; if (o.createFcn) { var a = o.createFcn(this.m_allocator); o.primary ? a.Reset(t, e, i, n) : a.Reset(i, n, t, e); return a; } return null; }; e.prototype.Destroy = function(t) { var e = t.m_fixtureA, i = t.m_fixtureB; if (t.m_manifold.pointCount > 0 && !e.IsSensor() && !i.IsSensor()) { e.GetBody().SetAwake(!0); i.GetBody().SetAwake(!0); } var n = e.GetType(), r = i.GetType(), s = this.m_registers[n][r]; s.destroyFcn && s.destroyFcn(t, this.m_allocator); }; return e; })(), Ki = (function() { function t() {} t.prototype.SayGoodbyeJoint = function(t) {}; t.prototype.SayGoodbyeFixture = function(t) {}; t.prototype.SayGoodbyeParticleGroup = function(t) {}; t.prototype.SayGoodbyeParticle = function(t, e) {}; return t; })(), Qi = (function() { function e() {} e.prototype.ShouldCollide = function(e, i) { var n = e.GetBody(), r = i.GetBody(); if (r.GetType() === t.b2BodyType.b2_staticBody && n.GetType() === t.b2BodyType.b2_staticBody) return !1; if (!r.ShouldCollideConnected(n)) return !1; var s = e.GetFilterData(), o = i.GetFilterData(); return s.groupIndex === o.groupIndex && 0 !== s.groupIndex ? s.groupIndex > 0 : 0 != (s.maskBits & o.categoryBits) && 0 != (s.categoryBits & o.maskBits); }; e.prototype.ShouldCollideFixtureParticle = function(t, e, i) { return !0; }; e.prototype.ShouldCollideParticleParticle = function(t, e, i) { return !0; }; e.b2_defaultFilter = new e(); return e; })(), $i = (function() { return function() { this.normalImpulses = m(o); this.tangentImpulses = m(o); this.count = 0; }; })(), tn = (function() { function t() {} t.prototype.BeginContact = function(t) {}; t.prototype.EndContact = function(t) {}; t.prototype.BeginContactFixtureParticle = function(t, e) {}; t.prototype.EndContactFixtureParticle = function(t, e) {}; t.prototype.BeginContactParticleParticle = function(t, e) {}; t.prototype.EndContactParticleParticle = function(t, e) {}; t.prototype.PreSolve = function(t, e) {}; t.prototype.PostSolve = function(t, e) {}; t.b2_defaultListener = new t(); return t; })(), en = (function() { function t() {} t.prototype.ReportFixture = function(t) { return !0; }; t.prototype.ReportParticle = function(t, e) { return !1; }; t.prototype.ShouldQueryParticleSystem = function(t) { return !0; }; return t; })(), nn = (function() { function t() {} t.prototype.ReportFixture = function(t, e, i, n) { return n; }; t.prototype.ReportParticle = function(t, e, i, n, r) { return 0; }; t.prototype.ShouldQueryParticleSystem = function(t) { return !0; }; return t; })(), rn = (function() { function e() { this.m_broadPhase = new Vt(); this.m_contactList = null; this.m_contactCount = 0; this.m_contactFilter = Qi.b2_defaultFilter; this.m_contactListener = tn.b2_defaultListener; this.m_allocator = null; this.m_contactFactory = new Zi(this.m_allocator); } e.prototype.AddPair = function(t, e) { var i = t.fixture, n = e.fixture, r = t.childIndex, s = e.childIndex, o = i.GetBody(), a = n.GetBody(); if (o !== a) { for (var c = a.GetContactList(); c; ) { if (c.other === o) { var l = c.contact.GetFixtureA(), h = c.contact.GetFixtureB(), u = c.contact.GetChildIndexA(), _ = c.contact.GetChildIndexB(); if (l === i && h === n && u === r && _ === s) return; if (l === n && h === i && u === s && _ === r) return; } c = c.next; } if (!this.m_contactFilter || this.m_contactFilter.ShouldCollide(i, n)) { var f = this.m_contactFactory.Create(i, r, n, s); if (null !== f) { i = f.GetFixtureA(); n = f.GetFixtureB(); r = f.GetChildIndexA(); s = f.GetChildIndexB(); o = i.m_body; a = n.m_body; f.m_prev = null; f.m_next = this.m_contactList; null !== this.m_contactList && (this.m_contactList.m_prev = f); this.m_contactList = f; f.m_nodeA.contact = f; f.m_nodeA.other = a; f.m_nodeA.prev = null; f.m_nodeA.next = o.m_contactList; null !== o.m_contactList && (o.m_contactList.prev = f.m_nodeA); o.m_contactList = f.m_nodeA; f.m_nodeB.contact = f; f.m_nodeB.other = o; f.m_nodeB.prev = null; f.m_nodeB.next = a.m_contactList; null !== a.m_contactList && (a.m_contactList.prev = f.m_nodeB); a.m_contactList = f.m_nodeB; if (!i.IsSensor() && !n.IsSensor()) { o.SetAwake(!0); a.SetAwake(!0); } ++this.m_contactCount; } } } }; e.prototype.FindNewContacts = function() { var t = this; this.m_broadPhase.UpdatePairs((function(e, i) { t.AddPair(e, i); })); }; e.prototype.Destroy = function(t) { var e = t.GetFixtureA(), i = t.GetFixtureB(), n = e.GetBody(), r = i.GetBody(); this.m_contactListener && t.IsTouching() && this.m_contactListener.EndContact(t); t.m_prev && (t.m_prev.m_next = t.m_next); t.m_next && (t.m_next.m_prev = t.m_prev); t === this.m_contactList && (this.m_contactList = t.m_next); t.m_nodeA.prev && (t.m_nodeA.prev.next = t.m_nodeA.next); t.m_nodeA.next && (t.m_nodeA.next.prev = t.m_nodeA.prev); t.m_nodeA === n.m_contactList && (n.m_contactList = t.m_nodeA.next); t.m_nodeB.prev && (t.m_nodeB.prev.next = t.m_nodeB.next); t.m_nodeB.next && (t.m_nodeB.next.prev = t.m_nodeB.prev); t.m_nodeB === r.m_contactList && (r.m_contactList = t.m_nodeB.next); this.m_contactFactory.Destroy(t); --this.m_contactCount; }; e.prototype.Collide = function() { for (var e = this.m_contactList; e; ) { var i = e.GetFixtureA(), n = e.GetFixtureB(), r = e.GetChildIndexA(), s = e.GetChildIndexB(), o = i.GetBody(), a = n.GetBody(); if (e.m_filterFlag) { if (this.m_contactFilter && !this.m_contactFilter.ShouldCollide(i, n)) { e = (_ = e).m_next; this.Destroy(_); continue; } e.m_filterFlag = !1; } var c = o.IsAwake() && o.m_type !== t.b2BodyType.b2_staticBody, l = a.IsAwake() && a.m_type !== t.b2BodyType.b2_staticBody; if (c || l) { var h = i.m_proxies[r].treeNode, u = n.m_proxies[s].treeNode; if (Et(h.aabb, u.aabb)) { e.Update(this.m_contactListener); e = e.m_next; } else { var _; e = (_ = e).m_next; this.Destroy(_); } } else e = e.m_next; } }; return e; })(), sn = (function() { function t() { this.step = 0; this.collide = 0; this.solve = 0; this.solveInit = 0; this.solveVelocity = 0; this.solvePosition = 0; this.broadphase = 0; this.solveTOI = 0; } t.prototype.Reset = function() { this.step = 0; this.collide = 0; this.solve = 0; this.solveInit = 0; this.solveVelocity = 0; this.solvePosition = 0; this.broadphase = 0; this.solveTOI = 0; return this; }; return t; })(), on = (function() { function t() { this.dt = 0; this.inv_dt = 0; this.dtRatio = 0; this.velocityIterations = 0; this.positionIterations = 0; this.particleIterations = 0; this.warmStarting = !1; } t.prototype.Copy = function(t) { this.dt = t.dt; this.inv_dt = t.inv_dt; this.dtRatio = t.dtRatio; this.positionIterations = t.positionIterations; this.velocityIterations = t.velocityIterations; this.particleIterations = t.particleIterations; this.warmStarting = t.warmStarting; return this; }; return t; })(), an = (function() { function t() { this.c = new P(); this.a = 0; } t.MakeArray = function(e) { return d(e, (function(e) { return new t(); })); }; return t; })(), cn = (function() { function t() { this.v = new P(); this.w = 0; } t.MakeArray = function(e) { return d(e, (function(e) { return new t(); })); }; return t; })(), ln = (function() { return function() { this.step = new on(); }; })(), hn = (function() { function t() { this.rA = new P(); this.rB = new P(); this.normalImpulse = 0; this.tangentImpulse = 0; this.normalMass = 0; this.tangentMass = 0; this.velocityBias = 0; } t.MakeArray = function(e) { return d(e, (function(e) { return new t(); })); }; return t; })(), un = (function() { function t() { this.points = hn.MakeArray(o); this.normal = new P(); this.tangent = new P(); this.normalMass = new F(); this.K = new F(); this.indexA = 0; this.indexB = 0; this.invMassA = 0; this.invMassB = 0; this.invIA = 0; this.invIB = 0; this.friction = 0; this.restitution = 0; this.tangentSpeed = 0; this.pointCount = 0; this.contactIndex = 0; } t.MakeArray = function(e) { return d(e, (function(e) { return new t(); })); }; return t; })(), _n = (function() { function e() { this.localPoints = P.MakeArray(o); this.localNormal = new P(); this.localPoint = new P(); this.indexA = 0; this.indexB = 0; this.invMassA = 0; this.invMassB = 0; this.localCenterA = new P(); this.localCenterB = new P(); this.invIA = 0; this.invIB = 0; this.type = t.b2ManifoldType.e_unknown; this.radiusA = 0; this.radiusB = 0; this.pointCount = 0; } e.MakeArray = function(t) { return d(t, (function(t) { return new e(); })); }; return e; })(), fn = (function() { return function() { this.step = new on(); this.count = 0; this.allocator = null; }; })(), dn = (function() { function e() { this.normal = new P(); this.point = new P(); this.separation = 0; } e.prototype.Initialize = function(i, n, r, s) { var o = e.Initialize_s_pointA, a = e.Initialize_s_pointB, c = e.Initialize_s_planePoint, l = e.Initialize_s_clipPoint; switch (i.type) { case t.b2ManifoldType.e_circles: N.MulXV(n, i.localPoint, o); N.MulXV(r, i.localPoints[0], a); P.SubVV(a, o, this.normal).SelfNormalize(); P.MidVV(o, a, this.point); this.separation = P.DotVV(P.SubVV(a, o, P.s_t0), this.normal) - i.radiusA - i.radiusB; break; case t.b2ManifoldType.e_faceA: V.MulRV(n.q, i.localNormal, this.normal); N.MulXV(n, i.localPoint, c); N.MulXV(r, i.localPoints[s], l); this.separation = P.DotVV(P.SubVV(l, c, P.s_t0), this.normal) - i.radiusA - i.radiusB; this.point.Copy(l); break; case t.b2ManifoldType.e_faceB: V.MulRV(r.q, i.localNormal, this.normal); N.MulXV(r, i.localPoint, c); N.MulXV(n, i.localPoints[s], l); this.separation = P.DotVV(P.SubVV(l, c, P.s_t0), this.normal) - i.radiusA - i.radiusB; this.point.Copy(l); this.normal.SelfNeg(); } }; e.Initialize_s_pointA = new P(); e.Initialize_s_pointB = new P(); e.Initialize_s_planePoint = new P(); e.Initialize_s_clipPoint = new P(); return e; })(), mn = (function() { function t() { this.m_step = new on(); this.m_allocator = null; this.m_positionConstraints = _n.MakeArray(1024); this.m_velocityConstraints = un.MakeArray(1024); this.m_count = 0; } t.prototype.Initialize = function(t) { this.m_step.Copy(t.step); this.m_allocator = t.allocator; this.m_count = t.count; if (this.m_positionConstraints.length < this.m_count) for (var e = x(2 * this.m_positionConstraints.length, this.m_count); this.m_positionConstraints.length < e; ) this.m_positionConstraints[this.m_positionConstraints.length] = new _n(); if (this.m_velocityConstraints.length < this.m_count) for (e = x(2 * this.m_velocityConstraints.length, this.m_count); this.m_velocityConstraints.length < e; ) this.m_velocityConstraints[this.m_velocityConstraints.length] = new un(); this.m_positions = t.positions; this.m_velocities = t.velocities; this.m_contacts = t.contacts; for (var i = 0; i < this.m_count; ++i) { var n = this.m_contacts[i], r = n.m_fixtureA, s = n.m_fixtureB, o = r.GetShape(), a = s.GetShape(), c = o.m_radius, l = a.m_radius, h = r.GetBody(), u = s.GetBody(), _ = n.GetManifold(), f = _.pointCount, d = this.m_velocityConstraints[i]; d.friction = n.m_friction; d.restitution = n.m_restitution; d.tangentSpeed = n.m_tangentSpeed; d.indexA = h.m_islandIndex; d.indexB = u.m_islandIndex; d.invMassA = h.m_invMass; d.invMassB = u.m_invMass; d.invIA = h.m_invI; d.invIB = u.m_invI; d.contactIndex = i; d.pointCount = f; d.K.SetZero(); d.normalMass.SetZero(); var m = this.m_positionConstraints[i]; m.indexA = h.m_islandIndex; m.indexB = u.m_islandIndex; m.invMassA = h.m_invMass; m.invMassB = u.m_invMass; m.localCenterA.Copy(h.m_sweep.localCenter); m.localCenterB.Copy(u.m_sweep.localCenter); m.invIA = h.m_invI; m.invIB = u.m_invI; m.localNormal.Copy(_.localNormal); m.localPoint.Copy(_.localPoint); m.pointCount = f; m.radiusA = c; m.radiusB = l; m.type = _.type; for (var p = 0; p < f; ++p) { var v = _.points[p], y = d.points[p]; if (this.m_step.warmStarting) { y.normalImpulse = this.m_step.dtRatio * v.normalImpulse; y.tangentImpulse = this.m_step.dtRatio * v.tangentImpulse; } else { y.normalImpulse = 0; y.tangentImpulse = 0; } y.rA.SetZero(); y.rB.SetZero(); y.normalMass = 0; y.tangentMass = 0; y.velocityBias = 0; m.localPoints[p].Copy(v.localPoint); } } return this; }; t.prototype.InitializeVelocityConstraints = function() { for (var e = t.InitializeVelocityConstraints_s_xfA, i = t.InitializeVelocityConstraints_s_xfB, n = t.InitializeVelocityConstraints_s_worldManifold, r = 0; r < this.m_count; ++r) { var s = this.m_velocityConstraints[r], o = this.m_positionConstraints[r], a = o.radiusA, c = o.radiusB, l = this.m_contacts[s.contactIndex].GetManifold(), h = s.indexA, u = s.indexB, _ = s.invMassA, f = s.invMassB, d = s.invIA, m = s.invIB, p = o.localCenterA, v = o.localCenterB, y = this.m_positions[h].c, g = this.m_positions[h].a, x = this.m_velocities[h].v, C = this.m_velocities[h].w, b = this.m_positions[u].c, A = this.m_positions[u].a, S = this.m_velocities[u].v, w = this.m_velocities[u].w; e.q.SetAngle(g); i.q.SetAngle(A); P.SubVV(y, V.MulRV(e.q, p, P.s_t0), e.p); P.SubVV(b, V.MulRV(i.q, v, P.s_t0), i.p); n.Initialize(l, e, a, i, c); s.normal.Copy(n.normal); P.CrossVOne(s.normal, s.tangent); for (var T = s.pointCount, E = 0; E < T; ++E) { var M = s.points[E]; P.SubVV(n.points[E], y, M.rA); P.SubVV(n.points[E], b, M.rB); var B = P.CrossVV(M.rA, s.normal), D = P.CrossVV(M.rB, s.normal), I = _ + f + d * B * B + m * D * D; M.normalMass = I > 0 ? 1 / I : 0; var R = s.tangent, L = P.CrossVV(M.rA, R), F = P.CrossVV(M.rB, R), O = _ + f + d * L * L + m * F * F; M.tangentMass = O > 0 ? 1 / O : 0; M.velocityBias = 0; var N = P.DotVV(s.normal, P.SubVV(P.AddVCrossSV(S, w, M.rB, P.s_t0), P.AddVCrossSV(x, C, M.rA, P.s_t1), P.s_t0)); N < -1 && (M.velocityBias += -s.restitution * N); } s.pointCount; } }; t.prototype.WarmStart = function() { for (var e = t.WarmStart_s_P, i = 0; i < this.m_count; ++i) { for (var n = this.m_velocityConstraints[i], r = n.indexA, s = n.indexB, o = n.invMassA, a = n.invIA, c = n.invMassB, l = n.invIB, h = n.pointCount, u = this.m_velocities[r].v, _ = this.m_velocities[r].w, f = this.m_velocities[s].v, d = this.m_velocities[s].w, m = n.normal, p = n.tangent, v = 0; v < h; ++v) { var y = n.points[v]; P.AddVV(P.MulSV(y.normalImpulse, m, P.s_t0), P.MulSV(y.tangentImpulse, p, P.s_t1), e); _ -= a * P.CrossVV(y.rA, e); u.SelfMulSub(o, e); d += l * P.CrossVV(y.rB, e); f.SelfMulAdd(c, e); } this.m_velocities[r].w = _; this.m_velocities[s].w = d; } }; t.prototype.SolveVelocityConstraints = function() { for (var e = t.SolveVelocityConstraints_s_dv, i = (t.SolveVelocityConstraints_s_dv1, t.SolveVelocityConstraints_s_dv2, t.SolveVelocityConstraints_s_P), n = (t.SolveVelocityConstraints_s_a, t.SolveVelocityConstraints_s_b, t.SolveVelocityConstraints_s_x, t.SolveVelocityConstraints_s_d, t.SolveVelocityConstraints_s_P1, t.SolveVelocityConstraints_s_P2, t.SolveVelocityConstraints_s_P1P2, 0); n < this.m_count; ++n) { for (var r = this.m_velocityConstraints[n], s = r.indexA, o = r.indexB, a = r.invMassA, c = r.invIA, l = r.invMassB, h = r.invIB, u = r.pointCount, _ = this.m_velocities[s].v, f = this.m_velocities[s].w, d = this.m_velocities[o].v, m = this.m_velocities[o].w, p = r.normal, v = r.tangent, y = r.friction, g = 0; g < u; ++g) { var b = r.points[g]; P.SubVV(P.AddVCrossSV(d, m, b.rB, P.s_t0), P.AddVCrossSV(_, f, b.rA, P.s_t1), e); var A = P.DotVV(e, v) - r.tangentSpeed, S = b.tangentMass * -A, w = y * b.normalImpulse; S = (T = C(b.tangentImpulse + S, -w, w)) - b.tangentImpulse; b.tangentImpulse = T; P.MulSV(S, v, i); _.SelfMulSub(a, i); f -= c * P.CrossVV(b.rA, i); d.SelfMulAdd(l, i); m += h * P.CrossVV(b.rB, i); } r.pointCount; for (g = 0; g < u; ++g) { b = r.points[g]; P.SubVV(P.AddVCrossSV(d, m, b.rB, P.s_t0), P.AddVCrossSV(_, f, b.rA, P.s_t1), e); var T, E = P.DotVV(e, p); S = -b.normalMass * (E - b.velocityBias); S = (T = x(b.normalImpulse + S, 0)) - b.normalImpulse; b.normalImpulse = T; P.MulSV(S, p, i); _.SelfMulSub(a, i); f -= c * P.CrossVV(b.rA, i); d.SelfMulAdd(l, i); m += h * P.CrossVV(b.rB, i); } this.m_velocities[s].w = f; this.m_velocities[o].w = m; } }; t.prototype.StoreImpulses = function() { for (var t = 0; t < this.m_count; ++t) for (var e = this.m_velocityConstraints[t], i = this.m_contacts[e.contactIndex].GetManifold(), n = 0; n < e.pointCount; ++n) { i.points[n].normalImpulse = e.points[n].normalImpulse; i.points[n].tangentImpulse = e.points[n].tangentImpulse; } }; t.prototype.SolvePositionConstraints = function() { for (var e = t.SolvePositionConstraints_s_xfA, i = t.SolvePositionConstraints_s_xfB, n = t.SolvePositionConstraints_s_psm, r = t.SolvePositionConstraints_s_rA, s = t.SolvePositionConstraints_s_rB, o = t.SolvePositionConstraints_s_P, a = 0, l = 0; l < this.m_count; ++l) { for (var h = this.m_positionConstraints[l], u = h.indexA, _ = h.indexB, f = h.localCenterA, d = h.invMassA, m = h.invIA, p = h.localCenterB, v = h.invMassB, y = h.invIB, x = h.pointCount, b = this.m_positions[u].c, A = this.m_positions[u].a, S = this.m_positions[_].c, w = this.m_positions[_].a, T = 0; T < x; ++T) { e.q.SetAngle(A); i.q.SetAngle(w); P.SubVV(b, V.MulRV(e.q, f, P.s_t0), e.p); P.SubVV(S, V.MulRV(i.q, p, P.s_t0), i.p); n.Initialize(h, e, i, T); var E = n.normal, M = n.point, B = n.separation; P.SubVV(M, b, r); P.SubVV(M, S, s); a = g(a, B); var D = C(.2 * (B + c), -.2, 0), I = P.CrossVV(r, E), R = P.CrossVV(s, E), L = d + v + m * I * I + y * R * R, F = L > 0 ? -D / L : 0; P.MulSV(F, E, o); b.SelfMulSub(d, o); A -= m * P.CrossVV(r, o); S.SelfMulAdd(v, o); w += y * P.CrossVV(s, o); } this.m_positions[u].a = A; this.m_positions[_].a = w; } return a > -3 * c; }; t.prototype.SolveTOIPositionConstraints = function(e, i) { for (var n = t.SolveTOIPositionConstraints_s_xfA, r = t.SolveTOIPositionConstraints_s_xfB, s = t.SolveTOIPositionConstraints_s_psm, o = t.SolveTOIPositionConstraints_s_rA, a = t.SolveTOIPositionConstraints_s_rB, l = t.SolveTOIPositionConstraints_s_P, h = 0, u = 0; u < this.m_count; ++u) { var _ = this.m_positionConstraints[u], f = _.indexA, d = _.indexB, m = _.localCenterA, p = _.localCenterB, v = _.pointCount, y = 0, x = 0; if (f === e || f === i) { y = _.invMassA; x = _.invIA; } var b = 0, A = 0; if (d === e || d === i) { b = _.invMassB; A = _.invIB; } for (var S = this.m_positions[f].c, w = this.m_positions[f].a, T = this.m_positions[d].c, E = this.m_positions[d].a, M = 0; M < v; ++M) { n.q.SetAngle(w); r.q.SetAngle(E); P.SubVV(S, V.MulRV(n.q, m, P.s_t0), n.p); P.SubVV(T, V.MulRV(r.q, p, P.s_t0), r.p); s.Initialize(_, n, r, M); var B = s.normal, D = s.point, I = s.separation; P.SubVV(D, S, o); P.SubVV(D, T, a); h = g(h, I); var R = C(.75 * (I + c), -.2, 0), L = P.CrossVV(o, B), F = P.CrossVV(a, B), O = y + b + x * L * L + A * F * F, N = O > 0 ? -R / O : 0; P.MulSV(N, B, l); S.SelfMulSub(y, l); w -= x * P.CrossVV(o, l); T.SelfMulAdd(b, l); E += A * P.CrossVV(a, l); } this.m_positions[f].a = w; this.m_positions[d].a = E; } return h >= -1.5 * c; }; t.InitializeVelocityConstraints_s_xfA = new N(); t.InitializeVelocityConstraints_s_xfB = new N(); t.InitializeVelocityConstraints_s_worldManifold = new bt(); t.WarmStart_s_P = new P(); t.SolveVelocityConstraints_s_dv = new P(); t.SolveVelocityConstraints_s_dv1 = new P(); t.SolveVelocityConstraints_s_dv2 = new P(); t.SolveVelocityConstraints_s_P = new P(); t.SolveVelocityConstraints_s_a = new P(); t.SolveVelocityConstraints_s_b = new P(); t.SolveVelocityConstraints_s_x = new P(); t.SolveVelocityConstraints_s_d = new P(); t.SolveVelocityConstraints_s_P1 = new P(); t.SolveVelocityConstraints_s_P2 = new P(); t.SolveVelocityConstraints_s_P1P2 = new P(); t.SolvePositionConstraints_s_xfA = new N(); t.SolvePositionConstraints_s_xfB = new N(); t.SolvePositionConstraints_s_psm = new dn(); t.SolvePositionConstraints_s_rA = new P(); t.SolvePositionConstraints_s_rB = new P(); t.SolvePositionConstraints_s_P = new P(); t.SolveTOIPositionConstraints_s_xfA = new N(); t.SolveTOIPositionConstraints_s_xfB = new N(); t.SolveTOIPositionConstraints_s_psm = new dn(); t.SolveTOIPositionConstraints_s_rA = new P(); t.SolveTOIPositionConstraints_s_rB = new P(); t.SolveTOIPositionConstraints_s_P = new P(); return t; })(), pn = (function() { function e() { this.m_allocator = null; this.m_bodies = []; this.m_contacts = []; this.m_joints = []; this.m_positions = an.MakeArray(1024); this.m_velocities = cn.MakeArray(1024); this.m_bodyCount = 0; this.m_jointCount = 0; this.m_contactCount = 0; this.m_bodyCapacity = 0; this.m_contactCapacity = 0; this.m_jointCapacity = 0; } e.prototype.Initialize = function(t, e, i, n, r) { this.m_bodyCapacity = t; this.m_contactCapacity = e; this.m_jointCapacity = i; this.m_bodyCount = 0; this.m_contactCount = 0; this.m_jointCount = 0; this.m_allocator = n; this.m_listener = r; if (this.m_positions.length < t) for (var s = x(2 * this.m_positions.length, t); this.m_positions.length < s; ) this.m_positions[this.m_positions.length] = new an(); if (this.m_velocities.length < t) for (s = x(2 * this.m_velocities.length, t); this.m_velocities.length < s; ) this.m_velocities[this.m_velocities.length] = new cn(); }; e.prototype.Clear = function() { this.m_bodyCount = 0; this.m_contactCount = 0; this.m_jointCount = 0; }; e.prototype.AddBody = function(t) { t.m_islandIndex = this.m_bodyCount; this.m_bodies[this.m_bodyCount++] = t; }; e.prototype.AddContact = function(t) { this.m_contacts[this.m_contactCount++] = t; }; e.prototype.AddJoint = function(t) { this.m_joints[this.m_jointCount++] = t; }; e.prototype.Solve = function(n, r, s, o) { for (var a = e.s_timer.Reset(), c = r.dt, l = 0; l < this.m_bodyCount; ++l) { var h = this.m_bodies[l]; this.m_positions[l].c.Copy(h.m_sweep.c); var u = h.m_sweep.a, _ = this.m_velocities[l].v.Copy(h.m_linearVelocity), f = h.m_angularVelocity; h.m_sweep.c0.Copy(h.m_sweep.c); h.m_sweep.a0 = h.m_sweep.a; if (h.m_type === t.b2BodyType.b2_dynamicBody) { _.x += c * (h.m_gravityScale * s.x + h.m_invMass * h.m_force.x); _.y += c * (h.m_gravityScale * s.y + h.m_invMass * h.m_force.y); f += c * h.m_invI * h.m_torque; _.SelfMul(1 / (1 + c * h.m_linearDamping)); f *= 1 / (1 + c * h.m_angularDamping); } this.m_positions[l].a = u; this.m_velocities[l].w = f; } a.Reset(); var d = e.s_solverData; d.step.Copy(r); d.positions = this.m_positions; d.velocities = this.m_velocities; var m = e.s_contactSolverDef; m.step.Copy(r); m.contacts = this.m_contacts; m.count = this.m_contactCount; m.positions = this.m_positions; m.velocities = this.m_velocities; m.allocator = this.m_allocator; var p = e.s_contactSolver.Initialize(m); p.InitializeVelocityConstraints(); r.warmStarting && p.WarmStart(); for (l = 0; l < this.m_jointCount; ++l) this.m_joints[l].InitVelocityConstraints(d); n.solveInit = a.GetMilliseconds(); a.Reset(); for (l = 0; l < r.velocityIterations; ++l) { for (var v = 0; v < this.m_jointCount; ++v) this.m_joints[v].SolveVelocityConstraints(d); p.SolveVelocityConstraints(); } p.StoreImpulses(); n.solveVelocity = a.GetMilliseconds(); for (l = 0; l < this.m_bodyCount; ++l) { var x = this.m_positions[l].c, C = (u = this.m_positions[l].a, _ = this.m_velocities[l].v, f = this.m_velocities[l].w, P.MulSV(c, _, e.s_translation)); if (P.DotVV(C, C) > 4) { var b = 2 / C.Length(); _.SelfMul(b); } var A = c * f; if (A * A > 2.4674011002726646) { f *= b = 1.570796326795 / y(A); } x.x += c * _.x; x.y += c * _.y; u += c * f; this.m_positions[l].a = u; this.m_velocities[l].w = f; } a.Reset(); var S = !1; for (l = 0; l < r.positionIterations; ++l) { var w = p.SolvePositionConstraints(), T = !0; for (v = 0; v < this.m_jointCount; ++v) { var E = this.m_joints[v].SolvePositionConstraints(d); T = T && E; } if (w && T) { S = !0; break; } } for (l = 0; l < this.m_bodyCount; ++l) { var M = this.m_bodies[l]; M.m_sweep.c.Copy(this.m_positions[l].c); M.m_sweep.a = this.m_positions[l].a; M.m_linearVelocity.Copy(this.m_velocities[l].v); M.m_angularVelocity = this.m_velocities[l].w; M.SynchronizeTransform(); } n.solvePosition = a.GetMilliseconds(); this.Report(p.m_velocityConstraints); if (o) { var B = i; for (l = 0; l < this.m_bodyCount; ++l) { if ((h = this.m_bodies[l]).GetType() !== t.b2BodyType.b2_staticBody) if (!h.m_autoSleepFlag || h.m_angularVelocity * h.m_angularVelocity > .0012184696791469947 || P.DotVV(h.m_linearVelocity, h.m_linearVelocity) > 1e-4) { h.m_sleepTime = 0; B = 0; } else { h.m_sleepTime += c; B = g(B, h.m_sleepTime); } } if (B >= .5 && S) for (l = 0; l < this.m_bodyCount; ++l) { (h = this.m_bodies[l]).SetAwake(!1); } } }; e.prototype.SolveTOI = function(t, i, n) { for (var r = 0; r < this.m_bodyCount; ++r) { var s = this.m_bodies[r]; this.m_positions[r].c.Copy(s.m_sweep.c); this.m_positions[r].a = s.m_sweep.a; this.m_velocities[r].v.Copy(s.m_linearVelocity); this.m_velocities[r].w = s.m_angularVelocity; } var o = e.s_contactSolverDef; o.contacts = this.m_contacts; o.count = this.m_contactCount; o.allocator = this.m_allocator; o.step.Copy(t); o.positions = this.m_positions; o.velocities = this.m_velocities; var a = e.s_contactSolver.Initialize(o); for (r = 0; r < t.positionIterations; ++r) { if (a.SolveTOIPositionConstraints(i, n)) break; } this.m_bodies[i].m_sweep.c0.Copy(this.m_positions[i].c); this.m_bodies[i].m_sweep.a0 = this.m_positions[i].a; this.m_bodies[n].m_sweep.c0.Copy(this.m_positions[n].c); this.m_bodies[n].m_sweep.a0 = this.m_positions[n].a; a.InitializeVelocityConstraints(); for (r = 0; r < t.velocityIterations; ++r) a.SolveVelocityConstraints(); var c = t.dt; for (r = 0; r < this.m_bodyCount; ++r) { var l = this.m_positions[r].c, h = this.m_positions[r].a, u = this.m_velocities[r].v, _ = this.m_velocities[r].w, f = P.MulSV(c, u, e.s_translation); if (P.DotVV(f, f) > 4) { var d = 2 / f.Length(); u.SelfMul(d); } var m = c * _; if (m * m > 2.4674011002726646) { _ *= d = 1.570796326795 / y(m); } l.SelfMulAdd(c, u); h += c * _; this.m_positions[r].a = h; this.m_velocities[r].w = _; var p = this.m_bodies[r]; p.m_sweep.c.Copy(l); p.m_sweep.a = h; p.m_linearVelocity.Copy(u); p.m_angularVelocity = _; p.SynchronizeTransform(); } this.Report(a.m_velocityConstraints); }; e.prototype.Report = function(t) { if (null !== this.m_listener) for (var i = 0; i < this.m_contactCount; ++i) { var n = this.m_contacts[i]; if (n) { var r = t[i], s = e.s_impulse; s.count = r.pointCount; for (var o = 0; o < r.pointCount; ++o) { s.normalImpulses[o] = r.points[o].normalImpulse; s.tangentImpulses[o] = r.points[o].tangentImpulse; } this.m_listener.PostSolve(n, s); } } }; e.s_timer = new U(); e.s_solverData = new ln(); e.s_contactSolverDef = new fn(); e.s_contactSolver = new mn(); e.s_translation = new P(); e.s_impulse = new $i(); return e; })(); (function(t) { t[t.b2_waterParticle = 0] = "b2_waterParticle"; t[t.b2_zombieParticle = 2] = "b2_zombieParticle"; t[t.b2_wallParticle = 4] = "b2_wallParticle"; t[t.b2_springParticle = 8] = "b2_springParticle"; t[t.b2_elasticParticle = 16] = "b2_elasticParticle"; t[t.b2_viscousParticle = 32] = "b2_viscousParticle"; t[t.b2_powderParticle = 64] = "b2_powderParticle"; t[t.b2_tensileParticle = 128] = "b2_tensileParticle"; t[t.b2_colorMixingParticle = 256] = "b2_colorMixingParticle"; t[t.b2_destructionListenerParticle = 512] = "b2_destructionListenerParticle"; t[t.b2_barrierParticle = 1024] = "b2_barrierParticle"; t[t.b2_staticPressureParticle = 2048] = "b2_staticPressureParticle"; t[t.b2_reactiveParticle = 4096] = "b2_reactiveParticle"; t[t.b2_repulsiveParticle = 8192] = "b2_repulsiveParticle"; t[t.b2_fixtureContactListenerParticle = 16384] = "b2_fixtureContactListenerParticle"; t[t.b2_particleContactListenerParticle = 32768] = "b2_particleContactListenerParticle"; t[t.b2_fixtureContactFilterParticle = 65536] = "b2_fixtureContactFilterParticle"; t[t.b2_particleContactFilterParticle = 131072] = "b2_particleContactFilterParticle"; })(t.b2ParticleFlag || (t.b2ParticleFlag = {})); var vn = (function() { return function() { this.flags = 0; this.position = new P(); this.velocity = new P(); this.color = new z(0, 0, 0, 0); this.lifetime = 0; this.userData = null; this.group = null; }; })(); function yn(t, e, i) { return C(Math.ceil(Math.sqrt(t / (.01 * e)) * i), 1, 8); } var gn = (function() { function t() { this.m_index = u; } t.prototype.GetIndex = function() { return this.m_index; }; t.prototype.SetIndex = function(t) { this.m_index = t; }; return t; })(); (function(t) { t[t.b2_solidParticleGroup = 1] = "b2_solidParticleGroup"; t[t.b2_rigidParticleGroup = 2] = "b2_rigidParticleGroup"; t[t.b2_particleGroupCanBeEmpty = 4] = "b2_particleGroupCanBeEmpty"; t[t.b2_particleGroupWillBeDestroyed = 8] = "b2_particleGroupWillBeDestroyed"; t[t.b2_particleGroupNeedsUpdateDepth = 16] = "b2_particleGroupNeedsUpdateDepth"; t[t.b2_particleGroupInternalMask = 24] = "b2_particleGroupInternalMask"; })(t.b2ParticleGroupFlag || (t.b2ParticleGroupFlag = {})); var xn = (function() { return function() { this.flags = 0; this.groupFlags = 0; this.position = new P(); this.angle = 0; this.linearVelocity = new P(); this.angularVelocity = 0; this.color = new z(); this.strength = 1; this.shapeCount = 0; this.stride = 0; this.particleCount = 0; this.lifetime = 0; this.userData = null; this.group = null; }; })(), Cn = (function() { function e(t) { this.m_firstIndex = 0; this.m_lastIndex = 0; this.m_groupFlags = 0; this.m_strength = 1; this.m_prev = null; this.m_next = null; this.m_timestamp = -1; this.m_mass = 0; this.m_inertia = 0; this.m_center = new P(); this.m_linearVelocity = new P(); this.m_angularVelocity = 0; this.m_transform = new N(); this.m_userData = null; this.m_system = t; } e.prototype.GetNext = function() { return this.m_next; }; e.prototype.GetParticleSystem = function() { return this.m_system; }; e.prototype.GetParticleCount = function() { return this.m_lastIndex - this.m_firstIndex; }; e.prototype.GetBufferIndex = function() { return this.m_firstIndex; }; e.prototype.ContainsParticle = function(t) { return this.m_firstIndex <= t && t < this.m_lastIndex; }; e.prototype.GetAllParticleFlags = function() { if (!this.m_system.m_flagsBuffer.data) throw new Error(); for (var t = 0, e = this.m_firstIndex; e < this.m_lastIndex; e++) t |= this.m_system.m_flagsBuffer.data[e]; return t; }; e.prototype.GetGroupFlags = function() { return this.m_groupFlags; }; e.prototype.SetGroupFlags = function(e) { e |= this.m_groupFlags & t.b2ParticleGroupFlag.b2_particleGroupInternalMask; this.m_system.SetGroupFlags(this, e); }; e.prototype.GetMass = function() { this.UpdateStatistics(); return this.m_mass; }; e.prototype.GetInertia = function() { this.UpdateStatistics(); return this.m_inertia; }; e.prototype.GetCenter = function() { this.UpdateStatistics(); return this.m_center; }; e.prototype.GetLinearVelocity = function() { this.UpdateStatistics(); return this.m_linearVelocity; }; e.prototype.GetAngularVelocity = function() { this.UpdateStatistics(); return this.m_angularVelocity; }; e.prototype.GetTransform = function() { return this.m_transform; }; e.prototype.GetPosition = function() { return this.m_transform.p; }; e.prototype.GetAngle = function() { return this.m_transform.q.GetAngle(); }; e.prototype.GetLinearVelocityFromWorldPoint = function(t, i) { var n = e.GetLinearVelocityFromWorldPoint_s_t0; this.UpdateStatistics(); return P.AddVCrossSV(this.m_linearVelocity, this.m_angularVelocity, P.SubVV(t, this.m_center, n), i); }; e.prototype.GetUserData = function() { return this.m_userData; }; e.prototype.SetUserData = function(t) { this.m_userData = t; }; e.prototype.ApplyForce = function(t) { this.m_system.ApplyForce(this.m_firstIndex, this.m_lastIndex, t); }; e.prototype.ApplyLinearImpulse = function(t) { this.m_system.ApplyLinearImpulse(this.m_firstIndex, this.m_lastIndex, t); }; e.prototype.DestroyParticles = function(t) { if (this.m_system.m_world.IsLocked()) throw new Error(); for (var e = this.m_firstIndex; e < this.m_lastIndex; e++) this.m_system.DestroyParticle(e, t); }; e.prototype.UpdateStatistics = function() { if (!this.m_system.m_positionBuffer.data) throw new Error(); if (!this.m_system.m_velocityBuffer.data) throw new Error(); var t = new P(), e = new P(); if (this.m_timestamp !== this.m_system.m_timestamp) { var i = this.m_system.GetParticleMass(); this.m_mass = i * (this.m_lastIndex - this.m_firstIndex); this.m_center.SetZero(); this.m_linearVelocity.SetZero(); for (var n = this.m_firstIndex; n < this.m_lastIndex; n++) { this.m_center.SelfMulAdd(i, this.m_system.m_positionBuffer.data[n]); this.m_linearVelocity.SelfMulAdd(i, this.m_system.m_velocityBuffer.data[n]); } if (this.m_mass > 0) { var r = 1 / this.m_mass; this.m_center.SelfMul(r); this.m_linearVelocity.SelfMul(r); } this.m_inertia = 0; this.m_angularVelocity = 0; for (n = this.m_firstIndex; n < this.m_lastIndex; n++) { P.SubVV(this.m_system.m_positionBuffer.data[n], this.m_center, t); P.SubVV(this.m_system.m_velocityBuffer.data[n], this.m_linearVelocity, e); this.m_inertia += i * P.DotVV(t, t); this.m_angularVelocity += i * P.CrossVV(t, e); } this.m_inertia > 0 && (this.m_angularVelocity *= 1 / this.m_inertia); this.m_timestamp = this.m_system.m_timestamp; } }; e.GetLinearVelocityFromWorldPoint_s_t0 = new P(); return e; })(), bn = (function() { function t(t) { this.m_front = 0; this.m_back = 0; this.m_capacity = 0; this.m_buffer = d(t, (function(t) { return null; })); this.m_capacity = t; } t.prototype.Push = function(t) { if (this.m_back >= this.m_capacity) { for (var e = this.m_front; e < this.m_back; e++) this.m_buffer[e - this.m_front] = this.m_buffer[e]; this.m_back -= this.m_front; this.m_front = 0; if (this.m_back >= this.m_capacity) if (this.m_capacity > 0) { this.m_buffer.concat(d(this.m_capacity, (function(t) { return null; }))); this.m_capacity *= 2; } else { this.m_buffer.concat(d(1, (function(t) { return null; }))); this.m_capacity = 1; } } this.m_buffer[this.m_back] = t; this.m_back++; }; t.prototype.Pop = function() { this.m_buffer[this.m_front] = null; this.m_front++; }; t.prototype.Empty = function() { return this.m_front === this.m_back; }; t.prototype.Front = function() { var t = this.m_buffer[this.m_front]; if (!t) throw new Error(); return t; }; return t; })(), An = (function() { function t(e) { this.m_generatorCapacity = 0; this.m_generatorCount = 0; this.m_countX = 0; this.m_countY = 0; this.m_diagram = []; this.m_generatorBuffer = d(e, (function(e) { return new t.Generator(); })); this.m_generatorCapacity = e; } t.prototype.AddGenerator = function(t, e, i) { var n = this.m_generatorBuffer[this.m_generatorCount++]; n.center.Copy(t); n.tag = e; n.necessary = i; }; t.prototype.Generate = function(e, n) { for (var r = 1 / e, s = new P(+i, +i), o = new P(-i, -i), a = 0, c = 0; c < this.m_generatorCount; c++) { if ((f = this.m_generatorBuffer[c]).necessary) { P.MinV(s, f.center, s); P.MaxV(o, f.center, o); ++a; } } if (0 !== a) { s.x -= n; s.y -= n; o.x += n; o.y += n; this.m_countX = 1 + Math.floor(r * (o.x - s.x)); this.m_countY = 1 + Math.floor(r * (o.y - s.y)); this.m_diagram = []; var l = new bn(4 * this.m_countX * this.m_countY); for (c = 0; c < this.m_generatorCount; c++) { (f = this.m_generatorBuffer[c]).center.SelfSub(s).SelfMul(r); var h = Math.floor(f.center.x), u = Math.floor(f.center.y); h >= 0 && u >= 0 && h < this.m_countX && u < this.m_countY && l.Push(new t.Task(h, u, h + u * this.m_countX, f)); } for (;!l.Empty(); ) { h = (d = l.Front()).m_x, u = d.m_y; var _ = d.m_i, f = d.m_generator; l.Pop(); if (!this.m_diagram[_]) { this.m_diagram[_] = f; h > 0 && l.Push(new t.Task(h - 1, u, _ - 1, f)); u > 0 && l.Push(new t.Task(h, u - 1, _ - this.m_countX, f)); h < this.m_countX - 1 && l.Push(new t.Task(h + 1, u, _ + 1, f)); u < this.m_countY - 1 && l.Push(new t.Task(h, u + 1, _ + this.m_countX, f)); } } for (u = 0; u < this.m_countY; u++) for (h = 0; h < this.m_countX - 1; h++) { _ = h + u * this.m_countX; if ((m = this.m_diagram[_]) !== (p = this.m_diagram[_ + 1])) { l.Push(new t.Task(h, u, _, p)); l.Push(new t.Task(h + 1, u, _ + 1, m)); } } for (u = 0; u < this.m_countY - 1; u++) for (h = 0; h < this.m_countX; h++) { _ = h + u * this.m_countX; if ((m = this.m_diagram[_]) !== (p = this.m_diagram[_ + this.m_countX])) { l.Push(new t.Task(h, u, _, p)); l.Push(new t.Task(h, u + 1, _ + this.m_countX, m)); } } for (;!l.Empty(); ) { var d, m, p; h = (d = l.Front()).m_x, u = d.m_y, _ = d.m_i, c = d.m_generator; l.Pop(); if ((m = this.m_diagram[_]) !== (p = c)) { var v = m.center.x - h, y = m.center.y - u, g = p.center.x - h, x = p.center.y - u; if (v * v + y * y > g * g + x * x) { this.m_diagram[_] = p; h > 0 && l.Push(new t.Task(h - 1, u, _ - 1, p)); u > 0 && l.Push(new t.Task(h, u - 1, _ - this.m_countX, p)); h < this.m_countX - 1 && l.Push(new t.Task(h + 1, u, _ + 1, p)); u < this.m_countY - 1 && l.Push(new t.Task(h, u + 1, _ + this.m_countX, p)); } } } } else { this.m_countX = 0; this.m_countY = 0; } }; t.prototype.GetNodes = function(t) { for (var e = 0; e < this.m_countY - 1; e++) for (var i = 0; i < this.m_countX - 1; i++) { var n = i + e * this.m_countX, r = this.m_diagram[n], s = this.m_diagram[n + 1], o = this.m_diagram[n + this.m_countX], a = this.m_diagram[n + 1 + this.m_countX]; if (s !== o) { r !== s && r !== o && (r.necessary || s.necessary || o.necessary) && t(r.tag, s.tag, o.tag); a !== s && a !== o && (r.necessary || s.necessary || o.necessary) && t(s.tag, a.tag, o.tag); } } }; return t; })(); (function(t) { var e = (function() { return function() { this.center = new P(); this.tag = 0; this.necessary = !1; }; })(); t.Generator = e; var i = (function() { return function(t, e, i, n) { this.m_x = t; this.m_y = e; this.m_i = i; this.m_generator = n; }; })(); t.Task = i; })(An || (An = {})); function Sn(t, e, i) { var n = t[e]; t[e] = t[i]; t[i] = n; } function wn(t, e) { return t < e; } function Tn(t, e, i, n) { void 0 === e && (e = 0); void 0 === i && (i = t.length - e); void 0 === n && (n = wn); for (var r = e, s = [], o = 0; ;) { for (;r + 1 < i; i++) { var a = t[r + Math.floor(Math.random() * (i - r))]; s[o++] = i; for (var c = r - 1; ;) { for (;n(t[++c], a); ) ; for (;n(a, t[--i]); ) ; if (c >= i) break; Sn(t, c, i); } } if (0 === o) break; r = i; i = s[--o]; } return t; } function En(t, e, i, n) { void 0 === e && (e = 0); void 0 === i && (i = t.length - e); void 0 === n && (n = wn); return Tn(t, e, i, n); } function Mn(t, e, i) { void 0 === i && (i = t.length); for (var n = 0, r = 0; r < i; ++r) e(t[r]) || (r !== n ? Sn(t, n++, r) : ++n); return n; } function Bn(t, e, i, n, r) { void 0 === r && (r = wn); for (var s = i - e; s > 0; ) { var o = Math.floor(s / 2), a = e + o; if (r(t[a], n)) { e = ++a; s -= o + 1; } else s = o; } return e; } function Dn(t, e, i, n, r) { void 0 === r && (r = wn); for (var s = i - e; s > 0; ) { var o = Math.floor(s / 2), a = e + o; if (r(n, t[a])) s = o; else { e = ++a; s -= o + 1; } } return e; } function In(t, e, i, n) { for (var r = i; e !== r; ) { Sn(t, e++, r++); r === n ? r = i : e === i && (i = r); } } function Pn(t, e, i, n) { if (e === i) return i; for (var r = e; ++e !== i; ) n(t[r], t[e]) || Sn(t, ++r, e); return ++r; } var Rn = (function() { function t(t) { this.data = []; this.count = 0; this.capacity = 0; this.allocator = t; } t.prototype.Append = function() { this.count >= this.capacity && this.Grow(); return this.count++; }; t.prototype.Reserve = function(t) { if (!(this.capacity >= t)) { for (var e = this.capacity; e < t; ++e) this.data[e] = this.allocator(); this.capacity = t; } }; t.prototype.Grow = function() { var t = this.capacity ? 2 * this.capacity : 256; this.Reserve(t); }; t.prototype.Free = function() { if (0 !== this.data.length) { this.data = []; this.capacity = 0; this.count = 0; } }; t.prototype.Shorten = function(t) {}; t.prototype.Data = function() { return this.data; }; t.prototype.GetCount = function() { return this.count; }; t.prototype.SetCount = function(t) { this.count = t; }; t.prototype.GetCapacity = function() { return this.capacity; }; t.prototype.RemoveIf = function(t) { this.count = Mn(this.data, t, this.count); }; t.prototype.Unique = function(t) { this.count = Pn(this.data, 0, this.count, t); }; return t; })(), Ln = (function(t) { $e(e, t); function e(e) { var i = t.call(this) || this; i.m_system = e; return i; } e.prototype.ShouldQueryParticleSystem = function(t) { return !1; }; e.prototype.ReportFixture = function(t) { if (t.IsSensor()) return !0; for (var e = t.GetShape().GetChildCount(), i = 0; i < e; i++) for (var n = t.GetAABB(i), r = this.m_system.GetInsideBoundsEnumerator(n), s = void 0; (s = r.GetNext()) >= 0; ) this.ReportFixtureAndParticle(t, i, s); return !0; }; e.prototype.ReportParticle = function(t, e) { return !1; }; e.prototype.ReportFixtureAndParticle = function(t, e, i) {}; return e; })(en), Fn = (function() { function t() { this.indexA = 0; this.indexB = 0; this.weight = 0; this.normal = new P(); this.flags = 0; } t.prototype.SetIndices = function(t, e) { this.indexA = t; this.indexB = e; }; t.prototype.SetWeight = function(t) { this.weight = t; }; t.prototype.SetNormal = function(t) { this.normal.Copy(t); }; t.prototype.SetFlags = function(t) { this.flags = t; }; t.prototype.GetIndexA = function() { return this.indexA; }; t.prototype.GetIndexB = function() { return this.indexB; }; t.prototype.GetWeight = function() { return this.weight; }; t.prototype.GetNormal = function() { return this.normal; }; t.prototype.GetFlags = function() { return this.flags; }; t.prototype.IsEqual = function(t) { return this.indexA === t.indexA && this.indexB === t.indexB && this.flags === t.flags && this.weight === t.weight && this.normal.x === t.normal.x && this.normal.y === t.normal.y; }; t.prototype.IsNotEqual = function(t) { return !this.IsEqual(t); }; t.prototype.ApproximatelyEqual = function(t) { return this.indexA === t.indexA && this.indexB === t.indexB && this.flags === t.flags && y(this.weight - t.weight) < .01 && P.DistanceSquaredVV(this.normal, t.normal) < 1e-4; }; return t; })(), On = (function() { return function() { this.index = 0; this.weight = 0; this.normal = new P(); this.mass = 0; }; })(), Vn = (function() { return function() { this.indexA = 0; this.indexB = 0; this.flags = 0; this.strength = 0; this.distance = 0; }; })(), Nn = (function() { return function() { this.indexA = 0; this.indexB = 0; this.indexC = 0; this.flags = 0; this.strength = 0; this.pa = new P(0, 0); this.pb = new P(0, 0); this.pc = new P(0, 0); this.ka = 0; this.kb = 0; this.kc = 0; this.s = 0; }; })(), kn = (function() { function t() { this.strictContactCheck = !1; this.density = 1; this.gravityScale = 1; this.radius = 1; this.maxCount = 0; this.pressureStrength = .005; this.dampingStrength = 1; this.elasticStrength = .25; this.springStrength = .25; this.viscousStrength = .25; this.surfaceTensionPressureStrength = .2; this.surfaceTensionNormalStrength = .2; this.repulsiveStrength = 1; this.powderStrength = .5; this.ejectionStrength = .5; this.staticPressureStrength = .2; this.staticPressureRelaxation = .2; this.staticPressureIterations = 8; this.colorMixingStrength = .5; this.destroyByAge = !0; this.lifetimeGranularity = 1 / 60; } t.prototype.Copy = function(t) { this.strictContactCheck = t.strictContactCheck; this.density = t.density; this.gravityScale = t.gravityScale; this.radius = t.radius; this.maxCount = t.maxCount; this.pressureStrength = t.pressureStrength; this.dampingStrength = t.dampingStrength; this.elasticStrength = t.elasticStrength; this.springStrength = t.springStrength; this.viscousStrength = t.viscousStrength; this.surfaceTensionPressureStrength = t.surfaceTensionPressureStrength; this.surfaceTensionNormalStrength = t.surfaceTensionNormalStrength; this.repulsiveStrength = t.repulsiveStrength; this.powderStrength = t.powderStrength; this.ejectionStrength = t.ejectionStrength; this.staticPressureStrength = t.staticPressureStrength; this.staticPressureRelaxation = t.staticPressureRelaxation; this.staticPressureIterations = t.staticPressureIterations; this.colorMixingStrength = t.colorMixingStrength; this.destroyByAge = t.destroyByAge; this.lifetimeGranularity = t.lifetimeGranularity; return this; }; t.prototype.Clone = function() { return new t().Copy(this); }; return t; })(); t.b2ParticleSystem = (function() { function n(t, e) { this.m_paused = !1; this.m_timestamp = 0; this.m_allParticleFlags = 0; this.m_needsUpdateAllParticleFlags = !1; this.m_allGroupFlags = 0; this.m_needsUpdateAllGroupFlags = !1; this.m_hasForce = !1; this.m_iterationIndex = 0; this.m_inverseDensity = 0; this.m_particleDiameter = 0; this.m_inverseDiameter = 0; this.m_squaredDiameter = 0; this.m_count = 0; this.m_internalAllocatedCapacity = 0; this.m_handleIndexBuffer = new n.UserOverridableBuffer(); this.m_flagsBuffer = new n.UserOverridableBuffer(); this.m_positionBuffer = new n.UserOverridableBuffer(); this.m_velocityBuffer = new n.UserOverridableBuffer(); this.m_forceBuffer = []; this.m_weightBuffer = []; this.m_staticPressureBuffer = []; this.m_accumulationBuffer = []; this.m_accumulation2Buffer = []; this.m_depthBuffer = []; this.m_colorBuffer = new n.UserOverridableBuffer(); this.m_groupBuffer = []; this.m_userDataBuffer = new n.UserOverridableBuffer(); this.m_stuckThreshold = 0; this.m_lastBodyContactStepBuffer = new n.UserOverridableBuffer(); this.m_bodyContactCountBuffer = new n.UserOverridableBuffer(); this.m_consecutiveContactStepsBuffer = new n.UserOverridableBuffer(); this.m_stuckParticleBuffer = new Rn(function() { return 0; }); this.m_proxyBuffer = new Rn(function() { return new n.Proxy(); }); this.m_contactBuffer = new Rn(function() { return new Fn(); }); this.m_bodyContactBuffer = new Rn(function() { return new On(); }); this.m_pairBuffer = new Rn(function() { return new Vn(); }); this.m_triadBuffer = new Rn(function() { return new Nn(); }); this.m_expirationTimeBuffer = new n.UserOverridableBuffer(); this.m_indexByExpirationTimeBuffer = new n.UserOverridableBuffer(); this.m_timeElapsed = 0; this.m_expirationTimeBufferRequiresSorting = !1; this.m_groupCount = 0; this.m_groupList = null; this.m_def = new kn(); this.m_prev = null; this.m_next = null; this.SetStrictContactCheck(t.strictContactCheck); this.SetDensity(t.density); this.SetGravityScale(t.gravityScale); this.SetRadius(t.radius); this.SetMaxParticleCount(t.maxCount); this.m_def = t.Clone(); this.m_world = e; this.SetDestructionByAge(this.m_def.destroyByAge); } n.computeTag = function(t, e) { return (e + n.yOffset >>> 0 << n.yShift) + (n.xScale * t + n.xOffset >>> 0) >>> 0; }; n.computeRelativeTag = function(t, e, i) { return t + (i << n.yShift) + (e << n.xShift) >>> 0; }; n.prototype.Drop = function() { for (;this.m_groupList; ) this.DestroyParticleGroup(this.m_groupList); this.FreeUserOverridableBuffer(this.m_handleIndexBuffer); this.FreeUserOverridableBuffer(this.m_flagsBuffer); this.FreeUserOverridableBuffer(this.m_lastBodyContactStepBuffer); this.FreeUserOverridableBuffer(this.m_bodyContactCountBuffer); this.FreeUserOverridableBuffer(this.m_consecutiveContactStepsBuffer); this.FreeUserOverridableBuffer(this.m_positionBuffer); this.FreeUserOverridableBuffer(this.m_velocityBuffer); this.FreeUserOverridableBuffer(this.m_colorBuffer); this.FreeUserOverridableBuffer(this.m_userDataBuffer); this.FreeUserOverridableBuffer(this.m_expirationTimeBuffer); this.FreeUserOverridableBuffer(this.m_indexByExpirationTimeBuffer); this.FreeBuffer(this.m_forceBuffer, this.m_internalAllocatedCapacity); this.FreeBuffer(this.m_weightBuffer, this.m_internalAllocatedCapacity); this.FreeBuffer(this.m_staticPressureBuffer, this.m_internalAllocatedCapacity); this.FreeBuffer(this.m_accumulationBuffer, this.m_internalAllocatedCapacity); this.FreeBuffer(this.m_accumulation2Buffer, this.m_internalAllocatedCapacity); this.FreeBuffer(this.m_depthBuffer, this.m_internalAllocatedCapacity); this.FreeBuffer(this.m_groupBuffer, this.m_internalAllocatedCapacity); }; n.prototype.CreateParticle = function(t) { if (this.m_world.IsLocked()) throw new Error(); if (this.m_count >= this.m_internalAllocatedCapacity) { var i = this.m_count ? 2 * this.m_count : 256; this.ReallocateInternalAllocatedBuffers(i); } if (this.m_count >= this.m_internalAllocatedCapacity) { if (!this.m_def.destroyByAge) return u; this.DestroyOldestParticle(0, !1); this.SolveZombie(); } var n = this.m_count++; if (!this.m_flagsBuffer.data) throw new Error(); this.m_flagsBuffer.data[n] = 0; this.m_lastBodyContactStepBuffer.data && (this.m_lastBodyContactStepBuffer.data[n] = 0); this.m_bodyContactCountBuffer.data && (this.m_bodyContactCountBuffer.data[n] = 0); this.m_consecutiveContactStepsBuffer.data && (this.m_consecutiveContactStepsBuffer.data[n] = 0); if (!this.m_positionBuffer.data) throw new Error(); if (!this.m_velocityBuffer.data) throw new Error(); this.m_positionBuffer.data[n] = (this.m_positionBuffer.data[n] || new P()).Copy(e(t.position, P.ZERO)); this.m_velocityBuffer.data[n] = (this.m_velocityBuffer.data[n] || new P()).Copy(e(t.velocity, P.ZERO)); this.m_weightBuffer[n] = 0; this.m_forceBuffer[n] = (this.m_forceBuffer[n] || new P()).SetZero(); this.m_staticPressureBuffer && (this.m_staticPressureBuffer[n] = 0); this.m_depthBuffer && (this.m_depthBuffer[n] = 0); var r = new z().Copy(e(t.color, z.ZERO)); if (this.m_colorBuffer.data || !r.IsZero()) { this.m_colorBuffer.data = this.RequestBuffer(this.m_colorBuffer.data); this.m_colorBuffer.data[n] = (this.m_colorBuffer.data[n] || new z()).Copy(r); } if (this.m_userDataBuffer.data || t.userData) { this.m_userDataBuffer.data = this.RequestBuffer(this.m_userDataBuffer.data); this.m_userDataBuffer.data[n] = t.userData; } this.m_handleIndexBuffer.data && (this.m_handleIndexBuffer.data[n] = null); var s = this.m_proxyBuffer.data[this.m_proxyBuffer.Append()], o = e(t.lifetime, 0), a = o > 0; if (this.m_expirationTimeBuffer.data || a) { this.SetParticleLifetime(n, a ? o : this.ExpirationTimeToLifetime(-this.GetQuantizedTimeElapsed())); if (!this.m_indexByExpirationTimeBuffer.data) throw new Error(); this.m_indexByExpirationTimeBuffer.data[n] = n; } s.index = n; var c = e(t.group, null); this.m_groupBuffer[n] = c; if (c) if (c.m_firstIndex < c.m_lastIndex) { this.RotateBuffer(c.m_firstIndex, c.m_lastIndex, n); c.m_lastIndex = n + 1; } else { c.m_firstIndex = n; c.m_lastIndex = n + 1; } this.SetParticleFlags(n, e(t.flags, 0)); return n; }; n.prototype.GetParticleHandleFromIndex = function(t) { this.m_handleIndexBuffer.data = this.RequestBuffer(this.m_handleIndexBuffer.data); var e = this.m_handleIndexBuffer.data[t]; if (e) return e; (e = new gn()).SetIndex(t); this.m_handleIndexBuffer.data[t] = e; return e; }; n.prototype.DestroyParticle = function(e, i) { void 0 === i && (i = !1); if (!this.m_flagsBuffer.data) throw new Error(); var n = t.b2ParticleFlag.b2_zombieParticle; i && (n |= t.b2ParticleFlag.b2_destructionListenerParticle); this.SetParticleFlags(e, this.m_flagsBuffer.data[e] | n); }; n.prototype.DestroyOldestParticle = function(t, e) { void 0 === e && (e = !1); var i = this.GetParticleCount(); if (!this.m_indexByExpirationTimeBuffer.data) throw new Error(); if (!this.m_expirationTimeBuffer.data) throw new Error(); var n = this.m_indexByExpirationTimeBuffer.data[i - (t + 1)], r = this.m_indexByExpirationTimeBuffer.data[t]; this.DestroyParticle(this.m_expirationTimeBuffer.data[n] > 0 ? n : r, e); }; n.prototype.DestroyParticlesInShape = function(t, e, i) { void 0 === i && (i = !1); var r = n.DestroyParticlesInShape_s_aabb; if (this.m_world.IsLocked()) throw new Error(); var s = new n.DestroyParticlesInShapeCallback(this, t, e, i), o = r; t.ComputeAABB(o, e, 0); this.m_world.QueryAABB(s, o); return s.Destroyed(); }; n.prototype.CreateParticleGroup = function(t) { var i = n.CreateParticleGroup_s_transform; if (this.m_world.IsLocked()) throw new Error(); var r = i; r.SetPositionAngle(e(t.position, P.ZERO), e(t.angle, 0)); var s = this.m_count; t.shape && this.CreateParticlesWithShapeForGroup(t.shape, t, r); t.shapes && this.CreateParticlesWithShapesForGroup(t.shapes, e(t.shapeCount, t.shapes.length), t, r); if (t.positionData) for (var o = e(t.particleCount, t.positionData.length), a = 0; a < o; a++) { var c = t.positionData[a]; this.CreateParticleForGroup(t, r, c); } var l = this.m_count, h = new Cn(this); h.m_firstIndex = s; h.m_lastIndex = l; h.m_strength = e(t.strength, 1); h.m_userData = t.userData; h.m_transform.Copy(r); h.m_prev = null; h.m_next = this.m_groupList; this.m_groupList && (this.m_groupList.m_prev = h); this.m_groupList = h; ++this.m_groupCount; for (a = s; a < l; a++) this.m_groupBuffer[a] = h; this.SetGroupFlags(h, e(t.groupFlags, 0)); var u = new n.ConnectionFilter(); this.UpdateContacts(!0); this.UpdatePairsAndTriads(s, l, u); if (t.group) { this.JoinParticleGroups(t.group, h); h = t.group; } return h; }; n.prototype.JoinParticleGroups = function(t, e) { if (this.m_world.IsLocked()) throw new Error(); this.RotateBuffer(e.m_firstIndex, e.m_lastIndex, this.m_count); this.RotateBuffer(t.m_firstIndex, t.m_lastIndex, e.m_firstIndex); var i = new n.JoinParticleGroupsFilter(e.m_firstIndex); this.UpdateContacts(!0); this.UpdatePairsAndTriads(t.m_firstIndex, e.m_lastIndex, i); for (var r = e.m_firstIndex; r < e.m_lastIndex; r++) this.m_groupBuffer[r] = t; var s = t.m_groupFlags | e.m_groupFlags; this.SetGroupFlags(t, s); t.m_lastIndex = e.m_lastIndex; e.m_firstIndex = e.m_lastIndex; this.DestroyParticleGroup(e); }; n.prototype.SplitParticleGroup = function(t) { this.UpdateContacts(!0); var e = d(t.GetParticleCount(), (function(t) { return new n.ParticleListNode(); })); n.InitializeParticleLists(t, e); this.MergeParticleListsInContact(t, e); var i = n.FindLongestParticleList(t, e); this.MergeZombieParticleListNodes(t, e, i); this.CreateParticleGroupsFromParticleList(t, e, i); this.UpdatePairsAndTriadsWithParticleList(t, e); }; n.prototype.GetParticleGroupList = function() { return this.m_groupList; }; n.prototype.GetParticleGroupCount = function() { return this.m_groupCount; }; n.prototype.GetParticleCount = function() { return this.m_count; }; n.prototype.GetMaxParticleCount = function() { return this.m_def.maxCount; }; n.prototype.SetMaxParticleCount = function(t) { this.m_def.maxCount = t; }; n.prototype.GetAllParticleFlags = function() { return this.m_allParticleFlags; }; n.prototype.GetAllGroupFlags = function() { return this.m_allGroupFlags; }; n.prototype.SetPaused = function(t) { this.m_paused = t; }; n.prototype.GetPaused = function() { return this.m_paused; }; n.prototype.SetDensity = function(t) { this.m_def.density = t; this.m_inverseDensity = 1 / this.m_def.density; }; n.prototype.GetDensity = function() { return this.m_def.density; }; n.prototype.SetGravityScale = function(t) { this.m_def.gravityScale = t; }; n.prototype.GetGravityScale = function() { return this.m_def.gravityScale; }; n.prototype.SetDamping = function(t) { this.m_def.dampingStrength = t; }; n.prototype.GetDamping = function() { return this.m_def.dampingStrength; }; n.prototype.SetStaticPressureIterations = function(t) { this.m_def.staticPressureIterations = t; }; n.prototype.GetStaticPressureIterations = function() { return this.m_def.staticPressureIterations; }; n.prototype.SetRadius = function(t) { this.m_particleDiameter = 2 * t; this.m_squaredDiameter = this.m_particleDiameter * this.m_particleDiameter; this.m_inverseDiameter = 1 / this.m_particleDiameter; }; n.prototype.GetRadius = function() { return this.m_particleDiameter / 2; }; n.prototype.GetPositionBuffer = function() { if (!this.m_positionBuffer.data) throw new Error(); return this.m_positionBuffer.data; }; n.prototype.GetVelocityBuffer = function() { if (!this.m_velocityBuffer.data) throw new Error(); return this.m_velocityBuffer.data; }; n.prototype.GetColorBuffer = function() { this.m_colorBuffer.data = this.RequestBuffer(this.m_colorBuffer.data); return this.m_colorBuffer.data; }; n.prototype.GetGroupBuffer = function() { return this.m_groupBuffer; }; n.prototype.GetWeightBuffer = function() { return this.m_weightBuffer; }; n.prototype.GetUserDataBuffer = function() { this.m_userDataBuffer.data = this.RequestBuffer(this.m_userDataBuffer.data); return this.m_userDataBuffer.data; }; n.prototype.GetFlagsBuffer = function() { if (!this.m_flagsBuffer.data) throw new Error(); return this.m_flagsBuffer.data; }; n.prototype.SetParticleFlags = function(e, i) { if (!this.m_flagsBuffer.data) throw new Error(); this.m_flagsBuffer.data[e] & ~i && (this.m_needsUpdateAllParticleFlags = !0); if (~this.m_allParticleFlags & i) { i & t.b2ParticleFlag.b2_tensileParticle && (this.m_accumulation2Buffer = this.RequestBuffer(this.m_accumulation2Buffer)); i & t.b2ParticleFlag.b2_colorMixingParticle && (this.m_colorBuffer.data = this.RequestBuffer(this.m_colorBuffer.data)); this.m_allParticleFlags |= i; } this.m_flagsBuffer.data[e] = i; }; n.prototype.GetParticleFlags = function(t) { if (!this.m_flagsBuffer.data) throw new Error(); return this.m_flagsBuffer.data[t]; }; n.prototype.SetFlagsBuffer = function(t, e) { this.SetUserOverridableBuffer(this.m_flagsBuffer, t, e); }; n.prototype.SetPositionBuffer = function(t, e) { this.SetUserOverridableBuffer(this.m_positionBuffer, t, e); }; n.prototype.SetVelocityBuffer = function(t, e) { this.SetUserOverridableBuffer(this.m_velocityBuffer, t, e); }; n.prototype.SetColorBuffer = function(t, e) { this.SetUserOverridableBuffer(this.m_colorBuffer, t, e); }; n.prototype.SetUserDataBuffer = function(t, e) { this.SetUserOverridableBuffer(this.m_userDataBuffer, t, e); }; n.prototype.GetContacts = function() { return this.m_contactBuffer.data; }; n.prototype.GetContactCount = function() { return this.m_contactBuffer.count; }; n.prototype.GetBodyContacts = function() { return this.m_bodyContactBuffer.data; }; n.prototype.GetBodyContactCount = function() { return this.m_bodyContactBuffer.count; }; n.prototype.GetPairs = function() { return this.m_pairBuffer.data; }; n.prototype.GetPairCount = function() { return this.m_pairBuffer.count; }; n.prototype.GetTriads = function() { return this.m_triadBuffer.data; }; n.prototype.GetTriadCount = function() { return this.m_triadBuffer.count; }; n.prototype.SetStuckThreshold = function(t) { this.m_stuckThreshold = t; if (t > 0) { this.m_lastBodyContactStepBuffer.data = this.RequestBuffer(this.m_lastBodyContactStepBuffer.data); this.m_bodyContactCountBuffer.data = this.RequestBuffer(this.m_bodyContactCountBuffer.data); this.m_consecutiveContactStepsBuffer.data = this.RequestBuffer(this.m_consecutiveContactStepsBuffer.data); } }; n.prototype.GetStuckCandidates = function() { return this.m_stuckParticleBuffer.Data(); }; n.prototype.GetStuckCandidateCount = function() { return this.m_stuckParticleBuffer.GetCount(); }; n.prototype.ComputeCollisionEnergy = function() { if (!this.m_velocityBuffer.data) throw new Error(); for (var t = n.ComputeCollisionEnergy_s_v, e = this.m_velocityBuffer.data, i = 0, r = 0; r < this.m_contactBuffer.count; r++) { var s = this.m_contactBuffer.data[r], o = s.indexA, a = s.indexB, c = s.normal, l = P.SubVV(e[a], e[o], t), h = P.DotVV(l, c); h < 0 && (i += h * h); } return .5 * this.GetParticleMass() * i; }; n.prototype.SetStrictContactCheck = function(t) { this.m_def.strictContactCheck = t; }; n.prototype.GetStrictContactCheck = function() { return this.m_def.strictContactCheck; }; n.prototype.SetParticleLifetime = function(t, e) { var i = null === this.m_indexByExpirationTimeBuffer.data; this.m_expirationTimeBuffer.data = this.RequestBuffer(this.m_expirationTimeBuffer.data); this.m_indexByExpirationTimeBuffer.data = this.RequestBuffer(this.m_indexByExpirationTimeBuffer.data); if (i) for (var n = this.GetParticleCount(), r = 0; r < n; ++r) this.m_indexByExpirationTimeBuffer.data[r] = r; var s = e / this.m_def.lifetimeGranularity, o = s > 0 ? this.GetQuantizedTimeElapsed() + s : s; if (o !== this.m_expirationTimeBuffer.data[t]) { this.m_expirationTimeBuffer.data[t] = o; this.m_expirationTimeBufferRequiresSorting = !0; } }; n.prototype.GetParticleLifetime = function(t) { return this.ExpirationTimeToLifetime(this.GetExpirationTimeBuffer()[t]); }; n.prototype.SetDestructionByAge = function(t) { t && this.GetExpirationTimeBuffer(); this.m_def.destroyByAge = t; }; n.prototype.GetDestructionByAge = function() { return this.m_def.destroyByAge; }; n.prototype.GetExpirationTimeBuffer = function() { this.m_expirationTimeBuffer.data = this.RequestBuffer(this.m_expirationTimeBuffer.data); return this.m_expirationTimeBuffer.data; }; n.prototype.ExpirationTimeToLifetime = function(t) { return (t > 0 ? t - this.GetQuantizedTimeElapsed() : t) * this.m_def.lifetimeGranularity; }; n.prototype.GetIndexByExpirationTimeBuffer = function() { this.GetParticleCount() ? this.SetParticleLifetime(0, this.GetParticleLifetime(0)) : this.m_indexByExpirationTimeBuffer.data = this.RequestBuffer(this.m_indexByExpirationTimeBuffer.data); if (!this.m_indexByExpirationTimeBuffer.data) throw new Error(); return this.m_indexByExpirationTimeBuffer.data; }; n.prototype.ParticleApplyLinearImpulse = function(t, e) { this.ApplyLinearImpulse(t, t + 1, e); }; n.prototype.ApplyLinearImpulse = function(t, e, i) { if (!this.m_velocityBuffer.data) throw new Error(); for (var n = this.m_velocityBuffer.data, r = (e - t) * this.GetParticleMass(), s = new P().Copy(i).SelfMul(1 / r), o = t; o < e; o++) n[o].SelfAdd(s); }; n.IsSignificantForce = function(t) { return 0 !== t.x || 0 !== t.y; }; n.prototype.ParticleApplyForce = function(t, e) { if (!this.m_flagsBuffer.data) throw new Error(); if (n.IsSignificantForce(e) && this.ForceCanBeApplied(this.m_flagsBuffer.data[t])) { this.PrepareForceBuffer(); this.m_forceBuffer[t].SelfAdd(e); } }; n.prototype.ApplyForce = function(t, e, i) { var r = new P().Copy(i).SelfMul(1 / (e - t)); if (n.IsSignificantForce(r)) { this.PrepareForceBuffer(); for (var s = t; s < e; s++) this.m_forceBuffer[s].SelfAdd(r); } }; n.prototype.GetNext = function() { return this.m_next; }; n.prototype.QueryAABB = function(t, e) { if (0 !== this.m_proxyBuffer.count) { var i = this.m_proxyBuffer.count, r = Bn(this.m_proxyBuffer.data, 0, i, n.computeTag(this.m_inverseDiameter * e.lowerBound.x, this.m_inverseDiameter * e.lowerBound.y), n.Proxy.CompareProxyTag), s = Dn(this.m_proxyBuffer.data, r, i, n.computeTag(this.m_inverseDiameter * e.upperBound.x, this.m_inverseDiameter * e.upperBound.y), n.Proxy.CompareTagProxy); if (!this.m_positionBuffer.data) throw new Error(); for (var o = this.m_positionBuffer.data, a = r; a < s; ++a) { var c = this.m_proxyBuffer.data[a].index, l = o[c]; if (e.lowerBound.x < l.x && l.x < e.upperBound.x && e.lowerBound.y < l.y && l.y < e.upperBound.y && !t.ReportParticle(this, c)) break; } } }; n.prototype.QueryShapeAABB = function(t, e, i, r) { void 0 === r && (r = 0); var s = n.QueryShapeAABB_s_aabb; e.ComputeAABB(s, i, r); this.QueryAABB(t, s); }; n.prototype.QueryPointAABB = function(t, e, i) { void 0 === i && (i = c); var r = n.QueryPointAABB_s_aabb; r.lowerBound.Set(e.x - i, e.y - i); r.upperBound.Set(e.x + i, e.y + i); this.QueryAABB(t, r); }; n.prototype.RayCast = function(t, e, i) { var r = n.RayCast_s_aabb, s = n.RayCast_s_p, o = n.RayCast_s_v, a = n.RayCast_s_n, c = n.RayCast_s_point; if (0 !== this.m_proxyBuffer.count) { if (!this.m_positionBuffer.data) throw new Error(); var l = this.m_positionBuffer.data, h = r; P.MinV(e, i, h.lowerBound); P.MaxV(e, i, h.upperBound); for (var u, _ = 1, f = P.SubVV(i, e, o), d = P.DotVV(f, f), m = this.GetInsideBoundsEnumerator(h); (u = m.GetNext()) >= 0; ) { var p = P.SubVV(e, l[u], s), v = P.DotVV(p, f), y = v * v - d * (P.DotVV(p, p) - this.m_squaredDiameter); if (y >= 0) { var x = w(y), C = (-v - x) / d; if (C > _) continue; if (C < 0 && ((C = (-v + x) / d) < 0 || C > _)) continue; var b = P.AddVMulSV(p, C, f, a); b.Normalize(); var A = t.ReportParticle(this, u, P.AddVMulSV(e, C, f, c), b, C); if ((_ = g(_, A)) <= 0) break; } } } }; n.prototype.ComputeAABB = function(t) { var e = this.GetParticleCount(); t.lowerBound.x = +i; t.lowerBound.y = +i; t.upperBound.x = -i; t.upperBound.y = -i; if (!this.m_positionBuffer.data) throw new Error(); for (var n = this.m_positionBuffer.data, r = 0; r < e; r++) { var s = n[r]; P.MinV(t.lowerBound, s, t.lowerBound); P.MaxV(t.upperBound, s, t.upperBound); } t.lowerBound.x -= this.m_particleDiameter; t.lowerBound.y -= this.m_particleDiameter; t.upperBound.x += this.m_particleDiameter; t.upperBound.y += this.m_particleDiameter; }; n.prototype.FreeBuffer = function(t, e) { null !== t && (t.length = 0); }; n.prototype.FreeUserOverridableBuffer = function(t) { 0 === t.userSuppliedCapacity && this.FreeBuffer(t.data, this.m_internalAllocatedCapacity); }; n.prototype.ReallocateBuffer3 = function(t, e, i) { if (i <= e) throw new Error(); var n = t ? t.slice() : []; n.length = i; return n; }; n.prototype.ReallocateBuffer5 = function(t, e, i, n, r) { if (n <= i) throw new Error(); if (e && !(n <= e)) throw new Error(); r && !t || e || (t = this.ReallocateBuffer3(t, i, n)); return t; }; n.prototype.ReallocateBuffer4 = function(t, e, i, n) { return this.ReallocateBuffer5(t.data, t.userSuppliedCapacity, e, i, n); }; n.prototype.RequestBuffer = function(t) { if (!t) { 0 === this.m_internalAllocatedCapacity && this.ReallocateInternalAllocatedBuffers(256); (t = []).length = this.m_internalAllocatedCapacity; } return t; }; n.prototype.ReallocateHandleBuffers = function(t) { this.m_handleIndexBuffer.data = this.ReallocateBuffer4(this.m_handleIndexBuffer, this.m_internalAllocatedCapacity, t, !0); }; n.prototype.ReallocateInternalAllocatedBuffers = function(t) { function e(t, e) { return e && t > e ? e : t; } t = e(t = e(t = e(t = e(t = e(t = e(t, this.m_def.maxCount), this.m_flagsBuffer.userSuppliedCapacity), this.m_positionBuffer.userSuppliedCapacity), this.m_velocityBuffer.userSuppliedCapacity), this.m_colorBuffer.userSuppliedCapacity), this.m_userDataBuffer.userSuppliedCapacity); if (this.m_internalAllocatedCapacity < t) { this.ReallocateHandleBuffers(t); this.m_flagsBuffer.data = this.ReallocateBuffer4(this.m_flagsBuffer, this.m_internalAllocatedCapacity, t, !1); var i = this.m_stuckThreshold > 0; this.m_lastBodyContactStepBuffer.data = this.ReallocateBuffer4(this.m_lastBodyContactStepBuffer, this.m_internalAllocatedCapacity, t, i); this.m_bodyContactCountBuffer.data = this.ReallocateBuffer4(this.m_bodyContactCountBuffer, this.m_internalAllocatedCapacity, t, i); this.m_consecutiveContactStepsBuffer.data = this.ReallocateBuffer4(this.m_consecutiveContactStepsBuffer, this.m_internalAllocatedCapacity, t, i); this.m_positionBuffer.data = this.ReallocateBuffer4(this.m_positionBuffer, this.m_internalAllocatedCapacity, t, !1); this.m_velocityBuffer.data = this.ReallocateBuffer4(this.m_velocityBuffer, this.m_internalAllocatedCapacity, t, !1); this.m_forceBuffer = this.ReallocateBuffer5(this.m_forceBuffer, 0, this.m_internalAllocatedCapacity, t, !1); this.m_weightBuffer = this.ReallocateBuffer5(this.m_weightBuffer, 0, this.m_internalAllocatedCapacity, t, !1); this.m_staticPressureBuffer = this.ReallocateBuffer5(this.m_staticPressureBuffer, 0, this.m_internalAllocatedCapacity, t, !0); this.m_accumulationBuffer = this.ReallocateBuffer5(this.m_accumulationBuffer, 0, this.m_internalAllocatedCapacity, t, !1); this.m_accumulation2Buffer = this.ReallocateBuffer5(this.m_accumulation2Buffer, 0, this.m_internalAllocatedCapacity, t, !0); this.m_depthBuffer = this.ReallocateBuffer5(this.m_depthBuffer, 0, this.m_internalAllocatedCapacity, t, !0); this.m_colorBuffer.data = this.ReallocateBuffer4(this.m_colorBuffer, this.m_internalAllocatedCapacity, t, !0); this.m_groupBuffer = this.ReallocateBuffer5(this.m_groupBuffer, 0, this.m_internalAllocatedCapacity, t, !1); this.m_userDataBuffer.data = this.ReallocateBuffer4(this.m_userDataBuffer, this.m_internalAllocatedCapacity, t, !0); this.m_expirationTimeBuffer.data = this.ReallocateBuffer4(this.m_expirationTimeBuffer, this.m_internalAllocatedCapacity, t, !0); this.m_indexByExpirationTimeBuffer.data = this.ReallocateBuffer4(this.m_indexByExpirationTimeBuffer, this.m_internalAllocatedCapacity, t, !1); this.m_internalAllocatedCapacity = t; } }; n.prototype.CreateParticleForGroup = function(t, i, n) { var r = new vn(); r.flags = e(t.flags, 0); N.MulXV(i, n, r.position); P.AddVV(e(t.linearVelocity, P.ZERO), P.CrossSV(e(t.angularVelocity, 0), P.SubVV(r.position, e(t.position, P.ZERO), P.s_t0), P.s_t0), r.velocity); r.color.Copy(e(t.color, z.ZERO)); r.lifetime = e(t.lifetime, 0); r.userData = t.userData; this.CreateParticle(r); }; n.prototype.CreateParticlesStrokeShapeForGroup = function(i, r, s) { var o = n.CreateParticlesStrokeShapeForGroup_s_edge, a = n.CreateParticlesStrokeShapeForGroup_s_d, c = n.CreateParticlesStrokeShapeForGroup_s_p, l = e(r.stride, 0); 0 === l && (l = this.GetParticleStride()); for (var h = 0, u = i.GetChildCount(), _ = 0; _ < u; _++) { var f = null; if (i.GetType() === t.b2ShapeType.e_edgeShape) f = i; else { f = o; i.GetChildEdge(f, _); } for (var d = P.SubVV(f.m_vertex2, f.m_vertex1, a), m = d.Length(); h < m; ) { var p = P.AddVMulSV(f.m_vertex1, h / m, d, c); this.CreateParticleForGroup(r, s, p); h += l; } h -= m; } }; n.prototype.CreateParticlesFillShapeForGroup = function(t, i, r) { var s = n.CreateParticlesFillShapeForGroup_s_aabb, o = n.CreateParticlesFillShapeForGroup_s_p, a = e(i.stride, 0); 0 === a && (a = this.GetParticleStride()); var c = N.IDENTITY, l = s; t.ComputeAABB(l, c, 0); for (var h = Math.floor(l.lowerBound.y / a) * a; h < l.upperBound.y; h += a) for (var u = Math.floor(l.lowerBound.x / a) * a; u < l.upperBound.x; u += a) { var _ = o.Set(u, h); t.TestPoint(c, _) && this.CreateParticleForGroup(i, r, _); } }; n.prototype.CreateParticlesWithShapeForGroup = function(e, i, n) { switch (e.GetType()) { case t.b2ShapeType.e_edgeShape: case t.b2ShapeType.e_chainShape: this.CreateParticlesStrokeShapeForGroup(e, i, n); break; case t.b2ShapeType.e_polygonShape: case t.b2ShapeType.e_circleShape: this.CreateParticlesFillShapeForGroup(e, i, n); } }; n.prototype.CreateParticlesWithShapesForGroup = function(t, e, i, r) { var s = new n.CompositeShape(t, e); this.CreateParticlesFillShapeForGroup(s, i, r); }; n.prototype.CloneParticle = function(t, e) { var i = new vn(); if (!this.m_flagsBuffer.data) throw new Error(); if (!this.m_positionBuffer.data) throw new Error(); if (!this.m_velocityBuffer.data) throw new Error(); i.flags = this.m_flagsBuffer.data[t]; i.position.Copy(this.m_positionBuffer.data[t]); i.velocity.Copy(this.m_velocityBuffer.data[t]); this.m_colorBuffer.data && i.color.Copy(this.m_colorBuffer.data[t]); this.m_userDataBuffer.data && (i.userData = this.m_userDataBuffer.data[t]); i.group = e; var n = this.CreateParticle(i); if (this.m_handleIndexBuffer.data) { var r = this.m_handleIndexBuffer.data[t]; r && r.SetIndex(n); this.m_handleIndexBuffer.data[n] = r; this.m_handleIndexBuffer.data[t] = null; } this.m_lastBodyContactStepBuffer.data && (this.m_lastBodyContactStepBuffer.data[n] = this.m_lastBodyContactStepBuffer.data[t]); this.m_bodyContactCountBuffer.data && (this.m_bodyContactCountBuffer.data[n] = this.m_bodyContactCountBuffer.data[t]); this.m_consecutiveContactStepsBuffer.data && (this.m_consecutiveContactStepsBuffer.data[n] = this.m_consecutiveContactStepsBuffer.data[t]); this.m_hasForce && this.m_forceBuffer[n].Copy(this.m_forceBuffer[t]); this.m_staticPressureBuffer && (this.m_staticPressureBuffer[n] = this.m_staticPressureBuffer[t]); this.m_depthBuffer && (this.m_depthBuffer[n] = this.m_depthBuffer[t]); this.m_expirationTimeBuffer.data && (this.m_expirationTimeBuffer.data[n] = this.m_expirationTimeBuffer.data[t]); return n; }; n.prototype.DestroyParticlesInGroup = function(t, e) { void 0 === e && (e = !1); for (var i = t.m_firstIndex; i < t.m_lastIndex; i++) this.DestroyParticle(i, e); }; n.prototype.DestroyParticleGroup = function(t) { this.m_world.m_destructionListener && this.m_world.m_destructionListener.SayGoodbyeParticleGroup(t); this.SetGroupFlags(t, 0); for (var e = t.m_firstIndex; e < t.m_lastIndex; e++) this.m_groupBuffer[e] = null; t.m_prev && (t.m_prev.m_next = t.m_next); t.m_next && (t.m_next.m_prev = t.m_prev); t === this.m_groupList && (this.m_groupList = t.m_next); --this.m_groupCount; }; n.ParticleCanBeConnected = function(e, i) { return 0 != (e & (t.b2ParticleFlag.b2_wallParticle | t.b2ParticleFlag.b2_springParticle | t.b2ParticleFlag.b2_elasticParticle)) || null !== i && 0 != (i.GetGroupFlags() & t.b2ParticleGroupFlag.b2_rigidParticleGroup); }; n.prototype.UpdatePairsAndTriads = function(e, i, r) { var s = n.UpdatePairsAndTriads_s_dab, o = n.UpdatePairsAndTriads_s_dbc, a = n.UpdatePairsAndTriads_s_dca; if (!this.m_flagsBuffer.data) throw new Error(); if (!this.m_positionBuffer.data) throw new Error(); if (!this.m_velocityBuffer.data) throw new Error(); for (var c = this.m_positionBuffer.data, l = 0, h = e; h < i; h++) l |= this.m_flagsBuffer.data[h]; if (l & n.k_pairFlags) for (var u = 0; u < this.m_contactBuffer.count; u++) { var _ = this.m_contactBuffer.data[u], f = _.indexA, d = _.indexB, m = this.m_flagsBuffer.data[f], p = this.m_flagsBuffer.data[d], v = this.m_groupBuffer[f], y = this.m_groupBuffer[d]; if (f >= e && f < i && d >= e && d < i && !((m | p) & t.b2ParticleFlag.b2_zombieParticle) && (m | p) & n.k_pairFlags && (r.IsNecessary(f) || r.IsNecessary(d)) && n.ParticleCanBeConnected(m, v) && n.ParticleCanBeConnected(p, y) && r.ShouldCreatePair(f, d)) { var x = this.m_pairBuffer.data[this.m_pairBuffer.Append()]; x.indexA = f; x.indexB = d; x.flags = _.flags; x.strength = g(v ? v.m_strength : 1, y ? y.m_strength : 1); x.distance = P.DistanceVV(c[f], c[d]); } En(this.m_pairBuffer.data, 0, this.m_pairBuffer.count, n.ComparePairIndices); this.m_pairBuffer.Unique(n.MatchPairIndices); } if (l & n.k_triadFlags) { var C = new An(i - e); for (h = e; h < i; h++) { var b = this.m_flagsBuffer.data[h], A = this.m_groupBuffer[h]; b & t.b2ParticleFlag.b2_zombieParticle || !n.ParticleCanBeConnected(b, A) || C.AddGenerator(c[h], h, r.IsNecessary(h)); } var S = this.GetParticleStride(); C.Generate(S / 2, 2 * S); var w = this; C.GetNodes((function(t, e, i) { if (!w.m_flagsBuffer.data) throw new Error(); var l = w.m_flagsBuffer.data[t], h = w.m_flagsBuffer.data[e], u = w.m_flagsBuffer.data[i]; if ((l | h | u) & n.k_triadFlags && r.ShouldCreateTriad(t, e, i)) { var _ = c[t], f = c[e], d = c[i], m = P.SubVV(_, f, s), p = P.SubVV(f, d, o), v = P.SubVV(d, _, a), y = 4 * w.m_squaredDiameter; if (P.DotVV(m, m) > y || P.DotVV(p, p) > y || P.DotVV(v, v) > y) return; var x = w.m_groupBuffer[t], C = w.m_groupBuffer[e], b = w.m_groupBuffer[i], A = w.m_triadBuffer.data[w.m_triadBuffer.Append()]; A.indexA = t; A.indexB = e; A.indexC = i; A.flags = l | h | u; A.strength = g(g(x ? x.m_strength : 1, C ? C.m_strength : 1), b ? b.m_strength : 1); var S = (_.x + f.x + d.x) / 3, T = (_.y + f.y + d.y) / 3; A.pa.x = _.x - S; A.pa.y = _.y - T; A.pb.x = f.x - S; A.pb.y = f.y - T; A.pc.x = d.x - S; A.pc.y = d.y - T; A.ka = -P.DotVV(v, m); A.kb = -P.DotVV(m, p); A.kc = -P.DotVV(p, v); A.s = P.CrossVV(_, f) + P.CrossVV(f, d) + P.CrossVV(d, _); } })); En(this.m_triadBuffer.data, 0, this.m_triadBuffer.count, n.CompareTriadIndices); this.m_triadBuffer.Unique(n.MatchTriadIndices); } }; n.prototype.UpdatePairsAndTriadsWithReactiveParticles = function() { var e = new n.ReactiveFilter(this.m_flagsBuffer); this.UpdatePairsAndTriads(0, this.m_count, e); if (!this.m_flagsBuffer.data) throw new Error(); for (var i = 0; i < this.m_count; i++) this.m_flagsBuffer.data[i] &= ~t.b2ParticleFlag.b2_reactiveParticle; this.m_allParticleFlags &= ~t.b2ParticleFlag.b2_reactiveParticle; }; n.ComparePairIndices = function(t, e) { var i = t.indexA - e.indexA; return 0 !== i ? i < 0 : t.indexB < e.indexB; }; n.MatchPairIndices = function(t, e) { return t.indexA === e.indexA && t.indexB === e.indexB; }; n.CompareTriadIndices = function(t, e) { var i = t.indexA - e.indexA; if (0 !== i) return i < 0; var n = t.indexB - e.indexB; return 0 !== n ? n < 0 : t.indexC < e.indexC; }; n.MatchTriadIndices = function(t, e) { return t.indexA === e.indexA && t.indexB === e.indexB && t.indexC === e.indexC; }; n.InitializeParticleLists = function(t, e) { for (var i = t.GetBufferIndex(), n = t.GetParticleCount(), r = 0; r < n; r++) { var s = e[r]; s.list = s; s.next = null; s.count = 1; s.index = r + i; } }; n.prototype.MergeParticleListsInContact = function(t, e) { for (var i = t.GetBufferIndex(), r = 0; r < this.m_contactBuffer.count; r++) { var s = this.m_contactBuffer.data[r], o = s.indexA, a = s.indexB; if (t.ContainsParticle(o) && t.ContainsParticle(a)) { var c = e[o - i].list, l = e[a - i].list; if (c !== l) { if (c.count < l.count) { var h = c; c = l; l = h; } n.MergeParticleLists(c, l); } } } }; n.MergeParticleLists = function(t, e) { for (var i = e; ;) { i.list = t; var n = i.next; if (!n) { i.next = t.next; break; } i = n; } t.next = e; t.count += e.count; e.count = 0; }; n.FindLongestParticleList = function(t, e) { for (var i = t.GetParticleCount(), n = e[0], r = 0; r < i; r++) { var s = e[r]; n.count < s.count && (n = s); } return n; }; n.prototype.MergeZombieParticleListNodes = function(e, i, r) { if (!this.m_flagsBuffer.data) throw new Error(); for (var s = e.GetParticleCount(), o = 0; o < s; o++) { var a = i[o]; a !== r && this.m_flagsBuffer.data[a.index] & t.b2ParticleFlag.b2_zombieParticle && n.MergeParticleListAndNode(r, a); } }; n.MergeParticleListAndNode = function(t, e) { e.list = t; e.next = t.next; t.next = e; t.count++; e.count = 0; }; n.prototype.CreateParticleGroupsFromParticleList = function(e, i, n) { if (!this.m_flagsBuffer.data) throw new Error(); var r = e.GetParticleCount(), s = new xn(); s.groupFlags = e.GetGroupFlags(); s.userData = e.GetUserData(); for (var o = 0; o < r; o++) { var a = i[o]; if (a.count && a !== n) for (var c = this.CreateParticleGroup(s), l = a; l; l = l.next) { var h = l.index, u = this.CloneParticle(h, c); this.m_flagsBuffer.data[h] |= t.b2ParticleFlag.b2_zombieParticle; l.index = u; } } }; n.prototype.UpdatePairsAndTriadsWithParticleList = function(t, e) { for (var i = t.GetBufferIndex(), n = 0; n < this.m_pairBuffer.count; n++) { var r = this.m_pairBuffer.data[n], s = r.indexA, o = r.indexB; t.ContainsParticle(s) && (r.indexA = e[s - i].index); t.ContainsParticle(o) && (r.indexB = e[o - i].index); } for (n = 0; n < this.m_triadBuffer.count; n++) { var a = this.m_triadBuffer.data[n], c = (s = a.indexA, o = a.indexB, a.indexC); t.ContainsParticle(s) && (a.indexA = e[s - i].index); t.ContainsParticle(o) && (a.indexB = e[o - i].index); t.ContainsParticle(c) && (a.indexC = e[c - i].index); } }; n.prototype.ComputeDepth = function() { for (var e = [], n = 0, r = 0; r < this.m_contactBuffer.count; r++) { var s = (y = this.m_contactBuffer.data[r]).indexA, o = y.indexB, a = this.m_groupBuffer[s], c = this.m_groupBuffer[o]; a && a === c && a.m_groupFlags & t.b2ParticleGroupFlag.b2_particleGroupNeedsUpdateDepth && (e[n++] = y); } for (var l = [], h = 0, u = this.m_groupList; u; u = u.GetNext()) if (u.m_groupFlags & t.b2ParticleGroupFlag.b2_particleGroupNeedsUpdateDepth) { l[h++] = u; this.SetGroupFlags(u, u.m_groupFlags & ~t.b2ParticleGroupFlag.b2_particleGroupNeedsUpdateDepth); for (var _ = u.m_firstIndex; _ < u.m_lastIndex; _++) this.m_accumulationBuffer[_] = 0; } for (r = 0; r < n; r++) { s = (y = e[r]).indexA, o = y.indexB; var f = y.weight; this.m_accumulationBuffer[s] += f; this.m_accumulationBuffer[o] += f; } for (_ = 0; _ < h; _++) for (var d = (u = l[_]).m_firstIndex; d < u.m_lastIndex; d++) { f = this.m_accumulationBuffer[d]; this.m_depthBuffer[d] = f < .8 ? 0 : i; } for (var m = w(this.m_count) >> 0, p = 0; p < m; p++) { var v = !1; for (r = 0; r < n; r++) { s = (y = e[r]).indexA, o = y.indexB; var y, g = 1 - y.weight, x = this.m_depthBuffer[s], C = this.m_depthBuffer[o], b = C + g, A = x + g; if (x > b) { this.m_depthBuffer[s] = b; v = !0; } if (C > A) { this.m_depthBuffer[o] = A; v = !0; } } if (!v) break; } for (_ = 0; _ < h; _++) for (var S = (u = l[_]).m_firstIndex; S < u.m_lastIndex; S++) this.m_depthBuffer[S] < i ? this.m_depthBuffer[S] *= this.m_particleDiameter : this.m_depthBuffer[S] = 0; }; n.prototype.GetInsideBoundsEnumerator = function(t) { var e = n.computeTag(this.m_inverseDiameter * t.lowerBound.x - 1, this.m_inverseDiameter * t.lowerBound.y - 1), i = n.computeTag(this.m_inverseDiameter * t.upperBound.x + 1, this.m_inverseDiameter * t.upperBound.y + 1), r = this.m_proxyBuffer.count, s = Bn(this.m_proxyBuffer.data, 0, r, e, n.Proxy.CompareProxyTag), o = Dn(this.m_proxyBuffer.data, 0, r, i, n.Proxy.CompareTagProxy); return new n.InsideBoundsEnumerator(this, e, i, s, o); }; n.prototype.UpdateAllParticleFlags = function() { if (!this.m_flagsBuffer.data) throw new Error(); this.m_allParticleFlags = 0; for (var t = 0; t < this.m_count; t++) this.m_allParticleFlags |= this.m_flagsBuffer.data[t]; this.m_needsUpdateAllParticleFlags = !1; }; n.prototype.UpdateAllGroupFlags = function() { this.m_allGroupFlags = 0; for (var t = this.m_groupList; t; t = t.GetNext()) this.m_allGroupFlags |= t.m_groupFlags; this.m_needsUpdateAllGroupFlags = !1; }; n.prototype.AddContact = function(t, e, i) { if (!this.m_flagsBuffer.data) throw new Error(); if (!this.m_positionBuffer.data) throw new Error(); var r = n.AddContact_s_d, s = this.m_positionBuffer.data, o = P.SubVV(s[e], s[t], r), a = P.DotVV(o, o); if (a < this.m_squaredDiameter) { var c = S(a); isFinite(c) || (c = 198177537e11); var l = this.m_contactBuffer.data[this.m_contactBuffer.Append()]; l.indexA = t; l.indexB = e; l.flags = this.m_flagsBuffer.data[t] | this.m_flagsBuffer.data[e]; l.weight = 1 - a * c * this.m_inverseDiameter; P.MulSV(c, o, l.normal); } }; n.prototype.FindContacts_Reference = function(t) { var e = this.m_proxyBuffer.count; this.m_contactBuffer.count = 0; for (var i = 0, r = 0; i < e; i++) { for (var s = n.computeRelativeTag(this.m_proxyBuffer.data[i].tag, 1, 0), o = i + 1; o < e && !(s < this.m_proxyBuffer.data[o].tag); o++) this.AddContact(this.m_proxyBuffer.data[i].index, this.m_proxyBuffer.data[o].index, this.m_contactBuffer); for (var a = n.computeRelativeTag(this.m_proxyBuffer.data[i].tag, -1, 1); r < e && !(a <= this.m_proxyBuffer.data[r].tag); r++) ; var c = n.computeRelativeTag(this.m_proxyBuffer.data[i].tag, 1, 1); for (o = r; o < e && !(c < this.m_proxyBuffer.data[o].tag); o++) this.AddContact(this.m_proxyBuffer.data[i].index, this.m_proxyBuffer.data[o].index, this.m_contactBuffer); } }; n.prototype.FindContacts = function(t) { this.FindContacts_Reference(t); }; n.prototype.UpdateProxies_Reference = function(t) { if (!this.m_positionBuffer.data) throw new Error(); for (var e = this.m_positionBuffer.data, i = this.m_inverseDiameter, r = 0; r < this.m_proxyBuffer.count; ++r) { var s = this.m_proxyBuffer.data[r], o = e[s.index]; s.tag = n.computeTag(i * o.x, i * o.y); } }; n.prototype.UpdateProxies = function(t) { this.UpdateProxies_Reference(t); }; n.prototype.SortProxies = function(t) { Tn(this.m_proxyBuffer.data, 0, this.m_proxyBuffer.count, n.Proxy.CompareProxyProxy); }; n.prototype.FilterContacts = function(e) { var i = this.GetParticleContactFilter(); if (null !== i) { var n = this; this.m_contactBuffer.RemoveIf((function(e) { return 0 != (e.flags & t.b2ParticleFlag.b2_particleContactFilterParticle) && !i.ShouldCollideParticleParticle(n, e.indexA, e.indexB); })); } }; n.prototype.NotifyContactListenerPreContact = function(t) { if (null !== this.GetParticleContactListener()) { t.Initialize(this.m_contactBuffer, this.m_flagsBuffer); throw new Error(); } }; n.prototype.NotifyContactListenerPostContact = function(t) { var e = this.GetParticleContactListener(); if (null !== e) { for (var i = 0; i < this.m_contactBuffer.count; ++i) { var n = this.m_contactBuffer.data[i]; e.BeginContactParticleParticle(this, n); } throw new Error(); } }; n.b2ParticleContactIsZombie = function(e) { return (e.flags & t.b2ParticleFlag.b2_zombieParticle) === t.b2ParticleFlag.b2_zombieParticle; }; n.prototype.UpdateContacts = function(t) { this.UpdateProxies(this.m_proxyBuffer); this.SortProxies(this.m_proxyBuffer); var e = new n.b2ParticlePairSet(); this.NotifyContactListenerPreContact(e); this.FindContacts(this.m_contactBuffer); this.FilterContacts(this.m_contactBuffer); this.NotifyContactListenerPostContact(e); t && this.m_contactBuffer.RemoveIf(n.b2ParticleContactIsZombie); }; n.prototype.NotifyBodyContactListenerPreContact = function(t) { if (null !== this.GetFixtureContactListener()) { t.Initialize(this.m_bodyContactBuffer, this.m_flagsBuffer); throw new Error(); } }; n.prototype.NotifyBodyContactListenerPostContact = function(t) { var e = this.GetFixtureContactListener(); if (null !== e) { for (var i = 0; i < this.m_bodyContactBuffer.count; i++) { var n = this.m_bodyContactBuffer.data[i]; e.BeginContactFixtureParticle(this, n); } throw new Error(); } }; n.prototype.UpdateBodyContacts = function() { var t = n.UpdateBodyContacts_s_aabb, e = new n.FixtureParticleSet(); this.NotifyBodyContactListenerPreContact(e); if (this.m_stuckThreshold > 0) { if (!this.m_bodyContactCountBuffer.data) throw new Error(); if (!this.m_lastBodyContactStepBuffer.data) throw new Error(); if (!this.m_consecutiveContactStepsBuffer.data) throw new Error(); for (var i = this.GetParticleCount(), r = 0; r < i; r++) { this.m_bodyContactCountBuffer.data[r] = 0; this.m_timestamp > this.m_lastBodyContactStepBuffer.data[r] + 1 && (this.m_consecutiveContactStepsBuffer.data[r] = 0); } } this.m_bodyContactBuffer.SetCount(0); this.m_stuckParticleBuffer.SetCount(0); var s = t; this.ComputeAABB(s); var o = new n.UpdateBodyContactsCallback(this, this.GetFixtureContactFilter()); this.m_world.QueryAABB(o, s); this.m_def.strictContactCheck && this.RemoveSpuriousBodyContacts(); this.NotifyBodyContactListenerPostContact(e); }; n.prototype.Solve = function(e) { var i = n.Solve_s_subStep; if (0 !== this.m_count) { this.m_expirationTimeBuffer.data && this.SolveLifetimes(e); this.m_allParticleFlags & t.b2ParticleFlag.b2_zombieParticle && this.SolveZombie(); this.m_needsUpdateAllParticleFlags && this.UpdateAllParticleFlags(); this.m_needsUpdateAllGroupFlags && this.UpdateAllGroupFlags(); if (!this.m_paused) for (this.m_iterationIndex = 0; this.m_iterationIndex < e.particleIterations; this.m_iterationIndex++) { ++this.m_timestamp; var r = i.Copy(e); r.dt /= e.particleIterations; r.inv_dt *= e.particleIterations; this.UpdateContacts(!1); this.UpdateBodyContacts(); this.ComputeWeight(); this.m_allGroupFlags & t.b2ParticleGroupFlag.b2_particleGroupNeedsUpdateDepth && this.ComputeDepth(); this.m_allParticleFlags & t.b2ParticleFlag.b2_reactiveParticle && this.UpdatePairsAndTriadsWithReactiveParticles(); this.m_hasForce && this.SolveForce(r); this.m_allParticleFlags & t.b2ParticleFlag.b2_viscousParticle && this.SolveViscous(); this.m_allParticleFlags & t.b2ParticleFlag.b2_repulsiveParticle && this.SolveRepulsive(r); this.m_allParticleFlags & t.b2ParticleFlag.b2_powderParticle && this.SolvePowder(r); this.m_allParticleFlags & t.b2ParticleFlag.b2_tensileParticle && this.SolveTensile(r); this.m_allGroupFlags & t.b2ParticleGroupFlag.b2_solidParticleGroup && this.SolveSolid(r); this.m_allParticleFlags & t.b2ParticleFlag.b2_colorMixingParticle && this.SolveColorMixing(); this.SolveGravity(r); this.m_allParticleFlags & t.b2ParticleFlag.b2_staticPressureParticle && this.SolveStaticPressure(r); this.SolvePressure(r); this.SolveDamping(r); this.m_allParticleFlags & n.k_extraDampingFlags && this.SolveExtraDamping(); this.m_allParticleFlags & t.b2ParticleFlag.b2_elasticParticle && this.SolveElastic(r); this.m_allParticleFlags & t.b2ParticleFlag.b2_springParticle && this.SolveSpring(r); this.LimitVelocity(r); this.m_allGroupFlags & t.b2ParticleGroupFlag.b2_rigidParticleGroup && this.SolveRigidDamping(); this.m_allParticleFlags & t.b2ParticleFlag.b2_barrierParticle && this.SolveBarrier(r); this.SolveCollision(r); this.m_allGroupFlags & t.b2ParticleGroupFlag.b2_rigidParticleGroup && this.SolveRigid(r); this.m_allParticleFlags & t.b2ParticleFlag.b2_wallParticle && this.SolveWall(); if (!this.m_positionBuffer.data) throw new Error(); if (!this.m_velocityBuffer.data) throw new Error(); for (var s = 0; s < this.m_count; s++) this.m_positionBuffer.data[s].SelfMulAdd(r.dt, this.m_velocityBuffer.data[s]); } } }; n.prototype.SolveCollision = function(t) { var e = n.SolveCollision_s_aabb; if (!this.m_positionBuffer.data) throw new Error(); if (!this.m_velocityBuffer.data) throw new Error(); var r = this.m_positionBuffer.data, s = this.m_velocityBuffer.data, o = e; o.lowerBound.x = +i; o.lowerBound.y = +i; o.upperBound.x = -i; o.upperBound.y = -i; for (var a = 0; a < this.m_count; a++) { var c = s[a], l = r[a], h = l.x + t.dt * c.x, u = l.y + t.dt * c.y; o.lowerBound.x = g(o.lowerBound.x, g(l.x, h)); o.lowerBound.y = g(o.lowerBound.y, g(l.y, u)); o.upperBound.x = x(o.upperBound.x, x(l.x, h)); o.upperBound.y = x(o.upperBound.y, x(l.y, u)); } var _ = new n.SolveCollisionCallback(this, t); this.m_world.QueryAABB(_, o); }; n.prototype.LimitVelocity = function(t) { if (!this.m_velocityBuffer.data) throw new Error(); for (var e = this.m_velocityBuffer.data, i = this.GetCriticalVelocitySquared(t), n = 0; n < this.m_count; n++) { var r = e[n], s = P.DotVV(r, r); s > i && r.SelfMul(w(i / s)); } }; n.prototype.SolveGravity = function(t) { if (!this.m_velocityBuffer.data) throw new Error(); for (var e = n.SolveGravity_s_gravity, i = this.m_velocityBuffer.data, r = P.MulSV(t.dt * this.m_def.gravityScale, this.m_world.GetGravity(), e), s = 0; s < this.m_count; s++) i[s].SelfAdd(r); }; n.prototype.SolveBarrier = function(e) { var i = n.SolveBarrier_s_aabb, r = n.SolveBarrier_s_va, s = n.SolveBarrier_s_vb, o = n.SolveBarrier_s_pba, a = n.SolveBarrier_s_vba, c = n.SolveBarrier_s_vc, l = n.SolveBarrier_s_pca, h = n.SolveBarrier_s_vca, u = n.SolveBarrier_s_qba, _ = n.SolveBarrier_s_qca, f = n.SolveBarrier_s_dv, d = n.SolveBarrier_s_f; if (!this.m_flagsBuffer.data) throw new Error(); if (!this.m_positionBuffer.data) throw new Error(); if (!this.m_velocityBuffer.data) throw new Error(); for (var m = this.m_positionBuffer.data, p = this.m_velocityBuffer.data, v = 0; v < this.m_count; v++) { 0 != (this.m_flagsBuffer.data[v] & n.k_barrierWallFlags) && p[v].SetZero(); } for (var y = 2.5 * e.dt, g = this.GetParticleMass(), x = 0; x < this.m_pairBuffer.count; x++) { var C = this.m_pairBuffer.data[x]; if (C.flags & t.b2ParticleFlag.b2_barrierParticle) { var b = C.indexA, A = C.indexB, S = m[b], T = m[A], E = i; P.MinV(S, T, E.lowerBound); P.MaxV(S, T, E.upperBound); for (var M = this.m_groupBuffer[b], B = this.m_groupBuffer[A], D = this.GetLinearVelocity(M, b, S, r), I = this.GetLinearVelocity(B, A, T, s), R = P.SubVV(T, S, o), L = P.SubVV(I, D, a), F = this.GetInsideBoundsEnumerator(E), O = void 0; (O = F.GetNext()) >= 0; ) { var V = m[O], N = this.m_groupBuffer[O]; if (M !== N && B !== N) { var k = this.GetLinearVelocity(N, O, V, c), z = P.SubVV(V, S, l), G = P.SubVV(k, D, h), U = P.CrossVV(L, G), j = P.CrossVV(R, G) - P.CrossVV(z, L), W = P.CrossVV(R, z), H = void 0, q = void 0, X = u, Y = _; if (0 === U) { if (0 === j) continue; if (!((q = -W / j) >= 0 && q < y)) continue; P.AddVMulSV(R, q, L, X); P.AddVMulSV(z, q, G, Y); if (!((H = P.DotVV(X, Y) / P.DotVV(X, X)) >= 0 && H <= 1)) continue; } else { var J = j * j - 4 * W * U; if (J < 0) continue; var Z = w(J), K = (-j - Z) / (2 * U), Q = (-j + Z) / (2 * U); if (K > Q) { var $ = K; K = Q; Q = $; } q = K; P.AddVMulSV(R, q, L, X); P.AddVMulSV(z, q, G, Y); H = P.DotVV(X, Y) / P.DotVV(X, X); if (!(q >= 0 && q < y && H >= 0 && H <= 1)) { if (!((q = Q) >= 0 && q < y)) continue; P.AddVMulSV(R, q, L, X); P.AddVMulSV(z, q, G, Y); if (!((H = P.DotVV(X, Y) / P.DotVV(X, X)) >= 0 && H <= 1)) continue; } } var tt = f; tt.x = D.x + H * L.x - k.x; tt.y = D.y + H * L.y - k.y; var et = P.MulSV(g, tt, d); if (N && this.IsRigidGroup(N)) { var it = N.GetMass(), nt = N.GetInertia(); it > 0 && N.m_linearVelocity.SelfMulAdd(1 / it, et); nt > 0 && (N.m_angularVelocity += P.CrossVV(P.SubVV(V, N.GetCenter(), P.s_t0), et) / nt); } else p[O].SelfAdd(tt); this.ParticleApplyForce(O, et.SelfMul(-e.inv_dt)); } } } } }; n.prototype.SolveStaticPressure = function(e) { if (!this.m_flagsBuffer.data) throw new Error(); this.m_staticPressureBuffer = this.RequestBuffer(this.m_staticPressureBuffer); for (var i = this.GetCriticalPressure(e), n = this.m_def.staticPressureStrength * i, r = .25 * i, s = this.m_def.staticPressureRelaxation, o = 0; o < this.m_def.staticPressureIterations; o++) { for (var a = 0; a < this.m_count; a++) this.m_accumulationBuffer[a] = 0; for (var c = 0; c < this.m_contactBuffer.count; c++) { var l = this.m_contactBuffer.data[c]; if (l.flags & t.b2ParticleFlag.b2_staticPressureParticle) { var h = l.indexA, u = l.indexB, _ = l.weight; this.m_accumulationBuffer[h] += _ * this.m_staticPressureBuffer[u]; this.m_accumulationBuffer[u] += _ * this.m_staticPressureBuffer[h]; } } for (a = 0; a < this.m_count; a++) { _ = this.m_weightBuffer[a]; if (this.m_flagsBuffer.data[a] & t.b2ParticleFlag.b2_staticPressureParticle) { var f = (this.m_accumulationBuffer[a] + n * (_ - 1)) / (_ + s); this.m_staticPressureBuffer[a] = C(f, 0, r); } else this.m_staticPressureBuffer[a] = 0; } } }; n.prototype.ComputeWeight = function() { for (var t = 0; t < this.m_count; t++) this.m_weightBuffer[t] = 0; for (t = 0; t < this.m_bodyContactBuffer.count; t++) { var e = (n = this.m_bodyContactBuffer.data[t]).index, i = n.weight; this.m_weightBuffer[e] += i; } for (t = 0; t < this.m_contactBuffer.count; t++) { e = (n = this.m_contactBuffer.data[t]).indexA; var n, r = n.indexB; i = n.weight; this.m_weightBuffer[e] += i; this.m_weightBuffer[r] += i; } }; n.prototype.SolvePressure = function(e) { var i = n.SolvePressure_s_f; if (!this.m_flagsBuffer.data) throw new Error(); if (!this.m_positionBuffer.data) throw new Error(); if (!this.m_velocityBuffer.data) throw new Error(); for (var r = this.m_positionBuffer.data, s = this.m_velocityBuffer.data, o = this.GetCriticalPressure(e), a = this.m_def.pressureStrength * o, c = .25 * o, l = 0; l < this.m_count; l++) { var h = this.m_weightBuffer[l], u = a * x(0, h - 1); this.m_accumulationBuffer[l] = g(u, c); } if (this.m_allParticleFlags & n.k_noPressureFlags) for (l = 0; l < this.m_count; l++) this.m_flagsBuffer.data[l] & n.k_noPressureFlags && (this.m_accumulationBuffer[l] = 0); if (this.m_allParticleFlags & t.b2ParticleFlag.b2_staticPressureParticle) for (l = 0; l < this.m_count; l++) this.m_flagsBuffer.data[l] & t.b2ParticleFlag.b2_staticPressureParticle && (this.m_accumulationBuffer[l] += this.m_staticPressureBuffer[l]); for (var _ = e.dt / (this.m_def.density * this.m_particleDiameter), f = this.GetParticleInvMass(), d = 0; d < this.m_bodyContactBuffer.count; d++) { var m = (A = this.m_bodyContactBuffer.data[d]).index, p = A.body, v = (h = A.weight, A.mass), y = A.normal, C = r[m], b = (u = this.m_accumulationBuffer[m] + a * h, P.MulSV(_ * h * v * u, y, i)); s[m].SelfMulSub(f, b); p.ApplyLinearImpulse(b, C, !0); } for (d = 0; d < this.m_contactBuffer.count; d++) { var A; m = (A = this.m_contactBuffer.data[d]).indexA, p = A.indexB, h = A.weight, y = A.normal, u = this.m_accumulationBuffer[m] + this.m_accumulationBuffer[p], b = P.MulSV(_ * h * u, y, i); s[m].SelfSub(b); s[p].SelfAdd(b); } }; n.prototype.SolveDamping = function(t) { var e = n.SolveDamping_s_v, i = n.SolveDamping_s_f; if (!this.m_positionBuffer.data) throw new Error(); if (!this.m_velocityBuffer.data) throw new Error(); for (var r = this.m_positionBuffer.data, s = this.m_velocityBuffer.data, o = this.m_def.dampingStrength, a = 1 / this.GetCriticalVelocity(t), c = this.GetParticleInvMass(), l = 0; l < this.m_bodyContactBuffer.count; l++) { var h = (C = this.m_bodyContactBuffer.data[l]).index, u = C.body, _ = C.weight, f = C.mass, d = C.normal, m = r[h], p = P.SubVV(u.GetLinearVelocityFromWorldPoint(m, P.s_t0), s[h], e); if ((b = P.DotVV(p, d)) < 0) { var v = x(o * _, g(-a * b, .5)), y = P.MulSV(v * f * b, d, i); s[h].SelfMulAdd(c, y); u.ApplyLinearImpulse(y.SelfNeg(), m, !0); } } for (l = 0; l < this.m_contactBuffer.count; l++) { var C, b; h = (C = this.m_contactBuffer.data[l]).indexA, u = C.indexB, _ = C.weight, d = C.normal, p = P.SubVV(s[u], s[h], e); if ((b = P.DotVV(p, d)) < 0) { v = x(o * _, g(-a * b, .5)), y = P.MulSV(v * b, d, i); s[h].SelfAdd(y); s[u].SelfSub(y); } } }; n.prototype.SolveRigidDamping = function() { var t = n.SolveRigidDamping_s_t0, e = n.SolveRigidDamping_s_t1, i = n.SolveRigidDamping_s_p, r = n.SolveRigidDamping_s_v, s = [ 0 ], o = [ 0 ], a = [ 0 ], c = [ 0 ], l = [ 0 ], h = [ 0 ]; if (!this.m_positionBuffer.data) throw new Error(); for (var u = this.m_positionBuffer.data, _ = this.m_def.dampingStrength, f = 0; f < this.m_bodyContactBuffer.count; f++) { var d = (b = this.m_bodyContactBuffer.data[f]).index; if ((A = this.m_groupBuffer[d]) && this.IsRigidGroup(A)) { var m = b.body, p = b.normal, v = b.weight, y = u[d], x = P.SubVV(m.GetLinearVelocityFromWorldPoint(y, t), A.GetLinearVelocityFromWorldPoint(y, e), r); if ((E = P.DotVV(x, p)) < 0) { this.InitDampingParameterWithRigidGroupOrParticle(s, o, a, !0, A, d, y, p); this.InitDampingParameter(c, l, h, m.GetMass(), m.GetInertia() - m.GetMass() * m.GetLocalCenter().LengthSquared(), m.GetWorldCenter(), y, p); var C = _ * g(v, 1) * this.ComputeDampingImpulse(s[0], o[0], a[0], c[0], l[0], h[0], E); this.ApplyDamping(s[0], o[0], a[0], !0, A, d, C, p); m.ApplyLinearImpulse(P.MulSV(-C, p, P.s_t0), y, !0); } } } for (f = 0; f < this.m_contactBuffer.count; f++) { d = (b = this.m_contactBuffer.data[f]).indexA, m = b.indexB, p = b.normal, v = b.weight; var b, A = this.m_groupBuffer[d], S = this.m_groupBuffer[m], w = this.IsRigidGroup(A), T = this.IsRigidGroup(S); if (A !== S && (w || T)) { var E; y = P.MidVV(u[d], u[m], i), x = P.SubVV(this.GetLinearVelocity(S, m, y, t), this.GetLinearVelocity(A, d, y, e), r); if ((E = P.DotVV(x, p)) < 0) { this.InitDampingParameterWithRigidGroupOrParticle(s, o, a, w, A, d, y, p); this.InitDampingParameterWithRigidGroupOrParticle(c, l, h, T, S, m, y, p); C = _ * v * this.ComputeDampingImpulse(s[0], o[0], a[0], c[0], l[0], h[0], E); this.ApplyDamping(s[0], o[0], a[0], w, A, d, C, p); this.ApplyDamping(c[0], l[0], h[0], T, S, m, -C, p); } } } }; n.prototype.SolveExtraDamping = function() { var t = n.SolveExtraDamping_s_v, e = n.SolveExtraDamping_s_f; if (!this.m_flagsBuffer.data) throw new Error(); if (!this.m_positionBuffer.data) throw new Error(); if (!this.m_velocityBuffer.data) throw new Error(); for (var i = this.m_velocityBuffer.data, r = this.m_positionBuffer.data, s = this.GetParticleInvMass(), o = 0; o < this.m_bodyContactBuffer.count; o++) { var a = this.m_bodyContactBuffer.data[o], c = a.index; if (this.m_flagsBuffer.data[c] & n.k_extraDampingFlags) { var l = a.body, h = a.mass, u = a.normal, _ = r[c], f = P.SubVV(l.GetLinearVelocityFromWorldPoint(_, P.s_t0), i[c], t), d = P.DotVV(f, u); if (d < 0) { var m = P.MulSV(.5 * h * d, u, e); i[c].SelfMulAdd(s, m); l.ApplyLinearImpulse(m.SelfNeg(), _, !0); } } } }; n.prototype.SolveWall = function() { if (!this.m_flagsBuffer.data) throw new Error(); if (!this.m_velocityBuffer.data) throw new Error(); for (var e = this.m_velocityBuffer.data, i = 0; i < this.m_count; i++) this.m_flagsBuffer.data[i] & t.b2ParticleFlag.b2_wallParticle && e[i].SetZero(); }; n.prototype.SolveRigid = function(e) { var i = n.SolveRigid_s_position, r = n.SolveRigid_s_rotation, s = n.SolveRigid_s_transform, o = n.SolveRigid_s_velocityTransform; if (!this.m_positionBuffer.data) throw new Error(); if (!this.m_velocityBuffer.data) throw new Error(); for (var a = this.m_positionBuffer.data, c = this.m_velocityBuffer.data, l = this.m_groupList; l; l = l.GetNext()) if (l.m_groupFlags & t.b2ParticleGroupFlag.b2_rigidParticleGroup) { l.UpdateStatistics(); var h = r; h.SetAngle(e.dt * l.m_angularVelocity); var u = P.AddVV(l.m_center, P.SubVV(P.MulSV(e.dt, l.m_linearVelocity, P.s_t0), V.MulRV(h, l.m_center, P.s_t1), P.s_t0), i), _ = s; _.SetPositionRotation(u, h); N.MulXX(_, l.m_transform, l.m_transform); var f = o; f.p.x = e.inv_dt * _.p.x; f.p.y = e.inv_dt * _.p.y; f.q.s = e.inv_dt * _.q.s; f.q.c = e.inv_dt * (_.q.c - 1); for (var d = l.m_firstIndex; d < l.m_lastIndex; d++) N.MulXV(f, a[d], c[d]); } }; n.prototype.SolveElastic = function(e) { var i = n.SolveElastic_s_pa, r = n.SolveElastic_s_pb, s = n.SolveElastic_s_pc, o = n.SolveElastic_s_r, a = n.SolveElastic_s_t0; if (!this.m_positionBuffer.data) throw new Error(); if (!this.m_velocityBuffer.data) throw new Error(); for (var c = this.m_positionBuffer.data, l = this.m_velocityBuffer.data, h = e.inv_dt * this.m_def.elasticStrength, u = 0; u < this.m_triadBuffer.count; u++) { var _ = this.m_triadBuffer.data[u]; if (_.flags & t.b2ParticleFlag.b2_elasticParticle) { var f = _.indexA, d = _.indexB, m = _.indexC, p = _.pa, v = _.pb, y = _.pc, g = i.Copy(c[f]), x = r.Copy(c[d]), C = s.Copy(c[m]), b = l[f], A = l[d], w = l[m]; g.SelfMulAdd(e.dt, b); x.SelfMulAdd(e.dt, A); C.SelfMulAdd(e.dt, w); var T = (g.x + x.x + C.x) / 3, E = (g.y + x.y + C.y) / 3; g.x -= T; g.y -= E; x.x -= T; x.y -= E; C.x -= T; C.y -= E; var M = o; M.s = P.CrossVV(p, g) + P.CrossVV(v, x) + P.CrossVV(y, C); M.c = P.DotVV(p, g) + P.DotVV(v, x) + P.DotVV(y, C); var B = S(M.s * M.s + M.c * M.c); isFinite(B) || (B = 198177537e11); M.s *= B; M.c *= B; var D = h * _.strength; V.MulRV(M, p, a); P.SubVV(a, g, a); P.MulSV(D, a, a); b.SelfAdd(a); V.MulRV(M, v, a); P.SubVV(a, x, a); P.MulSV(D, a, a); A.SelfAdd(a); V.MulRV(M, y, a); P.SubVV(a, C, a); P.MulSV(D, a, a); w.SelfAdd(a); } } }; n.prototype.SolveSpring = function(e) { var i = n.SolveSpring_s_pa, r = n.SolveSpring_s_pb, s = n.SolveSpring_s_d, o = n.SolveSpring_s_f; if (!this.m_positionBuffer.data) throw new Error(); if (!this.m_velocityBuffer.data) throw new Error(); for (var a = this.m_positionBuffer.data, c = this.m_velocityBuffer.data, l = e.inv_dt * this.m_def.springStrength, h = 0; h < this.m_pairBuffer.count; h++) { var u = this.m_pairBuffer.data[h]; if (u.flags & t.b2ParticleFlag.b2_springParticle) { var _ = u.indexA, f = u.indexB, d = i.Copy(a[_]), m = r.Copy(a[f]), p = c[_], v = c[f]; d.SelfMulAdd(e.dt, p); m.SelfMulAdd(e.dt, v); var y = P.SubVV(m, d, s), g = u.distance, x = y.Length(), C = l * u.strength, b = P.MulSV(C * (g - x) / x, y, o); p.SelfSub(b); v.SelfAdd(b); } } }; n.prototype.SolveTensile = function(e) { var i = n.SolveTensile_s_weightedNormal, r = n.SolveTensile_s_s, s = n.SolveTensile_s_f; if (!this.m_velocityBuffer.data) throw new Error(); for (var o = this.m_velocityBuffer.data, a = 0; a < this.m_count; a++) { this.m_accumulation2Buffer[a] = new P(); this.m_accumulation2Buffer[a].SetZero(); } for (var c = 0; c < this.m_contactBuffer.count; c++) { if ((y = this.m_contactBuffer.data[c]).flags & t.b2ParticleFlag.b2_tensileParticle) { var l = y.indexA, h = y.indexB, u = y.weight, _ = y.normal, f = P.MulSV((1 - u) * u, _, i); this.m_accumulation2Buffer[l].SelfSub(f); this.m_accumulation2Buffer[h].SelfAdd(f); } } var d = this.GetCriticalVelocity(e), m = this.m_def.surfaceTensionPressureStrength * d, p = this.m_def.surfaceTensionNormalStrength * d, v = .5 * d; for (c = 0; c < this.m_contactBuffer.count; c++) { var y; if ((y = this.m_contactBuffer.data[c]).flags & t.b2ParticleFlag.b2_tensileParticle) { l = y.indexA, h = y.indexB, u = y.weight, _ = y.normal; var x = this.m_weightBuffer[l] + this.m_weightBuffer[h], C = P.SubVV(this.m_accumulation2Buffer[h], this.m_accumulation2Buffer[l], r), b = g(m * (x - 2) + p * P.DotVV(C, _), v) * u, A = P.MulSV(b, _, s); o[l].SelfSub(A); o[h].SelfAdd(A); } } }; n.prototype.SolveViscous = function() { var e = n.SolveViscous_s_v, i = n.SolveViscous_s_f; if (!this.m_flagsBuffer.data) throw new Error(); if (!this.m_positionBuffer.data) throw new Error(); if (!this.m_velocityBuffer.data) throw new Error(); for (var r = this.m_positionBuffer.data, s = this.m_velocityBuffer.data, o = this.m_def.viscousStrength, a = this.GetParticleInvMass(), c = 0; c < this.m_bodyContactBuffer.count; c++) { var l = (p = this.m_bodyContactBuffer.data[c]).index; if (this.m_flagsBuffer.data[l] & t.b2ParticleFlag.b2_viscousParticle) { var h = p.body, u = p.weight, _ = p.mass, f = r[l], d = P.SubVV(h.GetLinearVelocityFromWorldPoint(f, P.s_t0), s[l], e), m = P.MulSV(o * _ * u, d, i); s[l].SelfMulAdd(a, m); h.ApplyLinearImpulse(m.SelfNeg(), f, !0); } } for (c = 0; c < this.m_contactBuffer.count; c++) { var p; if ((p = this.m_contactBuffer.data[c]).flags & t.b2ParticleFlag.b2_viscousParticle) { l = p.indexA, h = p.indexB, u = p.weight, d = P.SubVV(s[h], s[l], e), m = P.MulSV(o * u, d, i); s[l].SelfAdd(m); s[h].SelfSub(m); } } }; n.prototype.SolveRepulsive = function(e) { var i = n.SolveRepulsive_s_f; if (!this.m_velocityBuffer.data) throw new Error(); for (var r = this.m_velocityBuffer.data, s = this.m_def.repulsiveStrength * this.GetCriticalVelocity(e), o = 0; o < this.m_contactBuffer.count; o++) { var a = this.m_contactBuffer.data[o]; if (a.flags & t.b2ParticleFlag.b2_repulsiveParticle) { var c = a.indexA, l = a.indexB; if (this.m_groupBuffer[c] !== this.m_groupBuffer[l]) { var h = a.weight, u = a.normal, _ = P.MulSV(s * h, u, i); r[c].SelfSub(_); r[l].SelfAdd(_); } } } }; n.prototype.SolvePowder = function(e) { var i = n.SolvePowder_s_f; if (!this.m_flagsBuffer.data) throw new Error(); if (!this.m_positionBuffer.data) throw new Error(); if (!this.m_velocityBuffer.data) throw new Error(); for (var r = this.m_positionBuffer.data, s = this.m_velocityBuffer.data, o = this.m_def.powderStrength * this.GetCriticalVelocity(e), a = this.GetParticleInvMass(), c = 0; c < this.m_bodyContactBuffer.count; c++) { var l = (m = this.m_bodyContactBuffer.data[c]).index; if (this.m_flagsBuffer.data[l] & t.b2ParticleFlag.b2_powderParticle) { if ((p = m.weight) > .25) { var h = m.body, u = m.mass, _ = r[l], f = m.normal, d = P.MulSV(o * u * (p - .25), f, i); s[l].SelfMulSub(a, d); h.ApplyLinearImpulse(d, _, !0); } } } for (c = 0; c < this.m_contactBuffer.count; c++) { var m; if ((m = this.m_contactBuffer.data[c]).flags & t.b2ParticleFlag.b2_powderParticle) { var p; if ((p = m.weight) > .25) { l = m.indexA, h = m.indexB, f = m.normal, d = P.MulSV(o * (p - .25), f, i); s[l].SelfSub(d); s[h].SelfAdd(d); } } } }; n.prototype.SolveSolid = function(t) { var e = n.SolveSolid_s_f; if (!this.m_velocityBuffer.data) throw new Error(); var i = this.m_velocityBuffer.data; this.m_depthBuffer = this.RequestBuffer(this.m_depthBuffer); for (var r = t.inv_dt * this.m_def.ejectionStrength, s = 0; s < this.m_contactBuffer.count; s++) { var o = this.m_contactBuffer.data[s], a = o.indexA, c = o.indexB; if (this.m_groupBuffer[a] !== this.m_groupBuffer[c]) { var l = o.weight, h = o.normal, u = this.m_depthBuffer[a] + this.m_depthBuffer[c], _ = P.MulSV(r * u * l, h, e); i[a].SelfSub(_); i[c].SelfAdd(_); } } }; n.prototype.SolveForce = function(t) { if (!this.m_velocityBuffer.data) throw new Error(); for (var e = this.m_velocityBuffer.data, i = t.dt * this.GetParticleInvMass(), n = 0; n < this.m_count; n++) e[n].SelfMulAdd(i, this.m_forceBuffer[n]); this.m_hasForce = !1; }; n.prototype.SolveColorMixing = function() { if (!this.m_flagsBuffer.data) throw new Error(); if (!this.m_colorBuffer.data) throw new Error(); var e = .5 * this.m_def.colorMixingStrength; if (e) for (var i = 0; i < this.m_contactBuffer.count; i++) { var n = this.m_contactBuffer.data[i], r = n.indexA, s = n.indexB; if (this.m_flagsBuffer.data[r] & this.m_flagsBuffer.data[s] & t.b2ParticleFlag.b2_colorMixingParticle) { var o = this.m_colorBuffer.data[r], a = this.m_colorBuffer.data[s]; z.MixColors(o, a, e); } } }; n.prototype.SolveZombie = function() { if (!this.m_flagsBuffer.data) throw new Error(); if (!this.m_positionBuffer.data) throw new Error(); if (!this.m_velocityBuffer.data) throw new Error(); for (var e = 0, i = [], n = 0; n < this.m_count; n++) i[n] = u; var r = 0; for (n = 0; n < this.m_count; n++) { var s = this.m_flagsBuffer.data[n]; if (s & t.b2ParticleFlag.b2_zombieParticle) { var o = this.m_world.m_destructionListener; s & t.b2ParticleFlag.b2_destructionListenerParticle && o && o.SayGoodbyeParticle(this, n); if (this.m_handleIndexBuffer.data) { if (a = this.m_handleIndexBuffer.data[n]) { a.SetIndex(u); this.m_handleIndexBuffer.data[n] = null; } } i[n] = u; } else { i[n] = e; if (n !== e) { if (this.m_handleIndexBuffer.data) { var a; (a = this.m_handleIndexBuffer.data[n]) && a.SetIndex(e); this.m_handleIndexBuffer.data[e] = a; } this.m_flagsBuffer.data[e] = this.m_flagsBuffer.data[n]; this.m_lastBodyContactStepBuffer.data && (this.m_lastBodyContactStepBuffer.data[e] = this.m_lastBodyContactStepBuffer.data[n]); this.m_bodyContactCountBuffer.data && (this.m_bodyContactCountBuffer.data[e] = this.m_bodyContactCountBuffer.data[n]); this.m_consecutiveContactStepsBuffer.data && (this.m_consecutiveContactStepsBuffer.data[e] = this.m_consecutiveContactStepsBuffer.data[n]); this.m_positionBuffer.data[e].Copy(this.m_positionBuffer.data[n]); this.m_velocityBuffer.data[e].Copy(this.m_velocityBuffer.data[n]); this.m_groupBuffer[e] = this.m_groupBuffer[n]; this.m_hasForce && this.m_forceBuffer[e].Copy(this.m_forceBuffer[n]); this.m_staticPressureBuffer && (this.m_staticPressureBuffer[e] = this.m_staticPressureBuffer[n]); this.m_depthBuffer && (this.m_depthBuffer[e] = this.m_depthBuffer[n]); this.m_colorBuffer.data && this.m_colorBuffer.data[e].Copy(this.m_colorBuffer.data[n]); this.m_userDataBuffer.data && (this.m_userDataBuffer.data[e] = this.m_userDataBuffer.data[n]); this.m_expirationTimeBuffer.data && (this.m_expirationTimeBuffer.data[e] = this.m_expirationTimeBuffer.data[n]); } e++; r |= s; } } for (var c = function(t) { return t.index < 0; }, l = function(t) { return t.indexA < 0 || t.indexB < 0; }, h = function(t) { return t.index < 0; }, _ = function(t) { return t.indexA < 0 || t.indexB < 0; }, f = function(t) { return t.indexA < 0 || t.indexB < 0 || t.indexC < 0; }, d = 0; d < this.m_proxyBuffer.count; d++) { var m = this.m_proxyBuffer.data[d]; m.index = i[m.index]; } this.m_proxyBuffer.RemoveIf(c); for (d = 0; d < this.m_contactBuffer.count; d++) { (p = this.m_contactBuffer.data[d]).indexA = i[p.indexA]; p.indexB = i[p.indexB]; } this.m_contactBuffer.RemoveIf(l); for (d = 0; d < this.m_bodyContactBuffer.count; d++) { var p; (p = this.m_bodyContactBuffer.data[d]).index = i[p.index]; } this.m_bodyContactBuffer.RemoveIf(h); for (d = 0; d < this.m_pairBuffer.count; d++) { var v = this.m_pairBuffer.data[d]; v.indexA = i[v.indexA]; v.indexB = i[v.indexB]; } this.m_pairBuffer.RemoveIf(_); for (d = 0; d < this.m_triadBuffer.count; d++) { var y = this.m_triadBuffer.data[d]; y.indexA = i[y.indexA]; y.indexB = i[y.indexB]; y.indexC = i[y.indexC]; } this.m_triadBuffer.RemoveIf(f); if (this.m_indexByExpirationTimeBuffer.data) for (var C = 0, b = 0; b < this.m_count; b++) { var A = i[this.m_indexByExpirationTimeBuffer.data[b]]; A !== u && (this.m_indexByExpirationTimeBuffer.data[C++] = A); } for (var S = this.m_groupList; S; S = S.GetNext()) { var w = e, T = 0, E = !1; for (n = S.m_firstIndex; n < S.m_lastIndex; n++) { var M = i[n]; if (M >= 0) { w = g(w, M); T = x(T, M + 1); } else E = !0; } if (w < T) { S.m_firstIndex = w; S.m_lastIndex = T; E && S.m_groupFlags & t.b2ParticleGroupFlag.b2_solidParticleGroup && this.SetGroupFlags(S, S.m_groupFlags | t.b2ParticleGroupFlag.b2_particleGroupNeedsUpdateDepth); } else { S.m_firstIndex = 0; S.m_lastIndex = 0; S.m_groupFlags & t.b2ParticleGroupFlag.b2_particleGroupCanBeEmpty || this.SetGroupFlags(S, S.m_groupFlags | t.b2ParticleGroupFlag.b2_particleGroupWillBeDestroyed); } } this.m_count = e; this.m_allParticleFlags = r; this.m_needsUpdateAllParticleFlags = !1; for (S = this.m_groupList; S; ) { var B = S.GetNext(); S.m_groupFlags & t.b2ParticleGroupFlag.b2_particleGroupWillBeDestroyed && this.DestroyParticleGroup(S); S = B; } }; n.prototype.SolveLifetimes = function(t) { if (!this.m_expirationTimeBuffer.data) throw new Error(); if (!this.m_indexByExpirationTimeBuffer.data) throw new Error(); this.m_timeElapsed = this.LifetimeToExpirationTime(t.dt); var e = this.GetQuantizedTimeElapsed(), i = this.m_expirationTimeBuffer.data, n = this.m_indexByExpirationTimeBuffer.data, r = this.GetParticleCount(); if (this.m_expirationTimeBufferRequiresSorting) { Tn(n, 0, r, (function(t, e) { var n = i[t], r = i[e], s = n <= 0; return s === r <= 0 ? n > r : s; })); this.m_expirationTimeBufferRequiresSorting = !1; } for (var s = r - 1; s >= 0; --s) { var o = n[s], a = i[o]; if (e < a || a <= 0) break; this.DestroyParticle(o); } }; n.prototype.RotateBuffer = function(t, e, i) { if (t !== e && e !== i) { if (!this.m_flagsBuffer.data) throw new Error(); if (!this.m_positionBuffer.data) throw new Error(); if (!this.m_velocityBuffer.data) throw new Error(); In(this.m_flagsBuffer.data, t, e, i); this.m_lastBodyContactStepBuffer.data && In(this.m_lastBodyContactStepBuffer.data, t, e, i); this.m_bodyContactCountBuffer.data && In(this.m_bodyContactCountBuffer.data, t, e, i); this.m_consecutiveContactStepsBuffer.data && In(this.m_consecutiveContactStepsBuffer.data, t, e, i); In(this.m_positionBuffer.data, t, e, i); In(this.m_velocityBuffer.data, t, e, i); In(this.m_groupBuffer, t, e, i); this.m_hasForce && In(this.m_forceBuffer, t, e, i); this.m_staticPressureBuffer && In(this.m_staticPressureBuffer, t, e, i); this.m_depthBuffer && In(this.m_depthBuffer, t, e, i); this.m_colorBuffer.data && In(this.m_colorBuffer.data, t, e, i); this.m_userDataBuffer.data && In(this.m_userDataBuffer.data, t, e, i); if (this.m_handleIndexBuffer.data) { In(this.m_handleIndexBuffer.data, t, e, i); for (var n = t; n < i; ++n) { var r = this.m_handleIndexBuffer.data[n]; r && r.SetIndex(f(r.GetIndex())); } } if (this.m_expirationTimeBuffer.data) { In(this.m_expirationTimeBuffer.data, t, e, i); var s = this.GetParticleCount(); if (!this.m_indexByExpirationTimeBuffer.data) throw new Error(); var o = this.m_indexByExpirationTimeBuffer.data; for (n = 0; n < s; ++n) o[n] = f(o[n]); } for (var a = 0; a < this.m_proxyBuffer.count; a++) { var c = this.m_proxyBuffer.data[a]; c.index = f(c.index); } for (a = 0; a < this.m_contactBuffer.count; a++) { (l = this.m_contactBuffer.data[a]).indexA = f(l.indexA); l.indexB = f(l.indexB); } for (a = 0; a < this.m_bodyContactBuffer.count; a++) { var l; (l = this.m_bodyContactBuffer.data[a]).index = f(l.index); } for (a = 0; a < this.m_pairBuffer.count; a++) { var h = this.m_pairBuffer.data[a]; h.indexA = f(h.indexA); h.indexB = f(h.indexB); } for (a = 0; a < this.m_triadBuffer.count; a++) { var u = this.m_triadBuffer.data[a]; u.indexA = f(u.indexA); u.indexB = f(u.indexB); u.indexC = f(u.indexC); } for (var _ = this.m_groupList; _; _ = _.GetNext()) { _.m_firstIndex = f(_.m_firstIndex); _.m_lastIndex = f(_.m_lastIndex - 1) + 1; } } function f(n) { return n < t ? n : n < e ? n + i - e : n < i ? n + t - e : n; } }; n.prototype.GetCriticalVelocity = function(t) { return this.m_particleDiameter * t.inv_dt; }; n.prototype.GetCriticalVelocitySquared = function(t) { var e = this.GetCriticalVelocity(t); return e * e; }; n.prototype.GetCriticalPressure = function(t) { return this.m_def.density * this.GetCriticalVelocitySquared(t); }; n.prototype.GetParticleStride = function() { return .75 * this.m_particleDiameter; }; n.prototype.GetParticleMass = function() { var t = this.GetParticleStride(); return this.m_def.density * t * t; }; n.prototype.GetParticleInvMass = function() { var t = this.m_inverseDiameter * (1 / .75); return this.m_inverseDensity * t * t; }; n.prototype.GetFixtureContactFilter = function() { return this.m_allParticleFlags & t.b2ParticleFlag.b2_fixtureContactFilterParticle ? this.m_world.m_contactManager.m_contactFilter : null; }; n.prototype.GetParticleContactFilter = function() { return this.m_allParticleFlags & t.b2ParticleFlag.b2_particleContactFilterParticle ? this.m_world.m_contactManager.m_contactFilter : null; }; n.prototype.GetFixtureContactListener = function() { return this.m_allParticleFlags & t.b2ParticleFlag.b2_fixtureContactListenerParticle ? this.m_world.m_contactManager.m_contactListener : null; }; n.prototype.GetParticleContactListener = function() { return this.m_allParticleFlags & t.b2ParticleFlag.b2_particleContactListenerParticle ? this.m_world.m_contactManager.m_contactListener : null; }; n.prototype.SetUserOverridableBuffer = function(t, e, i) { t.data = e; t.userSuppliedCapacity = i; }; n.prototype.SetGroupFlags = function(e, i) { var n = e.m_groupFlags; (n ^ i) & t.b2ParticleGroupFlag.b2_solidParticleGroup && (i |= t.b2ParticleGroupFlag.b2_particleGroupNeedsUpdateDepth); n & ~i && (this.m_needsUpdateAllGroupFlags = !0); if (~this.m_allGroupFlags & i) { i & t.b2ParticleGroupFlag.b2_solidParticleGroup && (this.m_depthBuffer = this.RequestBuffer(this.m_depthBuffer)); this.m_allGroupFlags |= i; } e.m_groupFlags = i; }; n.BodyContactCompare = function(t, e) { return t.index === e.index ? t.weight > e.weight : t.index < e.index; }; n.prototype.RemoveSpuriousBodyContacts = function() { Tn(this.m_bodyContactBuffer.data, 0, this.m_bodyContactBuffer.count, n.BodyContactCompare); var t = n.RemoveSpuriousBodyContacts_s_n, e = n.RemoveSpuriousBodyContacts_s_pos, i = n.RemoveSpuriousBodyContacts_s_normal, r = this, s = -1, o = 0; this.m_bodyContactBuffer.count = Mn(this.m_bodyContactBuffer.data, (function(n) { if (n.index !== s) { o = 0; s = n.index; } if (o++ > 3) return !0; var a = t.Copy(n.normal); a.SelfMul(r.m_particleDiameter * (1 - n.weight)); if (!r.m_positionBuffer.data) throw new Error(); var l = P.AddVV(r.m_positionBuffer.data[n.index], a, e); if (!n.fixture.TestPoint(l)) { for (var h = n.fixture.GetShape().GetChildCount(), u = 0; u < h; u++) { var _ = i; if (n.fixture.ComputeDistance(l, _, u) < c) return !1; } return !0; } return !1; }), this.m_bodyContactBuffer.count); }; n.prototype.DetectStuckParticle = function(t) { if (!(this.m_stuckThreshold <= 0)) { if (!this.m_bodyContactCountBuffer.data) throw new Error(); if (!this.m_consecutiveContactStepsBuffer.data) throw new Error(); if (!this.m_lastBodyContactStepBuffer.data) throw new Error(); ++this.m_bodyContactCountBuffer.data[t]; if (2 === this.m_bodyContactCountBuffer.data[t]) { ++this.m_consecutiveContactStepsBuffer.data[t]; this.m_consecutiveContactStepsBuffer.data[t] > this.m_stuckThreshold && (this.m_stuckParticleBuffer.data[this.m_stuckParticleBuffer.Append()] = t); } this.m_lastBodyContactStepBuffer.data[t] = this.m_timestamp; } }; n.prototype.ValidateParticleIndex = function(t) { return t >= 0 && t < this.GetParticleCount() && t !== u; }; n.prototype.GetQuantizedTimeElapsed = function() { return Math.floor(this.m_timeElapsed / 4294967296); }; n.prototype.LifetimeToExpirationTime = function(t) { return this.m_timeElapsed + Math.floor(t / this.m_def.lifetimeGranularity * 4294967296); }; n.prototype.ForceCanBeApplied = function(e) { return !(e & t.b2ParticleFlag.b2_wallParticle); }; n.prototype.PrepareForceBuffer = function() { if (!this.m_hasForce) { for (var t = 0; t < this.m_count; t++) this.m_forceBuffer[t].SetZero(); this.m_hasForce = !0; } }; n.prototype.IsRigidGroup = function(e) { return null !== e && 0 != (e.m_groupFlags & t.b2ParticleGroupFlag.b2_rigidParticleGroup); }; n.prototype.GetLinearVelocity = function(t, e, i, n) { if (t && this.IsRigidGroup(t)) return t.GetLinearVelocityFromWorldPoint(i, n); if (!this.m_velocityBuffer.data) throw new Error(); return n.Copy(this.m_velocityBuffer.data[e]); }; n.prototype.InitDampingParameter = function(t, e, i, n, r, s, o, a) { t[0] = n > 0 ? 1 / n : 0; e[0] = r > 0 ? 1 / r : 0; i[0] = P.CrossVV(P.SubVV(o, s, P.s_t0), a); }; n.prototype.InitDampingParameterWithRigidGroupOrParticle = function(e, i, n, r, s, o, a, c) { if (s && r) this.InitDampingParameter(e, i, n, s.GetMass(), s.GetInertia(), s.GetCenter(), a, c); else { if (!this.m_flagsBuffer.data) throw new Error(); var l = this.m_flagsBuffer.data[o]; this.InitDampingParameter(e, i, n, l & t.b2ParticleFlag.b2_wallParticle ? 0 : this.GetParticleMass(), 0, a, a, c); } }; n.prototype.ComputeDampingImpulse = function(t, e, i, n, r, s, o) { var a = t + e * i * i + n + r * s * s; return a > 0 ? o / a : 0; }; n.prototype.ApplyDamping = function(t, e, i, n, r, s, o, a) { if (r && n) { r.m_linearVelocity.SelfMulAdd(o * t, a); r.m_angularVelocity += o * i * e; } else { if (!this.m_velocityBuffer.data) throw new Error(); this.m_velocityBuffer.data[s].SelfMulAdd(o * t, a); } }; n.xTruncBits = 12; n.yTruncBits = 12; n.tagBits = 32; n.yOffset = 1 << n.yTruncBits - 1; n.yShift = n.tagBits - n.yTruncBits; n.xShift = n.tagBits - n.yTruncBits - n.xTruncBits; n.xScale = 1 << n.xShift; n.xOffset = n.xScale * (1 << n.xTruncBits - 1); n.yMask = (1 << n.yTruncBits) - 1 << n.yShift; n.xMask = ~n.yMask; n.DestroyParticlesInShape_s_aabb = new Tt(); n.CreateParticleGroup_s_transform = new N(); n.ComputeCollisionEnergy_s_v = new P(); n.QueryShapeAABB_s_aabb = new Tt(); n.QueryPointAABB_s_aabb = new Tt(); n.RayCast_s_aabb = new Tt(); n.RayCast_s_p = new P(); n.RayCast_s_v = new P(); n.RayCast_s_n = new P(); n.RayCast_s_point = new P(); n.k_pairFlags = t.b2ParticleFlag.b2_springParticle; n.k_triadFlags = t.b2ParticleFlag.b2_elasticParticle; n.k_noPressureFlags = t.b2ParticleFlag.b2_powderParticle | t.b2ParticleFlag.b2_tensileParticle; n.k_extraDampingFlags = t.b2ParticleFlag.b2_staticPressureParticle; n.k_barrierWallFlags = t.b2ParticleFlag.b2_barrierParticle | t.b2ParticleFlag.b2_wallParticle; n.CreateParticlesStrokeShapeForGroup_s_edge = new ii(); n.CreateParticlesStrokeShapeForGroup_s_d = new P(); n.CreateParticlesStrokeShapeForGroup_s_p = new P(); n.CreateParticlesFillShapeForGroup_s_aabb = new Tt(); n.CreateParticlesFillShapeForGroup_s_p = new P(); n.UpdatePairsAndTriads_s_dab = new P(); n.UpdatePairsAndTriads_s_dbc = new P(); n.UpdatePairsAndTriads_s_dca = new P(); n.AddContact_s_d = new P(); n.UpdateBodyContacts_s_aabb = new Tt(); n.Solve_s_subStep = new on(); n.SolveCollision_s_aabb = new Tt(); n.SolveGravity_s_gravity = new P(); n.SolveBarrier_s_aabb = new Tt(); n.SolveBarrier_s_va = new P(); n.SolveBarrier_s_vb = new P(); n.SolveBarrier_s_pba = new P(); n.SolveBarrier_s_vba = new P(); n.SolveBarrier_s_vc = new P(); n.SolveBarrier_s_pca = new P(); n.SolveBarrier_s_vca = new P(); n.SolveBarrier_s_qba = new P(); n.SolveBarrier_s_qca = new P(); n.SolveBarrier_s_dv = new P(); n.SolveBarrier_s_f = new P(); n.SolvePressure_s_f = new P(); n.SolveDamping_s_v = new P(); n.SolveDamping_s_f = new P(); n.SolveRigidDamping_s_t0 = new P(); n.SolveRigidDamping_s_t1 = new P(); n.SolveRigidDamping_s_p = new P(); n.SolveRigidDamping_s_v = new P(); n.SolveExtraDamping_s_v = new P(); n.SolveExtraDamping_s_f = new P(); n.SolveRigid_s_position = new P(); n.SolveRigid_s_rotation = new V(); n.SolveRigid_s_transform = new N(); n.SolveRigid_s_velocityTransform = new N(); n.SolveElastic_s_pa = new P(); n.SolveElastic_s_pb = new P(); n.SolveElastic_s_pc = new P(); n.SolveElastic_s_r = new V(); n.SolveElastic_s_t0 = new P(); n.SolveSpring_s_pa = new P(); n.SolveSpring_s_pb = new P(); n.SolveSpring_s_d = new P(); n.SolveSpring_s_f = new P(); n.SolveTensile_s_weightedNormal = new P(); n.SolveTensile_s_s = new P(); n.SolveTensile_s_f = new P(); n.SolveViscous_s_v = new P(); n.SolveViscous_s_f = new P(); n.SolveRepulsive_s_f = new P(); n.SolvePowder_s_f = new P(); n.SolveSolid_s_f = new P(); n.RemoveSpuriousBodyContacts_s_n = new P(); n.RemoveSpuriousBodyContacts_s_pos = new P(); n.RemoveSpuriousBodyContacts_s_normal = new P(); return n; })(); (function(e) { var n = (function() { return function() { this.data = null; this.userSuppliedCapacity = 0; }; })(); e.UserOverridableBuffer = n; var r = (function() { function t() { this.index = u; this.tag = 0; } t.CompareProxyProxy = function(t, e) { return t.tag < e.tag; }; t.CompareTagProxy = function(t, e) { return t < e.tag; }; t.CompareProxyTag = function(t, e) { return t.tag < e; }; return t; })(); e.Proxy = r; var s = (function() { function t(t, i, n, r, s) { this.m_system = t; this.m_xLower = (i & e.xMask) >>> 0; this.m_xUpper = (n & e.xMask) >>> 0; this.m_yLower = (i & e.yMask) >>> 0; this.m_yUpper = (n & e.yMask) >>> 0; this.m_first = r; this.m_last = s; } t.prototype.GetNext = function() { for (;this.m_first < this.m_last; ) { var t = (this.m_system.m_proxyBuffer.data[this.m_first].tag & e.xMask) >>> 0; if (t >= this.m_xLower && t <= this.m_xUpper) return this.m_system.m_proxyBuffer.data[this.m_first++].index; this.m_first++; } return u; }; return t; })(); e.InsideBoundsEnumerator = s; var o = (function() { return function() { this.next = null; this.count = 0; this.index = 0; }; })(); e.ParticleListNode = o; var a = (function() { function t() {} t.prototype.Allocate = function(t, e) { return e; }; t.prototype.Clear = function() {}; t.prototype.GetCount = function() { return 0; }; t.prototype.Invalidate = function(t) {}; t.prototype.GetValidBuffer = function() { return []; }; t.prototype.GetBuffer = function() { return []; }; t.prototype.SetCount = function(t) {}; return t; })(); e.FixedSetAllocator = a; var l = (function() { return function(t, e) { this.second = u; this.first = t; this.second = e; }; })(); e.FixtureParticle = l; var h = (function(t) { $e(e, t); function e() { return null !== t && t.apply(this, arguments) || this; } e.prototype.Initialize = function(t, e) {}; e.prototype.Find = function(t) { return u; }; return e; })(e.FixedSetAllocator); e.FixtureParticleSet = h; var _ = (function() { return function(t, e) { this.first = u; this.second = u; this.first = t; this.second = e; }; })(); e.ParticlePair = _; var f = (function(t) { $e(e, t); function e() { return null !== t && t.apply(this, arguments) || this; } e.prototype.Initialize = function(t, e) {}; e.prototype.Find = function(t) { return u; }; return e; })(e.FixedSetAllocator); e.b2ParticlePairSet = f; var d = (function() { function t() {} t.prototype.IsNecessary = function(t) { return !0; }; t.prototype.ShouldCreatePair = function(t, e) { return !0; }; t.prototype.ShouldCreateTriad = function(t, e, i) { return !0; }; return t; })(); e.ConnectionFilter = d; var m = (function(t) { $e(e, t); function e(e, i, n, r) { var s = t.call(this) || this; s.m_callDestructionListener = !1; s.m_destroyed = 0; s.m_system = e; s.m_shape = i; s.m_xf = n; s.m_callDestructionListener = r; s.m_destroyed = 0; return s; } e.prototype.ReportFixture = function(t) { return !1; }; e.prototype.ReportParticle = function(t, e) { if (t !== this.m_system) return !1; if (!this.m_system.m_positionBuffer.data) throw new Error(); if (this.m_shape.TestPoint(this.m_xf, this.m_system.m_positionBuffer.data[e])) { this.m_system.DestroyParticle(e, this.m_callDestructionListener); this.m_destroyed++; } return !0; }; e.prototype.Destroyed = function() { return this.m_destroyed; }; return e; })(en); e.DestroyParticlesInShapeCallback = m; var p = (function(t) { $e(e, t); function e(e) { var i = t.call(this) || this; i.m_threshold = 0; i.m_threshold = e; return i; } e.prototype.ShouldCreatePair = function(t, e) { return t < this.m_threshold && this.m_threshold <= e || e < this.m_threshold && this.m_threshold <= t; }; e.prototype.ShouldCreateTriad = function(t, e, i) { return (t < this.m_threshold || e < this.m_threshold || i < this.m_threshold) && (this.m_threshold <= t || this.m_threshold <= e || this.m_threshold <= i); }; return e; })(e.ConnectionFilter); e.JoinParticleGroupsFilter = p; var v = (function(e) { $e(n, e); function n(i, n) { void 0 === n && (n = i.length); var r = e.call(this, t.b2ShapeType.e_unknown, 0) || this; r.m_shapeCount = 0; r.m_shapes = i; r.m_shapeCount = n; return r; } n.prototype.Clone = function() { throw new Error(); }; n.prototype.GetChildCount = function() { return 1; }; n.prototype.TestPoint = function(t, e) { for (var i = 0; i < this.m_shapeCount; i++) if (this.m_shapes[i].TestPoint(t, e)) return !0; return !1; }; n.prototype.ComputeDistance = function(t, e, i, n) { return 0; }; n.prototype.RayCast = function(t, e, i, n) { return !1; }; n.prototype.ComputeAABB = function(t, e, n) { var r = new Tt(); t.lowerBound.x = +i; t.lowerBound.y = +i; t.upperBound.x = -i; t.upperBound.y = -i; for (var s = 0; s < this.m_shapeCount; s++) for (var o = this.m_shapes[s].GetChildCount(), a = 0; a < o; a++) { var c = r; this.m_shapes[s].ComputeAABB(c, e, a); t.Combine1(c); } }; n.prototype.ComputeMass = function(t, e) {}; n.prototype.SetupDistanceProxy = function(t, e) {}; n.prototype.ComputeSubmergedArea = function(t, e, i, n) { return 0; }; n.prototype.Dump = function(t) {}; return n; })(Ke); e.CompositeShape = v; var y = (function(e) { $e(i, e); function i(t) { var i = e.call(this) || this; i.m_flagsBuffer = t; return i; } i.prototype.IsNecessary = function(e) { if (!this.m_flagsBuffer.data) throw new Error(); return 0 != (this.m_flagsBuffer.data[e] & t.b2ParticleFlag.b2_reactiveParticle); }; return i; })(e.ConnectionFilter); e.ReactiveFilter = y; var g = (function(i) { $e(n, i); function n(t, e) { var n = i.call(this, t) || this; n.m_contactFilter = e; return n; } n.prototype.ShouldCollideFixtureParticle = function(e, i, n) { if (this.m_contactFilter) { if (this.m_system.GetFlagsBuffer()[n] & t.b2ParticleFlag.b2_fixtureContactFilterParticle) return this.m_contactFilter.ShouldCollideFixtureParticle(e, this.m_system, n); } return !0; }; n.prototype.ReportFixtureAndParticle = function(i, n, r) { var s = e.UpdateBodyContactsCallback.ReportFixtureAndParticle_s_n, o = e.UpdateBodyContactsCallback.ReportFixtureAndParticle_s_rp; if (!this.m_system.m_flagsBuffer.data) throw new Error(); if (!this.m_system.m_positionBuffer.data) throw new Error(); var a = this.m_system.m_positionBuffer.data[r], c = s, l = i.ComputeDistance(a, c, n); if (l < this.m_system.m_particleDiameter && this.ShouldCollideFixtureParticle(i, this.m_system, r)) { var h = i.GetBody(), u = h.GetWorldCenter(), _ = h.GetMass(), f = h.GetInertia() - _ * h.GetLocalCenter().LengthSquared(), d = _ > 0 ? 1 / _ : 0, m = f > 0 ? 1 / f : 0, p = this.m_system.m_flagsBuffer.data[r] & t.b2ParticleFlag.b2_wallParticle ? 0 : this.m_system.GetParticleInvMass(), v = P.SubVV(a, u, o), y = P.CrossVV(v, c), g = p + d + m * y * y, x = this.m_system.m_bodyContactBuffer.data[this.m_system.m_bodyContactBuffer.Append()]; x.index = r; x.body = h; x.fixture = i; x.weight = 1 - l * this.m_system.m_inverseDiameter; x.normal.Copy(c.SelfNeg()); x.mass = g > 0 ? 1 / g : 0; this.m_system.DetectStuckParticle(r); } }; n.ReportFixtureAndParticle_s_n = new P(); n.ReportFixtureAndParticle_s_rp = new P(); return n; })(Ln); e.UpdateBodyContactsCallback = g; var x = (function(i) { $e(n, i); function n(t, e) { var n = i.call(this, t) || this; n.m_step = e; return n; } n.prototype.ReportFixtureAndParticle = function(i, n, r) { var s = e.SolveCollisionCallback.ReportFixtureAndParticle_s_p1, o = e.SolveCollisionCallback.ReportFixtureAndParticle_s_output, a = e.SolveCollisionCallback.ReportFixtureAndParticle_s_input, l = e.SolveCollisionCallback.ReportFixtureAndParticle_s_p, h = e.SolveCollisionCallback.ReportFixtureAndParticle_s_v, u = e.SolveCollisionCallback.ReportFixtureAndParticle_s_f, _ = i.GetBody(); if (!this.m_system.m_positionBuffer.data) throw new Error(); if (!this.m_system.m_velocityBuffer.data) throw new Error(); var f = this.m_system.m_positionBuffer.data[r], d = this.m_system.m_velocityBuffer.data[r], m = o, p = a; if (0 === this.m_system.m_iterationIndex) { var v = N.MulTXV(_.m_xf0, f, s); if (i.GetShape().GetType() === t.b2ShapeType.e_circleShape) { v.SelfSub(_.GetLocalCenter()); V.MulRV(_.m_xf0.q, v, v); V.MulTRV(_.m_xf.q, v, v); v.SelfAdd(_.GetLocalCenter()); } N.MulXV(_.m_xf, v, p.p1); } else p.p1.Copy(f); P.AddVMulSV(f, this.m_step.dt, d, p.p2); p.maxFraction = 1; if (i.RayCast(m, p, n)) { var y = m.normal, g = l; g.x = (1 - m.fraction) * p.p1.x + m.fraction * p.p2.x + c * y.x; g.y = (1 - m.fraction) * p.p1.y + m.fraction * p.p2.y + c * y.y; var x = h; x.x = this.m_step.inv_dt * (g.x - f.x); x.y = this.m_step.inv_dt * (g.y - f.y); this.m_system.m_velocityBuffer.data[r].Copy(x); var C = u; C.x = this.m_step.inv_dt * this.m_system.GetParticleMass() * (d.x - x.x); C.y = this.m_step.inv_dt * this.m_system.GetParticleMass() * (d.y - x.y); this.m_system.ParticleApplyForce(r, C); } }; n.prototype.ReportParticle = function(t, e) { return !1; }; n.ReportFixtureAndParticle_s_p1 = new P(); n.ReportFixtureAndParticle_s_output = new wt(); n.ReportFixtureAndParticle_s_input = new St(); n.ReportFixtureAndParticle_s_p = new P(); n.ReportFixtureAndParticle_s_v = new P(); n.ReportFixtureAndParticle_s_f = new P(); return n; })(Ln); e.SolveCollisionCallback = x; })(t.b2ParticleSystem || (t.b2ParticleSystem = {})); var zn = (function() { function e(t) { this.m_newFixture = !1; this.m_locked = !1; this.m_clearForces = !0; this.m_contactManager = new rn(); this.m_bodyList = null; this.m_jointList = null; this.m_particleSystemList = null; this.m_bodyCount = 0; this.m_jointCount = 0; this.m_gravity = new P(); this.m_allowSleep = !0; this.m_destructionListener = null; this.m_debugDraw = null; this.m_inv_dt0 = 0; this.m_warmStarting = !0; this.m_continuousPhysics = !0; this.m_subStepping = !1; this.m_stepComplete = !0; this.m_profile = new sn(); this.m_island = new pn(); this.s_stack = []; this.m_controllerList = null; this.m_controllerCount = 0; this.m_gravity.Copy(t); } e.prototype.SetDestructionListener = function(t) { this.m_destructionListener = t; }; e.prototype.SetContactFilter = function(t) { this.m_contactManager.m_contactFilter = t; }; e.prototype.SetContactListener = function(t) { this.m_contactManager.m_contactListener = t; }; e.prototype.SetDebugDraw = function(t) { this.m_debugDraw = t; }; e.prototype.CreateBody = function(t) { void 0 === t && (t = {}); if (this.IsLocked()) throw new Error(); var e = new li(t, this); e.m_prev = null; e.m_next = this.m_bodyList; this.m_bodyList && (this.m_bodyList.m_prev = e); this.m_bodyList = e; ++this.m_bodyCount; return e; }; e.prototype.DestroyBody = function(t) { if (this.IsLocked()) throw new Error(); for (var e = t.m_jointList; e; ) { var i = e; e = e.next; this.m_destructionListener && this.m_destructionListener.SayGoodbyeJoint(i.joint); this.DestroyJoint(i.joint); t.m_jointList = e; } t.m_jointList = null; for (var n = t.m_controllerList; n; ) { var r = n; n = n.nextController; r.controller.RemoveBody(t); } for (var s = t.m_contactList; s; ) { var o = s; s = s.next; this.m_contactManager.Destroy(o.contact); } t.m_contactList = null; for (var a = t.m_fixtureList; a; ) { var c = a; a = a.m_next; this.m_destructionListener && this.m_destructionListener.SayGoodbyeFixture(c); c.DestroyProxies(); c.Destroy(); t.m_fixtureList = a; t.m_fixtureCount -= 1; } t.m_fixtureList = null; t.m_fixtureCount = 0; t.m_prev && (t.m_prev.m_next = t.m_next); t.m_next && (t.m_next.m_prev = t.m_prev); t === this.m_bodyList && (this.m_bodyList = t.m_next); --this.m_bodyCount; }; e._Joint_Create = function(e, i) { switch (e.type) { case t.b2JointType.e_distanceJoint: return new mi(e); case t.b2JointType.e_mouseJoint: return new wi(e); case t.b2JointType.e_prismaticJoint: return new Ei(e); case t.b2JointType.e_revoluteJoint: return new Ii(e); case t.b2JointType.e_pulleyJoint: return new Bi(e); case t.b2JointType.e_gearJoint: return new Ci(e); case t.b2JointType.e_wheelJoint: return new Vi(e); case t.b2JointType.e_weldJoint: return new Fi(e); case t.b2JointType.e_frictionJoint: return new gi(e); case t.b2JointType.e_ropeJoint: return new Ri(e); case t.b2JointType.e_motorJoint: return new Ai(e); case t.b2JointType.e_areaJoint: return new vi(e); } throw new Error(); }; e._Joint_Destroy = function(t, e) {}; e.prototype.CreateJoint = function(t) { if (this.IsLocked()) throw new Error(); var i = e._Joint_Create(t, null); i.m_prev = null; i.m_next = this.m_jointList; this.m_jointList && (this.m_jointList.m_prev = i); this.m_jointList = i; ++this.m_jointCount; i.m_edgeA.prev = null; i.m_edgeA.next = i.m_bodyA.m_jointList; i.m_bodyA.m_jointList && (i.m_bodyA.m_jointList.prev = i.m_edgeA); i.m_bodyA.m_jointList = i.m_edgeA; i.m_edgeB.prev = null; i.m_edgeB.next = i.m_bodyB.m_jointList; i.m_bodyB.m_jointList && (i.m_bodyB.m_jointList.prev = i.m_edgeB); i.m_bodyB.m_jointList = i.m_edgeB; var n = t.bodyA, r = t.bodyB; if (!t.collideConnected) for (var s = r.GetContactList(); s; ) { s.other === n && s.contact.FlagForFiltering(); s = s.next; } return i; }; e.prototype.DestroyJoint = function(t) { if (this.IsLocked()) throw new Error(); var i = t.m_collideConnected; t.m_prev && (t.m_prev.m_next = t.m_next); t.m_next && (t.m_next.m_prev = t.m_prev); t === this.m_jointList && (this.m_jointList = t.m_next); var n = t.m_bodyA, r = t.m_bodyB; n.SetAwake(!0); r.SetAwake(!0); t.m_edgeA.prev && (t.m_edgeA.prev.next = t.m_edgeA.next); t.m_edgeA.next && (t.m_edgeA.next.prev = t.m_edgeA.prev); t.m_edgeA === n.m_jointList && (n.m_jointList = t.m_edgeA.next); t.m_edgeA.prev = null; t.m_edgeA.next = null; t.m_edgeB.prev && (t.m_edgeB.prev.next = t.m_edgeB.next); t.m_edgeB.next && (t.m_edgeB.next.prev = t.m_edgeB.prev); t.m_edgeB === r.m_jointList && (r.m_jointList = t.m_edgeB.next); t.m_edgeB.prev = null; t.m_edgeB.next = null; e._Joint_Destroy(t, null); --this.m_jointCount; if (!i) for (var s = r.GetContactList(); s; ) { s.other === n && s.contact.FlagForFiltering(); s = s.next; } }; e.prototype.CreateParticleSystem = function(e) { if (this.IsLocked()) throw new Error(); var i = new t.b2ParticleSystem(e, this); i.m_prev = null; i.m_next = this.m_particleSystemList; this.m_particleSystemList && (this.m_particleSystemList.m_prev = i); this.m_particleSystemList = i; return i; }; e.prototype.DestroyParticleSystem = function(t) { if (this.IsLocked()) throw new Error(); t.m_prev && (t.m_prev.m_next = t.m_next); t.m_next && (t.m_next.m_prev = t.m_prev); t === this.m_particleSystemList && (this.m_particleSystemList = t.m_next); }; e.prototype.CalculateReasonableParticleIterations = function(t) { if (null === this.m_particleSystemList) return 1; return yn(this.m_gravity.Length(), (function(t) { for (var e = i, n = t.GetParticleSystemList(); null !== n; n = n.m_next) e = g(e, n.GetRadius()); return e; })(this), t); }; e.prototype.Step = function(t, i, n, r) { void 0 === r && (r = this.CalculateReasonableParticleIterations(t)); var s = e.Step_s_stepTimer.Reset(); if (this.m_newFixture) { this.m_contactManager.FindNewContacts(); this.m_newFixture = !1; } this.m_locked = !0; var o = e.Step_s_step; o.dt = t; o.velocityIterations = i; o.positionIterations = n; o.particleIterations = r; o.inv_dt = t > 0 ? 1 / t : 0; o.dtRatio = this.m_inv_dt0 * t; o.warmStarting = this.m_warmStarting; var a = e.Step_s_timer.Reset(); this.m_contactManager.Collide(); this.m_profile.collide = a.GetMilliseconds(); if (this.m_stepComplete && o.dt > 0) { for (var c = e.Step_s_timer.Reset(), l = this.m_particleSystemList; l; l = l.m_next) l.Solve(o); this.Solve(o); this.m_profile.solve = c.GetMilliseconds(); } if (this.m_continuousPhysics && o.dt > 0) { var h = e.Step_s_timer.Reset(); this.SolveTOI(o); this.m_profile.solveTOI = h.GetMilliseconds(); } o.dt > 0 && (this.m_inv_dt0 = o.inv_dt); this.m_clearForces && this.ClearForces(); this.m_locked = !1; this.m_profile.step = s.GetMilliseconds(); }; e.prototype.ClearForces = function() { for (var t = this.m_bodyList; t; t = t.m_next) { t.m_force.SetZero(); t.m_torque = 0; } }; e.prototype.DrawParticleSystem = function(t) { if (null !== this.m_debugDraw) { var e = t.GetParticleCount(); if (e) { var i = t.GetRadius(), n = t.GetPositionBuffer(); if (t.m_colorBuffer.data) { var r = t.GetColorBuffer(); this.m_debugDraw.DrawParticles(n, i, r, e); } else this.m_debugDraw.DrawParticles(n, i, null, e); } } }; e.prototype.DrawDebugData = function() { if (null !== this.m_debugDraw) { var i = this.m_debugDraw.GetFlags(), n = e.DrawDebugData_s_color.SetRGB(0, 0, 0); if (i & t.b2DrawFlags.e_shapeBit) for (var r = this.m_bodyList; r; r = r.m_next) { var s = r.m_xf; this.m_debugDraw.PushTransform(s); for (var o = r.GetFixtureList(); o; o = o.m_next) if (r.IsActive()) if (r.GetType() === t.b2BodyType.b2_staticBody) { n.SetRGB(.5, .9, .5); this.DrawShape(o, n); } else if (r.GetType() === t.b2BodyType.b2_kinematicBody) { n.SetRGB(.5, .5, .9); this.DrawShape(o, n); } else if (r.IsAwake()) { n.SetRGB(.9, .7, .7); this.DrawShape(o, n); } else { n.SetRGB(.6, .6, .6); this.DrawShape(o, n); } else { n.SetRGB(.5, .5, .3); this.DrawShape(o, n); } this.m_debugDraw.PopTransform(s); } if (i & t.b2DrawFlags.e_particleBit) for (var a = this.m_particleSystemList; a; a = a.m_next) this.DrawParticleSystem(a); if (i & t.b2DrawFlags.e_jointBit) for (var c = this.m_jointList; c; c = c.m_next) this.DrawJoint(c); if (i & t.b2DrawFlags.e_aabbBit) { n.SetRGB(.9, .3, .9); var l = e.DrawDebugData_s_vs; for (r = this.m_bodyList; r; r = r.m_next) if (r.IsActive()) for (o = r.GetFixtureList(); o; o = o.m_next) for (var h = 0; h < o.m_proxyCount; ++h) { var u = o.m_proxies[h].treeNode.aabb; l[0].Set(u.lowerBound.x, u.lowerBound.y); l[1].Set(u.upperBound.x, u.lowerBound.y); l[2].Set(u.upperBound.x, u.upperBound.y); l[3].Set(u.lowerBound.x, u.upperBound.y); this.m_debugDraw.DrawPolygon(l, 4, n); } } if (i & t.b2DrawFlags.e_centerOfMassBit) for (r = this.m_bodyList; r; r = r.m_next) { (s = e.DrawDebugData_s_xf).q.Copy(r.m_xf.q); s.p.Copy(r.GetWorldCenter()); this.m_debugDraw.DrawTransform(s); } if (i & t.b2DrawFlags.e_controllerBit) for (var _ = this.m_controllerList; _; _ = _.m_next) _.Draw(this.m_debugDraw); } }; e.prototype.QueryAABB = function(t, e, i) { this.m_contactManager.m_broadPhase.Query(e, (function(e) { var n = e.userData.fixture; return t ? t.ReportFixture(n) : !i || i(n); })); if (t instanceof en) for (var n = this.m_particleSystemList; n; n = n.m_next) t.ShouldQueryParticleSystem(n) && n.QueryAABB(t, e); }; e.prototype.QueryAllAABB = function(t, e) { void 0 === e && (e = []); this.QueryAABB(null, t, (function(t) { e.push(t); return !0; })); return e; }; e.prototype.QueryPointAABB = function(t, e, i) { this.m_contactManager.m_broadPhase.QueryPoint(e, (function(e) { var n = e.userData.fixture; return t ? t.ReportFixture(n) : !i || i(n); })); if (t instanceof en) for (var n = this.m_particleSystemList; n; n = n.m_next) t.ShouldQueryParticleSystem(n) && n.QueryPointAABB(t, e); }; e.prototype.QueryAllPointAABB = function(t, e) { void 0 === e && (e = []); this.QueryPointAABB(null, t, (function(t) { e.push(t); return !0; })); return e; }; e.prototype.QueryFixtureShape = function(t, i, n, r, s) { var o = e.QueryFixtureShape_s_aabb; i.ComputeAABB(o, r, n); this.m_contactManager.m_broadPhase.Query(o, (function(e) { var o = e.userData, a = o.fixture; if (Pt(i, n, a.GetShape(), o.childIndex, r, a.GetBody().GetTransform())) { if (t) return t.ReportFixture(a); if (s) return s(a); } return !0; })); if (t instanceof en) for (var a = this.m_particleSystemList; a; a = a.m_next) t.ShouldQueryParticleSystem(a) && a.QueryAABB(t, o); }; e.prototype.QueryAllFixtureShape = function(t, e, i, n) { void 0 === n && (n = []); this.QueryFixtureShape(null, t, e, i, (function(t) { n.push(t); return !0; })); return n; }; e.prototype.QueryFixturePoint = function(t, e, i) { this.m_contactManager.m_broadPhase.QueryPoint(e, (function(n) { var r = n.userData.fixture; if (r.TestPoint(e)) { if (t) return t.ReportFixture(r); if (i) return i(r); } return !0; })); if (t) for (var n = this.m_particleSystemList; n; n = n.m_next) t.ShouldQueryParticleSystem(n) && n.QueryPointAABB(t, e); }; e.prototype.QueryAllFixturePoint = function(t, e) { void 0 === e && (e = []); this.QueryFixturePoint(null, t, (function(t) { e.push(t); return !0; })); return e; }; e.prototype.RayCast = function(t, i, n, r) { var s = e.RayCast_s_input; s.maxFraction = 1; s.p1.Copy(i); s.p2.Copy(n); this.m_contactManager.m_broadPhase.RayCast(s, (function(s, o) { var a = o.userData, c = a.fixture, l = a.childIndex, h = e.RayCast_s_output; if (c.RayCast(h, s, l)) { var u = h.fraction, _ = e.RayCast_s_point; _.Set((1 - u) * i.x + u * n.x, (1 - u) * i.y + u * n.y); if (t) return t.ReportFixture(c, _, h.normal, u); if (r) return r(c, _, h.normal, u); } return s.maxFraction; })); if (t) for (var o = this.m_particleSystemList; o; o = o.m_next) t.ShouldQueryParticleSystem(o) && o.RayCast(t, i, n); }; e.prototype.RayCastOne = function(t, e) { var i = null, n = 1; this.RayCast(null, t, e, (function(t, e, r, s) { if (s < n) { n = s; i = t; } return n; })); return i; }; e.prototype.RayCastAll = function(t, e, i) { void 0 === i && (i = []); this.RayCast(null, t, e, (function(t, e, n, r) { i.push(t); return 1; })); return i; }; e.prototype.GetBodyList = function() { return this.m_bodyList; }; e.prototype.GetJointList = function() { return this.m_jointList; }; e.prototype.GetParticleSystemList = function() { return this.m_particleSystemList; }; e.prototype.GetContactList = function() { return this.m_contactManager.m_contactList; }; e.prototype.SetAllowSleeping = function(t) { if (t !== this.m_allowSleep) { this.m_allowSleep = t; if (!this.m_allowSleep) for (var e = this.m_bodyList; e; e = e.m_next) e.SetAwake(!0); } }; e.prototype.GetAllowSleeping = function() { return this.m_allowSleep; }; e.prototype.SetWarmStarting = function(t) { this.m_warmStarting = t; }; e.prototype.GetWarmStarting = function() { return this.m_warmStarting; }; e.prototype.SetContinuousPhysics = function(t) { this.m_continuousPhysics = t; }; e.prototype.GetContinuousPhysics = function() { return this.m_continuousPhysics; }; e.prototype.SetSubStepping = function(t) { this.m_subStepping = t; }; e.prototype.GetSubStepping = function() { return this.m_subStepping; }; e.prototype.GetProxyCount = function() { return this.m_contactManager.m_broadPhase.GetProxyCount(); }; e.prototype.GetBodyCount = function() { return this.m_bodyCount; }; e.prototype.GetJointCount = function() { return this.m_jointCount; }; e.prototype.GetContactCount = function() { return this.m_contactManager.m_contactCount; }; e.prototype.GetTreeHeight = function() { return this.m_contactManager.m_broadPhase.GetTreeHeight(); }; e.prototype.GetTreeBalance = function() { return this.m_contactManager.m_broadPhase.GetTreeBalance(); }; e.prototype.GetTreeQuality = function() { return this.m_contactManager.m_broadPhase.GetTreeQuality(); }; e.prototype.SetGravity = function(t, e) { void 0 === e && (e = !0); if (!P.IsEqualToV(this.m_gravity, t)) { this.m_gravity.Copy(t); if (e) for (var i = this.m_bodyList; i; i = i.m_next) i.SetAwake(!0); } }; e.prototype.GetGravity = function() { return this.m_gravity; }; e.prototype.IsLocked = function() { return this.m_locked; }; e.prototype.SetAutoClearForces = function(t) { this.m_clearForces = t; }; e.prototype.GetAutoClearForces = function() { return this.m_clearForces; }; e.prototype.ShiftOrigin = function(t) { if (this.IsLocked()) throw new Error(); for (var e = this.m_bodyList; e; e = e.m_next) { e.m_xf.p.SelfSub(t); e.m_sweep.c0.SelfSub(t); e.m_sweep.c.SelfSub(t); } for (var i = this.m_jointList; i; i = i.m_next) i.ShiftOrigin(t); this.m_contactManager.m_broadPhase.ShiftOrigin(t); }; e.prototype.GetContactManager = function() { return this.m_contactManager; }; e.prototype.GetProfile = function() { return this.m_profile; }; e.prototype.Dump = function(e) { if (!this.m_locked) { e("const g: b2Vec2 = new b2Vec2(%.15f, %.15f);\n", this.m_gravity.x, this.m_gravity.y); e("this.m_world.SetGravity(g);\n"); e("const bodies: b2Body[] = [];\n"); e("const joints: b2Joint[] = [];\n"); for (var i = 0, n = this.m_bodyList; n; n = n.m_next) { n.m_islandIndex = i; n.Dump(e); ++i; } i = 0; for (var r = this.m_jointList; r; r = r.m_next) { r.m_index = i; ++i; } for (r = this.m_jointList; r; r = r.m_next) if (r.m_type !== t.b2JointType.e_gearJoint) { e("{\n"); r.Dump(e); e("}\n"); } for (r = this.m_jointList; r; r = r.m_next) if (r.m_type === t.b2JointType.e_gearJoint) { e("{\n"); r.Dump(e); e("}\n"); } } }; e.prototype.DrawJoint = function(i) { if (null !== this.m_debugDraw) { var n = i.GetBodyA(), r = i.GetBodyB(), s = n.m_xf, o = r.m_xf, a = s.p, c = o.p, l = i.GetAnchorA(e.DrawJoint_s_p1), h = i.GetAnchorB(e.DrawJoint_s_p2), u = e.DrawJoint_s_color.SetRGB(.5, .8, .8); switch (i.m_type) { case t.b2JointType.e_distanceJoint: this.m_debugDraw.DrawSegment(l, h, u); break; case t.b2JointType.e_pulleyJoint: var _ = i, f = _.GetGroundAnchorA(), d = _.GetGroundAnchorB(); this.m_debugDraw.DrawSegment(f, l, u); this.m_debugDraw.DrawSegment(d, h, u); this.m_debugDraw.DrawSegment(f, d, u); break; case t.b2JointType.e_mouseJoint: var m = e.DrawJoint_s_c; m.Set(0, 1, 0); this.m_debugDraw.DrawPoint(l, 4, m); this.m_debugDraw.DrawPoint(h, 4, m); m.Set(.8, .8, .8); this.m_debugDraw.DrawSegment(l, h, m); break; default: this.m_debugDraw.DrawSegment(a, l, u); this.m_debugDraw.DrawSegment(l, h, u); this.m_debugDraw.DrawSegment(c, h, u); } } }; e.prototype.DrawShape = function(i, n) { if (null !== this.m_debugDraw) { var r = i.GetShape(); switch (r.m_type) { case t.b2ShapeType.e_circleShape: var s = r, o = s.m_p, a = s.m_radius, c = P.UNITX; this.m_debugDraw.DrawSolidCircle(o, a, c, n); break; case t.b2ShapeType.e_edgeShape: var l = r, h = l.m_vertex1, u = l.m_vertex2; this.m_debugDraw.DrawSegment(h, u, n); break; case t.b2ShapeType.e_chainShape: var _ = r, f = _.m_count, d = _.m_vertices, m = e.DrawShape_s_ghostColor.SetRGBA(.75 * n.r, .75 * n.g, .75 * n.b, n.a); h = d[0]; this.m_debugDraw.DrawPoint(h, 4, n); if (_.m_hasPrevVertex) { var p = _.m_prevVertex; this.m_debugDraw.DrawSegment(p, h, m); this.m_debugDraw.DrawCircle(p, .1, m); } for (var v = 1; v < f; ++v) { u = d[v]; this.m_debugDraw.DrawSegment(h, u, n); this.m_debugDraw.DrawPoint(u, 4, n); h = u; } if (_.m_hasNextVertex) { var y = _.m_nextVertex; this.m_debugDraw.DrawSegment(y, h, m); this.m_debugDraw.DrawCircle(y, .1, m); } break; case t.b2ShapeType.e_polygonShape: var g = r, x = g.m_count; d = g.m_vertices; this.m_debugDraw.DrawSolidPolygon(d, x, n); } } }; e.prototype.Solve = function(e) { for (var i = this.m_bodyList; i; i = i.m_next) i.m_xf0.Copy(i.m_xf); for (var n = this.m_controllerList; n; n = n.m_next) n.Step(e); this.m_profile.solveInit = 0; this.m_profile.solveVelocity = 0; this.m_profile.solvePosition = 0; var r = this.m_island; r.Initialize(this.m_bodyCount, this.m_contactManager.m_contactCount, this.m_jointCount, null, this.m_contactManager.m_contactListener); for (i = this.m_bodyList; i; i = i.m_next) i.m_islandFlag = !1; for (var s = this.m_contactManager.m_contactList; s; s = s.m_next) s.m_islandFlag = !1; for (var o = this.m_jointList; o; o = o.m_next) o.m_islandFlag = !1; for (var a = this.s_stack, c = this.m_bodyList; c; c = c.m_next) if (!c.m_islandFlag && c.IsAwake() && c.IsActive() && c.GetType() !== t.b2BodyType.b2_staticBody) { r.Clear(); var l = 0; a[l++] = c; c.m_islandFlag = !0; for (;l > 0; ) { if (!(i = a[--l])) throw new Error(); r.AddBody(i); i.m_awakeFlag = !0; if (i.GetType() !== t.b2BodyType.b2_staticBody) { for (var h = i.m_contactList; h; h = h.next) { var u = h.contact; if (!u.m_islandFlag && (u.IsEnabled() && u.IsTouching())) { var _ = u.m_fixtureA.m_isSensor, f = u.m_fixtureB.m_isSensor; if (!_ && !f) { r.AddContact(u); u.m_islandFlag = !0; if (!(m = h.other)) throw new Error(); if (!m.m_islandFlag) { a[l++] = m; m.m_islandFlag = !0; } } } } for (var d = i.m_jointList; d; d = d.next) if (!d.joint.m_islandFlag) { var m; if ((m = d.other).IsActive()) { r.AddJoint(d.joint); d.joint.m_islandFlag = !0; if (!m.m_islandFlag) { a[l++] = m; m.m_islandFlag = !0; } } } } } var p = new sn(); r.Solve(p, e, this.m_gravity, this.m_allowSleep); this.m_profile.solveInit += p.solveInit; this.m_profile.solveVelocity += p.solveVelocity; this.m_profile.solvePosition += p.solvePosition; for (var v = 0; v < r.m_bodyCount; ++v) { (i = r.m_bodies[v]).GetType() === t.b2BodyType.b2_staticBody && (i.m_islandFlag = !1); } } for (v = 0; v < a.length && a[v]; ++v) a[v] = null; var y = new U(); for (i = this.m_bodyList; i; i = i.m_next) i.m_islandFlag && i.GetType() !== t.b2BodyType.b2_staticBody && i.SynchronizeFixtures(); this.m_contactManager.FindNewContacts(); this.m_profile.broadphase = y.GetMilliseconds(); }; e.prototype.SolveTOI = function(i) { var r = this.m_island; r.Initialize(64, 32, 0, null, this.m_contactManager.m_contactListener); if (this.m_stepComplete) { for (var s = this.m_bodyList; s; s = s.m_next) { s.m_islandFlag = !1; s.m_sweep.alpha0 = 0; } for (var o = this.m_contactManager.m_contactList; o; o = o.m_next) { o.m_toiFlag = !1; o.m_islandFlag = !1; o.m_toiCount = 0; o.m_toi = 1; } } for (;;) { var a = null, c = 1; for (o = this.m_contactManager.m_contactList; o; o = o.m_next) if (o.IsEnabled() && !(o.m_toiCount > 8)) { var l = 1; if (o.m_toiFlag) l = o.m_toi; else { var h = o.GetFixtureA(), u = o.GetFixtureB(); if (h.IsSensor() || u.IsSensor()) continue; var _ = h.GetBody(), f = u.GetBody(), d = _.m_type, m = f.m_type, p = _.IsAwake() && d !== t.b2BodyType.b2_staticBody, v = f.IsAwake() && m !== t.b2BodyType.b2_staticBody; if (!p && !v) continue; var y = _.IsBullet() || d !== t.b2BodyType.b2_dynamicBody, x = f.IsBullet() || m !== t.b2BodyType.b2_dynamicBody; if (!y && !x) continue; var C = _.m_sweep.alpha0; if (_.m_sweep.alpha0 < f.m_sweep.alpha0) { C = f.m_sweep.alpha0; _.m_sweep.Advance(C); } else if (f.m_sweep.alpha0 < _.m_sweep.alpha0) { C = _.m_sweep.alpha0; f.m_sweep.Advance(C); } var b = o.GetChildIndexA(), A = o.GetChildIndexB(), S = e.SolveTOI_s_toi_input; S.proxyA.SetShape(h.GetShape(), b); S.proxyB.SetShape(u.GetShape(), A); S.sweepA.Copy(_.m_sweep); S.sweepB.Copy(f.m_sweep); S.tMax = 1; var w = e.SolveTOI_s_toi_output; re(w, S); var T = w.t; l = w.state === t.b2TOIOutputState.e_touching ? g(C + (1 - C) * T, 1) : 1; o.m_toi = l; o.m_toiFlag = !0; } if (l < c) { a = o; c = l; } } if (null === a || 1 - 10 * n < c) { this.m_stepComplete = !0; break; } var E = a.GetFixtureA(), M = a.GetFixtureB(), B = E.GetBody(), D = M.GetBody(), I = e.SolveTOI_s_backup1.Copy(B.m_sweep), P = e.SolveTOI_s_backup2.Copy(D.m_sweep); B.Advance(c); D.Advance(c); a.Update(this.m_contactManager.m_contactListener); a.m_toiFlag = !1; ++a.m_toiCount; if (a.IsEnabled() && a.IsTouching()) { B.SetAwake(!0); D.SetAwake(!0); r.Clear(); r.AddBody(B); r.AddBody(D); r.AddContact(a); B.m_islandFlag = !0; D.m_islandFlag = !0; a.m_islandFlag = !0; for (var R = 0; R < 2; ++R) { if ((G = 0 === R ? B : D).m_type === t.b2BodyType.b2_dynamicBody) for (var L = G.m_contactList; L && r.m_bodyCount !== r.m_bodyCapacity && r.m_contactCount !== r.m_contactCapacity; L = L.next) { var F = L.contact; if (!F.m_islandFlag) { var O = L.other; if (O.m_type !== t.b2BodyType.b2_dynamicBody || G.IsBullet() || O.IsBullet()) { var V = F.m_fixtureA.m_isSensor, N = F.m_fixtureB.m_isSensor; if (!V && !N) { var k = e.SolveTOI_s_backup.Copy(O.m_sweep); O.m_islandFlag || O.Advance(c); F.Update(this.m_contactManager.m_contactListener); if (F.IsEnabled()) if (F.IsTouching()) { F.m_islandFlag = !0; r.AddContact(F); if (!O.m_islandFlag) { O.m_islandFlag = !0; O.m_type !== t.b2BodyType.b2_staticBody && O.SetAwake(!0); r.AddBody(O); } } else { O.m_sweep.Copy(k); O.SynchronizeTransform(); } else { O.m_sweep.Copy(k); O.SynchronizeTransform(); } } } } } } var z = e.SolveTOI_s_subStep; z.dt = (1 - c) * i.dt; z.inv_dt = 1 / z.dt; z.dtRatio = 1; z.positionIterations = 20; z.velocityIterations = i.velocityIterations; z.particleIterations = i.particleIterations; z.warmStarting = !1; r.SolveTOI(z, B.m_islandIndex, D.m_islandIndex); for (R = 0; R < r.m_bodyCount; ++R) { var G; (G = r.m_bodies[R]).m_islandFlag = !1; if (G.m_type === t.b2BodyType.b2_dynamicBody) { G.SynchronizeFixtures(); for (L = G.m_contactList; L; L = L.next) { L.contact.m_toiFlag = !1; L.contact.m_islandFlag = !1; } } } this.m_contactManager.FindNewContacts(); if (this.m_subStepping) { this.m_stepComplete = !1; break; } } else { a.SetEnabled(!1); B.m_sweep.Copy(I); D.m_sweep.Copy(P); B.SynchronizeTransform(); D.SynchronizeTransform(); } } }; e.prototype.AddController = function(t) { t.m_next = this.m_controllerList; t.m_prev = null; this.m_controllerList && (this.m_controllerList.m_prev = t); this.m_controllerList = t; ++this.m_controllerCount; return t; }; e.prototype.RemoveController = function(t) { t.m_prev && (t.m_prev.m_next = t.m_next); t.m_next && (t.m_next.m_prev = t.m_prev); this.m_controllerList === t && (this.m_controllerList = t.m_next); --this.m_controllerCount; t.m_prev = null; t.m_next = null; return t; }; e.Step_s_step = new on(); e.Step_s_stepTimer = new U(); e.Step_s_timer = new U(); e.DrawDebugData_s_color = new z(0, 0, 0); e.DrawDebugData_s_vs = P.MakeArray(4); e.DrawDebugData_s_xf = new N(); e.QueryFixtureShape_s_aabb = new Tt(); e.RayCast_s_input = new St(); e.RayCast_s_output = new wt(); e.RayCast_s_point = new P(); e.DrawJoint_s_p1 = new P(); e.DrawJoint_s_p2 = new P(); e.DrawJoint_s_color = new z(.5, .8, .8); e.DrawJoint_s_c = new z(); e.DrawShape_s_ghostColor = new z(); e.SolveTOI_s_subStep = new on(); e.SolveTOI_s_backup = new k(); e.SolveTOI_s_backup1 = new k(); e.SolveTOI_s_backup2 = new k(); e.SolveTOI_s_toi_input = new qt(); e.SolveTOI_s_toi_output = new Xt(); return e; })(), Gn = (function() { return function(t, e) { this.prevBody = null; this.nextBody = null; this.prevController = null; this.nextController = null; this.controller = t; this.body = e; }; })(), Un = (function() { function t() { this.m_bodyList = null; this.m_bodyCount = 0; this.m_prev = null; this.m_next = null; } t.prototype.GetNext = function() { return this.m_next; }; t.prototype.GetPrev = function() { return this.m_prev; }; t.prototype.GetBodyList = function() { return this.m_bodyList; }; t.prototype.AddBody = function(t) { var e = new Gn(this, t); e.nextBody = this.m_bodyList; e.prevBody = null; this.m_bodyList && (this.m_bodyList.prevBody = e); this.m_bodyList = e; ++this.m_bodyCount; e.nextController = t.m_controllerList; e.prevController = null; t.m_controllerList && (t.m_controllerList.prevController = e); t.m_controllerList = e; ++t.m_controllerCount; }; t.prototype.RemoveBody = function(t) { if (this.m_bodyCount <= 0) throw new Error(); for (var e = this.m_bodyList; e && e.body !== t; ) e = e.nextBody; if (null === e) throw new Error(); e.prevBody && (e.prevBody.nextBody = e.nextBody); e.nextBody && (e.nextBody.prevBody = e.prevBody); this.m_bodyList === e && (this.m_bodyList = e.nextBody); --this.m_bodyCount; e.nextController && (e.nextController.prevController = e.prevController); e.prevController && (e.prevController.nextController = e.nextController); t.m_controllerList === e && (t.m_controllerList = e.nextController); --t.m_controllerCount; }; t.prototype.Clear = function() { for (;this.m_bodyList; ) this.RemoveBody(this.m_bodyList.body); this.m_bodyCount = 0; }; return t; })(), jn = (function(t) { $e(e, t); function e() { var e = null !== t && t.apply(this, arguments) || this; e.normal = new P(0, 1); e.offset = 0; e.density = 0; e.velocity = new P(0, 0); e.linearDrag = 0; e.angularDrag = 0; e.useDensity = !1; e.useWorldGravity = !0; e.gravity = new P(0, 0); return e; } e.prototype.Step = function(t) { if (this.m_bodyList) { this.useWorldGravity && this.gravity.Copy(this.m_bodyList.body.GetWorld().GetGravity()); for (var e = this.m_bodyList; e; e = e.nextBody) { var i = e.body; if (i.IsAwake()) { for (var r = new P(), s = new P(), o = 0, a = 0, c = i.GetFixtureList(); c; c = c.m_next) { var l = new P(), h = c.GetShape().ComputeSubmergedArea(this.normal, this.offset, i.GetTransform(), l); o += h; r.x += h * l.x; r.y += h * l.y; var u = 0; a += h * (u = this.useDensity ? c.GetDensity() : 1); s.x += h * l.x * u; s.y += h * l.y * u; } r.x /= o; r.y /= o; s.x /= a; s.y /= a; if (!(o < n)) { var _ = this.gravity.Clone().SelfNeg(); _.SelfMul(this.density * o); i.ApplyForce(_, s); var f = i.GetLinearVelocityFromWorldPoint(r, new P()); f.SelfSub(this.velocity); f.SelfMul(-this.linearDrag * o); i.ApplyForce(f, r); i.ApplyTorque(-i.GetInertia() / i.GetMass() * o * i.GetAngularVelocity() * this.angularDrag); } } } } }; e.prototype.Draw = function(t) { var e = 100, i = new P(), n = new P(); i.x = this.normal.x * this.offset + this.normal.y * e; i.y = this.normal.y * this.offset - this.normal.x * e; n.x = this.normal.x * this.offset - this.normal.y * e; n.y = this.normal.y * this.offset + this.normal.x * e; var r = new z(0, 0, .8); t.DrawSegment(i, n, r); }; return e; })(Un), Wn = (function(t) { $e(e, t); function e() { var e = null !== t && t.apply(this, arguments) || this; e.A = new P(0, 0); return e; } e.prototype.Step = function(t) { for (var i = P.MulSV(t.dt, this.A, e.Step_s_dtA), n = this.m_bodyList; n; n = n.nextBody) { var r = n.body; r.IsAwake() && r.SetLinearVelocity(P.AddVV(r.GetLinearVelocity(), i, P.s_t0)); } }; e.prototype.Draw = function(t) {}; e.Step_s_dtA = new P(); return e; })(Un), Hn = (function(t) { $e(e, t); function e() { var e = null !== t && t.apply(this, arguments) || this; e.F = new P(0, 0); return e; } e.prototype.Step = function(t) { for (var e = this.m_bodyList; e; e = e.nextBody) { var i = e.body; i.IsAwake() && i.ApplyForce(this.F, i.GetWorldCenter()); } }; e.prototype.Draw = function(t) {}; return e; })(Un), qn = (function(t) { $e(e, t); function e() { var e = null !== t && t.apply(this, arguments) || this; e.G = 1; e.invSqr = !0; return e; } e.prototype.Step = function(t) { if (this.invSqr) for (var i = this.m_bodyList; i; i = i.nextBody) for (var r = (l = i.body).GetWorldCenter(), s = l.GetMass(), o = this.m_bodyList; o && o !== i; o = o.nextBody) { var a = (h = o.body).GetWorldCenter(), c = h.GetMass(); if (!((f = (u = a.x - r.x) * u + (_ = a.y - r.y) * _) < n)) { (d = e.Step_s_f.Set(u, _)).SelfMul(this.G / f / w(f) * s * c); l.IsAwake() && l.ApplyForce(d, r); h.IsAwake() && h.ApplyForce(d.SelfMul(-1), a); } } else for (i = this.m_bodyList; i; i = i.nextBody) { var l; for (r = (l = i.body).GetWorldCenter(), s = l.GetMass(), o = this.m_bodyList; o && o !== i; o = o.nextBody) { var h, u, _, f; a = (h = o.body).GetWorldCenter(), c = h.GetMass(); if (!((f = (u = a.x - r.x) * u + (_ = a.y - r.y) * _) < n)) { var d; (d = e.Step_s_f.Set(u, _)).SelfMul(this.G / f * s * c); l.IsAwake() && l.ApplyForce(d, r); h.IsAwake() && h.ApplyForce(d.SelfMul(-1), a); } } } }; e.prototype.Draw = function(t) {}; e.Step_s_f = new P(); return e; })(Un), Xn = (function(t) { $e(e, t); function e() { var e = null !== t && t.apply(this, arguments) || this; e.T = new F(); e.maxTimestep = 0; return e; } e.prototype.Step = function(t) { var i = t.dt; if (!(i <= n)) { i > this.maxTimestep && this.maxTimestep > 0 && (i = this.maxTimestep); for (var r = this.m_bodyList; r; r = r.nextBody) { var s = r.body; if (s.IsAwake()) { var o = s.GetWorldVector(F.MulMV(this.T, s.GetLocalVector(s.GetLinearVelocity(), P.s_t0), P.s_t1), e.Step_s_damping); s.SetLinearVelocity(P.AddVV(s.GetLinearVelocity(), P.MulSV(i, o, P.s_t0), P.s_t1)); } } } }; e.prototype.Draw = function(t) {}; e.prototype.SetAxisAligned = function(t, e) { this.T.ex.x = -t; this.T.ex.y = 0; this.T.ey.x = 0; this.T.ey.y = -e; this.maxTimestep = t > 0 || e > 0 ? 1 / x(t, e) : 0; }; e.Step_s_damping = new P(); return e; })(Un), Yn = (function() { return function() { this.vertices = []; this.count = 0; this.masses = []; this.gravity = new P(0, 0); this.damping = .1; this.k2 = .9; this.k3 = .1; }; })(), Jn = (function() { function t() { this.m_count = 0; this.m_ps = []; this.m_p0s = []; this.m_vs = []; this.m_ims = []; this.m_Ls = []; this.m_as = []; this.m_gravity = new P(); this.m_damping = 0; this.m_k2 = 1; this.m_k3 = .1; } t.prototype.GetVertexCount = function() { return this.m_count; }; t.prototype.GetVertices = function() { return this.m_ps; }; t.prototype.Initialize = function(t) { this.m_count = t.count; this.m_ps = P.MakeArray(this.m_count); this.m_p0s = P.MakeArray(this.m_count); this.m_vs = P.MakeArray(this.m_count); this.m_ims = m(this.m_count); for (var e = 0; e < this.m_count; ++e) { this.m_ps[e].Copy(t.vertices[e]); this.m_p0s[e].Copy(t.vertices[e]); this.m_vs[e].SetZero(); var i = t.masses[e]; this.m_ims[e] = i > 0 ? 1 / i : 0; } var n = this.m_count - 1, r = this.m_count - 2; this.m_Ls = m(n); this.m_as = m(r); for (e = 0; e < n; ++e) { var s = this.m_ps[e], o = this.m_ps[e + 1]; this.m_Ls[e] = P.DistanceVV(s, o); } for (e = 0; e < r; ++e) { s = this.m_ps[e], o = this.m_ps[e + 1]; var a = this.m_ps[e + 2], c = P.SubVV(o, s, P.s_t0), l = P.SubVV(a, o, P.s_t1), h = P.CrossVV(c, l), u = P.DotVV(c, l); this.m_as[e] = I(h, u); } this.m_gravity.Copy(t.gravity); this.m_damping = t.damping; this.m_k2 = t.k2; this.m_k3 = t.k3; }; t.prototype.Step = function(t, e) { if (0 !== t) { for (var i = Math.exp(-t * this.m_damping), n = 0; n < this.m_count; ++n) { this.m_p0s[n].Copy(this.m_ps[n]); this.m_ims[n] > 0 && this.m_vs[n].SelfMulAdd(t, this.m_gravity); this.m_vs[n].SelfMul(i); this.m_ps[n].SelfMulAdd(t, this.m_vs[n]); } for (n = 0; n < e; ++n) { this.SolveC2(); this.SolveC3(); this.SolveC2(); } var r = 1 / t; for (n = 0; n < this.m_count; ++n) P.MulSV(r, P.SubVV(this.m_ps[n], this.m_p0s[n], P.s_t0), this.m_vs[n]); } }; t.prototype.SolveC2 = function() { for (var e = this.m_count - 1, i = 0; i < e; ++i) { var n = this.m_ps[i], r = this.m_ps[i + 1], s = P.SubVV(r, n, t.s_d), o = s.Normalize(), a = this.m_ims[i], c = this.m_ims[i + 1]; if (a + c !== 0) { var l = a / (a + c), h = c / (a + c); n.SelfMulSub(this.m_k2 * l * (this.m_Ls[i] - o), s); r.SelfMulAdd(this.m_k2 * h * (this.m_Ls[i] - o), s); } } }; t.prototype.SetAngle = function(t) { for (var e = this.m_count - 2, i = 0; i < e; ++i) this.m_as[i] = t; }; t.prototype.SolveC3 = function() { for (var e = this.m_count - 2, i = 0; i < e; ++i) { var n = this.m_ps[i], r = this.m_ps[i + 1], o = this.m_ps[i + 2], a = this.m_ims[i], c = this.m_ims[i + 1], l = this.m_ims[i + 2], h = P.SubVV(r, n, t.s_d1), u = P.SubVV(o, r, t.s_d2), _ = h.LengthSquared(), f = u.LengthSquared(); if (_ * f != 0) { var d = P.CrossVV(h, u), m = P.DotVV(h, u), p = I(d, m), v = P.MulSV(-1 / _, h.SelfSkew(), t.s_Jd1), y = P.MulSV(1 / f, u.SelfSkew(), t.s_Jd2), g = P.NegV(v, t.s_J1), x = P.SubVV(v, y, t.s_J2), C = y, b = a * P.DotVV(g, g) + c * P.DotVV(x, x) + l * P.DotVV(C, C); if (0 !== b) { b = 1 / b; for (var A = p - this.m_as[i]; A > s; ) A = (p -= 2 * s) - this.m_as[i]; for (;A < -s; ) A = (p += 2 * s) - this.m_as[i]; var S = -this.m_k3 * b * A; n.SelfMulAdd(a * S, g); r.SelfMulAdd(c * S, x); o.SelfMulAdd(l * S, C); } } } }; t.prototype.Draw = function(t) { for (var e = new z(.4, .5, .7), i = 0; i < this.m_count - 1; ++i) t.DrawSegment(this.m_ps[i], this.m_ps[i + 1], e); }; t.s_d = new P(); t.s_d1 = new P(); t.s_d2 = new P(); t.s_Jd1 = new P(); t.s_Jd2 = new P(); t.s_J1 = new P(); t.s_J2 = new P(); return t; })(); t.b2Assert = function(t) { for (var e = [], i = 1; i < arguments.length; i++) e[i - 1] = arguments[i]; if (!t) throw new (Error.bind.apply(Error, [ void 0 ].concat(e)))(); }; t.b2Maybe = e; t.b2_maxFloat = i; t.b2_epsilon = n; t.b2_epsilon_sq = r; t.b2_pi = s; t.b2_maxManifoldPoints = o; t.b2_maxPolygonVertices = a; t.b2_aabbExtension = .1; t.b2_aabbMultiplier = 2; t.b2_linearSlop = c; t.b2_angularSlop = l; t.b2_polygonRadius = h; t.b2_maxSubSteps = 8; t.b2_maxTOIContacts = 32; t.b2_velocityThreshold = 1; t.b2_maxLinearCorrection = .2; t.b2_maxAngularCorrection = .13962634015955555; t.b2_maxTranslation = 2; t.b2_maxTranslationSquared = 4; t.b2_maxRotation = 1.570796326795; t.b2_maxRotationSquared = 2.4674011002726646; t.b2_baumgarte = .2; t.b2_toiBaumgarte = .75; t.b2_invalidParticleIndex = u; t.b2_maxParticleIndex = 2147483647; t.b2_particleStride = .75; t.b2_minParticleWeight = 1; t.b2_maxParticlePressure = .25; t.b2_maxParticleForce = .5; t.b2_maxTriadDistance = 2; t.b2_maxTriadDistanceSquared = 4; t.b2_minParticleSystemBufferCapacity = 256; t.b2_barrierCollisionTime = 2.5; t.b2_timeToSleep = .5; t.b2_linearSleepTolerance = .01; t.b2_angularSleepTolerance = .03490658503988889; t.b2Alloc = function(t) { return null; }; t.b2Free = function(t) {}; t.b2Log = function(t) { for (var e = [], i = 1; i < arguments.length; i++) e[i - 1] = arguments[i]; }; t.b2Version = _; t.b2_version = f; t.b2_branch = "master"; t.b2_commit = "fbf51801d80fc389d43dc46524520e89043b6faf"; t.b2ParseInt = function(t) { return parseInt(t, 10); }; t.b2ParseUInt = function(t) { return Math.abs(parseInt(t, 10)); }; t.b2MakeArray = d; t.b2MakeNullArray = function(t) { for (var e = [], i = 0; i < t; ++i) e.push(null); return e; }; t.b2MakeNumberArray = m; t.b2_pi_over_180 = p; t.b2_180_over_pi = v; t.b2_two_pi = 6.28318530718; t.b2Abs = y; t.b2Min = g; t.b2Max = x; t.b2Clamp = C; t.b2Swap = function(t, e) { var i = t[0]; t[0] = e[0]; e[0] = i; }; t.b2IsValid = b; t.b2Sq = A; t.b2InvSqrt = S; t.b2Sqrt = w; t.b2Pow = T; t.b2DegToRad = function(t) { return t * p; }; t.b2RadToDeg = function(t) { return t * v; }; t.b2Cos = E; t.b2Sin = M; t.b2Acos = B; t.b2Asin = D; t.b2Atan2 = I; t.b2NextPowerOfTwo = function(t) { t |= t >> 1 & 2147483647; t |= t >> 2 & 1073741823; t |= t >> 4 & 268435455; t |= t >> 8 & 16777215; return 1 + (t |= t >> 16 & 65535); }; t.b2IsPowerOfTwo = function(t) { return t > 0 && 0 == (t & t - 1); }; t.b2Random = function() { return 2 * Math.random() - 1; }; t.b2RandomRange = function(t, e) { return (e - t) * Math.random() + t; }; t.b2Vec2 = P; t.b2Vec2_zero = R; t.b2Vec3 = L; t.b2Mat22 = F; t.b2Mat33 = O; t.b2Rot = V; t.b2Transform = N; t.b2Sweep = k; t.b2Color = z; t.b2Draw = G; t.b2Timer = U; t.b2Counter = j; t.b2GrowableStack = W; t.b2BlockAllocator = H; t.b2StackAllocator = q; t.b2ContactFeature = yt; t.b2ContactID = gt; t.b2ManifoldPoint = xt; t.b2Manifold = Ct; t.b2WorldManifold = bt; t.b2GetPointStates = function(e, i, n, r) { var s; for (s = 0; s < n.pointCount; ++s) { var a = n.points[s].id.key; e[s] = t.b2PointState.b2_removeState; for (var c = 0, l = r.pointCount; c < l; ++c) if (r.points[c].id.key === a) { e[s] = t.b2PointState.b2_persistState; break; } } for (;s < o; ++s) e[s] = t.b2PointState.b2_nullState; for (s = 0; s < r.pointCount; ++s) { a = r.points[s].id.key; i[s] = t.b2PointState.b2_addState; for (c = 0, l = n.pointCount; c < l; ++c) if (n.points[c].id.key === a) { i[s] = t.b2PointState.b2_persistState; break; } } for (;s < o; ++s) i[s] = t.b2PointState.b2_nullState; }; t.b2ClipVertex = At; t.b2RayCastInput = St; t.b2RayCastOutput = wt; t.b2AABB = Tt; t.b2TestOverlapAABB = Et; t.b2ClipSegmentToLine = Mt; t.b2TestOverlapShape = Pt; t.b2DistanceProxy = X; t.b2SimplexCache = Y; t.b2DistanceInput = J; t.b2DistanceOutput = Z; t.b2ShapeCastInput = K; t.b2ShapeCastOutput = Q; t.b2_gjk_reset = function() { t.b2_gjkCalls = 0; t.b2_gjkIters = 0; t.b2_gjkMaxIters = 0; }; t.b2SimplexVertex = $; t.b2Simplex = tt; t.b2Distance = lt; t.b2ShapeCast = function(t, e) { t.iterations = 0; t.lambda = 1; t.normal.SetZero(); t.point.SetZero(); var i = e.proxyA, n = e.proxyB, r = x(i.m_radius, h) + x(n.m_radius, h), s = e.transformA, o = e.transformB, a = e.translationB, l = ht.Set(0, 0), u = 0, _ = ut; _.m_count = 0; for (var f = _.m_vertices, d = i.GetSupport(V.MulTRV(s.q, P.NegV(a, P.s_t1), P.s_t0)), m = N.MulXV(s, i.GetVertex(d), _t), p = n.GetSupport(V.MulTRV(o.q, a, P.s_t0)), v = N.MulXV(o, n.GetVertex(p), ft), g = P.SubVV(m, v, dt), C = x(h, r - h), b = .5 * c, A = 0; A < 20 && y(g.Length() - C) > b; ) { t.iterations += 1; d = i.GetSupport(V.MulTRV(s.q, P.NegV(g, P.s_t1), P.s_t0)); m = N.MulXV(s, i.GetVertex(d), _t); p = n.GetSupport(V.MulTRV(o.q, g, P.s_t0)); v = N.MulXV(o, n.GetVertex(p), ft); var S = P.SubVV(m, v, mt); g.Normalize(); var w = P.DotVV(g, S), T = P.DotVV(g, a); if (w - C > u * T) { if (T <= 0) return !1; if ((u = (w - C) / T) > 1) return !1; l.Copy(g).SelfNeg(); _.m_count = 0; } var E = f[_.m_count]; E.indexA = p; E.wA.Copy(v).SelfMulAdd(u, a); E.indexB = d; E.wB.Copy(m); E.w.Copy(E.wB).SelfSub(E.wA); E.a = 1; _.m_count += 1; switch (_.m_count) { case 1: break; case 2: _.Solve2(); break; case 3: _.Solve3(); } if (3 === _.m_count) return !1; _.GetClosestPoint(g); ++A; } var M = pt, B = vt; _.GetWitnessPoints(M, B); if (g.LengthSquared() > 0) { l.Copy(g).SelfNeg(); l.Normalize(); } t.normal.Copy(l); t.lambda = u; t.iterations = A; return !0; }; t.b2Pair = Ot; t.b2BroadPhase = Vt; t.b2PairLessThan = Nt; t.b2TreeNode = Lt; t.b2DynamicTree = Ft; t.b2_toi_reset = function() { t.b2_toiTime = 0; t.b2_toiMaxTime = 0; t.b2_toiCalls = 0; t.b2_toiIters = 0; t.b2_toiMaxIters = 0; t.b2_toiRootIters = 0; t.b2_toiMaxRootIters = 0; }; t.b2TOIInput = qt; t.b2TOIOutput = Xt; t.b2SeparationFunction = Yt; t.b2TimeOfImpact = re; t.b2CollideCircles = ae; t.b2CollidePolygonAndCircle = ue; t.b2CollidePolygons = Fe; t.b2CollideEdgeAndCircle = We; t.b2CollideEdgeAndPolygon = Je; t.b2MassData = Ze; t.b2Shape = Ke; t.b2CircleShape = ti; t.b2PolygonShape = ei; t.b2EdgeShape = ii; t.b2ChainShape = ni; t.b2Filter = ri; t.b2FixtureDef = si; t.b2FixtureProxy = oi; t.b2Fixture = ai; t.b2BodyDef = ci; t.b2Body = li; t.b2World = zn; t.b2DestructionListener = Ki; t.b2ContactFilter = Qi; t.b2ContactImpulse = $i; t.b2ContactListener = tn; t.b2QueryCallback = en; t.b2RayCastCallback = nn; t.b2Island = pn; t.b2Profile = sn; t.b2TimeStep = on; t.b2Position = an; t.b2Velocity = cn; t.b2SolverData = ln; t.b2ContactManager = rn; t.b2MixFriction = Ni; t.b2MixRestitution = ki; t.b2ContactEdge = zi; t.b2Contact = Gi; t.b2ContactRegister = Ji; t.b2ContactFactory = Zi; t.g_blockSolve = !1; t.b2VelocityConstraintPoint = hn; t.b2ContactVelocityConstraint = un; t.b2ContactPositionConstraint = _n; t.b2ContactSolverDef = fn; t.b2PositionSolverManifold = dn; t.b2ContactSolver = mn; t.b2CircleContact = Ui; t.b2PolygonContact = ji; t.b2PolygonAndCircleContact = Wi; t.b2EdgeAndCircleContact = Hi; t.b2EdgeAndPolygonContact = qi; t.b2ChainAndCircleContact = Xi; t.b2ChainAndPolygonContact = Yi; t.b2Jacobian = hi; t.b2JointEdge = ui; t.b2JointDef = _i; t.b2Joint = fi; t.b2AreaJointDef = pi; t.b2AreaJoint = vi; t.b2DistanceJointDef = di; t.b2DistanceJoint = mi; t.b2FrictionJointDef = yi; t.b2FrictionJoint = gi; t.b2GearJointDef = xi; t.b2GearJoint = Ci; t.b2MotorJointDef = bi; t.b2MotorJoint = Ai; t.b2MouseJointDef = Si; t.b2MouseJoint = wi; t.b2PrismaticJointDef = Ti; t.b2PrismaticJoint = Ei; t.b2_minPulleyLength = 2; t.b2PulleyJointDef = Mi; t.b2PulleyJoint = Bi; t.b2RevoluteJointDef = Di; t.b2RevoluteJoint = Ii; t.b2RopeJointDef = Pi; t.b2RopeJoint = Ri; t.b2WeldJointDef = Li; t.b2WeldJoint = Fi; t.b2WheelJointDef = Oi; t.b2WheelJoint = Vi; t.b2ControllerEdge = Gn; t.b2Controller = Un; t.b2BuoyancyController = jn; t.b2ConstantAccelController = Wn; t.b2ConstantForceController = Hn; t.b2GravityController = qn; t.b2TensorDampingController = Xn; t.b2ParticleDef = vn; t.b2CalculateParticleIterations = yn; t.b2ParticleHandle = gn; t.b2ParticleGroupDef = xn; t.b2ParticleGroup = Cn; t.b2GrowableBuffer = Rn; t.b2FixtureParticleQueryCallback = Ln; t.b2ParticleContact = Fn; t.b2ParticleBodyContact = On; t.b2ParticlePair = Vn; t.b2ParticleTriad = Nn; t.b2ParticleSystemDef = kn; t.b2RopeDef = Yn; t.b2Rope = Jn; Object.defineProperty(t, "__esModule", { value: !0 }); })); }), {} ], 402: [ (function(i, n, r) { "use strict"; var s = "undefined" === ("object" === (e = typeof window) ? t(window) : e) ? global : window; s.cc = s.cc || {}; s._cc = s._cc || {}; i("./predefine"); i("./polyfill/string"); i("./polyfill/misc"); i("./polyfill/array"); i("./polyfill/object"); i("./polyfill/array-buffer"); i("./polyfill/number"); i("./polyfill/typescript"); i("./cocos2d/core/predefine"); i("./cocos2d"); i("./extends"); 0; n.exports = s.cc; }), { "./cocos2d": 328, "./cocos2d/core/predefine": 226, "./extends": 388, "./package": void 0, "./polyfill/array": 404, "./polyfill/array-buffer": 403, "./polyfill/misc": 405, "./polyfill/number": 406, "./polyfill/object": 407, "./polyfill/string": 408, "./polyfill/typescript": 409, "./predefine": 410 } ], 403: [ (function(t, e, i) { "use strict"; if (!ArrayBuffer.isView) { var n = Object.getPrototypeOf(Object.getPrototypeOf(new Uint8Array())).constructor; ArrayBuffer.isView = function(t) { return t instanceof n; }; } }), {} ], 404: [ (function(t, e, i) { "use strict"; Array.isArray || (Array.isArray = function(t) { return "[object Array]" === Object.prototype.toString.call(t); }); Array.prototype.find || (Array.prototype.find = function(t) { for (var e = this.length, i = 0; i < e; i++) { var n = this[i]; if (t.call(this, n, i, this)) return n; } }); Array.prototype.includes || (Array.prototype.includes = function(t) { return -1 !== this.indexOf(t); }); }), {} ], 405: [ (function(i, n, r) { "use strict"; Math.sign || (Math.sign = function(t) { return 0 === (t = +t) || isNaN(t) ? t : t > 0 ? 1 : -1; }); Math.log2 || (Math.log2 = function(t) { return Math.log(t) * Math.LOG2E; }); Number.isInteger || (Number.isInteger = function(i) { return "number" === ("object" === (e = typeof i) ? t(i) : e) && isFinite(i) && Math.floor(i) === i; }); var s = window.performance || Date, o = Object.create(null); console.time = function(t) { o[t] = s.now(); }; console.timeEnd = function(t) { var e = o[t], i = s.now() - e; console.log(t + ": " + i + "ms"); }; }), {} ], 406: [ (function(t, e, i) { "use strict"; Number.parseFloat = Number.parseFloat || parseFloat; Number.parseInt = Number.parseInt || parseInt; }), {} ], 407: [ (function(t, e, i) { "use strict"; Object.assign || (Object.assign = function(t, e) { return cc.js.mixin(t, e); }); Object.getOwnPropertyDescriptors || (Object.getOwnPropertyDescriptors = function(t) { var e = {}, i = Object.getOwnPropertyNames(t); Object.getOwnPropertySymbols && (i = i.concat(Object.getOwnPropertySymbols(t))); for (var n = 0; n < i.length; ++n) { var r = i[n]; e[r] = Object.getOwnPropertyDescriptor(t, r); } return e; }); }), {} ], 408: [ (function(i, n, r) { "use strict"; String.prototype.startsWith || (String.prototype.startsWith = function(t, e) { e = e || 0; return this.lastIndexOf(t, e) === e; }); String.prototype.endsWith || (String.prototype.endsWith = function(i, n) { ("undefined" === ("object" === (e = typeof n) ? t(n) : e) || n > this.length) && (n = this.length); n -= i.length; var r = this.indexOf(i, n); return -1 !== r && r === n; }); String.prototype.trimLeft || (String.prototype.trimLeft = function() { return this.replace(/^\s+/, ""); }); }), {} ], 409: [ (function(i, n, r) { "use strict"; var s = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(t, e) { t.__proto__ = e; } || function(t, e) { for (var i in e) e.hasOwnProperty(i) && (t[i] = e[i]); }; window.__extends = function(t, e) { s(t, e); function i() { this.constructor = t; } t.prototype = null === e ? Object.create(e) : (i.prototype = e.prototype, new i()); }; window.__assign = Object.assign || function(t) { for (var e, i = 1, n = arguments.length; i < n; i++) { e = arguments[i]; for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r]); } return t; }; window.__rest = function(i, n) { var r = {}; for (var s in i) Object.prototype.hasOwnProperty.call(i, s) && n.indexOf(s) < 0 && (r[s] = i[s]); if (null != i && "function" === ("object" === (e = typeof Object.getOwnPropertySymbols) ? t(Object.getOwnPropertySymbols) : e)) { var o = 0; for (s = Object.getOwnPropertySymbols(i); o < s.length; o++) n.indexOf(s[o]) < 0 && (r[s[o]] = i[s[o]]); } return r; }; window.__decorate = function(i, n, r, s) { var o, a = arguments.length, c = a < 3 ? n : null === s ? s = Object.getOwnPropertyDescriptor(n, r) : s; if ("object" === ("object" === (e = typeof Reflect) ? t(Reflect) : e) && "function" === ("object" === (e = typeof Reflect.decorate) ? t(Reflect.decorate) : e)) c = Reflect.decorate(i, n, r, s); else for (var l = i.length - 1; l >= 0; l--) (o = i[l]) && (c = (a < 3 ? o(c) : a > 3 ? o(n, r, c) : o(n, r)) || c); return a > 3 && c && Object.defineProperty(n, r, c), c; }; window.__param = function(t, e) { return function(i, n) { e(i, n, t); }; }; window.__metadata = function(i, n) { if ("object" === ("object" === (e = typeof Reflect) ? t(Reflect) : e) && "function" === ("object" === (e = typeof Reflect.metadata) ? t(Reflect.metadata) : e)) return Reflect.metadata(i, n); }; window.__awaiter = function(t, e, i, n) { return new (i || (i = Promise))(function(r, s) { function o(t) { try { c(n.next(t)); } catch (t) { s(t); } } function a(t) { try { c(n.throw(t)); } catch (t) { s(t); } } function c(t) { t.done ? r(t.value) : new i(function(e) { e(t.value); }).then(o, a); } c((n = n.apply(t, e || [])).next()); }); }; window.__generator = function(i, n) { var r, s, o, a, c = { label: 0, sent: function() { if (1 & o[0]) throw o[1]; return o[1]; }, trys: [], ops: [] }; return a = { next: l(0), throw: l(1), return: l(2) }, "function" === ("object" === (e = typeof Symbol) ? t(Symbol) : e) && (a[Symbol.iterator] = function() { return this; }), a; function l(t) { return function(e) { return h([ t, e ]); }; } function h(t) { if (r) throw new TypeError("Generator is already executing."); for (;c; ) try { if (r = 1, s && (o = 2 & t[0] ? s.return : t[0] ? s.throw || ((o = s.return) && o.call(s), 0) : s.next) && !(o = o.call(s, t[1])).done) return o; (s = 0, o) && (t = [ 2 & t[0], o.value ]); switch (t[0]) { case 0: case 1: o = t; break; case 4: c.label++; return { value: t[1], done: !1 }; case 5: c.label++; s = t[1]; t = [ 0 ]; continue; case 7: t = c.ops.pop(); c.trys.pop(); continue; default: if (!(o = c.trys, o = o.length > 0 && o[o.length - 1]) && (6 === t[0] || 2 === t[0])) { c = 0; continue; } if (3 === t[0] && (!o || t[1] > o[0] && t[1] < o[3])) { c.label = t[1]; break; } if (6 === t[0] && c.label < o[1]) { c.label = o[1]; o = t; break; } if (o && c.label < o[2]) { c.label = o[2]; c.ops.push(t); break; } o[2] && c.ops.pop(); c.trys.pop(); continue; } t = n.call(i, c); } catch (e) { t = [ 6, e ]; s = 0; } finally { r = o = 0; } if (5 & t[0]) throw t[1]; return { value: t[0] ? t[1] : void 0, done: !0 }; } }; window.__exportStar = function(t, e) { for (var i in t) e.hasOwnProperty(i) || (e[i] = t[i]); }; window.__values = function(i) { var n = "function" === ("object" === (e = typeof Symbol) ? t(Symbol) : e) && i[Symbol.iterator], r = 0; return n ? n.call(i) : { next: function() { i && r >= i.length && (i = void 0); return { value: i && i[r++], done: !i }; } }; }; window.__read = function(i, n) { var r = "function" === ("object" === (e = typeof Symbol) ? t(Symbol) : e) && i[Symbol.iterator]; if (!r) return i; var s, o, a = r.call(i), c = []; try { for (;(void 0 === n || n-- > 0) && !(s = a.next()).done; ) c.push(s.value); } catch (t) { o = { error: t }; } finally { try { s && !s.done && (r = a.return) && r.call(a); } finally { if (o) throw o.error; } } return c; }; window.__spread = function() { for (var t = [], e = 0; e < arguments.length; e++) t = t.concat(__read(arguments[e])); return t; }; window.__await = function(t) { return this instanceof __await ? (this.v = t, this) : new __await(t); }; window.__asyncGenerator = function(t, e, i) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var n, r = i.apply(t, e || []), s = []; return n = {}, o("next"), o("throw"), o("return"), n[Symbol.asyncIterator] = function() { return this; }, n; function o(t) { r[t] && (n[t] = function(e) { return new Promise(function(i, n) { s.push([ t, e, i, n ]) > 1 || a(t, e); }); }); } function a(t, e) { try { c(r[t](e)); } catch (t) { u(s[0][3], t); } } function c(t) { t.value instanceof __await ? Promise.resolve(t.value.v).then(l, h) : u(s[0][2], t); } function l(t) { a("next", t); } function h(t) { a("throw", t); } function u(t, e) { (t(e), s.shift(), s.length) && a(s[0][0], s[0][1]); } }; window.__asyncDelegator = function(t) { var e, i; return e = {}, n("next"), n("throw", (function(t) { throw t; })), n("return"), e[Symbol.iterator] = function() { return this; }, e; function n(n, r) { e[n] = t[n] ? function(e) { return (i = !i) ? { value: __await(t[n](e)), done: "return" === n } : r ? r(e) : e; } : r; } }; window.__asyncValues = function(i) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var n, r = i[Symbol.asyncIterator]; return r ? r.call(i) : (i = "function" === ("object" === (e = typeof __values) ? t(__values) : e) ? __values(i) : i[Symbol.iterator](), n = {}, s("next"), s("throw"), s("return"), n[Symbol.asyncIterator] = function() { return this; }, n); function s(t) { n[t] = i[t] && function(e) { return new Promise(function(n, r) { o(n, r, (e = i[t](e)).done, e.value); }); }; } function o(t, e, i, n) { Promise.resolve(n).then((function(e) { t({ value: e, done: i }); }), e); } }; window.__makeTemplateObject = function(t, e) { Object.defineProperty ? Object.defineProperty(t, "raw", { value: e }) : t.raw = e; return t; }; window.__importStar = function(t) { if (t && t.__esModule) return t; var e = {}; if (null != t) for (var i in t) Object.hasOwnProperty.call(t, i) && (e[i] = t[i]); e.default = t; return e; }; window.__importDefault = function(t) { return t && t.__esModule ? t : { default: t }; }; }), {} ], 410: [ (function(i, n, r) { "use strict"; var s = "undefined" === ("object" === (e = typeof window) ? t(window) : e) ? global : window; function o(i, n) { "undefined" === ("object" === (e = typeof s[i]) ? t(s[i]) : e) && (s[i] = n); } o("CC_BUILD", !1); s.CC_BUILD = !0; s.CC_TEST = !1; s.CC_EDITOR = !1; s.CC_PREVIEW = !1; s.CC_DEV = !1; s.CC_DEBUG = !1; s.CC_JSB = !0; s.CC_WECHATGAMESUB = !1; s.CC_WECHATGAME = !1; s.CC_QQPLAY = !1; s.CC_RUNTIME = !1; s.CC_SUPPORT_JIT = !0; 0; s.CocosEngine = cc.ENGINE_VERSION = "2.1.3"; }), {} ] }, {}, [ 402 ]); function t(t) { return t && t.toString && "[object CallbackConstructor]" === t.toString() ? "function" : "object"; } var e = ""; })();