Files
summon-loong/cocos2d-js-min.js
2025-08-03 22:16:49 +08:00

91261 lines
3.6 MiB

(function(t, e, i) {
function n(i) {
var r = e[i];
if (!r) {
var s = t[i];
if (!s)
return;
var a = {};
r = e[i] = {
exports: a
},
s[0]((function(t) {
return n(s[1][t] || t)
}
), r, a)
}
return r.exports
}
for (var r = 0; r < i.length; r++)
n(i[r])
}
)({
1: [(function(t) {
"use strict";
t("../core/platform/CCClass");
var e = 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;
return t.originalTarget = null,
t.target = null,
t.tag = this.tag,
t
},
isDone: function() {
return !0
},
startWithTarget: function(t) {
this.originalTarget = t,
this.target = t
},
stop: function() {
this.target = null
},
step: function() {
cc.logID(1006)
},
update: function() {
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() {
return cc.logID(1008),
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) {
return t ? (this._innerAction = t,
this._speed = e,
!0) : (cc.errorID(1021),
!1)
},
clone: function() {
var t = new cc.Speed;
return t.initWithAction(this._innerAction.clone(), this._speed),
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);
return t.initWithTarget(this._followedNode, i),
t
},
isBoundarySet: function() {
return this._boundarySet
},
setBoudarySet: function(t) {
this._boundarySet = t
},
initWithTarget: function(t, e) {
if (!t)
return cc.errorID(1022),
!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;
return this._fullScreenSize = cc.v2(i.width, i.height),
this._halfScreenSize = this._fullScreenSize.mul(.5),
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)),
!0
},
step: function() {
var t = this.target.convertToWorldSpaceAR(cc.Vec2.ZERO)
, i = this._followedNode.convertToWorldSpaceAR(cc.Vec2.ZERO)
, n = t.sub(i)
, r = this.target.parent.convertToNodeSpaceAR(n.add(this._halfScreenSize));
if (this._boundarySet) {
if (this._boundaryFullyCovered)
return;
this.target.setPosition(e.clampf(r.x, this.leftBoundary, this.rightBoundary), e.clampf(r.y, this.bottomBoundary, this.topBoundary))
} else
this.target.setPosition(r.x, r.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": 193,
"../core/utils/misc": 267
}],
2: [(function() {
"use strict";
function t(t, e, i, n, r, s) {
var a = s * s
, o = a * s
, l = (1 - r) / 2
, h = l * (2 * a - o - s)
, c = l * (-o + a) + (2 * o - 3 * a) + 1
, u = l * (o - 2 * a + s) + -2 * o + 3 * a
, _ = l * (o - a)
, f = t.x * h + e.x * c + i.x * u + n.x * _
, d = t.y * h + e.y * c + i.y * u + n.y * _;
return cc.v2(f, d)
}
function e(t, e) {
return t[Math.min(t.length - 1, Math.max(e, 0))]
}
function i(t) {
for (var e = [], i = t.length - 1; i >= 0; i--)
e.push(cc.v2(t[i].x, t[i].y));
return e
}
function n(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) {
return e && 0 !== e.length ? !!cc.ActionInterval.prototype.initWithDuration.call(this, t) && (this.setPoints(e),
this._tension = i,
!0) : (cc.errorID(1024),
!1)
},
clone: function() {
var t = new cc.CardinalSplineTo;
return t.initWithDuration(this._duration, n(this._points), this._tension),
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(i) {
var n, r;
i = this._computeEaseTime(i);
var s = this._points;
if (1 === i)
n = s.length - 1,
r = 1;
else {
var a = this._deltaT;
r = (i - a * (n = 0 | i / a)) / a
}
var o, l, h = t(e(s, n - 1), e(s, n - 0), e(s, n + 1), e(s, n + 2), this._tension, r);
if (cc.macro.ENABLE_STACKABLE_ACTIONS && (o = this.target.x - this._previousPosition.x,
l = this.target.y - this._previousPosition.y,
0 !== o || 0 !== l)) {
var c = this._accumulatedDiff;
o = c.x + o,
l = c.y + l,
c.x = o,
c.y = l,
h.x += o,
h.y += l
}
this.updatePosition(h)
},
reverse: function() {
var t = i(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(), n = e[0], r = 1; r < e.length; ++r)
t = e[r],
e[r] = t.sub(n),
n = t;
var s = i(e);
for (n = s[s.length - 1],
s.pop(),
n.x = -n.x,
n.y = -n.y,
s.unshift(n),
r = 1; r < s.length; ++r)
(t = s[r]).x = -t.x,
t.y = -t.y,
t.x += n.x,
t.y += n.y,
s[r] = t,
n = t;
return cc.cardinalSplineBy(this._duration, s, 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;
return t.initWithDuration(this._duration, n(this._points), this._tension),
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;
return t.initWithDuration(this._duration, n(this._points)),
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;
return t.initWithDuration(this._duration, n(this._points)),
t
}
}),
cc.catmullRomBy = function(t, e) {
return new cc.CatmullRomBy(t,e)
}
}
), {}],
3: [(function() {
"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 t = {
easing: function(t) {
return 0 === t ? 0 : Math.pow(2, 10 * (t - 1))
},
reverse: function() {
return e
}
};
cc.easeExponentialIn = function() {
return t
}
;
var e = {
easing: function(t) {
return 1 === t ? 1 : 1 - Math.pow(2, -10 * t)
},
reverse: function() {
return t
}
};
cc.easeExponentialOut = function() {
return e
}
;
var i = {
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 i
}
};
cc.easeExponentialInOut = function() {
return i
}
;
var n = {
easing: function(t) {
return 0 === t || 1 === t ? t : -1 * Math.cos(t * Math.PI / 2) + 1
},
reverse: function() {
return r
}
};
cc.easeSineIn = function() {
return n
}
;
var r = {
easing: function(t) {
return 0 === t || 1 === t ? t : Math.sin(t * Math.PI / 2)
},
reverse: function() {
return n
}
};
cc.easeSineOut = function() {
return r
}
;
var s = {
easing: function(t) {
return 0 === t || 1 === t ? t : -.5 * (Math.cos(Math.PI * t) - 1)
},
reverse: function() {
return s
}
};
cc.easeSineInOut = function() {
return s
}
;
var a = {
easing: function(t) {
return 0 === t || 1 === t ? t : (t -= 1,
-Math.pow(2, 10 * t) * Math.sin((t - .075) * Math.PI * 2 / .3))
},
reverse: function() {
return o
}
};
cc.easeElasticIn = function(t) {
return t && .3 !== t ? {
_period: t,
easing: function(t) {
return 0 === t || 1 === t ? t : (t -= 1,
-Math.pow(2, 10 * t) * Math.sin((t - this._period / 4) * Math.PI * 2 / this._period))
},
reverse: function() {
return cc.easeElasticOut(this._period)
}
} : a
}
;
var o = {
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 a
}
};
function l(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
}
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)
}
} : o
}
,
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)
}
}
}
;
var h = {
easing: function(t) {
return 1 - l(1 - t)
},
reverse: function() {
return c
}
};
cc.easeBounceIn = function() {
return h
}
;
var c = {
easing: function(t) {
return l(t)
},
reverse: function() {
return h
}
};
cc.easeBounceOut = function() {
return c
}
;
var u = {
easing: function(t) {
return t < .5 ? .5 * (1 - l(1 - (t *= 2))) : .5 * l(2 * t - 1) + .5
},
reverse: function() {
return u
}
};
cc.easeBounceInOut = function() {
return u
}
;
var _ = {
easing: function(t) {
return 0 === t || 1 === t ? t : t * t * (2.70158 * t - 1.70158)
},
reverse: function() {
return f
}
};
cc.easeBackIn = function() {
return _
}
;
var f = {
easing: function(t) {
return 0 === t ? 0 : (t -= 1) * t * (2.70158 * t + 1.70158) + 1
},
reverse: function() {
return _
}
};
cc.easeBackOut = function() {
return f
}
;
var d = {
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 d
}
};
cc.easeBackInOut = function() {
return d
}
,
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 p = {
easing: function(t) {
return Math.pow(t, 2)
},
reverse: function() {
return p
}
};
cc.easeQuadraticActionIn = function() {
return p
}
;
var m = {
easing: function(t) {
return -t * (t - 2)
},
reverse: function() {
return m
}
};
cc.easeQuadraticActionOut = function() {
return m
}
;
var y = {
easing: function(t) {
return (t *= 2) < 1 ? t * t * .5 : -.5 * (--t * (t - 2) - 1)
},
reverse: function() {
return y
}
};
cc.easeQuadraticActionInOut = function() {
return y
}
;
var v = {
easing: function(t) {
return t * t * t * t
},
reverse: function() {
return v
}
};
cc.easeQuarticActionIn = function() {
return v
}
;
var g = {
easing: function(t) {
return -((t -= 1) * t * t * t - 1)
},
reverse: function() {
return g
}
};
cc.easeQuarticActionOut = function() {
return g
}
;
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 x = {
easing: function(t) {
return t * t * t * t * t
},
reverse: function() {
return x
}
};
cc.easeQuinticActionIn = function() {
return x
}
;
var b = {
easing: function(t) {
return (t -= 1) * t * t * t * t + 1
},
reverse: function() {
return b
}
};
cc.easeQuinticActionOut = function() {
return b
}
;
var C = {
easing: function(t) {
return (t *= 2) < 1 ? .5 * t * t * t * t * t : .5 * ((t -= 2) * t * t * t * t + 2)
},
reverse: function() {
return C
}
};
cc.easeQuinticActionInOut = function() {
return C
}
;
var T = {
easing: function(t) {
return -1 * (Math.sqrt(1 - t * t) - 1)
},
reverse: function() {
return T
}
};
cc.easeCircleActionIn = function() {
return T
}
;
var S = {
easing: function(t) {
return t -= 1,
Math.sqrt(1 - t * t)
},
reverse: function() {
return S
}
};
cc.easeCircleActionOut = function() {
return S
}
;
var w = {
easing: function(t) {
return (t *= 2) < 1 ? -.5 * (Math.sqrt(1 - t * t) - 1) : (t -= 2,
.5 * (Math.sqrt(1 - t * t) + 1))
},
reverse: function() {
return w
}
};
cc.easeCircleActionInOut = function() {
return w
}
;
var E = {
easing: function(t) {
return t * t * t
},
reverse: function() {
return E
}
};
cc.easeCubicActionIn = function() {
return E
}
;
var M = {
easing: function(t) {
return (t -= 1) * t * t + 1
},
reverse: function() {
return M
}
};
cc.easeCubicActionOut = function() {
return M
}
;
var D = {
easing: function(t) {
return (t *= 2) < 1 ? .5 * t * t * t : .5 * ((t -= 2) * t * t + 2)
},
reverse: function() {
return D
}
};
cc.easeCubicActionInOut = function() {
return D
}
}
), {}],
4: [(function() {
"use strict";
cc.ActionInstant = cc.Class({
name: "cc.ActionInstant",
extends: cc.FiniteTimeAction,
isDone: function() {
return !0
},
step: function() {
this.update(1)
},
update: function() {},
reverse: function() {
return this.clone()
},
clone: function() {
return new cc.ActionInstant
}
}),
cc.Show = cc.Class({
name: "cc.Show",
extends: cc.ActionInstant,
update: function() {
for (var t = this.target.getComponentsInChildren(cc.RenderComponent), e = 0; e < t.length; ++e)
t[e].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() {
for (var t = this.target.getComponentsInChildren(cc.RenderComponent), e = 0; e < t.length; ++e)
t[e].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() {
for (var t = this.target.getComponentsInChildren(cc.RenderComponent), e = 0; e < t.length; ++e) {
var i = t[e];
i.enabled = !i.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() {
this.target.removeFromParent(this._isNeedCleanUp)
},
init: function(t) {
return this._isNeedCleanUp = t,
!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.DestroySelf = cc.Class({
name: "cc.DestroySelf",
extends: cc.ActionInstant,
update: function() {
this.target.destroy()
},
reverse: function() {
return new cc.DestroySelf
},
clone: function() {
return new cc.DestroySelf
}
}),
cc.destroySelf = function() {
return new cc.DestroySelf
}
,
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) {
return this._flippedX = t,
!0
},
update: function() {
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;
return t.initWithFlipX(this._flippedX),
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) {
return this._flippedY = t,
!0
},
update: function() {
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;
return t.initWithFlipY(this._flippedY),
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,
void 0 !== t && (void 0 !== t.x && (e = t.y,
t = t.x),
this.initWithPosition(t, e))
},
initWithPosition: function(t, e) {
return this._x = t,
this._y = e,
!0
},
update: function() {
this.target.setPosition(this._x, this._y)
},
clone: function() {
var t = new cc.Place;
return t.initWithPosition(this._x, this._y),
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) {
return t && (this._function = t),
e && (this._selectorTarget = e),
void 0 !== i && (this._data = i),
!0
},
execute: function() {
this._function && this._function.call(this._selectorTarget, this.target, this._data)
},
update: function() {
this.execute()
},
getTargetCallback: function() {
return this._selectorTarget
},
setTargetCallback: function(t) {
t !== this._selectorTarget && (this._selectorTarget && (this._selectorTarget = null),
this._selectorTarget = t)
},
clone: function() {
var t = new cc.CallFunc;
return t.initWithFunction(this._function, this._selectorTarget, this._data),
t
}
}),
cc.callFunc = function(t, e, i) {
return new cc.CallFunc(t,e,i)
}
}
), {}],
5: [(function() {
"use strict";
function t(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.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) {
return this._duration = 0 === t ? cc.macro.FLT_EPSILON : t,
this._elapsed = 0,
this._firstTick = !0,
!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);
return this._cloneDecoration(t),
t
},
easing: function() {
this._easeList ? this._easeList.length = 0 : this._easeList = [];
for (var t = 0; t < arguments.length; t++)
this._easeList.push(arguments[t]);
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) {
this._firstTick ? (this._firstTick = !1,
this._elapsed = 0) : 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),
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() {
return cc.logID(1010),
null
},
setAmplitudeRate: function() {
cc.logID(1011)
},
getAmplitudeRate: function() {
return cc.logID(1012),
0
},
speed: function(t) {
return t <= 0 ? (cc.logID(1013),
this) : (this._speedMethod = !0,
this._speed *= t,
this)
},
getSpeed: function() {
return this._speed
},
setSpeed: function(t) {
return this._speed = t,
this
},
repeat: function(t) {
return t = Math.round(t),
isNaN(t) || t < 1 ? (cc.logID(1014),
this) : (this._repeatMethod = !0,
this._timesForRepeat *= t,
this)
},
repeatForever: function() {
return this._repeatMethod = !0,
this._timesForRepeat = this.MAX_VALUE,
this._repeatForever = !0,
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;
if (i >= 0 && null == e[i] && cc.logID(1015),
i >= 0) {
for (var n, r = e[0], s = 1; s < i; s++)
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)
return cc.errorID(1025),
!1;
var i = t._duration
, n = e._duration
, r = (i *= t._repeatMethod ? t._timesForRepeat : 1) + (n *= e._repeatMethod ? e._timesForRepeat : 1);
return this.initWithDuration(r),
this._actions[0] = t,
this._actions[1] = e,
!0
},
clone: function() {
var t = new cc.Sequence;
return this._cloneDecoration(t),
t.initWithTwoActions(this._actions[0].clone(), this._actions[1].clone()),
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, a = this._last;
(t = this._computeEaseTime(t)) < r ? (e = 0 !== r ? t / r : 1,
0 === n && 1 === a && this._reversed && (s[1].update(0),
s[1].stop())) : (n = 1,
e = 1 === r ? 1 : (t - r) / (1 - r),
-1 === a && (s[0].startWithTarget(this.target),
s[0].update(1),
s[0].stop()),
0 === a && (s[0].update(1),
s[0].stop())),
i = s[n],
a === n && i.isDone() || (a !== 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());
return this._cloneDecoration(t),
this._reverseEaseList(t),
t._reversed = !0,
t
}
}),
cc.sequence = function(t) {
var e = t instanceof Array ? t : arguments;
if (1 === e.length)
return cc.errorID(1019),
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;
return i.initWithTwoActions(t, e),
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;
return !!this.initWithDuration(i) && (this._times = e,
this._innerAction = t,
t instanceof cc.ActionInstant && (this._actionInstant = !0,
this._times -= 1),
this._total = 0,
!0)
},
clone: function() {
var t = new cc.Repeat;
return this._cloneDecoration(t),
t.initWithAction(this._innerAction.clone(), this._times),
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;
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);
return this._cloneDecoration(t),
this._reverseEaseList(t),
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) {
return t ? (this._innerAction = t,
!0) : (cc.errorID(1026),
!1)
},
clone: function() {
var t = new cc.RepeatForever;
return this._cloneDecoration(t),
t.initWithAction(this._innerAction.clone()),
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),
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());
return this._cloneDecoration(t),
this._reverseEaseList(t),
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;
if (i >= 0 && null == e[i] && cc.logID(1015),
i >= 0) {
for (var n, r = e[0], s = 1; s < i; s++)
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)
return cc.errorID(1027),
!1;
var i = !1
, n = t._duration
, r = e._duration;
return 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),
i
},
clone: function() {
var t = new cc.Spawn;
return this._cloneDecoration(t),
t.initWithTwoActions(this._one.clone(), this._two.clone()),
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());
return this._cloneDecoration(t),
this._reverseEaseList(t),
t
}
}),
cc.spawn = function(t) {
var e = t instanceof Array ? t : arguments;
if (1 === e.length)
return cc.errorID(1020),
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;
return i.initWithTwoActions(t, e),
i
}
,
cc.RotateTo = cc.Class({
name: "cc.RotateTo",
extends: cc.ActionInterval,
statics: {
_reverse: !1
},
ctor: function(t, e) {
this._startAngle = 0,
this._dstAngle = 0,
this._angle = 0,
void 0 !== e && this.initWithDuration(t, e)
},
initWithDuration: function(t, e) {
return !!cc.ActionInterval.prototype.initWithDuration.call(this, t) && (this._dstAngle = e,
!0)
},
clone: function() {
var t = new cc.RotateTo;
return this._cloneDecoration(t),
t.initWithDuration(this._duration, this._dstAngle),
t
},
startWithTarget: function(t) {
cc.ActionInterval.prototype.startWithTarget.call(this, t);
var e = t.angle % 360
, i = cc.RotateTo._reverse ? this._dstAngle - e : this._dstAngle + e;
i > 180 && (i -= 360),
i < -180 && (i += 360),
this._startAngle = e,
this._angle = cc.RotateTo._reverse ? 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,
statics: {
_reverse: !1
},
ctor: function(t, e) {
e *= cc.RotateBy._reverse ? 1 : -1,
this._deltaAngle = 0,
this._startAngle = 0,
void 0 !== e && this.initWithDuration(t, e)
},
initWithDuration: function(t, e) {
return !!cc.ActionInterval.prototype.initWithDuration.call(this, t) && (this._deltaAngle = e,
!0)
},
clone: function() {
var t = new cc.RotateBy;
return this._cloneDecoration(t),
t.initWithDuration(this._duration, this._deltaAngle),
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;
return t.initWithDuration(this._duration, -this._deltaAngle),
this._cloneDecoration(t),
this._reverseEaseList(t),
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) {
return !!cc.ActionInterval.prototype.initWithDuration.call(this, t) && (void 0 !== e.x && (i = e.y,
e = e.x),
this._positionDelta.x = e,
this._positionDelta.y = i,
!0)
},
clone: function() {
var t = new cc.MoveBy;
return this._cloneDecoration(t),
t.initWithDuration(this._duration, this._positionDelta),
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) {
if (t = this._computeEaseTime(t),
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
, a = this._previousPosition;
n.x = n.x + r - a.x,
n.y = n.y + s - a.y,
e += n.x,
i += n.y,
a.x = e,
a.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));
return this._cloneDecoration(t),
this._reverseEaseList(t),
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) {
return !!cc.MoveBy.prototype.initWithDuration.call(this, t, e, i) && (void 0 !== e.x && (i = e.y,
e = e.x),
this._endPosition.x = e,
this._endPosition.y = i,
!0)
},
clone: function() {
var t = new cc.MoveTo;
return this._cloneDecoration(t),
t.initWithDuration(this._duration, this._endPosition),
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;
return cc.ActionInterval.prototype.initWithDuration.call(this, t) && (this._endSkewX = e,
this._endSkewY = i,
n = !0),
n
},
clone: function() {
var t = new cc.SkewTo;
return this._cloneDecoration(t),
t.initWithDuration(this._duration, this._endSkewX, this._endSkewY),
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;
return cc.SkewTo.prototype.initWithDuration.call(this, t, e, i) && (this._skewX = e,
this._skewY = i,
n = !0),
n
},
clone: function() {
var t = new cc.SkewBy;
return this._cloneDecoration(t),
t.initWithDuration(this._duration, this._skewX, this._skewY),
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);
return this._cloneDecoration(t),
this._reverseEaseList(t),
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) {
return !!cc.ActionInterval.prototype.initWithDuration.call(this, t) && (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,
!0)
},
clone: function() {
var t = new cc.JumpBy;
return this._cloneDecoration(t),
t.initWithDuration(this._duration, this._delta, this._height, this._jumps),
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) {
if (t = this._computeEaseTime(t),
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
, a = this.target.y
, o = this._previousPosition;
r.x = r.x + s - o.x,
r.y = r.y + a - o.y,
n += r.x,
i += r.y,
o.x = n,
o.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);
return this._cloneDecoration(t),
this._reverseEaseList(t),
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) {
return !!cc.JumpBy.prototype.initWithDuration.call(this, t, e, i, n, r) && (void 0 === r && (i = e.y,
e = e.x),
this._endPosition.x = e,
this._endPosition.y = i,
!0)
},
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;
return this._cloneDecoration(t),
t.initWithDuration(this._duration, this._endPosition, this._height, this._jumps),
t
}
}),
cc.jumpTo = function(t, e, i, n, r) {
return new cc.JumpTo(t,e,i,n,r)
}
,
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) {
return !!cc.ActionInterval.prototype.initWithDuration.call(this, t) && (this._config = e,
!0)
},
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))
}
return t.initWithDuration(this._duration, e),
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(e) {
if (e = this._computeEaseTime(e),
this.target) {
var i = this._config
, n = i[0].x
, r = i[1].x
, s = i[2].x
, a = i[0].y
, o = i[1].y
, l = i[2].y
, h = t(0, n, r, s, e)
, c = t(0, a, o, l, e)
, 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,
h += u.x,
c += u.y,
d.x = h,
d.y = c,
this.target.setPosition(h, c)
} else
this.target.setPosition(u.x + h, u.y + c)
}
},
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
, a = t[2].y
, o = [cc.v2(n - s, r - a), cc.v2(e - s, i - a), cc.v2(-s, -a)]
, l = new cc.BezierBy(this._duration,o);
return this._cloneDecoration(l),
this._reverseEaseList(l),
l
}
}),
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) {
return !!cc.ActionInterval.prototype.initWithDuration.call(this, t) && (this._toConfig = e,
!0)
},
clone: function() {
var t = new cc.BezierTo;
return this._cloneDecoration(t),
t.initWithDuration(this._duration, this._toConfig),
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) {
return !!cc.ActionInterval.prototype.initWithDuration.call(this, t) && (this._endScaleX = e,
this._endScaleY = null != i ? i : e,
!0)
},
clone: function() {
var t = new cc.ScaleTo;
return this._cloneDecoration(t),
t.initWithDuration(this._duration, this._endScaleX, this._endScaleY),
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),
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);
return this._cloneDecoration(t),
this._reverseEaseList(t),
t
},
clone: function() {
var t = new cc.ScaleBy;
return this._cloneDecoration(t),
t.initWithDuration(this._duration, this._endScaleX, this._endScaleY),
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) {
return !!cc.ActionInterval.prototype.initWithDuration.call(this, t) && (this._times = e,
!0)
},
clone: function() {
var t = new cc.Blink;
return this._cloneDecoration(t),
t.initWithDuration(this._duration, this._times),
t
},
update: function(t) {
if (t = this._computeEaseTime(t),
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);
return this._cloneDecoration(t),
this._reverseEaseList(t),
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) {
return !!cc.ActionInterval.prototype.initWithDuration.call(this, t) && (this._toOpacity = e,
!0)
},
clone: function() {
var t = new cc.FadeTo;
return this._cloneDecoration(t),
t.initWithDuration(this._duration, this._toOpacity),
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;
return t.initWithDuration(this._duration, 0),
this._cloneDecoration(t),
this._reverseEaseList(t),
t
},
clone: function() {
var t = new cc.FadeIn;
return this._cloneDecoration(t),
t.initWithDuration(this._duration, this._toOpacity),
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;
return t._reverseAction = this,
t.initWithDuration(this._duration, 255),
this._cloneDecoration(t),
this._reverseEaseList(t),
t
},
clone: function() {
var t = new cc.FadeOut;
return this._cloneDecoration(t),
t.initWithDuration(this._duration, this._toOpacity),
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),
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) {
return !!cc.ActionInterval.prototype.initWithDuration.call(this, t) && (this._to = cc.color(e, i, n),
!0)
},
clone: function() {
var t = new cc.TintTo;
this._cloneDecoration(t);
var e = this._to;
return t.initWithDuration(this._duration, e.r, e.g, e.b),
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) {
return !!cc.ActionInterval.prototype.initWithDuration.call(this, t) && (this._deltaR = e,
this._deltaG = i,
this._deltaB = n,
!0)
},
clone: function() {
var t = new cc.TintBy;
return this._cloneDecoration(t),
t.initWithDuration(this._duration, this._deltaR, this._deltaG, this._deltaB),
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);
return this._cloneDecoration(t),
this._reverseEaseList(t),
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() {},
reverse: function() {
var t = new cc.DelayTime(this._duration);
return this._cloneDecoration(t),
this._reverseEaseList(t),
t
},
clone: function() {
var t = new cc.DelayTime;
return this._cloneDecoration(t),
t.initWithDuration(this._duration),
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) {
return t ? t === this._other ? (cc.errorID(1029),
!1) : !!cc.ActionInterval.prototype.initWithDuration.call(this, t._duration) && (this._other = t,
!0) : (cc.errorID(1028),
!1)
},
clone: function() {
var t = new cc.ReverseTime;
return this._cloneDecoration(t),
t.initWithAction(this._other.clone()),
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) {
return !!this.initWithDuration(e._duration) && (this._forcedTarget = t,
this._action = e,
!0)
},
clone: function() {
var t = new cc.TargetedAction;
return this._cloneDecoration(t),
t.initWithTarget(this._forcedTarget, this._action.clone()),
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) {
"use strict";
t("../core/platform/CCClass");
var e = t("../core/platform/js")
, i = function() {
this.actions = [],
this.target = null,
this.actionIndex = 0,
this.currentAction = null,
this.paused = !1,
this.lock = !1
};
cc.ActionManager = function() {
this._hashTargets = e.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 n = this._elementPool.pop();
return n || (n = new i),
n.target = t,
n.paused = !!e,
n
},
_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];
n ? n.actions || (n.actions = []) : (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, i = 0; i < t.length; i++) {
var n = t[i];
n && this._putElement(n)
}
this._arrayTargets.length = 0,
this._hashTargets = e.createMap(!0)
},
removeAllActionsFromTarget: function(t) {
if (null != t) {
var e = this._hashTargets[t._id];
e && (e.actions.length = 0,
this._deleteHashElement(e))
}
},
removeAction: function(t) {
if (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
}
}
},
_removeActionByTag: function(t, e, i) {
for (var n = 0, r = e.actions.length; n < r; ++n) {
var s = e.actions[n];
if (s && s.getTag() === t) {
if (i && s.getOriginalTarget() !== i)
continue;
this._removeActionAtIndex(n, e);
break
}
}
},
removeActionByTag: function(t, e) {
t === cc.Action.TAG_INVALID && cc.logID(1002);
var i = this._hashTargets;
if (e) {
var n = i[e._id];
n && this._removeActionByTag(t, n, e)
} else
for (var r in i) {
var s = i[r];
this._removeActionByTag(t, s)
}
},
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];
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++) {
if (this._currentTarget = i[n],
!(e = this._currentTarget).paused && e.actions) {
for (e.lock = !0,
e.actionIndex = 0; e.actionIndex < e.actions.length; e.actionIndex++)
if (e.currentAction = e.actions[e.actionIndex],
e.currentAction) {
if (e.currentAction.step(t * (e.currentAction._speedMethod ? e.currentAction._speed : 1)),
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--
}
}
}
}
), {
"../core/platform/CCClass": 193,
"../core/platform/js": 214
}],
7: [(function(t) {
"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(t) {
"use strict";
var e = t("../animation/bezier")
, i = 0
, n = cc.Class({
name: "cc.TweenAction",
extends: cc.ActionInterval,
ctor: function(t, e, i) {
if (this._opts = i = i || Object.create(null),
this._props = Object.create(null),
i.progress = i.progress || this.progress,
i.easing && "string" == typeof i.easing) {
var n = i.easing;
i.easing = cc.easing[n],
!i.easing && cc.warnID(1031, n)
}
var r = this._opts.relative;
for (var s in e) {
var a = e[s]
, o = void 0
, l = void 0;
if (void 0 !== a.value && (a.easing || a.progress) && ("string" == typeof a.easing ? !(o = cc.easing[a.easing]) && cc.warnID(1031, a.easing) : o = a.easing,
l = a.progress,
a = a.value),
"number" == typeof a || a.lerp && (!r || a.add || a.mul) && a.clone) {
var h = Object.create(null);
h.value = a,
h.easing = o,
h.progress = l,
this._props[s] = h
} else
cc.warn("Can not animate " + s + " property, because it do not have [lerp, (add|mul), clone] function.")
}
this._originProps = e,
this.initWithDuration(t)
},
clone: function() {
var t = new n(this._duration,this._originProps,this._opts);
return this._cloneDecoration(t),
t
},
startWithTarget: function(t) {
cc.ActionInterval.prototype.startWithTarget.call(this, t);
var e = !!this._opts.relative
, i = this._props;
for (var n in i) {
var r = t[n]
, s = i[n];
"number" == typeof r ? (s.start = r,
s.current = r,
s.end = e ? r + s.value : s.value) : (s.start = r.clone(),
s.current = r.clone(),
s.end = e ? (r.add || r.mul).call(r, s.value) : s.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 = e.progress;
for (var a in r) {
var o = r[a]
, l = o.easing ? o.easing(t) : i
, h = o.current = (o.progress || s)(o.start, o.end, o.current, l);
n[a] = h
}
var c = e.onUpdate;
c && c(n, t)
}
},
progress: function(t, e, i, n) {
return "number" == typeof t ? i = t + (e - t) * n : t.lerp(e, n, i),
i
}
})
, r = 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 r;
return t.init(this._props),
t
}
});
function s(t) {
this._actions = [],
this._finalAction = null,
this._target = t,
this._tag = cc.Action.TAG_INVALID
}
s.stopAll = function() {
cc.director.getActionManager().removeAllActions()
}
,
s.stopAllByTag = function(t) {
cc.director.getActionManager().removeActionByTag(t)
}
,
s.stopAllByTarget = function(t) {
cc.director.getActionManager().removeAllActionsFromTarget(t)
}
,
s.prototype.then = function(t) {
return t instanceof cc.Action ? this._actions.push(t.clone()) : this._actions.push(t._union()),
this
}
,
s.prototype.target = function(t) {
return this._target = t,
this
}
,
s.prototype.start = function() {
var t = this._target;
return t ? t instanceof cc.Object && !t.isValid ? void 0 : (this._finalAction && cc.director.getActionManager().removeAction(this._finalAction),
this._finalAction = this._union(),
void 0 === t._id && (t._id = ++i),
this._finalAction.setTag(this._tag),
cc.director.getActionManager().addAction(this._finalAction, t, !1),
this) : (cc.warn("Please set target to tween first"),
this)
}
,
s.prototype.stop = function() {
return this._finalAction && cc.director.getActionManager().removeAction(this._finalAction),
this
}
,
s.prototype.tag = function(t) {
return this._tag = t,
this
}
,
s.prototype.clone = function(t) {
var e = this._union();
return cc.tween(t).then(e.clone())
}
,
s.prototype.union = function() {
var t = this._union();
return this._actions.length = 0,
this._actions.push(t),
this
}
,
s.prototype._union = function() {
var t = this._actions;
return 1 === t.length ? t[0] : cc.sequence(t)
}
,
Object.assign(s.prototype, {
bezierTo: function(t, i, n, r, s) {
var a = i.x
, o = i.y
, l = n.x
, h = n.y;
return (s = s || Object.create(null)).progress = function(t, i, n, r) {
return n.x = (0,
e.bezier)(t.x, a, l, i.x, r),
n.y = (0,
e.bezier)(t.y, o, h, i.y, r),
n
}
,
this.to(t, {
position: r
}, s)
},
bezierBy: function(t, i, n, r, s) {
var a = i.x
, o = i.y
, l = n.x
, h = n.y;
return (s = s || Object.create(null)).progress = function(t, i, n, r) {
var s = t.x
, c = t.y;
return n.x = (0,
e.bezier)(s, a + s, l + s, i.x, r),
n.y = (0,
e.bezier)(c, o + c, h + c, i.y, r),
n
}
,
this.by(t, {
position: r
}, s)
},
flipX: function() {
var t = this;
return this.call((function() {
t._target.scaleX *= -1
}
), this)
},
flipY: function() {
var t = this;
return this.call((function() {
t._target.scaleY *= -1
}
), this)
},
blink: function(t, e, i) {
var n = 1 / e;
return (i = i || Object.create(null)).progress = function(t, e, i, r) {
return r >= 1 ? t : r % n > n / 2 ? 255 : 0
}
,
this.to(t, {
opacity: 1
}, i)
}
});
var a = [];
function o(t) {
return function() {
a.length = 0;
for (var e = arguments.length, i = 0; i < e; i++) {
var n = a[i] = arguments[i];
n instanceof s && (a[i] = n._union())
}
return t.apply(this, a)
}
}
for (var l = {
to: function(t, e, i) {
return (i = i || Object.create(null)).relative = !1,
new n(t,e,i)
},
by: function(t, e, i) {
return (i = i || Object.create(null)).relative = !0,
new n(t,e,i)
},
set: function(t) {
return new r(t)
},
delay: cc.delayTime,
call: cc.callFunc,
hide: cc.hide,
show: cc.show,
removeSelf: cc.removeSelf,
sequence: o(cc.sequence),
parallel: o(cc.spawn)
}, h = {
repeat: cc.repeat,
repeatForever: function(t) {
return cc.repeat(t, 1e9)
},
reverseTime: cc.reverseTime
}, c = Object.keys(l), u = function(t) {
var e = c[t];
s.prototype[e] = function() {
var t = l[e].apply(this, arguments);
return this._actions.push(t),
this
}
}, _ = 0; _ < c.length; _++)
u(_);
c = Object.keys(h);
for (var f = function(t) {
var e = c[t];
s.prototype[e] = function() {
var t = this._actions
, i = arguments[arguments.length - 1]
, n = arguments.length - 1;
i instanceof cc.Tween ? i = i._union() : 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]);
return i = h[e].apply(this, r),
t.push(i),
this
}
}, d = 0; d < c.length; d++)
f(d);
cc.tween = function(t) {
return new s(t)
}
,
cc.Tween = s
}
), {
"../animation/bezier": 14
}],
9: [(function(t, e) {
"use strict";
var i = cc.js
, n = t("./playable")
, r = t("./animation-curves")
, s = r.EventAnimCurve
, a = r.EventInfo
, o = t("./types").WrapModeMask
, l = t("../core/utils/binary-search").binarySearchEpsilon;
function h(t, e) {
n.call(this),
this.target = t,
this.animation = e,
this._anims = new i.array.MutableForwardIterator([])
}
i.extend(h, n);
var c = h.prototype;
function u(t, e) {
var i = e.clip;
e.duration = i.duration,
e.speed = i.speed,
e.wrapMode = i.wrapMode,
e.frameRate = i.sample,
(e.wrapMode & o.Loop) === o.Loop ? e.repeatCount = 1 / 0 : e.repeatCount = 1;
var n = e.curves = i.createCurves(e, t)
, r = i.events;
if (r)
for (var h, c = 0, u = r.length; c < u; c++) {
h || ((h = new s).target = t,
n.push(h));
var _ = r[c]
, f = _.frame / e.duration
, d = void 0
, p = l(h.ratios, f);
p >= 0 ? d = h.events[p] : (d = new a,
h.ratios.push(f),
h.events.push(d)),
d.add(_.func, _.params)
}
}
c.playState = function(t, e) {
t.clip && (t.curveLoaded || u(this.target, t),
t.animator = this,
t.play(),
"number" == typeof e && t.setTime(e),
this.play())
}
,
c.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)
}
}
,
c.addAnimation = function(t) {
-1 === this._anims.array.indexOf(t) && this._anims.push(t),
t._setEventTarget(this.animation)
}
,
c.removeAnimation = function(t) {
var e = this._anims.array.indexOf(t);
e >= 0 ? (this._anims.fastRemoveAt(e),
0 === this._anims.array.length && this.stop()) : cc.errorID(3907),
t.animator = null
}
,
c.sample = function() {
var t = this._anims
, e = t.array;
for (t.i = 0; t.i < e.length; ++t.i)
e[t.i].sample()
}
,
c.stopState = function(t) {
t && t.stop()
}
,
c.pauseState = function(t) {
t && t.pause()
}
,
c.resumeState = function(t) {
t && t.resume(),
this.isPaused && this.resume()
}
,
c.setStateTime = function(t, e) {
if (void 0 !== e)
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()
}
}
}
,
c.onStop = function() {
var t = this._anims
, e = t.array;
for (t.i = 0; t.i < e.length; ++t.i)
e[t.i].stop()
}
,
c.onPause = function() {
for (var t = this._anims.array, e = 0; e < t.length; ++e) {
var i = t[e];
i.pause(),
i.animator = null
}
}
,
c.onResume = function() {
for (var t = this._anims.array, e = 0; e < t.length; ++e) {
var i = t[e];
i.animator = this,
i.resume()
}
}
,
c._reloadClip = function(t) {
u(this.target, t)
}
,
e.exports = h
}
), {
"../core/utils/binary-search": 260,
"./animation-curves": 11,
"./playable": 18,
"./types": 19
}],
10: [(function(t, e) {
"use strict";
var i = t("./types").WrapMode
, n = t("./animation-curves")
, r = n.DynamicAnimCurve
, s = n.quickFindIndex
, a = t("./motion-path-helper").sampleMotionPaths
, o = t("../core/utils/binary-search").binarySearchEpsilon
, l = cc.Class({
name: "cc.AnimationClip",
extends: cc.Asset,
properties: {
_duration: {
default: 0,
type: cc.Float
},
duration: {
get: function() {
return this._duration
}
},
sample: {
default: 60
},
speed: {
default: 1
},
wrapMode: {
default: i.Normal
},
curveData: {
default: {},
visible: !1
},
events: {
default: [],
visible: !1
}
},
statics: {
createWithSpriteFrames: function(t, e) {
if (!Array.isArray(t))
return cc.errorID(3905),
null;
var i = new l;
i.sample = e || i.sample,
i._duration = t.length / i.sample;
for (var n = [], r = 1 / i.sample, s = 0, a = t.length; s < a; s++)
n[s] = {
frame: s * r,
value: t[s]
};
return i.curveData = {
comps: {
"cc.Sprite": {
spriteFrame: n
}
}
},
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(t, e, i) {
var n = []
, l = t instanceof cc.Node && "position" === e
, h = new r;
h.target = t,
h.prop = e;
for (var c = 0, u = i.length; c < u; c++) {
var _ = i[c]
, f = _.frame / this.duration;
h.ratios.push(f),
l && n.push(_.motionPath);
var d = _.value;
h.values.push(d);
var p = _.curve;
if (p) {
if ("string" == typeof p) {
h.types.push(p);
continue
}
if (Array.isArray(p)) {
p[0] === p[1] && p[2] === p[3] ? h.types.push(r.Linear) : h.types.push(r.Bezier(p));
continue
}
}
h.types.push(r.Linear)
}
l && a(n, h, this.duration, this.sample, t);
for (var m, y, v = h.ratios, g = !0, A = 1, x = v.length; A < x; A++)
if (m = v[A] - v[A - 1],
1 === A)
y = m;
else if (Math.abs(m - y) > 1e-6) {
g = !1;
break
}
h._findFrameIndex = g ? s : o;
var b = h.values[0];
return null == b || h._lerp || ("number" == typeof b ? h._lerp = r.prototype._lerpNumber : b instanceof cc.Quat ? h._lerp = r.prototype._lerpQuat : b instanceof cc.Vec2 ? h._lerp = r.prototype._lerpVector2 : b instanceof cc.Vec3 ? h._lerp = r.prototype._lerpVector3 : b.lerp && (h._lerp = r.prototype._lerpObject)),
h
},
createTargetCurves: function(t, e, i) {
var n = e.props
, r = e.comps;
if (n)
for (var s in n) {
var a = n[s]
, o = this.createPropCurve(t, s, a);
i.push(o)
}
if (r)
for (var l in r) {
var h = t.getComponent(l);
if (h) {
var c = r[l];
for (var u in c) {
var _ = c[u]
, f = this.createPropCurve(h, u, _);
i.push(f)
}
}
}
},
createCurves: function(t, e) {
var i = this.curveData
, n = i.paths
, r = [];
for (var s in this.createTargetCurves(e, i, r),
n) {
var a = cc.find(s, e);
if (a) {
var o = n[s];
this.createTargetCurves(a, o, r)
}
}
return r
}
});
cc.AnimationClip = e.exports = l
}
), {
"../core/utils/binary-search": 260,
"./animation-curves": 11,
"./motion-path-helper": 17,
"./types": 19
}],
11: [(function(t, e) {
"use strict";
var i = t("./bezier").bezierByTime
, n = t("../core/utils/binary-search").binarySearchEpsilon
, r = t("./types").WrapModeMask
, s = t("./types").WrappedInfo;
function a(t, e) {
if ("string" == typeof e) {
var n = cc.easing[e];
n ? t = n(t) : cc.errorID(3906, e)
} else
Array.isArray(e) && (t = i(e, t));
return t
}
var o = cc.Class({
name: "cc.AnimCurve",
sample: function() {},
onTimeChangedManually: void 0
});
var l, h = cc.Class({
name: "cc.DynamicAnimCurve",
extends: o,
ctor: function() {
this._cachedIndex = 0
},
properties: {
target: null,
prop: "",
values: [],
ratios: [],
types: []
},
_findFrameIndex: n,
_lerp: void 0,
_lerpNumber: function(t, e, i) {
return t + (e - t) * i
},
_lerpObject: function(t, e, i) {
return t.lerp(e, i)
},
_lerpQuat: (l = cc.quat(),
function(t, e, i) {
return t.lerp(e, i, l)
}
),
_lerpVector2: (function() {
var t = cc.v2();
return function(e, i, n) {
return e.lerp(i, n, t)
}
}
)(),
_lerpVector3: (function() {
var t = cc.v3();
return function(e, i, n) {
return e.lerp(i, n, t)
}
}
)(),
sample: function(t, e) {
var i = this.values
, n = this.ratios
, r = n.length;
if (0 !== r) {
var s, o = !0, l = this._cachedIndex;
if (l < 0 && (l = ~l) > 0 && l < n.length) {
var h = n[l - 1]
, c = n[l];
e > h && e < c && (o = !1)
}
o && (this._cachedIndex = this._findFrameIndex(n, e));
var u = this._cachedIndex;
if (u < 0)
if ((u = ~u) <= 0)
s = i[0];
else if (u >= r)
s = i[r - 1];
else {
var _ = i[u - 1];
if (this._lerp) {
var f = n[u - 1]
, d = n[u]
, p = this.types[u - 1]
, m = (e - f) / (d - f);
p && (m = a(m, p));
var y = i[u];
s = this._lerp(_, y, m)
} else
s = _
}
else
s = i[u];
this.target[this.prop] = s
}
}
});
h.Linear = null,
h.Bezier = function(t) {
return t
}
;
var c = function() {
this.events = []
};
c.prototype.add = function(t, e) {
this.events.push({
func: t || "",
params: e || []
})
}
;
var u = cc.Class({
name: "cc.EventAnimCurve",
extends: o,
properties: {
target: null,
ratios: [],
events: [],
_wrappedInfo: {
default: function() {
return new s
}
},
_lastWrappedInfo: null,
_ignoreIndex: NaN
},
_wrapIterations: function(t) {
return t - (0 | t) == 0 && (t -= 1),
0 | t
},
sample: function(t, e, i) {
var a = this.ratios.length
, o = i.getWrappedInfo(i.time, this._wrappedInfo)
, l = o.direction
, h = n(this.ratios, o.ratio);
if (h < 0 && (h = ~h - 1,
l < 0 && (h += 1)),
this._ignoreIndex !== h && (this._ignoreIndex = NaN),
o.frameIndex = h,
!this._lastWrappedInfo)
return this._fireEvent(h),
void (this._lastWrappedInfo = new s(o));
var c = i.wrapMode
, u = this._wrapIterations(o.iterations)
, _ = this._lastWrappedInfo
, f = this._wrapIterations(_.iterations)
, d = _.frameIndex
, p = _.direction
, m = -1 !== f && u !== f;
if (d === h && m && 1 === a)
this._fireEvent(0);
else if (d !== h || m) {
l = p;
do {
if (d !== h) {
if (-1 === l && 0 === d && h > 0 ? ((c & r.PingPong) === r.PingPong ? l *= -1 : d = a,
f++) : 1 === l && d === a - 1 && h < a - 1 && ((c & r.PingPong) === r.PingPong ? l *= -1 : d = -1,
f++),
d === h)
break;
if (f > u)
break
}
d += l,
cc.director.getAnimationManager().pushDelayEvent(this, "_fireEvent", [d])
} while (d !== h && d > -1 && d < a)
}
this._lastWrappedInfo.set(o)
},
_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, a = 0; a < i.length; a++) {
var o = i[a]
, l = o[s];
l && l.apply(o, r.params)
}
}
},
onTimeChangedManually: function(t, e) {
this._lastWrappedInfo = null,
this._ignoreIndex = NaN;
var i = e.getWrappedInfo(t, this._wrappedInfo)
, r = i.direction
, s = n(this.ratios, i.ratio);
s < 0 && (s = ~s - 1,
r < 0 && (s += 1),
this._ignoreIndex = s)
}
});
e.exports = {
AnimCurve: o,
DynamicAnimCurve: h,
EventAnimCurve: u,
EventInfo: c,
computeRatioByType: a,
quickFindIndex: function(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 ~t.length;
var s = (e = (e - n) / (r - n)) / (1 / i)
, a = 0 | s;
return s - a < 1e-6 ? a : a + 1 - s < 1e-6 ? a + 1 : ~(a + 1)
}
}
}
), {
"../core/utils/binary-search": 260,
"./bezier": 14,
"./types": 19
}],
12: [(function(t, e) {
"use strict";
var i = cc.js
, n = cc.Class({
ctor: function() {
this._anims = new i.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 a = r[s];
a.target[a.func].apply(a.target, a.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 = n
}
), {}],
13: [(function(t, e) {
"use strict";
var i = cc.js
, n = t("./playable")
, r = t("./types")
, s = r.WrappedInfo
, a = r.WrapMode
, o = r.WrapModeMask;
function l(t, e) {
n.call(this),
this._currentFramePlayed = !1,
this._delay = 0,
this._delayTime = 0,
this._wrappedInfo = new s,
this._lastWrappedInfo = null,
this._process = c,
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)
}
}
i.extend(l, n);
var h = l.prototype;
function c() {
var t, e = this.sample();
this._lastframeEventOn && (t = this._lastWrappedInfo ? this._lastWrappedInfo : this._lastWrappedInfo = new s(e),
this.repeatCount > 1 && (0 | e.iterations) > (0 | t.iterations) && this.emit("lastframe", this),
t.set(e)),
e.stopped && (this.stop(),
this.emit("finished", this))
}
function u() {
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);
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._emit = function(t, e) {
this._target && this._target.isValid && this._target.emit(t, t, e)
}
,
h.on = function(t, e, i) {
return this._target && this._target.isValid ? ("lastframe" === t && (this._lastframeEventOn = !0),
this._target.on(t, e, i)) : 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) {
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)
}
}
,
h.update = function(t) {
this._delayTime > 0 && (this._delayTime -= t,
this._delayTime > 0) || (this._currentFramePlayed ? this.time += t * this.speed : this._currentFramePlayed = !0,
this._process())
}
,
h._needRevers = function(t) {
var e = this.wrapMode
, i = !1;
return (e & o.PingPong) === o.PingPong && (t - (0 | t) == 0 && t > 0 && (t -= 1),
1 & t && (i = !i)),
(e & o.Reverse) === o.Reverse && (i = !i),
i
}
,
h.getWrappedInfo = function(t, e) {
e = e || new s;
var i = !1
, n = this.duration
, r = this.repeatCount
, a = t > 0 ? t / n : -t / n;
if (a >= r) {
a = r,
i = !0;
var l = r - (0 | r);
0 === l && (l = 1),
t = l * n * (t > 0 ? 1 : -1)
}
if (t > n) {
var h = t % n;
t = 0 === h ? n : h
} else
t < 0 && 0 != (t %= n) && (t += n);
var c = !1
, u = this._wrapMode & o.ShouldWrap;
u && (c = this._needRevers(a));
var _ = c ? -1 : 1;
return this.speed < 0 && (_ *= -1),
u && c && (t = n - t),
e.ratio = t / n,
e.time = t,
e.direction = _,
e.stopped = i,
e.iterations = a,
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
}
,
i.get(h, "clip", (function() {
return this._clip
}
)),
i.get(h, "name", (function() {
return this._name
}
)),
i.obsolete(h, "AnimationState.length", "duration"),
i.getset(h, "curveLoaded", (function() {
return this.curves.length > 0
}
), (function() {
this.curves.length = 0
}
)),
i.getset(h, "wrapMode", (function() {
return this._wrapMode
}
), (function(t) {
this._wrapMode = t,
this.time = 0,
t & o.Loop ? this.repeatCount = 1 / 0 : this.repeatCount = 1
}
)),
i.getset(h, "repeatCount", (function() {
return this._repeatCount
}
), (function(t) {
this._repeatCount = t;
var e = this._wrapMode & o.ShouldWrap
, i = (this.wrapMode & o.Reverse) === o.Reverse;
this._process = t !== 1 / 0 || e || i ? c : u
}
)),
i.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) {
"use strict";
var i = Math.cos
, n = Math.acos
, r = Math.max
, s = 2 * Math.PI
, a = Math.sqrt;
function o(t) {
return t < 0 ? -Math.pow(-t, 1 / 3) : Math.pow(t, 1 / 3)
}
function l(t, e) {
var l, h, c, u, _ = e - 0, f = e - t[0], d = 3 * _, p = 3 * f, m = 3 * (e - t[2]), y = 1 / (-_ + p - m + (e - 1)), v = (d - 6 * f + m) * y, g = v * (1 / 3), A = (-d + p) * y, x = 1 / 3 * (3 * A - v * v), b = x * (1 / 3), C = (2 * v * v * v - 9 * v * A + _ * y * 27) / 27, T = C / 2, S = T * T + b * b * b;
if (S < 0) {
var w = 1 / 3 * -x
, E = a(w * w * w)
, M = -C / (2 * E)
, D = n(M < -1 ? -1 : M > 1 ? 1 : M)
, B = 2 * o(E);
return h = B * i(D * (1 / 3)) - g,
c = B * i((D + s) * (1 / 3)) - g,
u = B * i((D + 2 * s) * (1 / 3)) - g,
0 <= h && h <= 1 ? 0 <= c && c <= 1 ? 0 <= u && u <= 1 ? r(h, c, u) : r(h, c) : 0 <= u && u <= 1 ? r(h, u) : h : 0 <= c && c <= 1 ? 0 <= u && u <= 1 ? r(c, u) : c : u
}
if (0 === S)
return c = -(l = T < 0 ? o(-T) : -o(T)) - g,
0 <= (h = 2 * l - g) && h <= 1 ? 0 <= c && c <= 1 ? r(h, c) : h : c;
var I = a(S);
return (l = o(-T + I)) - o(T + I) - g
}
e.exports = {
bezier: function(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
},
bezierByTime: function(t, e) {
var i = l(t, e)
, n = t[1];
return ((1 - i) * (n + (t[3] - n) * i) * 3 + i * i) * i
}
}
}
), {}],
15: [(function(t, e) {
"use strict";
var i = {
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;
return 0 === t ? 0 : 1 === t ? 1 : (!i || i < 1 ? (i = 1,
e = .1) : e = .4 * Math.asin(1 / i) / (2 * Math.PI),
-i * Math.pow(2, 10 * (t -= 1)) * Math.sin(2 * (t - e) * Math.PI / .4))
},
elasticOut: function(t) {
var e, i = .1;
return 0 === t ? 0 : 1 === t ? 1 : (!i || i < 1 ? (i = 1,
e = .1) : e = .4 * Math.asin(1 / i) / (2 * Math.PI),
i * Math.pow(2, -10 * t) * Math.sin(2 * (t - e) * Math.PI / .4) + 1)
},
elasticInOut: function(t) {
var e, i = .1;
return 0 === t ? 0 : 1 === t ? 1 : (!i || i < 1 ? (i = 1,
e = .1) : e = .4 * Math.asin(1 / i) / (2 * Math.PI),
(t *= 2) < 1 ? i * Math.pow(2, 10 * (t -= 1)) * Math.sin(2 * (t - e) * Math.PI / .4) * -.5 : i * Math.pow(2, -10 * (t -= 1)) * Math.sin(2 * (t - e) * 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 - i.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 * i.bounceIn(2 * t) : .5 * i.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 n(t, e) {
return function(i) {
return i < .5 ? e(2 * i) / 2 : t(2 * i - 1) / 2 + .5
}
}
i.quadOutIn = n(i.quadIn, i.quadOut),
i.cubicOutIn = n(i.cubicIn, i.cubicOut),
i.quartOutIn = n(i.quartIn, i.quartOut),
i.quintOutIn = n(i.quintIn, i.quintOut),
i.sineOutIn = n(i.sineIn, i.sineOut),
i.expoOutIn = n(i.expoIn, i.expoOut),
i.circOutIn = n(i.circIn, i.circOut),
i.backOutIn = n(i.backIn, i.backOut),
i.bounceIn = function(t) {
return 1 - i.bounceOut(1 - t)
}
,
i.bounceInOut = function(t) {
return t < .5 ? .5 * i.bounceIn(2 * t) : .5 * i.bounceOut(2 * t - 1) + .5
}
,
i.bounceOutIn = n(i.bounceIn, i.bounceOut),
cc.easing = e.exports = i
}
), {}],
16: [(function(t) {
"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) {
"use strict";
var i = t("./animation-curves").DynamicAnimCurve
, n = t("./animation-curves").computeRatioByType
, r = t("./bezier").bezier
, s = t("../core/utils/binary-search").binarySearchEpsilon
, a = cc.v2;
function o(t) {
this.points = t || [],
this.beziers = [],
this.ratios = [],
this.progresses = [],
this.length = 0,
this.computeBeziers()
}
function l() {
this.start = a(),
this.end = a(),
this.startCtrlPoint = a(),
this.endCtrlPoint = a()
}
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
}
o.prototype.computeBeziers = function() {
var t;
this.beziers.length = 0,
this.ratios.length = 0,
this.progresses.length = 0,
this.length = 0;
for (var 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
}
,
l.prototype.getPointAt = function(t) {
var e = this.getUtoTmapping(t);
return this.getPoint(e)
}
,
l.prototype.getPoint = function(t) {
var e = r(this.start.x, this.startCtrlPoint.x, this.endCtrlPoint.x, this.end.x, t)
, i = r(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) {
if (t || (t = this.__arcLengthDivisions ? this.__arcLengthDivisions : 200),
this.cacheArcLengths && this.cacheArcLengths.length === t + 1)
return this.cacheArcLengths;
var e, i, n = [], r = this.getPoint(0), s = a(), o = 0;
for (n.push(0),
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;
return this.cacheArcLengths = n,
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 a, o = 0, l = s - 1; o <= l; )
if ((a = n[r = Math.floor(o + (l - o) / 2)] - i) < 0)
o = r + 1;
else {
if (!(a > 0)) {
l = r;
break
}
l = r - 1
}
if (n[r = l] === i)
return r / (s - 1);
var h = n[r];
return (r + (i - h) / (n[r + 1] - h)) / (s - 1)
}
,
e.exports = {
sampleMotionPaths: function(t, e, r, l, c) {
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) {
return Array.isArray(t) && (t = 2 === t.length ? cc.v2(t[0], t[1]) : cc.v3(t[0], t[1], t[2])),
t
}
));
if (0 !== t.length && 0 !== _.length) {
for (var f = !1, d = 0; d < t.length; d++) {
var p = t[d];
if (p && !h(p) && (cc.errorID(3904, c ? c.name : "", "position", d),
p = null),
p && p.length > 0) {
f = !0;
break
}
}
if (f && 1 !== _.length) {
for (var m = e.types, y = e.ratios, v = e.values = [], g = e.types = [], A = e.ratios = [], x = 0, b = i.Linear, C = 0, T = t.length; C < T - 1; C++) {
var S, w = t[C], E = y[C], M = y[C + 1] - E, D = _[C], B = _[C + 1], I = m[C], P = [], R = x / M, O = 1 / (M * r * l);
if (w && w.length > 0) {
var L = [];
L.push(u(D));
for (var F = 0, V = w.length; F < V; F++) {
var N = u(w[F]);
L.push(N)
}
L.push(u(B));
var k = new o(L);
k.computeBeziers();
for (var G = k.progresses; 1 - R > 1e-6; ) {
var U, z, H, W;
if ((S = n(S = R, I)) < 0)
W = (0 - S) * (z = k.beziers[0]).getLength(),
H = z.start.sub(z.endCtrlPoint).normalize(),
U = z.start.add(H.mul(W));
else if (S > 1)
W = (S - 1) * (z = k.beziers[k.beziers.length - 1]).getLength(),
H = z.end.sub(z.startCtrlPoint).normalize(),
U = z.end.add(H.mul(W));
else {
var j = s(G, S);
j < 0 && (j = ~j),
S -= j > 0 ? G[j - 1] : 0,
S /= k.ratios[j],
U = k.beziers[j].getPointAt(S)
}
P.push(U),
R += O
}
} else
for (; 1 - R > 1e-6; )
S = n(S = R, I),
P.push(D.lerp(B, S)),
R += O;
for (b = "constant" === I ? I : i.Linear,
F = 0,
V = P.length; F < V; F++) {
var X = E + x + O * F * M;
Y(P[F], b, X)
}
x = Math.abs(R - 1) > 1e-6 ? (R - 1) * M : 0
}
y[y.length - 1] !== A[A.length - 1] && Y(_[_.length - 1], b, y[y.length - 1])
}
}
function Y(t, e, i) {
v.push(t),
g.push(e),
A.push(i)
}
},
Curve: o,
Bezier: l
}
}
), {
"../core/utils/binary-search": 260,
"./animation-curves": 11,
"./bezier": 14
}],
18: [(function(t, e) {
"use strict";
var i = cc.js
, n = t("../core/CCDebug");
function r() {
this._isPlaying = !1,
this._isPaused = !1,
this._stepOnce = !1
}
var s = r.prototype;
i.get(s, "isPlaying", (function() {
return this._isPlaying
}
), !0),
i.get(s, "isPaused", (function() {
return this._isPaused
}
), !0);
var a = function() {};
s.onPlay = a,
s.onPause = a,
s.onResume = a,
s.onStop = a,
s.onError = a,
s.play = function() {
this._isPlaying ? this._isPaused ? (this._isPaused = !1,
this.onResume()) : this.onError(n.getError(3912)) : (this._isPlaying = !0,
this.onPlay())
}
,
s.stop = function() {
this._isPlaying && (this._isPlaying = !1,
this.onStop(),
this._isPaused = !1)
}
,
s.pause = function() {
this._isPlaying && !this._isPaused && (this._isPaused = !0,
this.onPause())
}
,
s.resume = function() {
this._isPlaying && this._isPaused && (this._isPaused = !1,
this.onResume())
}
,
s.step = function() {
this.pause(),
this._stepOnce = !0,
this._isPlaying || this.play()
}
,
e.exports = r
}
), {
"../core/CCDebug": 26
}],
19: [(function(t, e) {
"use strict";
var i = {
Loop: 2,
ShouldWrap: 4,
PingPong: 22,
Reverse: 36
}
, n = cc.Enum({
Default: 0,
Normal: 1,
Reverse: i.Reverse,
Loop: i.Loop,
LoopReverse: i.Loop | i.Reverse,
PingPong: i.PingPong,
PingPongReverse: i.PingPong | i.Reverse
});
function r(t) {
t ? this.set(t) : (this.ratio = 0,
this.time = 0,
this.direction = 1,
this.stopped = !0,
this.iterations = 0,
this.frameIndex = void 0)
}
cc.WrapMode = n,
r.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: i,
WrapMode: n,
WrappedInfo: r
}
}
), {}],
20: [(function(t, e) {
"use strict";
var i, n, r = t("../core/event/event-target"), s = t("../core/platform/CCSys"), a = t("../core/assets/CCAudioClip").LoadMode, o = !1, l = [], h = function t(e) {
r.call(this),
this._shouldRecycleOnEnded = !1,
this._src = e,
this._element = null,
this.id = 0,
this._state = t.State.INITIALZING;
var i = this;
this._onended = function() {
i._state = t.State.STOPPED,
i.emit("ended")
}
,
this._onendedSecond = function() {
i._unbindEnded(i._onendedSecond),
i._bindEnded()
}
};
cc.js.extend(h, r),
h.State = {
ERROR: -1,
INITIALZING: 0,
PLAYING: 1,
PAUSED: 2,
STOPPED: 3
},
(i = h.prototype)._bindEnded = function(t) {
if (!(t = t || this._onended)._binded) {
t._binded = !0;
var e = this._element;
this._src && e instanceof HTMLAudioElement ? e.addEventListener("ended", t) : e.onended = t
}
}
,
i._unbindEnded = function(t) {
if ((t = t || this._onended)._binded) {
t._binded = !1;
var e = this._element;
e instanceof HTMLAudioElement ? e.removeEventListener("ended", t) : e && (e.onended = null)
}
}
,
i._onLoaded = function() {
this._createElement(),
this._state = h.State.INITIALZING,
this.setVolume(1),
this.setLoop(!1)
}
,
i._createElement = function() {
var t = this._src._nativeAsset;
t instanceof HTMLAudioElement ? (this._element || (this._element = document.createElement("audio")),
this._element.src = t.src) : this._element = new c(t,this)
}
,
i.play = function() {
var t = this;
this._src && this._src._ensureLoaded((function() {
t._state = h.State.PLAYING,
t._bindEnded();
var e = t._element.play();
window.Promise && e instanceof Promise && e.catch((function() {}
)),
t._touchToPlay()
}
))
}
,
i._touchToPlay = function() {
if (this._src && this._src.loadMode === a.DOM_AUDIO && this._element.paused && l.push({
instance: this,
offset: 0,
audio: this._element
}),
!o) {
o = !0;
var t = "ontouchend"in window ? "touchend" : "mousedown";
cc.game.canvas.addEventListener(t, (function() {
for (var t; t = l.pop(); )
t.audio.play(t.offset)
}
))
}
}
,
i.destroy = function() {
this._element = null
}
,
i.pause = function() {
if (this.getState() === h.State.PLAYING) {
var t = this;
this._src && this._src._ensureLoaded((function() {
t._unbindEnded(),
t._element.pause(),
t._state = h.State.PAUSED
}
))
}
}
,
i.resume = function() {
if (this.getState() === h.State.PAUSED) {
var t = this;
this._src && this._src._ensureLoaded((function() {
t._bindEnded(),
t._element.play(),
t._state = h.State.PLAYING
}
))
}
}
,
i.stop = function() {
var t = this;
this._src && this._src._ensureLoaded((function() {
t._element.pause(),
t._element.currentTime = 0;
for (var e = 0; e < l.length; e++)
if (l[e].instance === t) {
l.splice(e, 1);
break
}
t._unbindEnded(),
t.emit("stop"),
t._state = h.State.STOPPED
}
))
}
,
i.setLoop = function(t) {
var e = this;
this._src && this._src._ensureLoaded((function() {
e._element.loop = t
}
))
}
,
i.getLoop = function() {
return !!this._element && this._element.loop
}
,
i.setVolume = function(t) {
var e = this;
this._src && this._src._ensureLoaded((function() {
e._element.volume = t
}
))
}
,
i.getVolume = function() {
return this._element ? this._element.volume : 1
}
,
i.setCurrentTime = function(t) {
var e = this;
this._src && this._src._ensureLoaded((function() {
e._unbindEnded(),
e._bindEnded(e._onendedSecond),
e._element.currentTime = t
}
))
}
,
i.getCurrentTime = function() {
return this._element ? this._element.currentTime : 0
}
,
i.getDuration = function() {
return this._src ? this._src.duration : 0
}
,
i.getState = function(t) {
return void 0 === t && (t = !0),
t && this._forceUpdatingState(),
this._state
}
,
i._forceUpdatingState = function() {
var t = this._element;
t && (h.State.PLAYING === this._state && t.paused ? this._state = h.State.STOPPED : h.State.STOPPED !== this._state || t.paused || (this._state = h.State.PLAYING))
}
,
Object.defineProperty(i, "src", {
get: function() {
return this._src
},
set: function(t) {
if (this._unbindEnded(),
t) {
if (t !== this._src)
if (this._src = t,
t.loaded)
this._onLoaded();
else {
var e = this;
t.once("load", (function() {
t === e._src && e._onLoaded()
}
))
}
} else
this._src = null,
this._element instanceof c ? this._element = null : this._element && (this._element.src = ""),
this._state = h.State.INITIALZING;
return t
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(i, "paused", {
get: function() {
return !this._element || this._element.paused
},
enumerable: !0,
configurable: !0
}),
n = 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 c = function(t, e) {
this._audio = e,
this._context = s.__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) {
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, n = this._buffer.duration, r = t;
if (this._loop ? e.start ? e.start(0, r) : e.notoGrainOn ? e.noteGrainOn(0, r) : e.noteOn(0, r) : (i = n - t,
e.start ? e.start(0, r, i) : e.noteGrainOn ? e.noteGrainOn(0, r, i) : e.noteOn(0, r, i)),
this._currentSource = e,
e.onended = this._endCallback,
(!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 && l.push({
instance: s._audio,
offset: t,
audio: s
})
}
), 10)
}
var a = cc.sys;
a.os === a.OS_IOS && a.isBrowser && a.isMobile && ("suspended" === e.context.state && 0 !== this._context.currentTime || "interrupted" === e.context.state) && e.context.resume()
}
,
t.pause = function() {
if (clearTimeout(this._currentTimer),
!this.paused) {
this.playedLength = this._context.currentTime - this._startTime,
this.playedLength %= this._buffer.duration;
var t = this._currentSource;
t && (t.onended && (t.onended._binded = !1,
t.onended = null),
t.stop(0)),
this._currentSource = null,
this._startTime = -1
}
}
,
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) {
return this._currentSource && (this._currentSource.loop = t),
this._loop = t
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(t, "volume", {
get: function() {
return this._volume
},
set: function(t) {
if (this._volume = t,
this._gainObj.gain.setTargetAtTime)
try {
this._gainObj.gain.setTargetAtTime(t, this._context.currentTime, n)
} catch (e) {
this._gainObj.gain.setTargetAtTime(t, this._context.currentTime, .01)
}
else
this._gainObj.gain.value = t;
s.os === s.OS_IOS && !this.paused && this._currentSource && (this._currentSource.onended = null,
this.pause(),
this.play())
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(t, "currentTime", {
get: function() {
return this.paused ? this.playedLength : (this.playedLength = this._context.currentTime - this._startTime,
this.playedLength %= this._buffer.duration,
this.playedLength)
},
set: function(t) {
return this.paused ? this.playedLength = t : (this.pause(),
this.playedLength = t,
this.play()),
t
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(t, "duration", {
get: function() {
return this._buffer.duration
},
enumerable: !0,
configurable: !0
})
}
)(c.prototype),
e.exports = cc._Audio = h
}
), {
"../core/assets/CCAudioClip": 63,
"../core/event/event-target": 140,
"../core/platform/CCSys": 202
}],
21: [(function(t, e) {
"use strict";
var i = t("./CCAudio")
, n = t("../core/assets/CCAudioClip")
, r = cc.js
, s = 0
, a = r.createMap(!0)
, o = {}
, l = []
, h = function(t) {
t._shouldRecycleOnEnded && (t._finishCallback = null,
t.off("ended"),
t.off("stop"),
t.src = null,
l.includes(t) || (l.length < 32 ? l.push(t) : t.destroy()),
t._shouldRecycleOnEnded = !1)
}
, c = function(t) {
var e = s++
, n = o[t];
if (n || (n = o[t] = []),
f._maxAudioInstance <= n.length) {
var r = n.shift();
u(r).stop()
}
var c = l.pop() || new i
, _ = function() {
if (u(this.id)) {
delete a[this.id];
var t = n.indexOf(this.id);
cc.js.array.fastRemoveAt(n, t)
}
h(this)
};
return c.on("ended", (function() {
this._finishCallback && this._finishCallback(),
this.getLoop() || _.call(this)
}
), c),
c.on("stop", _, c),
c.id = e,
a[e] = c,
n.push(e),
c
}
, u = function(t) {
return a[t]
}
, _ = function(t) {
return void 0 === t ? t = 1 : "string" == typeof t && (t = Number.parseFloat(t)),
t
}
, f = {
AudioState: i.State,
_maxAudioInstance: 24,
_id2audio: a,
play: function(t, e, i) {
if (!(t instanceof n))
return cc.error("Wrong type of AudioClip.");
var r = t.nativeUrl
, s = c(r);
return s.src = t,
t._ensureLoaded(),
s._shouldRecycleOnEnded = !0,
s.setLoop(e || !1),
i = _(i),
s.setVolume(i),
s.play(),
s.id
},
setLoop: function(t, e) {
var i = u(t);
i && i.setLoop && i.setLoop(e)
},
isLoop: function(t) {
var e = u(t);
return !(!e || !e.getLoop) && e.getLoop()
},
setVolume: function(t, e) {
var i = u(t);
i && i.setVolume(e)
},
getVolume: function(t) {
var e = u(t);
return e ? e.getVolume() : 1
},
setCurrentTime: function(t, e) {
var i = u(t);
return !!i && (i.setCurrentTime(e),
!0)
},
getCurrentTime: function(t) {
var e = u(t);
return e ? e.getCurrentTime() : 0
},
getDuration: function(t) {
var e = u(t);
return e ? e.getDuration() : 0
},
getState: function(t) {
var e = u(t);
return e ? e.getState() : this.AudioState.ERROR
},
setFinishCallback: function(t, e) {
var i = u(t);
i && (i._finishCallback = e)
},
pause: function(t) {
var e = u(t);
return !!e && (e.pause(),
!0)
},
_pauseIDCache: [],
pauseAll: function() {
for (var t in a) {
var e = a[t];
e.getState() === i.State.PLAYING && (this._pauseIDCache.push(t),
e.pause())
}
},
resume: function(t) {
var e = u(t);
e && e.resume()
},
resumeAll: function() {
for (var t = 0; t < this._pauseIDCache.length; ++t) {
var e = this._pauseIDCache[t]
, i = u(e);
i && i.resume()
}
this._pauseIDCache.length = 0
},
stop: function(t) {
var e = u(t);
return !!e && (e.stop(),
!0)
},
stopAll: function() {
for (var t in a) {
var e = a[t];
e && e.stop()
}
},
setMaxAudioInstance: function() {},
getMaxAudioInstance: function() {
return this._maxAudioInstance
},
uncache: function(t) {
var e = t;
if ("string" == typeof t)
cc.warnID(8401, "cc.audioEngine", "cc.AudioClip", "AudioClip", "cc.AudioClip", "audio"),
e = t;
else {
if (!t)
return;
e = t.nativeUrl
}
var i = o[e];
if (i)
for (; i.length > 0; ) {
var n = i.pop()
, r = a[n];
r && (r.stop(),
delete a[n])
}
},
uncacheAll: function() {
var t;
for (var e in this.stopAll(),
a)
(t = a[e]) && t.destroy();
for (; t = l.pop(); )
t.destroy();
a = r.createMap(!0),
o = {}
},
_breakCache: null,
_break: function() {
for (var t in this._breakCache = [],
a) {
var e = a[t];
e.getState() === i.State.PLAYING && (this._breakCache.push(t),
e.pause())
}
},
_restore: function() {
if (this._breakCache) {
for (; this._breakCache.length > 0; ) {
var t = this._breakCache.pop()
, e = u(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;
return this.stop(i.id),
i.id = this.play(t, e, i.volume),
i.loop = e,
i.id
},
stopMusic: function() {
this.stop(this._music.id)
},
pauseMusic: function() {
return this.pause(this._music.id),
this._music.id
},
resumeMusic: function() {
return this.resume(this._music.id),
this._music.id
},
getMusicVolume: function() {
return this._music.volume
},
setMusicVolume: function(t) {
t = _(t);
var e = this._music;
return e.volume = t,
this.setVolume(e.id, e.volume),
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 = _(t);
var e = this._music.id;
for (var i in this._effect.volume = t,
a) {
var n = a[i];
n && n.id !== e && f.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;
for (var i in e.pauseCache.length = 0,
a) {
var n = a[i];
n && n.id !== t && 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 = a[i];
n && n.resume()
}
},
stopEffect: function(t) {
return this.stop(t)
},
stopAllEffects: function() {
var t = this._music.id;
for (var e in a) {
var i = a[e];
i && i.id !== t && i.getState() === f.AudioState.PLAYING && i.stop()
}
}
};
e.exports = cc.audioEngine = f
}
), {
"../core/assets/CCAudioClip": 63,
"./CCAudio": 20
}],
22: [(function(t, e) {
"use strict";
var i = {
name: "Jacob__Codec"
};
i.Base64 = t("./base64"),
i.GZip = t("./gzip"),
i.unzip = function() {
return i.GZip.gunzip.apply(i.GZip, arguments)
}
,
i.unzipBase64 = function() {
var t = i.Base64.decode.apply(i.Base64, arguments);
try {
return i.GZip.gunzip.call(i.GZip, t)
} catch (e) {
return t.slice(7)
}
}
,
i.unzipBase64AsArray = function(t, e) {
e = e || 1;
var i, n, r, s = this.unzipBase64(t), a = [];
for (i = 0,
r = s.length / e; i < r; i++)
for (a[i] = 0,
n = e - 1; n >= 0; --n)
a[i] += s.charCodeAt(i * e + n) << 8 * n;
return a
}
,
i.unzipAsArray = function(t, e) {
e = e || 1;
var i, n, r, s = this.unzip(t), a = [];
for (i = 0,
r = s.length / e; i < r; i++)
for (a[i] = 0,
n = e - 1; n >= 0; --n)
a[i] += s.charCodeAt(i * e + n) << 8 * n;
return a
}
,
cc.codec = e.exports = i
}
), {
"./base64": 23,
"./gzip": 24
}],
23: [(function(t, e) {
"use strict";
var i = t("../core/utils/misc").BASE64_VALUES
, n = {
name: "Jacob__Codec__Base64",
decode: function(t) {
var e, n, r, s, a, o, l = [], h = 0;
for (t = t.replace(/[^A-Za-z0-9\+\/\=]/g, ""); h < t.length; )
e = i[t.charCodeAt(h++)] << 2 | (s = i[t.charCodeAt(h++)]) >> 4,
n = (15 & s) << 4 | (a = i[t.charCodeAt(h++)]) >> 2,
r = (3 & a) << 6 | (o = i[t.charCodeAt(h++)]),
l.push(String.fromCharCode(e)),
64 !== a && l.push(String.fromCharCode(n)),
64 !== o && l.push(String.fromCharCode(r));
return l.join("")
},
decodeAsArray: function(t, e) {
var i, n, r, s = this.decode(t), a = [];
for (i = 0,
r = s.length / e; i < r; i++)
for (a[i] = 0,
n = e - 1; n >= 0; --n)
a[i] += s.charCodeAt(i * e + n) << 8 * n;
return a
}
};
e.exports = n
}
), {
"../core/utils/misc": 267
}],
24: [(function(t, e) {
"use strict";
var i = 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(i.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
};
i.gunzip = function(t) {
return t.constructor === Array || (t.constructor,
String),
new i(t).gunzip()[0][0]
}
,
i.HufNode = function() {
this.b0 = 0,
this.b1 = 0,
this.jump = null,
this.jumppos = -1
}
,
i.LITERALS = 288,
i.NAMEMAX = 256,
i.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],
i.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],
i.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],
i.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],
i.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],
i.border = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15],
i.prototype.gunzip = function() {
return this.outputArr = [],
this.nextFile(),
this.unzipped
}
,
i.prototype.readByte = function() {
return this.bits += 8,
this.bytepos < this.data.length ? this.data.charCodeAt(this.bytepos++) : -1
}
,
i.prototype.byteAlign = function() {
this.bb = 1
}
,
i.prototype.readBit = function() {
var t;
return this.bits++,
t = 1 & this.bb,
this.bb >>= 1,
0 === this.bb && (this.bb = this.readByte(),
t = 1 & this.bb,
this.bb = this.bb >> 1 | 128),
t
}
,
i.prototype.readBits = function(t) {
for (var e = 0, n = t; n--; )
e = e << 1 | this.readBit();
return t && (e = i.bitReverse[e] >> 8 - t),
e
}
,
i.prototype.flushBuffer = function() {
this.bIdx = 0
}
,
i.prototype.addBuffer = function(t) {
this.buf32k[this.bIdx++] = t,
this.outputArr.push(String.fromCharCode(t)),
32768 === this.bIdx && (this.bIdx = 0)
}
,
i.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]++
}
}
,
i.prototype.Rec = function() {
var t, e = this.Places[this.treepos];
if (17 === this.len)
return -1;
if (this.treepos++,
this.len++,
(t = this.IsPat()) >= 0)
e.b0 = t;
else if (e.b0 = 32768,
this.Rec())
return -1;
if ((t = this.IsPat()) >= 0)
e.b1 = t,
e.jump = null;
else if (e.b1 = 32768,
e.jump = this.Places[this.treepos],
e.jumppos = this.treepos,
this.Rec())
return -1;
return this.len--,
0
}
,
i.prototype.CreateTree = function(t, e, i) {
var n;
for (this.Places = t,
this.treepos = 0,
this.flens = i,
this.fmax = e,
n = 0; n < 17; n++)
this.fpos[n] = 0;
return this.len = 0,
this.Rec() ? -1 : 0
}
,
i.prototype.DecodeValue = function(t) {
for (var e, i, n = 0, r = t[n]; ; )
if (this.readBit()) {
if (!(32768 & r.b1))
return r.b1;
for (r = r.jump,
e = t.length,
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
}
,
i.prototype.DeflateLoop = function() {
var t, e, n;
do {
var r, s;
if (t = this.readBit(),
0 === (e = this.readBits(2)))
for (this.byteAlign(),
r = this.readByte(),
r |= this.readByte() << 8,
s = this.readByte(),
65535 & (r ^ ~(s |= this.readByte() << 8)) && document.write("BlockLen checksum mismatch\n"); r--; )
a = this.readByte(),
this.addBuffer(a);
else if (1 === e)
for (; ; )
if ((o = i.bitReverse[this.readBits(7)] >> 1) > 23 ? (o = o << 1 | this.readBit()) > 199 ? o = (o -= 128) << 1 | this.readBit() : (o -= 48) > 143 && (o += 136) : o += 256,
o < 256)
this.addBuffer(o);
else {
if (256 === o)
break;
for (o -= 257,
p = this.readBits(i.cplext[o]) + i.cplens[o],
o = i.bitReverse[this.readBits(5)] >> 3,
i.cpdext[o] > 8 ? (m = this.readBits(8),
m |= this.readBits(i.cpdext[o] - 8) << 8) : m = this.readBits(i.cpdext[o]),
m += i.cpdist[o],
o = 0; o < p; o++) {
var a = this.buf32k[this.bIdx - m & 32767];
this.addBuffer(a)
}
}
else if (2 === e) {
var o, l, h, c, u, _ = new Array(320);
for (h = 257 + this.readBits(5),
c = 1 + this.readBits(5),
u = 4 + this.readBits(4),
o = 0; o < 19; o++)
_[o] = 0;
for (o = 0; o < u; o++)
_[i.border[o]] = this.readBits(3);
for (p = this.distanceTree.length,
n = 0; n < p; n++)
this.distanceTree[n] = new i.HufNode;
if (this.CreateTree(this.distanceTree, 19, _, 0))
return this.flushBuffer(),
1;
for (l = h + c,
n = 0; n < l; )
if ((o = this.DecodeValue(this.distanceTree)) < 16)
_[n++] = o;
else if (16 === o) {
var f;
if (n + (o = 3 + this.readBits(2)) > l)
return this.flushBuffer(),
1;
for (f = n ? _[n - 1] : 0; o--; )
_[n++] = f
} else {
if (n + (o = 17 === o ? 3 + this.readBits(3) : 11 + this.readBits(7)) > l)
return this.flushBuffer(),
1;
for (; o--; )
_[n++] = 0
}
for (p = this.literalTree.length,
n = 0; n < p; n++)
this.literalTree[n] = new i.HufNode;
if (this.CreateTree(this.literalTree, h, _, 0))
return this.flushBuffer(),
1;
for (p = this.literalTree.length,
n = 0; n < p; n++)
this.distanceTree[n] = new i.HufNode;
var d = new Array;
for (n = h; n < _.length; n++)
d[n - h] = _[n];
if (this.CreateTree(this.distanceTree, c, d, 0))
return this.flushBuffer(),
1;
for (; ; )
if ((o = this.DecodeValue(this.literalTree)) >= 256) {
var p, m;
if (0 == (o -= 256))
break;
for (o--,
p = this.readBits(i.cplext[o]) + i.cplens[o],
o = this.DecodeValue(this.distanceTree),
i.cpdext[o] > 8 ? (m = this.readBits(8),
m |= this.readBits(i.cpdext[o] - 8) << 8) : m = this.readBits(i.cpdext[o]),
m += i.cpdist[o]; p--; )
a = this.buf32k[this.bIdx - m & 32767],
this.addBuffer(a)
} else
this.addBuffer(o)
}
} while (!t);return this.flushBuffer(),
this.byteAlign(),
0
}
,
i.prototype.unzipFile = function(t) {
var e;
for (this.gunzip(),
e = 0; e < this.unzipped.length; e++)
if (this.unzipped[e][1] === t)
return this.unzipped[e][0]
}
,
i.prototype.nextFile = function() {
this.outputArr = [],
this.modeZIP = !1;
var t = [];
if (t[0] = this.readByte(),
t[1] = this.readByte(),
120 === t[0] && 218 === t[1] && (this.DeflateLoop(),
this.unzipped[this.files] = [this.outputArr.join(""), "geonext.gxt"],
this.files++),
31 === t[0] && 139 === t[1] && (this.skipdir(),
this.unzipped[this.files] = [this.outputArr.join(""), "file"],
this.files++),
80 === t[0] && 75 === t[1] && (this.modeZIP = !0,
t[2] = this.readByte(),
t[3] = this.readByte(),
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(),
this.readByte(),
this.readByte(),
this.readByte(),
this.readByte(),
this.readByte(),
this.readByte();
var n = this.readByte();
n |= this.readByte() << 8;
var r = this.readByte();
for (r |= this.readByte() << 8,
a = 0,
this.nameBuf = []; n--; ) {
var s = this.readByte();
"/" === s | ":" === s ? a = 0 : a < i.NAMEMAX - 1 && (this.nameBuf[a++] = String.fromCharCode(s))
}
this.fileout || (this.fileout = this.nameBuf);
for (var a = 0; a < r; )
s = this.readByte(),
a++;
8 === e && (this.DeflateLoop(),
this.unzipped[this.files] = [this.outputArr.join(""), this.nameBuf.join("")],
this.files++),
this.skipdir()
}
}
,
i.prototype.skipdir = function() {
var t, e, n = [];
if (8 & this.gpflags && (n[0] = this.readByte(),
n[1] = this.readByte(),
n[2] = this.readByte(),
n[3] = this.readByte(),
this.readByte(),
this.readByte(),
this.readByte(),
this.readByte(),
this.readByte(),
this.readByte(),
this.readByte(),
this.readByte()),
this.modeZIP && this.nextFile(),
n[0] = this.readByte(),
8 !== n[0])
return 0;
if (this.gpflags = this.readByte(),
this.readByte(),
this.readByte(),
this.readByte(),
this.readByte(),
this.readByte(),
this.readByte(),
4 & this.gpflags)
for (n[0] = this.readByte(),
n[2] = this.readByte(),
this.len = n[0] + 256 * n[1],
t = 0; t < this.len; t++)
this.readByte();
if (8 & this.gpflags)
for (t = 0,
this.nameBuf = []; e = this.readByte(); )
"7" !== e && ":" !== e || (t = 0),
t < i.NAMEMAX - 1 && (this.nameBuf[t++] = e);
if (16 & this.gpflags)
for (; e = this.readByte(); )
;
2 & this.gpflags && (this.readByte(),
this.readByte()),
this.DeflateLoop(),
this.readByte(),
this.readByte(),
this.readByte(),
this.readByte(),
this.modeZIP && this.nextFile()
}
,
e.exports = i
}
), {}],
25: [(function(t, e) {
"use strict";
(function() {
function t(t) {
throw t
}
var e = void 0
, i = !0
, n = this;
function r(t, i) {
var r, s = t.split("."), a = n;
!(s[0]in a) && a.execScript && a.execScript("var " + s[0]);
for (; s.length && (r = s.shift()); )
s.length || i === e ? a = a[r] ? a[r] : a[r] = {} : a[r] = i
}
var s = "undefined" != typeof Uint8Array && "undefined" != typeof Uint16Array && "undefined" != typeof Uint32Array;
function a(t) {
if ("string" == typeof t) {
var e, i, n = t.split("");
for (e = 0,
i = n.length; e < i; e++)
n[e] = (255 & n[e].charCodeAt(0)) >>> 0;
t = n
}
for (var r, s = 1, a = 0, o = t.length, l = 0; 0 < o; ) {
o -= r = 1024 < o ? 1024 : o;
do {
a += s += t[l++]
} while (--r);s %= 65521,
a %= 65521
}
return (a << 16 | s) >>> 0
}
function o(e, i) {
this.index = "number" == typeof i ? i : 0,
this.i = 0,
this.buffer = e instanceof (s ? Uint8Array : Array) ? e : new (s ? Uint8Array : Array)(32768),
2 * this.buffer.length <= this.index && t(Error("invalid index")),
this.buffer.length <= this.index && this.f()
}
o.prototype.f = function() {
var t, e = this.buffer, i = e.length, n = new (s ? Uint8Array : Array)(i << 1);
if (s)
n.set(e);
else
for (t = 0; t < i; ++t)
n[t] = e[t];
return this.buffer = n
}
,
o.prototype.d = function(t, e, i) {
var n, r = this.buffer, s = this.index, a = this.i, o = r[s];
if (i && 1 < e && (t = 8 < e ? (f[255 & t] << 24 | f[t >>> 8 & 255] << 16 | f[t >>> 16 & 255] << 8 | f[t >>> 24 & 255]) >> 32 - e : f[t] >> 8 - e),
8 > e + a)
o = o << e | t,
a += e;
else
for (n = 0; n < e; ++n)
o = o << 1 | t >> e - n - 1 & 1,
8 == ++a && (a = 0,
r[s++] = f[o],
o = 0,
s === r.length && (r = this.f()));
r[s] = o,
this.buffer = r,
this.i = a,
this.index = s
}
,
o.prototype.finish = function() {
var t, e = this.buffer, i = this.index;
return 0 < this.i && (e[i] <<= 8 - this.i,
e[i] = f[e[i]],
i++),
s ? t = e.subarray(0, i) : (e.length = i,
t = e),
t
}
;
var l, h = new (s ? Uint8Array : Array)(256);
for (l = 0; 256 > l; ++l) {
for (var c = _ = l, u = 7, _ = _ >>> 1; _; _ >>>= 1)
c <<= 1,
c |= 1 & _,
--u;
h[l] = (c << u & 255) >>> 0
}
var f = h;
function d(t) {
this.buffer = new (s ? Uint16Array : Array)(2 * t),
this.length = 0
}
function p(t) {
var e, i, n, r, a, o, l, h, c, u = t.length, _ = 0, f = Number.POSITIVE_INFINITY;
for (h = 0; h < u; ++h)
t[h] > _ && (_ = t[h]),
t[h] < f && (f = t[h]);
for (e = 1 << _,
i = new (s ? Uint32Array : Array)(e),
n = 1,
r = 0,
a = 2; n <= _; ) {
for (h = 0; h < u; ++h)
if (t[h] === n) {
for (o = 0,
l = r,
c = 0; c < n; ++c)
o = o << 1 | 1 & l,
l >>= 1;
for (c = o; c < e; c += a)
i[c] = n << 16 | h;
++r
}
++n,
r <<= 1,
a <<= 1
}
return [i, _, f]
}
function m(t, e) {
this.h = v,
this.w = 0,
this.input = t,
this.b = 0,
e && (e.lazy && (this.w = e.lazy),
"number" == typeof e.compressionType && (this.h = e.compressionType),
e.outputBuffer && (this.a = s && e.outputBuffer instanceof Array ? new Uint8Array(e.outputBuffer) : e.outputBuffer),
"number" == typeof e.outputIndex && (this.b = e.outputIndex)),
this.a || (this.a = new (s ? Uint8Array : Array)(32768))
}
s && 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]),
d.prototype.getParent = function(t) {
return 2 * ((t - 2) / 4 | 0)
}
,
d.prototype.push = function(t, e) {
var i, n, r, s = this.buffer;
for (i = this.length,
s[this.length++] = e,
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
}
,
d.prototype.pop = function() {
var t, e, i, n, r, s = this.buffer;
for (e = s[0],
t = s[1],
this.length -= 2,
s[0] = s[this.length],
s[1] = s[this.length + 1],
r = 0; !((n = 2 * r + 2) >= this.length) && (n + 2 < this.length && s[n + 2] > s[n] && (n += 2),
s[n] > s[r]); )
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
}
}
;
var y, v = 2, g = {
NONE: 0,
r: 1,
j: v,
N: 3
}, A = [];
for (y = 0; 288 > y; y++)
switch (i) {
case 143 >= y:
A.push([y + 48, 8]);
break;
case 255 >= y:
A.push([y - 144 + 400, 9]);
break;
case 279 >= y:
A.push([y - 256 + 0, 7]);
break;
case 287 >= y:
A.push([y - 280 + 192, 8]);
break;
default:
t("invalid literal: " + y)
}
function x(t, e) {
this.length = t,
this.G = e
}
function b() {
var e = C;
switch (i) {
case 3 === e:
return [257, e - 3, 0];
case 4 === e:
return [258, e - 4, 0];
case 5 === e:
return [259, e - 5, 0];
case 6 === e:
return [260, e - 6, 0];
case 7 === e:
return [261, e - 7, 0];
case 8 === e:
return [262, e - 8, 0];
case 9 === e:
return [263, e - 9, 0];
case 10 === e:
return [264, e - 10, 0];
case 12 >= e:
return [265, e - 11, 1];
case 14 >= e:
return [266, e - 13, 1];
case 16 >= e:
return [267, e - 15, 1];
case 18 >= e:
return [268, e - 17, 1];
case 22 >= e:
return [269, e - 19, 2];
case 26 >= e:
return [270, e - 23, 2];
case 30 >= e:
return [271, e - 27, 2];
case 34 >= e:
return [272, e - 31, 2];
case 42 >= e:
return [273, e - 35, 3];
case 50 >= e:
return [274, e - 43, 3];
case 58 >= e:
return [275, e - 51, 3];
case 66 >= e:
return [276, e - 59, 3];
case 82 >= e:
return [277, e - 67, 4];
case 98 >= e:
return [278, e - 83, 4];
case 114 >= e:
return [279, e - 99, 4];
case 130 >= e:
return [280, e - 115, 4];
case 162 >= e:
return [281, e - 131, 5];
case 194 >= e:
return [282, e - 163, 5];
case 226 >= e:
return [283, e - 195, 5];
case 257 >= e:
return [284, e - 227, 5];
case 258 === e:
return [285, e - 258, 0];
default:
t("invalid length: " + e)
}
}
m.prototype.n = function() {
var n, r, a, l, h = this.input;
switch (this.h) {
case 0:
for (a = 0,
l = h.length; a < l; ) {
var c, u, _, f = r = s ? h.subarray(a, a + 65535) : h.slice(a, a + 65535), d = (a += r.length) === l, p = e, m = e, y = this.a, g = this.b;
if (s) {
for (y = new Uint8Array(this.a.buffer); y.length <= g + f.length + 5; )
y = new Uint8Array(y.length << 1);
y.set(this.a)
}
if (c = d ? 1 : 0,
y[g++] = 0 | c,
_ = 65536 + ~(u = f.length) & 65535,
y[g++] = 255 & u,
y[g++] = u >>> 8 & 255,
y[g++] = 255 & _,
y[g++] = _ >>> 8 & 255,
s)
y.set(f, g),
g += f.length,
y = y.subarray(0, g);
else {
for (p = 0,
m = f.length; p < m; ++p)
y[g++] = f[p];
y.length = g
}
this.b = g,
this.a = y
}
break;
case 1:
var x = new o(new Uint8Array(this.a.buffer),this.b);
x.d(1, 1, i),
x.d(1, 2, i);
var b, C, T, S = E(this, h);
for (b = 0,
C = S.length; b < C; b++)
if (T = S[b],
o.prototype.d.apply(x, A[T]),
256 < T)
x.d(S[++b], S[++b], i),
x.d(S[++b], 5),
x.d(S[++b], S[++b], i);
else if (256 === T)
break;
this.a = x.finish(),
this.b = this.a.length;
break;
case v:
var w, B, I, P, R, O, L, F, V, N, k, G, U, z, H, W = new o(new Uint8Array(this.a),this.b), j = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15], X = Array(19);
for (w = v,
W.d(1, 1, i),
W.d(w, 2, i),
B = E(this, h),
L = D(O = M(this.L, 15)),
V = D(F = M(this.K, 7)),
I = 286; 257 < I && 0 === O[I - 1]; I--)
;
for (P = 30; 1 < P && 0 === F[P - 1]; P--)
;
var Y, q, J, Z, K, Q, $ = I, tt = P, et = new (s ? Uint32Array : Array)($ + tt), it = new (s ? Uint32Array : Array)(316), nt = new (s ? Uint8Array : Array)(19);
for (Y = q = 0; Y < $; Y++)
et[q++] = O[Y];
for (Y = 0; Y < tt; Y++)
et[q++] = F[Y];
if (!s)
for (Y = 0,
Z = nt.length; Y < Z; ++Y)
nt[Y] = 0;
for (Y = K = 0,
Z = et.length; Y < Z; Y += q) {
for (q = 1; Y + q < Z && et[Y + q] === et[Y]; ++q)
;
if (J = q,
0 === et[Y])
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[Y],
nt[et[Y]]++,
3 > --J)
for (; 0 < J--; )
it[K++] = et[Y],
nt[et[Y]]++;
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
}
for (n = s ? it.subarray(0, K) : it.slice(0, K),
N = M(nt, 7),
z = 0; 19 > z; z++)
X[z] = N[j[z]];
for (R = 19; 4 < R && 0 === X[R - 1]; R--)
;
for (k = D(N),
W.d(I - 257, 5, i),
W.d(P - 1, 5, i),
W.d(R - 4, 4, i),
z = 0; z < R; z++)
W.d(X[z], 3, i);
for (z = 0,
H = n.length; z < H; z++)
if (G = n[z],
W.d(k[G], N[G], i),
16 <= G) {
switch (z++,
G) {
case 16:
U = 2;
break;
case 17:
U = 3;
break;
case 18:
U = 7;
break;
default:
t("invalid code: " + G)
}
W.d(n[z], U, i)
}
var rt, st, at, ot, lt, ht, ct, ut, _t = [L, O], ft = [V, F];
for (lt = _t[0],
ht = _t[1],
ct = ft[0],
ut = ft[1],
rt = 0,
st = B.length; rt < st; ++rt)
if (at = B[rt],
W.d(lt[at], ht[at], i),
256 < at)
W.d(B[++rt], B[++rt], i),
ot = B[++rt],
W.d(ct[ot], ut[ot], i),
W.d(B[++rt], B[++rt], i);
else if (256 === at)
break;
this.a = W.finish(),
this.b = this.a.length;
break;
default:
t("invalid compression type")
}
return this.a
}
;
var C, T, S = [];
for (C = 3; 258 >= C; C++)
T = b(),
S[C] = T[2] << 24 | T[1] << 16 | T[0];
var w = s ? new Uint32Array(S) : S;
function E(n, r) {
function a(e, n) {
var r, s, a, o, l = e.G, h = [], c = 0;
switch (r = w[e.length],
h[c++] = 65535 & r,
h[c++] = r >> 16 & 255,
h[c++] = r >> 24,
i) {
case 1 === l:
s = [0, l - 1, 0];
break;
case 2 === l:
s = [1, l - 2, 0];
break;
case 3 === l:
s = [2, l - 3, 0];
break;
case 4 === l:
s = [3, l - 4, 0];
break;
case 6 >= l:
s = [4, l - 5, 1];
break;
case 8 >= l:
s = [5, l - 7, 1];
break;
case 12 >= l:
s = [6, l - 9, 2];
break;
case 16 >= l:
s = [7, l - 13, 2];
break;
case 24 >= l:
s = [8, l - 17, 3];
break;
case 32 >= l:
s = [9, l - 25, 3];
break;
case 48 >= l:
s = [10, l - 33, 4];
break;
case 64 >= l:
s = [11, l - 49, 4];
break;
case 96 >= l:
s = [12, l - 65, 5];
break;
case 128 >= l:
s = [13, l - 97, 5];
break;
case 192 >= l:
s = [14, l - 129, 6];
break;
case 256 >= l:
s = [15, l - 193, 6];
break;
case 384 >= l:
s = [16, l - 257, 7];
break;
case 512 >= l:
s = [17, l - 385, 7];
break;
case 768 >= l:
s = [18, l - 513, 8];
break;
case 1024 >= l:
s = [19, l - 769, 8];
break;
case 1536 >= l:
s = [20, l - 1025, 9];
break;
case 2048 >= l:
s = [21, l - 1537, 9];
break;
case 3072 >= l:
s = [22, l - 2049, 10];
break;
case 4096 >= l:
s = [23, l - 3073, 10];
break;
case 6144 >= l:
s = [24, l - 4097, 11];
break;
case 8192 >= l:
s = [25, l - 6145, 11];
break;
case 12288 >= l:
s = [26, l - 8193, 12];
break;
case 16384 >= l:
s = [27, l - 12289, 12];
break;
case 24576 >= l:
s = [28, l - 16385, 13];
break;
case 32768 >= l:
s = [29, l - 24577, 13];
break;
default:
t("invalid distance")
}
for (r = s,
h[c++] = r[0],
h[c++] = r[1],
h[c++] = r[2],
a = 0,
o = h.length; a < o; ++a)
y[v++] = h[a];
A[h[0]]++,
b[h[3]]++,
g = e.length + n - 1,
d = null
}
var o, l, h, c, u, _, f, d, p, m = {}, y = s ? new Uint16Array(2 * r.length) : [], v = 0, g = 0, A = new (s ? Uint32Array : Array)(286), b = new (s ? Uint32Array : Array)(30), C = n.w;
if (!s) {
for (h = 0; 285 >= h; )
A[h++] = 0;
for (h = 0; 29 >= h; )
b[h++] = 0
}
for (A[256] = 1,
o = 0,
l = r.length; o < l; ++o) {
for (h = u = 0,
c = 3; h < c && o + h !== l; ++h)
u = u << 8 | r[o + h];
if (m[u] === e && (m[u] = []),
_ = m[u],
!(0 < g--)) {
for (; 0 < _.length && 32768 < o - _[0]; )
_.shift();
if (o + 3 >= l) {
for (d && a(d, -1),
h = 0,
c = l - o; h < c; ++h)
p = r[o + h],
y[v++] = p,
++A[p];
break
}
if (0 < _.length) {
var T = e
, S = e
, E = 0
, M = e
, D = e
, B = e
, I = r.length
, P = (D = 0,
_.length);
t: for (; D < P; D++) {
if (T = _[P - D - 1],
M = 3,
3 < E) {
for (B = E; 3 < B; B--)
if (r[T + B - 1] !== r[o + B - 1])
continue t;
M = E
}
for (; 258 > M && o + M < I && r[T + M] === r[o + M]; )
++M;
if (M > E && (S = T,
E = M),
258 === M)
break
}
f = new x(E,o - S),
d ? d.length < f.length ? (p = r[o - 1],
y[v++] = p,
++A[p],
a(f, 0)) : a(d, -1) : f.length < C ? d = f : a(f, 0)
} else
d ? a(d, -1) : (p = r[o],
y[v++] = p,
++A[p])
}
_.push(o)
}
return y[v++] = 256,
A[256]++,
n.L = A,
n.K = b,
s ? y.subarray(0, v) : y
}
function M(t, e) {
function i(t) {
var e = C[t][T[t]];
e === v ? (i(t + 1),
i(t + 1)) : --x[e],
++T[t]
}
var n, r, a, o, l, h = t.length, c = new d(572), u = new (s ? Uint8Array : Array)(h);
if (!s)
for (o = 0; o < h; o++)
u[o] = 0;
for (o = 0; o < h; ++o)
0 < t[o] && c.push(o, t[o]);
if (n = Array(c.length / 2),
r = new (s ? Uint32Array : Array)(c.length / 2),
1 === n.length)
return u[c.pop().index] = 1,
u;
for (o = 0,
l = c.length / 2; o < l; ++o)
n[o] = c.pop(),
r[o] = n[o].value;
var _, f, p, m, y, v = r.length, g = new (s ? Uint16Array : Array)(e), A = new (s ? Uint8Array : Array)(e), x = new (s ? Uint8Array : Array)(v), b = Array(e), C = Array(e), T = Array(e), S = (1 << e) - v, w = 1 << e - 1;
for (g[e - 1] = v,
f = 0; f < e; ++f)
S < w ? A[f] = 0 : (A[f] = 1,
S -= w),
S <<= 1,
g[e - 2 - f] = (g[e - 1 - f] / 2 | 0) + v;
for (g[0] = A[0],
b[0] = Array(g[0]),
C[0] = Array(g[0]),
f = 1; f < e; ++f)
g[f] > 2 * g[f - 1] + A[f] && (g[f] = 2 * g[f - 1] + A[f]),
b[f] = Array(g[f]),
C[f] = Array(g[f]);
for (_ = 0; _ < v; ++_)
x[_] = e;
for (p = 0; p < g[e - 1]; ++p)
b[e - 1][p] = r[p],
C[e - 1][p] = p;
for (_ = 0; _ < e; ++_)
T[_] = 0;
for (1 === A[e - 1] && (--x[0],
++T[e - 1]),
f = e - 2; 0 <= f; --f) {
for (m = _ = 0,
y = T[f + 1],
p = 0; p < g[f]; p++)
(m = b[f + 1][y] + b[f + 1][y + 1]) > r[_] ? (b[f][p] = m,
C[f][p] = v,
y += 2) : (b[f][p] = r[_],
C[f][p] = _,
++_);
T[f] = 0,
1 === A[f] && i(f)
}
for (a = x,
o = 0,
l = n.length; o < l; ++o)
u[n[o].index] = a[o];
return u
}
function D(e) {
var i, n, r, a, o = new (s ? Uint16Array : Array)(e.length), l = [], h = [], c = 0;
for (i = 0,
n = e.length; i < n; i++)
l[e[i]] = 1 + (0 | l[e[i]]);
for (i = 1,
n = 16; i <= n; i++)
h[i] = c,
(c += 0 | l[i]) > 1 << i && t("overcommitted"),
c <<= 1;
for (65536 > c && t("undercommitted"),
i = 0,
n = e.length; i < n; i++)
for (c = h[e[i]],
h[e[i]] += 1,
r = o[i] = 0,
a = e[i]; r < a; r++)
o[i] = o[i] << 1 | 1 & c,
c >>>= 1;
return o
}
function B(t, e) {
this.input = t,
this.a = new (s ? Uint8Array : Array)(32768),
this.h = I.j;
var i, n = {};
for (i in !e && (e = {}) || "number" != typeof e.compressionType || (this.h = e.compressionType),
e)
n[i] = e[i];
n.outputBuffer = this.a,
this.z = new m(this.input,n)
}
var I = g;
function P(e, i) {
switch (this.k = [],
this.l = 32768,
this.e = this.g = this.c = this.q = 0,
this.input = s ? new Uint8Array(e) : e,
this.s = !1,
this.m = O,
this.B = !1,
!i && (i = {}) || (i.index && (this.c = i.index),
i.bufferSize && (this.l = i.bufferSize),
i.bufferType && (this.m = i.bufferType),
i.resize && (this.B = i.resize)),
this.m) {
case R:
this.b = 32768,
this.a = new (s ? Uint8Array : Array)(32768 + this.l + 258);
break;
case O:
this.b = 0,
this.a = new (s ? Uint8Array : Array)(this.l),
this.f = this.J,
this.t = this.H,
this.o = this.I;
break;
default:
t(Error("invalid inflate mode"))
}
}
B.prototype.n = function() {
var e, i, n, r, o, l, h, c = 0;
switch (h = this.a,
e = ct) {
case ct:
i = Math.LOG2E * Math.log(32768) - 8;
break;
default:
t(Error("invalid compression method"))
}
switch (n = i << 4 | e,
h[c++] = n,
e) {
case ct:
switch (this.h) {
case I.NONE:
o = 0;
break;
case I.r:
o = 1;
break;
case I.j:
o = 2;
break;
default:
t(Error("unsupported compression type"))
}
break;
default:
t(Error("invalid compression method"))
}
return r = o << 6 | 0,
h[c++] = r | 31 - (256 * n + r) % 31,
l = a(this.input),
this.z.b = c,
c = (h = this.z.n()).length,
s && ((h = new Uint8Array(h.buffer)).length <= c + 4 && (this.a = new Uint8Array(h.length + 4),
this.a.set(h),
h = this.a),
h = h.subarray(0, c + 4)),
h[c++] = l >> 24 & 255,
h[c++] = l >> 16 & 255,
h[c++] = l >> 8 & 255,
h[c++] = 255 & l,
h
}
,
r("Zlib.Deflate", B),
r("Zlib.Deflate.compress", (function(t, e) {
return new B(t,e).n()
}
)),
r("Zlib.Deflate.CompressionType", I),
r("Zlib.Deflate.CompressionType.NONE", I.NONE),
r("Zlib.Deflate.CompressionType.FIXED", I.r),
r("Zlib.Deflate.CompressionType.DYNAMIC", I.j);
var R = 0
, O = 1
, L = {
D: R,
C: O
};
P.prototype.p = function() {
for (; !this.s; ) {
var n = tt(this, 3);
switch (1 & n && (this.s = i),
n >>>= 1) {
case 0:
var r = this.input
, a = this.c
, o = this.a
, l = this.b
, h = e
, c = e
, u = e
, _ = o.length
, f = e;
switch (this.e = this.g = 0,
(h = r[a++]) === e && t(Error("invalid uncompressed block header: LEN (first byte)")),
c = h,
(h = r[a++]) === e && t(Error("invalid uncompressed block header: LEN (second byte)")),
c |= h << 8,
(h = r[a++]) === e && t(Error("invalid uncompressed block header: NLEN (first byte)")),
u = h,
(h = r[a++]) === e && t(Error("invalid uncompressed block header: NLEN (second byte)")),
c === ~(u |= h << 8) && t(Error("invalid uncompressed block header: length verify")),
a + c > r.length && t(Error("input buffer is broken")),
this.m) {
case R:
for (; l + c > o.length; ) {
if (c -= f = _ - l,
s)
o.set(r.subarray(a, a + f), l),
l += f,
a += f;
else
for (; f--; )
o[l++] = r[a++];
this.b = l,
o = this.f(),
l = this.b
}
break;
case O:
for (; l + c > o.length; )
o = this.f({
v: 2
});
break;
default:
t(Error("invalid inflate mode"))
}
if (s)
o.set(r.subarray(a, a + c), l),
l += c,
a += c;
else
for (; c--; )
o[l++] = r[a++];
this.c = a,
this.b = l,
this.a = o;
break;
case 1:
this.o(K, $);
break;
case 2:
it(this);
break;
default:
t(Error("unknown BTYPE: " + n))
}
}
return this.t()
}
;
var F, V, N = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15], k = s ? new Uint16Array(N) : N, G = [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], U = s ? new Uint16Array(G) : G, z = [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 = s ? new Uint8Array(z) : z, W = [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], j = s ? new Uint16Array(W) : W, X = [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], Y = s ? new Uint8Array(X) : X, q = new (s ? Uint8Array : Array)(288);
for (F = 0,
V = q.length; F < V; ++F)
q[F] = 143 >= F ? 8 : 255 >= F ? 9 : 279 >= F ? 7 : 8;
var J, Z, K = p(q), Q = new (s ? Uint8Array : Array)(30);
for (J = 0,
Z = Q.length; J < Z; ++J)
Q[J] = 5;
var $ = p(Q);
function tt(i, n) {
for (var r, s = i.g, a = i.e, o = i.input, l = i.c; a < n; )
(r = o[l++]) === e && t(Error("input buffer is broken")),
s |= r << a,
a += 8;
return r = s & (1 << n) - 1,
i.g = s >>> n,
i.e = a - n,
i.c = l,
r
}
function et(i, n) {
for (var r, s, a, o = i.g, l = i.e, h = i.input, c = i.c, u = n[0], _ = n[1]; l < _; )
(r = h[c++]) === e && t(Error("input buffer is broken")),
o |= r << l,
l += 8;
return a = (s = u[o & (1 << _) - 1]) >>> 16,
i.g = o >> a,
i.e = l - a,
i.c = c,
65535 & s
}
function it(t) {
function e(t, e, i) {
var n, r, s, a;
for (a = 0; a < t; )
switch (n = et(this, e)) {
case 16:
for (s = 3 + tt(this, 2); s--; )
i[a++] = r;
break;
case 17:
for (s = 3 + tt(this, 3); s--; )
i[a++] = 0;
r = 0;
break;
case 18:
for (s = 11 + tt(this, 7); s--; )
i[a++] = 0;
r = 0;
break;
default:
r = i[a++] = n
}
return i
}
var i, n, r, a, o = tt(t, 5) + 257, l = tt(t, 5) + 1, h = tt(t, 4) + 4, c = new (s ? Uint8Array : Array)(k.length);
for (a = 0; a < h; ++a)
c[k[a]] = tt(t, 3);
i = p(c),
n = new (s ? Uint8Array : Array)(o),
r = new (s ? Uint8Array : Array)(l),
t.o(p(e.call(t, o, i, n)), p(e.call(t, l, i, r)))
}
function nt(e, i) {
var n, r;
switch (this.input = e,
this.c = 0,
!i && (i = {}) || (i.index && (this.c = i.index),
i.verify && (this.M = i.verify)),
n = e[this.c++],
r = e[this.c++],
15 & n) {
case ct:
this.method = ct;
break;
default:
t(Error("unsupported compression method"))
}
0 != ((n << 8) + r) % 31 && t(Error("invalid fcheck flag:" + ((n << 8) + r) % 31)),
32 & r && t(Error("fdict flag is not supported")),
this.A = new P(e,{
index: this.c,
bufferSize: i.bufferSize,
bufferType: i.bufferType,
resize: i.resize
})
}
P.prototype.o = function(t, e) {
var i = this.a
, n = this.b;
this.u = t;
for (var r, s, a, o, l = i.length - 258; 256 !== (r = et(this, t)); )
if (256 > r)
n >= l && (this.b = n,
i = this.f(),
n = this.b),
i[n++] = r;
else
for (o = U[s = r - 257],
0 < H[s] && (o += tt(this, H[s])),
r = et(this, e),
a = j[r],
0 < Y[r] && (a += tt(this, Y[r])),
n >= l && (this.b = n,
i = this.f(),
n = this.b); o--; )
i[n] = i[n++ - a];
for (; 8 <= this.e; )
this.e -= 8,
this.c--;
this.b = n
}
,
P.prototype.I = function(t, e) {
var i = this.a
, n = this.b;
this.u = t;
for (var r, s, a, o, l = i.length; 256 !== (r = et(this, t)); )
if (256 > r)
n >= l && (l = (i = this.f()).length),
i[n++] = r;
else
for (o = U[s = r - 257],
0 < H[s] && (o += tt(this, H[s])),
r = et(this, e),
a = j[r],
0 < Y[r] && (a += tt(this, Y[r])),
n + o > l && (l = (i = this.f()).length); o--; )
i[n] = i[n++ - a];
for (; 8 <= this.e; )
this.e -= 8,
this.c--;
this.b = n
}
,
P.prototype.f = function() {
var t, e, i = new (s ? Uint8Array : Array)(this.b - 32768), n = this.b - 32768, r = this.a;
if (s)
i.set(r.subarray(32768, i.length));
else
for (t = 0,
e = i.length; t < e; ++t)
i[t] = r[t + 32768];
if (this.k.push(i),
this.q += i.length,
s)
r.set(r.subarray(n, n + 32768));
else
for (t = 0; 32768 > t; ++t)
r[t] = r[n + t];
return this.b = 32768,
r
}
,
P.prototype.J = function(t) {
var e, i, n, r = this.input.length / this.c + 1 | 0, a = this.input, o = this.a;
return t && ("number" == typeof t.v && (r = t.v),
"number" == typeof t.F && (r += t.F)),
i = 2 > r ? (n = (a.length - this.c) / this.u[2] / 2 * 258 | 0) < o.length ? o.length + n : o.length << 1 : o.length * r,
s ? (e = new Uint8Array(i)).set(o) : e = o,
this.a = e
}
,
P.prototype.t = function() {
var t, e, i, n, r, a = 0, o = this.a, l = this.k, h = new (s ? Uint8Array : Array)(this.q + (this.b - 32768));
if (0 === l.length)
return s ? this.a.subarray(32768, this.b) : this.a.slice(32768, this.b);
for (e = 0,
i = l.length; e < i; ++e)
for (n = 0,
r = (t = l[e]).length; n < r; ++n)
h[a++] = t[n];
for (e = 32768,
i = this.b; e < i; ++e)
h[a++] = o[e];
return this.k = [],
this.buffer = h
}
,
P.prototype.H = function() {
var t, e = this.b;
return s ? 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),
this.buffer = t
}
,
nt.prototype.p = function() {
var e, i = this.input;
return e = this.A.p(),
this.c = this.A.c,
this.M && (i[this.c++] << 24 | i[this.c++] << 16 | i[this.c++] << 8 | i[this.c++]) >>> 0 !== a(e) && t(Error("invalid adler-32 checksum")),
e
}
,
r("Zlib.Inflate", nt),
r("Zlib.Inflate.BufferType", L),
L.ADAPTIVE = L.C,
L.BLOCK = L.D,
r("Zlib.Inflate.prototype.decompress", nt.prototype.p),
s && new Uint16Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]),
s && 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]),
s && 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]),
s && 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]),
s && 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 rt, st, at = new (s ? Uint8Array : Array)(288);
for (rt = 0,
st = at.length; rt < st; ++rt)
at[rt] = 143 >= rt ? 8 : 255 >= rt ? 9 : 279 >= rt ? 7 : 8;
p(at);
var ot, lt, ht = new (s ? Uint8Array : Array)(30);
for (ot = 0,
lt = ht.length; ot < lt; ++ot)
ht[ot] = 5;
p(ht);
var ct = 8
}
).call(window);
var i = window.Zlib;
i.Deflate = i.Deflate,
i.Deflate.compress = i.Deflate.compress,
i.Inflate = i.Inflate,
i.Inflate.BufferType = i.Inflate.BufferType,
i.Inflate.prototype.decompress = i.Inflate.prototype.decompress,
e.exports = i
}
), {}],
26: [(function(t, e) {
"use strict";
var i, n = t("./platform/utils"), r = (t("../../DebugInfos"),
"https://github.com/cocos-creator/engine/blob/master/EngineErrorMap.md");
function s(t) {
return function() {
var e = arguments[0]
, i = t + " " + e + ", please go to " + r + "#" + e + " to see details.";
if (1 === arguments.length)
return i;
if (2 === arguments.length)
return i + " Arguments: " + arguments[1];
var n = cc.js.shiftArguments.apply(null, arguments);
return i + " Arguments: " + n.join(", ")
}
}
cc.log = cc.warn = cc.error = cc.assert = console.log.bind ? console.log.bind(console) : console.log,
cc._throw = function(t) {
n.callInNextTick((function() {
throw t
}
))
}
;
var a = s("Log");
cc.logID = function() {
cc.log(a.apply(null, arguments))
}
;
var o = s("Warning");
cc.warnID = function() {
cc.warn(o.apply(null, arguments))
}
;
var l = s("Error");
cc.errorID = function() {
cc.error(l.apply(null, arguments))
}
;
var h = s("Assert");
cc.assertID = function(t) {
t || cc.assert(!1, h.apply(null, cc.js.shiftArguments.apply(null, arguments)))
}
;
var c = 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: c,
_resetDebugSetting: function(t) {
if (cc.log = cc.warn = cc.error = cc.assert = function() {}
,
t !== c.NONE) {
if (t > c.ERROR) {
var e = function(t) {
if (cc.game.canvas) {
if (!i) {
var e = document.createElement("Div");
e.setAttribute("id", "logInfoDiv"),
e.setAttribute("width", "200"),
e.setAttribute("height", cc.game.canvas.height);
var n = e.style;
n.zIndex = "99999",
n.position = "absolute",
n.top = n.left = "0",
(i = document.createElement("textarea")).setAttribute("rows", "20"),
i.setAttribute("cols", "30"),
i.setAttribute("disabled", "true");
var r = i.style;
r.backgroundColor = "transparent",
r.borderBottom = "1px solid #cccccc",
r.borderTopWidth = r.borderLeftWidth = r.borderRightWidth = "0px",
r.borderTopStyle = r.borderLeftStyle = r.borderRightStyle = "none",
r.padding = "0px",
r.margin = 0,
e.appendChild(i),
cc.game.canvas.parentNode.appendChild(e)
}
i.value = i.value + t + "\r\n",
i.scrollTop = i.scrollHeight
}
};
cc.error = function() {
e("ERROR : " + cc.js.formatStr.apply(null, arguments))
}
,
cc.assert = function(t, i) {
!t && i && (i = cc.js.formatStr.apply(null, cc.js.shiftArguments.apply(null, arguments)),
e("ASSERT: " + i))
}
,
t !== c.ERROR_FOR_WEB_PAGE && (cc.warn = function() {
e("WARN : " + cc.js.formatStr.apply(null, arguments))
}
),
t === c.INFO_FOR_WEB_PAGE && (cc.log = function() {
e(cc.js.formatStr.apply(null, arguments))
}
)
} else
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 = function() {
return console.error.apply(console, arguments)
}
,
cc.assert = function(t, e) {
if (!t)
throw e && (e = cc.js.formatStr.apply(null, cc.js.shiftArguments.apply(null, arguments))),
new Error(e)
}
);
t !== c.ERROR && (console.warn.bind ? cc.warn = console.warn.bind(console) : cc.warn = function() {
return console.warn.apply(console, arguments)
}
),
t === c.INFO && (console.log.bind ? cc.log = console.log.bind(console) : cc.log = function() {
return console.log.apply(console, arguments)
}
)
}
},
getError: s("ERROR"),
isDisplayStats: function() {
return !!cc.profiler && cc.profiler.isShowingStats()
},
setDisplayStats: function(t) {
cc.profiler && cc.game.renderType !== cc.game.RENDER_TYPE_CANVAS && (t ? cc.profiler.showStats() : cc.profiler.hideStats(),
cc.game.config.showFPS = !!t)
}
}
}
), {
"../../DebugInfos": void 0,
"./platform/utils": 217
}],
27: [(function(t, e) {
"use strict";
var i = t("./event/event-target")
, n = t("./component-scheduler")
, r = t("./node-activator")
, s = t("./platform/CCObject")
, a = t("./CCGame")
, o = t("./renderer")
, l = t("./event-manager")
, h = t("./CCScheduler");
cc.Director = function() {
i.call(this),
this._paused = !1,
this._purgeDirectorInNextLoop = !1,
this._winSizeInPoints = null,
this._scene = null,
this._loadingScene = "",
this._totalFrames = 0,
this._lastUpdate = 0,
this._deltaTime = 0,
this._startTime = 0,
this._maxParticleDeltaTime = 0,
this._scheduler = null,
this._compScheduler = null,
this._nodeActivator = null,
this._actionManager = null;
var t = this;
a.on(a.EVENT_SHOW, (function() {
t._lastUpdate = performance.now()
}
)),
a.once(a.EVENT_ENGINE_INITED, this.init, this)
}
,
cc.Director.prototype = {
constructor: cc.Director,
init: function() {
return this._totalFrames = 0,
this._lastUpdate = performance.now(),
this._startTime = this._lastUpdate,
this._paused = !1,
this._purgeDirectorInNextLoop = !1,
this._winSizeInPoints = cc.size(0, 0),
this._scheduler = new h,
cc.ActionManager ? (this._actionManager = new cc.ActionManager,
this._scheduler.scheduleUpdate(this._actionManager, h.PRIORITY_SYSTEM, !1)) : this._actionManager = null,
this.sharedInit(),
!0
},
sharedInit: function() {
this._compScheduler = new n,
this._nodeActivator = new r,
l && l.setEnabled(!0),
cc.AnimationManager ? (this._animationManager = new cc.AnimationManager,
this._scheduler.scheduleUpdate(this._animationManager, h.PRIORITY_SYSTEM, !1)) : this._animationManager = null,
cc.CollisionManager ? (this._collisionManager = new cc.CollisionManager,
this._scheduler.scheduleUpdate(this._collisionManager, h.PRIORITY_SYSTEM, !1)) : this._collisionManager = null,
cc.PhysicsManager ? (this._physicsManager = new cc.PhysicsManager,
this._scheduler.scheduleUpdate(this._physicsManager, h.PRIORITY_SYSTEM, !1)) : this._physicsManager = null,
cc.Physics3DManager,
this._physics3DManager = null,
cc._widgetManager && cc._widgetManager.init(this)
},
calculateDeltaTime: function(t) {
t || (t = performance.now()),
this._deltaTime = t > this._lastUpdate ? (t - this._lastUpdate) / 1e3 : 0,
this._lastUpdate = t
},
convertToGL: function(t) {
var e = a.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)
, l = i._devicePixelRatio * (s + n.height - t.y);
return i._isRotated ? cc.v2(i._viewportRect.width - l, o) : cc.v2(o, l)
},
convertToUI: function(t) {
var e = a.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);
return i._isRotated ? (o.x = r + t.y / i._devicePixelRatio,
o.y = s + n.height - (i._viewportRect.width - t.x) / i._devicePixelRatio) : (o.x = r + t.x * i._devicePixelRatio,
o.y = s + n.height - t.y * i._devicePixelRatio),
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.assetManager.releaseAll()
},
purgeDirector: function() {
this._scheduler.unscheduleAll(),
this._compScheduler.unscheduleAll(),
this._nodeActivator.reset(),
l && l.setEnabled(!1),
cc.isValid(this._scene) && this._scene.destroy(),
this._scene = null,
cc.renderer.clear(),
cc.assetManager.builtins.clear(),
cc.game.pause(),
cc.assetManager.releaseAll()
},
reset: function() {
this.purgeDirector(),
l && l.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 || t instanceof cc.SceneAsset, 1216),
t instanceof cc.SceneAsset && (t = t.scene),
t._load();
for (var n = Object.keys(a._persistRootNodes).map((function(t) {
return a._persistRootNodes[t]
}
)), r = 0; r < n.length; r++) {
var o = n[r]
, l = t.getChildByUuid(o.uuid);
if (l) {
var h = l.getSiblingIndex();
l._destroyImmediate(),
t.insertChild(o, h)
} else
o.parent = t
}
var c = this._scene;
cc.assetManager._releaseManager._autoRelease(c, t, a._persistRootNodes),
cc.isValid(c) && c.destroy(),
this._scene = null,
s._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 || t instanceof cc.SceneAsset, 1216),
t instanceof cc.SceneAsset && (t = t.scene),
t._load(),
this.once(cc.Director.EVENT_AFTER_DRAW, (function() {
this.runSceneImmediate(t, e, i)
}
), this)
},
loadScene: function(t, e, i) {
if (this._loadingScene)
return cc.warnID(1208, t, this._loadingScene),
!1;
var n = cc.assetManager.bundles.find((function(e) {
return e.getSceneInfo(t)
}
));
if (n) {
this.emit(cc.Director.EVENT_BEFORE_SCENE_LOADING, t),
this._loadingScene = t;
var r = this;
return console.time("LoadScene " + t),
n.loadScene(t, (function(n, s) {
console.timeEnd("LoadScene " + t),
r._loadingScene = "",
n ? (n = "Failed to load scene: " + n,
cc.error(n),
e && e(n)) : r.runSceneImmediate(s, i, e)
}
)),
!0
}
return cc.errorID(1209, t),
!1
},
preloadScene: function(t, e, i) {
var n = cc.assetManager.bundles.find((function(e) {
return e.getSceneInfo(t)
}
));
if (!n)
return cc.errorID(1209, t),
null;
n.preloadScene(t, null, e, i)
},
resume: function() {
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 / a.getFrameRate()
},
setAnimationInterval: function(t) {
a.setFrameRate(Math.round(1e3 / t))
},
getDeltaTime: function() {
return this._deltaTime
},
getTotalTime: function() {
return performance.now() - this._startTime
},
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) {
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
},
getPhysics3DManager: function() {
return this._physics3DManager
},
startAnimation: function() {
cc.game.resume()
},
stopAnimation: function() {
cc.game.pause()
},
_resetDeltaTime: function() {
this._lastUpdate = performance.now(),
this._deltaTime = 0
},
mainLoop: function(t) {
this._purgeDirectorInNextLoop ? (this._purgeDirectorInNextLoop = !1,
this.purgeDirector()) : (this.calculateDeltaTime(t),
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),
s._deferredDestroy()),
this.emit(cc.Director.EVENT_BEFORE_DRAW),
o.render(this._scene, this._deltaTime),
this.emit(cc.Director.EVENT_AFTER_DRAW),
l.frameUpdateListeners(),
this._totalFrames++)
},
__fastOn: function(t, e, i) {
this.on(t, e, i)
},
__fastOff: function(t, e, i) {
this.off(t, e, i)
}
},
cc.js.addon(cc.Director.prototype, i.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.EVENT_BEFORE_PHYSICS = "director_before_physics",
cc.Director.EVENT_AFTER_PHYSICS = "director_after_physics",
cc.director = new cc.Director,
e.exports = cc.director
}
), {
"./CCGame": 28,
"./CCScheduler": 32,
"./component-scheduler": 99,
"./event-manager": 138,
"./event/event-target": 140,
"./node-activator": 166,
"./platform/CCObject": 199,
"./renderer": 224
}],
28: [(function(t, e) {
"use strict";
var i = t("./event/event-target");
t("../audio/CCAudioEngine");
var n = t("./CCDebug")
, r = t("./renderer/index.js")
, s = t("../core/renderer/utils/dynamic-atlas/manager")
, a = {
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,
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() {
this._paused || (this._paused = !0,
cc.audioEngine && cc.audioEngine._break(),
this._intervalId && window.cancelAnimFrame(this._intervalId),
this._intervalId = 0)
},
resume: function() {
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 a._persistRootNodes)
a.removePersistRootNode(a._persistRootNodes[t]);
cc.director.getScene().destroy(),
cc.Object._deferredDestroy(),
cc.audioEngine && cc.audioEngine.uncacheAll(),
cc.director.reset(),
a.pause(),
cc.assetManager.builtins.init((function() {
a.onStart(),
a.emit(a.EVENT_RESTART)
}
))
}
))
},
end: function() {
close()
},
_initEngine: function() {
this._rendererInitialized || (this._initRenderer(),
this._initEvents(),
this.emit(this.EVENT_ENGINE_INITED))
},
_loadPreviewScript: function(t) {
t()
},
_prepareFinished: function(t) {
var e = this;
this._initEngine(),
this._setAnimFrame(),
cc.assetManager.builtins.init((function() {
console.log("Cocos Creator v" + cc.ENGINE_VERSION),
e._prepared = !0,
e._runMainLoop(),
e.emit(e.EVENT_GAME_INITED),
t && t()
}
))
},
eventTargetOn: i.prototype.on,
eventTargetOnce: i.prototype.once,
on: function(t, e, i, n) {
this._prepared && t === this.EVENT_ENGINE_INITED || !this._paused && t === this.EVENT_GAME_INITED ? e.call(i) : this.eventTargetOn(t, e, i, n)
},
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) {
var e = this;
this._prepared ? t && t() : this._loadPreviewScript((function() {
e._prepareFinished(t)
}
))
},
run: function(t, e) {
this._initConfig(t),
this.onStart = e,
this.prepare(a.onStart && a.onStart.bind(a))
},
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))
return void cc.warnID(3801);
if (t.parent !== i)
return void cc.warnID(3802)
} else
t.parent = i;
this._persistRootNodes[e] = t,
t._persistNode = !0,
cc.assetManager._releaseManager._addPersistNodeRef(t)
}
} else
cc.warnID(3800)
},
removePersistRootNode: function(t) {
var e = t.uuid || "";
t === this._persistRootNodes[e] && (delete this._persistRootNodes[e],
t._persistNode = !1,
cc.assetManager._releaseManager._removePersistNodeRef(t))
},
isPersistRootNode: function(t) {
return t._persistNode
},
_setAnimFrame: function() {
this._lastTime = performance.now();
var t = a.config.frameRate;
this._frameTime = 1e3 / t,
cc.director._maxParticleDeltaTime = this._frameTime / 1e3 * 2;
var e = window.requestAnimationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame;
60 !== t && 30 !== t ? (window.requestAnimFrame = e ? this._stTimeWithRAF : this._stTime,
window.cancelAnimFrame = this._ctTime) : (window.requestAnimFrame = e || this._stTime,
window.cancelAnimFrame = window.cancelAnimationFrame || window.cancelRequestAnimationFrame || window.msCancelRequestAnimationFrame || window.mozCancelRequestAnimationFrame || window.oCancelRequestAnimationFrame || window.webkitCancelRequestAnimationFrame || window.msCancelAnimationFrame || window.mozCancelAnimationFrame || window.webkitCancelAnimationFrame || window.oCancelAnimationFrame || this._ctTime)
},
_stTimeWithRAF: function(t) {
var e = performance.now()
, i = Math.max(0, a._frameTime - (e - a._lastTime))
, n = window.setTimeout((function() {
window.requestAnimationFrame(t)
}
), i);
return a._lastTime = e + i,
n
},
_stTime: function(t) {
var e = performance.now()
, i = Math.max(0, a._frameTime - (e - a._lastTime))
, n = window.setTimeout((function() {
t()
}
), i);
return a._lastTime = e + i,
n
},
_ctTime: function(t) {
window.clearTimeout(t)
},
_runMainLoop: function() {
if (this._prepared) {
var t, e = this, i = e.config, r = cc.director, s = !0, a = i.frameRate;
n.setDisplayStats(i.showFPS),
t = function(i) {
if (!e._paused) {
if (e._intervalId = window.requestAnimFrame(t),
30 === a && (s = !s))
return;
r.mainLoop(i)
}
}
,
e._intervalId = window.requestAnimFrame(t),
e._paused = !1
}
},
_initConfig: function(t) {
"number" != typeof t.debugMode && (t.debugMode = 0),
t.exposeClassName = !!t.exposeClassName,
"number" != typeof t.frameRate && (t.frameRate = 60);
var e = t.renderMode;
("number" != typeof e || e > 2 || e < 0) && (t.renderMode = 0),
"boolean" != typeof t.registerSystemEvent && (t.registerSystemEvent = !0),
t.showFPS = 1 !== e && !!t.showFPS,
this.collisionMatrix = t.collisionMatrix || [],
this.groupList = t.groupList || [],
n._resetDebugSetting(t.debugMode),
this.config = t,
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 ? cc.sys.capabilities.opengl ? (this.renderType = this.RENDER_TYPE_WEBGL,
i = !0) : cc.sys.capabilities.canvas && (this.renderType = this.RENDER_TYPE_CANVAS,
i = !0) : 1 === e && cc.sys.capabilities.canvas ? (this.renderType = this.RENDER_TYPE_CANVAS,
i = !0) : 2 === e && cc.sys.capabilities.opengl && (this.renderType = this.RENDER_TYPE_WEBGL,
i = !0),
!i)
throw new Error(n.getError(3820, e))
},
_initRenderer: function() {
if (!this._rendererInitialized) {
var t, e, i, n, a = this.config.id, o = a instanceof HTMLElement ? a : document.querySelector(a) || document.querySelector("#" + a);
if ("CANVAS" === o.tagName ? (t = o.width,
e = o.height,
this.canvas = i = o,
this.container = n = document.createElement("DIV"),
i.parentNode && i.parentNode.insertBefore(n, i)) : ("DIV" !== o.tagName && cc.warnID(3819),
t = o.clientWidth,
e = o.clientHeight,
this.canvas = i = document.createElement("CANVAS"),
this.container = n = document.createElement("DIV"),
o.appendChild(n)),
n.setAttribute("id", "Cocos2dGameContainer"),
n.appendChild(i),
this.frame = n.parentNode === document.body ? document.documentElement : n.parentNode,
(function(t) {
(" " + t.className + " ").indexOf(" gameCanvas ") > -1 || (t.className && (t.className += " "),
t.className += "gameCanvas")
}
)(i),
i.setAttribute("width", t || 480),
i.setAttribute("height", e || 320),
i.setAttribute("tabindex", 99),
this._determineRenderType(),
this.renderType === this.RENDER_TYPE_WEBGL) {
var l = {
stencil: !0,
antialias: cc.macro.ENABLE_WEBGL_ANTIALIAS,
alpha: cc.macro.ENABLE_TRANSPARENT_CANVAS
};
r.initWebGL(i, l),
this._renderContext = r.device._gl,
!cc.macro.CLEANUP_IMAGE_CACHE && s && (s.enabled = !0)
}
this._renderContext || (this.renderType = this.RENDER_TYPE_CANVAS,
r.initCanvas(i),
this._renderContext = r.device._ctx),
this.canvas.oncontextmenu = function() {
if (!cc._isContextMenuEnable)
return !1
}
,
this._rendererInitialized = !0
}
},
_initEvents: function() {
var t, e = window;
this.config.registerSystemEvent && cc.internal.inputManager.registerSystemEvent(this.canvas),
void 0 !== document.hidden ? t = "hidden" : void 0 !== document.mozHidden ? t = "mozHidden" : void 0 !== document.msHidden ? t = "msHidden" : void 0 !== document.webkitHidden && (t = "webkitHidden");
var i = !1;
function n() {
i || (i = !0,
a.emit(a.EVENT_HIDE))
}
function r(t, e, n, r, s) {
i && (i = !1,
a.emit(a.EVENT_SHOW, t, e, n, r, s))
}
if (t)
for (var s = ["visibilitychange", "mozvisibilitychange", "msvisibilitychange", "webkitvisibilitychange", "qbrowserVisibilityChange"], o = 0; o < s.length; o++)
document.addEventListener(s[o], (function(e) {
var i = document[t];
(i = i || e.hidden) ? n() : r()
}
));
else
e.addEventListener("blur", n),
e.addEventListener("focus", r);
navigator.userAgent.indexOf("MicroMessenger") > -1 && (e.onfocus = r),
"onpageshow"in window && "onpagehide"in window && (e.addEventListener("pagehide", n),
e.addEventListener("pageshow", r),
document.addEventListener("pagehide", n),
document.addEventListener("pageshow", r)),
this.on(a.EVENT_HIDE, (function() {
a.pause()
}
)),
this.on(a.EVENT_SHOW, (function() {
a.resume()
}
))
}
};
i.call(a),
cc.js.addon(a, i.prototype),
cc.game = e.exports = a
}
), {
"../audio/CCAudioEngine": 21,
"../core/renderer/utils/dynamic-atlas/manager": 227,
"./CCDebug": 26,
"./event/event-target": 140,
"./renderer/index.js": 224
}],
29: [(function(t, e) {
"use strict";
var i = t("./value-types")
, n = t("./utils/base-node")
, r = t("./utils/prefab-helper")
, s = t("./utils/trans-pool").NodeMemPool
, a = t("./utils/affine-transform")
, o = t("./event-manager")
, l = t("./platform/CCMacro")
, h = t("./platform/js")
, c = (t("./event/event"),
t("./event/event-target"))
, u = t("./renderer/render-flow")
, _ = cc.Object.Flags.Destroying
, f = Math.PI / 180
, d = !!cc.ActionManager
, p = function() {}
, m = new i.Vec3
, y = new i.Quat
, v = new i.Vec3
, g = new i.Vec3
, A = new i.Quat
, x = new i.Quat
, b = new i.Vec3
, C = new i.Vec3
, T = new i.Vec3
, S = new i.Vec3
, w = new i.Vec3
, E = new i.Quat
, M = new i.Quat
, D = new i.Vec3
, B = new i.Quat
, I = new i.Vec3
, P = new i.Quat
, R = new i.Vec3
, O = new i.Vec3
, L = new i.Quat
, F = new i.Quat
, V = (new i.Quat,
cc.mat4())
, N = new i.Vec3
, k = new Array(16);
k.length = 0;
var G = cc.Enum({
DEBUG: 31
})
, U = cc.Enum({
POSITION: 1,
SCALE: 2,
ROTATION: 4,
SKEW: 8,
TRS: 7,
RS: 6,
TRSS: 15,
PHYSICS_POSITION: 16,
PHYSICS_SCALE: 32,
PHYSICS_ROTATION: 64,
PHYSICS_TRS: 112,
PHYSICS_RS: 96,
ALL_POSITION: 17,
ALL_SCALE: 34,
ALL_ROTATION: 68,
ALL_TRS: 119,
ALL: 65535
})
, z = 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",
SIBLING_ORDER_CHANGED: "sibling-order-changed"
})
, H = [z.TOUCH_START, z.TOUCH_MOVE, z.TOUCH_END, z.TOUCH_CANCEL]
, W = [z.MOUSE_DOWN, z.MOUSE_ENTER, z.MOUSE_MOVE, z.MOUSE_LEAVE, z.MOUSE_UP, z.MOUSE_WHEEL]
, j = !0
, X = function(t) {
if (0 !== t) {
j && cc.warn("`cc.Node.skewX/Y` is deprecated since v2.2.1, please use 3D node instead.", ""),
j = !1
}
}
, Y = null
, q = function(t, e) {
var i = t.getLocation()
, n = this.owner;
return !!n._hitTest(i, this) && (e.type = z.TOUCH_START,
e.touch = t,
e.bubbles = !0,
n.dispatchEvent(e),
!0)
}
, J = function(t, e) {
var i = this.owner;
e.type = z.TOUCH_MOVE,
e.touch = t,
e.bubbles = !0,
i.dispatchEvent(e)
}
, Z = function(t, e) {
var i = t.getLocation()
, n = this.owner;
n._hitTest(i, this) ? e.type = z.TOUCH_END : e.type = z.TOUCH_CANCEL,
e.touch = t,
e.bubbles = !0,
n.dispatchEvent(e)
}
, K = function(t, e) {
t.getLocation();
var i = this.owner;
e.type = z.TOUCH_CANCEL,
e.touch = t,
e.bubbles = !0,
i.dispatchEvent(e)
}
, Q = function(t) {
var e = t.getLocation()
, i = this.owner;
i._hitTest(e, this) && (t.type = z.MOUSE_DOWN,
t.bubbles = !0,
i.dispatchEvent(t))
}
, $ = function(t) {
var e = t.getLocation()
, i = this.owner;
if (i._hitTest(e, this))
this._previousIn || (Y && Y._mouseListener && (t.type = z.MOUSE_LEAVE,
Y.dispatchEvent(t),
Y._mouseListener._previousIn = !1),
Y = this.owner,
t.type = z.MOUSE_ENTER,
i.dispatchEvent(t),
this._previousIn = !0),
t.type = z.MOUSE_MOVE,
t.bubbles = !0,
i.dispatchEvent(t);
else {
if (!this._previousIn)
return;
t.type = z.MOUSE_LEAVE,
i.dispatchEvent(t),
this._previousIn = !1,
Y = null
}
t.stopPropagation()
}
, tt = function(t) {
var e = t.getLocation()
, i = this.owner;
i._hitTest(e, this) && (t.type = z.MOUSE_UP,
t.bubbles = !0,
i.dispatchEvent(t),
t.stopPropagation())
}
, et = function(t) {
var e = t.getLocation()
, i = this.owner;
i._hitTest(e, this) && (t.type = z.MOUSE_WHEEL,
t.bubbles = !0,
i.dispatchEvent(t),
t.stopPropagation())
};
function it(t, e) {
if (e) {
for (var i = 0, n = null, r = t; r && cc.Node.isNode(r); r = r._parent,
++i)
if (r.getComponent(e)) {
var s = {
index: i,
node: r
};
n ? n.push(s) : n = [s]
}
return n
}
return null
}
function nt(t, e) {
if (!(t._objFlags & _)) {
if (t._bubblingListeners)
for (var i = 0, n = e.length; i < n; ++i)
if (t._bubblingListeners.hasEventListener(e[i]))
return !0;
if (t._capturingListeners)
for (var r = 0, s = e.length; r < s; ++r)
if (t._capturingListeners.hasEventListener(e[r]))
return !0;
return !1
}
return !0
}
function rt(t, e) {
var i, n;
for (e.target = t,
k.length = 0,
t._getCapturingTargets(e.type, k),
e.eventPhase = 1,
n = k.length - 1; n >= 0; --n)
if ((i = k[n])._capturingListeners && (e.currentTarget = i,
i._capturingListeners.emit(e.type, e, k),
e._propagationStopped))
return void (k.length = 0);
if (k.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),
!e._propagationStopped && e.bubbles)
for (t._getBubblingTargets(e.type, k),
e.eventPhase = 3,
n = 0; n < k.length; ++n)
if ((i = k[n])._bubblingListeners && (e.currentTarget = i,
i._bubblingListeners.emit(e.type, e),
e._propagationStopped))
return void (k.length = 0);
k.length = 0
}
function st(t) {
var e = t.groupIndex;
return 0 === e && t.parent && (e = st(t.parent)),
e
}
function at(t) {
var e = st(t);
t._cullingMask = 1 << e;
for (var i = 0; i < t._children.length; i++)
at(t._children[i])
}
function ot() {
if (this._localMatDirty & U.TRSS) {
var t = this._matrix
, e = t.m;
if (i.Trs.toMat4(t, this._trs),
this._skewX || this._skewY) {
var n = e[0]
, r = e[1]
, s = e[4]
, a = e[5]
, o = Math.tan(this._skewX * f)
, l = Math.tan(this._skewY * f);
o === 1 / 0 && (o = 99999999),
l === 1 / 0 && (l = 99999999),
e[0] = n + s * l,
e[1] = r + a * l,
e[4] = s + n * o,
e[5] = a + r * o
}
this._localMatDirty &= ~U.TRSS,
this._worldMatDirty = !0
}
}
function lt() {
var t = this._localMatDirty;
if (t & U.TRSS) {
var e = this._matrix.m
, i = this._trs;
if (t & (U.RS | U.SKEW)) {
var n = -this._eulerAngles.z
, r = this._skewX || this._skewY
, s = i[7]
, a = i[8];
if (n || r) {
var o = 1
, l = 0
, h = 0
, c = 1;
if (n) {
var u = n * f;
h = Math.sin(u),
o = c = Math.cos(u),
l = -h
}
if (e[0] = o *= s,
e[1] = l *= s,
e[4] = h *= a,
e[5] = c *= a,
r) {
var _ = e[0]
, d = e[1]
, p = e[4]
, m = e[5]
, y = Math.tan(this._skewX * f)
, v = Math.tan(this._skewY * f);
y === 1 / 0 && (y = 99999999),
v === 1 / 0 && (v = 99999999),
e[0] = _ + p * v,
e[1] = d + m * v,
e[4] = p + _ * y,
e[5] = m + d * y
}
} else
e[0] = s,
e[1] = 0,
e[4] = 0,
e[5] = a
}
e[12] = i[0],
e[13] = i[1],
this._localMatDirty &= ~U.TRSS,
this._worldMatDirty = !0
}
}
function ht() {
if (this._localMatDirty & U.TRSS && this._updateLocalMatrix(),
this._parent) {
var t = this._parent._worldMatrix;
i.Mat4.mul(this._worldMatrix, t, this._matrix)
} else
i.Mat4.copy(this._worldMatrix, this._matrix);
this._worldMatDirty = !1
}
function ct() {
this._localMatDirty & U.TRSS && this._updateLocalMatrix();
var t = this._parent;
t ? this._mulMat(this._worldMatrix, t._worldMatrix, this._matrix) : i.Mat4.copy(this._worldMatrix, this._matrix),
this._worldMatDirty = !1
}
function ut(t, e, i) {
var n = e.m
, r = i.m
, s = t.m
, a = n[0]
, o = n[1]
, l = n[4]
, h = n[5]
, c = n[12]
, u = n[13]
, _ = r[0]
, f = r[1]
, d = r[4]
, p = r[5]
, m = r[12]
, y = r[13];
0 !== o || 0 !== l ? (s[0] = _ * a + f * l,
s[1] = _ * o + f * h,
s[4] = d * a + p * l,
s[5] = d * o + p * h,
s[12] = a * m + l * y + c,
s[13] = o * m + h * y + u) : (s[0] = _ * a,
s[1] = f * h,
s[4] = d * a,
s[5] = p * h,
s[12] = a * m + c,
s[13] = h * y + u)
}
var _t = i.Mat4.mul
, ft = {
name: "cc.Node",
extends: n,
properties: {
_opacity: 255,
_color: cc.Color.WHITE,
_contentSize: cc.Size,
_anchorPoint: cc.v2(.5, .5),
_position: void 0,
_scale: void 0,
_trs: null,
_eulerAngles: cc.Vec3,
_skewX: 0,
_skewY: 0,
_zIndex: {
default: void 0,
type: cc.Integer
},
_localZOrder: {
default: 0,
serializable: !1
},
_is3DNode: !1,
_groupIndex: {
default: 0,
formerlySerializedAs: "groupIndex"
},
groupIndex: {
get: function() {
return this._groupIndex
},
set: function(t) {
this._groupIndex = t,
at(this),
this.emit(z.GROUP_CHANGED, this)
}
},
group: {
get: function() {
return cc.game.groupList[this.groupIndex] || ""
},
set: function(t) {
this.groupIndex = cc.game.groupList.indexOf(t)
}
},
x: {
get: function() {
return this._trs[0]
},
set: function(t) {
var e = this._trs;
t !== e[0] && (e[0] = t,
this.setLocalDirty(U.ALL_POSITION),
1 & this._eventMask && this.emit(z.POSITION_CHANGED))
}
},
y: {
get: function() {
return this._trs[1]
},
set: function(t) {
var e = this._trs;
t !== e[1] && (e[1] = t,
this.setLocalDirty(U.ALL_POSITION),
1 & this._eventMask && this.emit(z.POSITION_CHANGED))
}
},
z: {
get: function() {
return this._trs[2]
},
set: function(t) {
var e = this._trs;
t !== e[2] && (e[2] = t,
this.setLocalDirty(U.ALL_POSITION),
this._renderFlag |= u.FLAG_WORLD_TRANSFORM,
1 & this._eventMask && this.emit(z.POSITION_CHANGED))
}
},
rotation: {
get: function() {
return -this.angle
},
set: function(t) {
this.angle = -t
}
},
angle: {
get: function() {
return this._eulerAngles.z
},
set: function(t) {
i.Vec3.set(this._eulerAngles, 0, 0, t),
i.Trs.fromAngleZ(this._trs, t),
this.setLocalDirty(U.ALL_ROTATION),
4 & this._eventMask && this.emit(z.ROTATION_CHANGED)
}
},
rotationX: {
get: function() {
return this._eulerAngles.x
},
set: function(t) {
this._eulerAngles.x !== t && (this._eulerAngles.x = t,
this._eulerAngles.x === this._eulerAngles.y ? i.Trs.fromAngleZ(this._trs, -t) : i.Trs.fromEulerNumber(this._trs, t, this._eulerAngles.y, 0),
this.setLocalDirty(U.ALL_ROTATION),
4 & this._eventMask && this.emit(z.ROTATION_CHANGED))
}
},
rotationY: {
get: function() {
return this._eulerAngles.y
},
set: function(t) {
this._eulerAngles.y !== t && (this._eulerAngles.y = t,
this._eulerAngles.x === this._eulerAngles.y ? i.Trs.fromAngleZ(this._trs, -t) : i.Trs.fromEulerNumber(this._trs, this._eulerAngles.x, t, 0),
this.setLocalDirty(U.ALL_ROTATION),
4 & this._eventMask && this.emit(z.ROTATION_CHANGED))
}
},
eulerAngles: {
get: function() {
return i.Trs.toEuler(this._eulerAngles, this._trs)
},
set: function(t) {
i.Trs.fromEuler(this._trs, t),
this.setLocalDirty(U.ALL_ROTATION),
this._renderFlag |= u.FLAG_TRANSFORM,
4 & this._eventMask && this.emit(z.ROTATION_CHANGED)
}
},
quat: {
get: function() {
var t = this._trs;
return new i.Quat(t[3],t[4],t[5],t[6])
},
set: function(t) {
this.setRotation(t)
}
},
scale: {
get: function() {
return this._trs[7]
},
set: function(t) {
this.setScale(t)
}
},
scaleX: {
get: function() {
return this._trs[7]
},
set: function(t) {
this._trs[7] !== t && (this._trs[7] = t,
this.setLocalDirty(U.ALL_SCALE),
2 & this._eventMask && this.emit(z.SCALE_CHANGED))
}
},
scaleY: {
get: function() {
return this._trs[8]
},
set: function(t) {
this._trs[8] !== t && (this._trs[8] = t,
this.setLocalDirty(U.ALL_SCALE),
2 & this._eventMask && this.emit(z.SCALE_CHANGED))
}
},
scaleZ: {
get: function() {
return this._trs[9]
},
set: function(t) {
this._trs[9] !== t && (this._trs[9] = t,
this.setLocalDirty(U.ALL_SCALE),
this._renderFlag |= u.FLAG_TRANSFORM,
2 & this._eventMask && this.emit(z.SCALE_CHANGED))
}
},
skewX: {
get: function() {
return this._skewX
},
set: function(t) {
X(t),
this._skewX = t,
this.setLocalDirty(U.SKEW)
}
},
skewY: {
get: function() {
return this._skewY
},
set: function(t) {
X(t),
this._skewY = t,
this.setLocalDirty(U.SKEW)
}
},
opacity: {
get: function() {
return this._opacity
},
set: function(t) {
t = cc.misc.clampf(t, 0, 255),
this._opacity !== t && (this._opacity = t,
this._renderFlag |= u.FLAG_OPACITY_COLOR)
},
range: [0, 255]
},
color: {
get: function() {
return this._color.clone()
},
set: function(t) {
this._color.equals(t) || (this._color.set(t),
this._renderFlag |= u.FLAG_COLOR,
32 & this._eventMask && this.emit(z.COLOR_CHANGED, t))
}
},
anchorX: {
get: function() {
return this._anchorPoint.x
},
set: function(t) {
var e = this._anchorPoint;
e.x !== t && (e.x = t,
16 & this._eventMask && this.emit(z.ANCHOR_CHANGED))
}
},
anchorY: {
get: function() {
return this._anchorPoint.y
},
set: function(t) {
var e = this._anchorPoint;
e.y !== t && (e.y = t,
16 & this._eventMask && this.emit(z.ANCHOR_CHANGED))
}
},
width: {
get: function() {
return this._contentSize.width
},
set: function(t) {
t !== this._contentSize.width && (this._contentSize.width = t,
8 & this._eventMask && this.emit(z.SIZE_CHANGED))
}
},
height: {
get: function() {
return this._contentSize.height
},
set: function(t) {
t !== this._contentSize.height && (this._contentSize.height = t,
8 & this._eventMask && this.emit(z.SIZE_CHANGED))
}
},
zIndex: {
get: function() {
return this._localZOrder >> 16
},
set: function(t) {
t > l.MAX_ZINDEX ? (cc.warnID(1636),
t = l.MAX_ZINDEX) : t < l.MIN_ZINDEX && (cc.warnID(1637),
t = l.MIN_ZINDEX),
this.zIndex !== t && (this._localZOrder = 65535 & this._localZOrder | t << 16,
this.emit(z.SIBLING_ORDER_CHANGED),
this._onSiblingIndexChanged())
}
},
is3DNode: {
get: function() {
return this._is3DNode
},
set: function(t) {
this._is3DNode = t,
this._update3DFunction()
}
},
up: {
get: function() {
return i.Vec3.transformQuat(I, i.Vec3.UP, this.getWorldRotation(P)).clone()
}
},
right: {
get: function() {
return i.Vec3.transformQuat(I, i.Vec3.RIGHT, this.getWorldRotation(P)).clone()
}
},
forward: {
get: function() {
return i.Vec3.transformQuat(I, i.Vec3.FORWARD, this.getWorldRotation(P)).clone()
}
}
},
ctor: function() {
this._reorderChildDirty = !1,
this._widget = null,
this._renderComponent = null,
this._capturingListeners = null,
this._bubblingListeners = null,
this._touchListener = null,
this._mouseListener = null,
this._initDataFromPool(),
this._eventMask = 0,
this._cullingMask = 1,
this._childArrivalOrder = 1,
this._renderFlag = u.FLAG_TRANSFORM | u.FLAG_OPACITY_COLOR
},
statics: {
EventType: z,
_LocalDirtyFlag: U,
isNode: function(t) {
return t instanceof dt && (t.constructor === dt || !(t instanceof cc.Scene))
},
BuiltinGroupIndex: G
},
_onSiblingIndexChanged: function() {
this._parent && this._parent._delaySort()
},
_onPreDestroy: function() {
this._onPreDestroyBase(),
d && cc.director.getActionManager().removeAllActionsFromTarget(this),
Y === this && (Y = null),
this._bubblingListeners && this._bubblingListeners.clear(),
this._capturingListeners && this._capturingListeners.clear(),
(this._touchListener || this._mouseListener) && (o.removeListeners(this),
this._touchListener && (this._touchListener.owner = null,
this._touchListener.mask = null,
this._touchListener = null),
this._mouseListener && (this._mouseListener.owner = null,
this._mouseListener.mask = null,
this._mouseListener = null)),
this._backDataIntoPool(),
this._reorderChildDirty && cc.director.__fastOff(cc.Director.EVENT_AFTER_UPDATE, this.sortAllChildren, this)
},
_onPostActivated: function(t) {
var e = d ? cc.director.getActionManager() : null;
t ? (this._renderFlag |= u.FLAG_WORLD_TRANSFORM,
e && e.resumeTarget(this),
o.resumeTarget(this),
this._checkListenerMask()) : (e && e.pauseTarget(this),
o.pauseTarget(this))
},
_onHierarchyChanged: function(t) {
this._updateOrderOfArrival(),
at(this),
this._parent && this._parent._delaySort(),
this._renderFlag |= u.FLAG_WORLD_TRANSFORM,
this._onHierarchyChangedBase(t),
cc._widgetManager && (cc._widgetManager._nodesOrderDirty = !0),
t && this._activeInHierarchy && this._checkListenerMask()
},
_update3DFunction: function() {
this._is3DNode ? (this._updateLocalMatrix = ot,
this._calculWorldMatrix = ht,
this._mulMat = _t) : (this._updateLocalMatrix = lt,
this._calculWorldMatrix = ct,
this._mulMat = ut),
this._renderComponent && this._renderComponent._on3DNodeChanged && this._renderComponent._on3DNodeChanged(),
this._renderFlag |= u.FLAG_TRANSFORM,
this._localMatDirty = U.ALL
},
_initDataFromPool: function() {
this._spaceInfo || (this._spaceInfo = s.pop());
var t = this._spaceInfo;
this._matrix = cc.mat4(t.localMat),
i.Mat4.identity(this._matrix),
this._worldMatrix = cc.mat4(t.worldMat),
i.Mat4.identity(this._worldMatrix),
this._localMatDirty = U.ALL,
this._worldMatDirty = !0;
var e = this._trs = t.trs;
e[0] = 0,
e[1] = 0,
e[2] = 0,
e[3] = 0,
e[4] = 0,
e[5] = 0,
e[6] = 1,
e[7] = 1,
e[8] = 1,
e[9] = 1
},
_backDataIntoPool: function() {
s.push(this._spaceInfo),
this._matrix = null,
this._worldMatrix = null,
this._trs = null,
this._spaceInfo = null
},
_toEuler: function() {
if (this.is3DNode)
i.Trs.toEuler(this._eulerAngles, this._trs);
else {
var t = Math.asin(this._trs[5]) / f * 2;
i.Vec3.set(this._eulerAngles, 0, 0, t)
}
},
_fromEuler: function() {
this.is3DNode ? i.Trs.fromEuler(this._trs, this._eulerAngles) : i.Trs.fromAngleZ(this._trs, this._eulerAngles.z)
},
_initProperties: function() {
this._is3DNode && this._update3DFunction();
var t = this._trs;
if (t) {
var e = t;
t = this._trs = this._spaceInfo.trs,
11 === e.length ? t.set(e.subarray(1)) : t.set(e)
} else
t = this._trs = this._spaceInfo.trs;
this._fromEuler()
},
_onBatchCreated: function(t) {
this._initProperties(),
this._cullingMask = 1 << st(this),
this._activeInHierarchy || (d && cc.director.getActionManager().pauseTarget(this),
o.pauseTarget(this));
for (var e = this._children, i = 0, n = e.length; i < n; i++) {
var s = e[i];
if (!t) {
var a = s._prefab;
a && a.sync && a.root === s && r.syncWithPrefab(s),
s._updateOrderOfArrival()
}
s._onBatchCreated(t)
}
e.length > 0 && (this._renderFlag |= u.FLAG_CHILDREN)
},
_checkListenerMask: function() {
if (this._touchListener) {
var t = this._touchListener.mask = it(this, cc.Mask);
this._mouseListener && (this._mouseListener.mask = t)
} else
this._mouseListener && (this._mouseListener.mask = it(this, cc.Mask))
},
_checknSetupSysEvent: function(t) {
var e = !1
, i = !1;
return -1 !== H.indexOf(t) ? (this._touchListener || (this._touchListener = cc.EventListener.create({
event: cc.EventListener.TOUCH_ONE_BY_ONE,
swallowTouches: !0,
owner: this,
mask: it(this, cc.Mask),
onTouchBegan: q,
onTouchMoved: J,
onTouchEnded: Z,
onTouchCancelled: K
}),
o.addListener(this._touchListener, this),
e = !0),
i = !0) : -1 !== W.indexOf(t) && (this._mouseListener || (this._mouseListener = cc.EventListener.create({
event: cc.EventListener.MOUSE,
_previousIn: !1,
owner: this,
mask: it(this, cc.Mask),
onMouseDown: Q,
onMouseMove: $,
onMouseUp: tt,
onMouseScroll: et
}),
o.addListener(this._mouseListener, this),
e = !0),
i = !0),
e && !this._activeInHierarchy && cc.director.getScheduler().schedule((function() {
this._activeInHierarchy || o.pauseTarget(this)
}
), this, 0, 0, 0, !1),
i
},
on: function(t, e, i, n) {
if (this._checknSetupSysEvent(t))
return this._onDispatch(t, e, i, n);
switch (t) {
case z.POSITION_CHANGED:
this._eventMask |= 1;
break;
case z.SCALE_CHANGED:
this._eventMask |= 2;
break;
case z.ROTATION_CHANGED:
this._eventMask |= 4;
break;
case z.SIZE_CHANGED:
this._eventMask |= 8;
break;
case z.ANCHOR_CHANGED:
this._eventMask |= 16;
break;
case z.COLOR_CHANGED:
this._eventMask |= 32
}
return this._bubblingListeners || (this._bubblingListeners = new c),
this._bubblingListeners.on(t, e, i)
},
once: function(t, e, i, n) {
var r = this
, s = null;
(s = this._checknSetupSysEvent(t) && n ? this._capturingListeners = this._capturingListeners || new c : this._bubblingListeners = this._bubblingListeners || new c).once(t, e, i),
s.once(t, (function() {
r.off(t, e, i)
}
), void 0)
},
_onDispatch: function(t, e, i, n) {
if ("boolean" == typeof i ? (n = i,
i = void 0) : n = !!n,
e) {
var r = null;
return (r = n ? this._capturingListeners = this._capturingListeners || new c : this._bubblingListeners = this._bubblingListeners || new c).hasEventListener(t, e, i) || (r.on(t, e, i),
i && i.__eventTargets && i.__eventTargets.push(this)),
e
}
cc.errorID(6800)
},
off: function(t, e, i, n) {
var r = -1 !== H.indexOf(t)
, s = !r && -1 !== W.indexOf(t);
if (r || s)
this._offDispatch(t, e, i, n),
r ? this._touchListener && !nt(this, H) && (o.removeListener(this._touchListener),
this._touchListener = null) : s && this._mouseListener && !nt(this, W) && (o.removeListener(this._mouseListener),
this._mouseListener = null);
else if (this._bubblingListeners && (this._bubblingListeners.off(t, e, i),
!this._bubblingListeners.hasEventListener(t)))
switch (t) {
case z.POSITION_CHANGED:
this._eventMask &= -2;
break;
case z.SCALE_CHANGED:
this._eventMask &= -3;
break;
case z.ROTATION_CHANGED:
this._eventMask &= -5;
break;
case z.SIZE_CHANGED:
this._eventMask &= -9;
break;
case z.ANCHOR_CHANGED:
this._eventMask &= -17;
break;
case z.COLOR_CHANGED:
this._eventMask &= -33
}
},
_offDispatch: function(t, e, i, n) {
if ("boolean" == typeof i ? (n = i,
i = void 0) : n = !!n,
e) {
var r = n ? this._capturingListeners : this._bubblingListeners;
r && (r.off(t, e, i),
i && i.__eventTargets && h.array.fastRemove(i.__eventTargets, this))
} else
this._capturingListeners && this._capturingListeners.removeAll(t),
this._bubblingListeners && this._bubblingListeners.removeAll(t)
},
targetOff: function(t) {
var e = this._bubblingListeners;
e && (e.targetOff(t),
1 & this._eventMask && !e.hasEventListener(z.POSITION_CHANGED) && (this._eventMask &= -2),
2 & this._eventMask && !e.hasEventListener(z.SCALE_CHANGED) && (this._eventMask &= -3),
4 & this._eventMask && !e.hasEventListener(z.ROTATION_CHANGED) && (this._eventMask &= -5),
8 & this._eventMask && !e.hasEventListener(z.SIZE_CHANGED) && (this._eventMask &= -9),
16 & this._eventMask && !e.hasEventListener(z.ANCHOR_CHANGED) && (this._eventMask &= -17),
32 & this._eventMask && !e.hasEventListener(z.COLOR_CHANGED) && (this._eventMask &= -33)),
this._capturingListeners && this._capturingListeners.targetOff(t),
t && t.__eventTargets && h.array.fastRemove(t.__eventTargets, this),
this._touchListener && !nt(this, H) && (o.removeListener(this._touchListener),
this._touchListener = null),
this._mouseListener && !nt(this, W) && (o.removeListener(this._mouseListener),
this._mouseListener = null)
},
hasEventListener: function(t) {
var e = !1;
return this._bubblingListeners && (e = this._bubblingListeners.hasEventListener(t)),
!e && this._capturingListeners && (e = this._capturingListeners.hasEventListener(t)),
e
},
emit: function(t, e, i, n, r, s) {
this._bubblingListeners && this._bubblingListeners.emit(t, e, i, n, r, s)
},
dispatchEvent: function(t) {
rt(this, t),
k.length = 0
},
pauseSystemEvents: function(t) {
o.pauseTarget(this, t)
},
resumeSystemEvents: function(t) {
o.resumeTarget(this, t)
},
_hitTest: function(t, e) {
var n = this._contentSize.width
, r = this._contentSize.height
, s = R
, a = O
, o = cc.Camera.findCamera(this);
if (o ? o.getScreenToWorldPoint(t, s) : s.set(t),
this._updateWorldMatrix(),
!i.Mat4.invert(V, this._worldMatrix))
return !1;
i.Vec2.transformMat4(a, s, V),
a.x += this._anchorPoint.x * n,
a.y += this._anchorPoint.y * r;
var l = !1;
if (a.x >= 0 && a.y >= 0 && a.x <= n && a.y <= r && (l = !0,
e && e.mask))
for (var h = e.mask, c = this, u = h ? h.length : 0, _ = 0, f = 0; c && f < u; ++_,
c = c.parent) {
var d = h[f];
if (_ === d.index) {
if (c !== d.node) {
h.length = f;
break
}
var p = c.getComponent(cc.Mask);
if (p && p._enabled && !p._hitTest(s)) {
l = !1;
break
}
f++
} else if (_ > d.index) {
h.length = f;
break
}
}
return l
},
_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: d ? function(t) {
if (this.active) {
cc.assertID(t, 1618);
var e = cc.director.getActionManager();
return e._suppressDeprecation || (e._suppressDeprecation = !0,
cc.warnID(1639)),
e.addAction(t, this, !1),
t
}
}
: p,
pauseAllActions: d ? function() {
cc.director.getActionManager().pauseTarget(this)
}
: p,
resumeAllActions: d ? function() {
cc.director.getActionManager().resumeTarget(this)
}
: p,
stopAllActions: d ? function() {
cc.director.getActionManager().removeAllActionsFromTarget(this)
}
: p,
stopAction: d ? function(t) {
cc.director.getActionManager().removeAction(t)
}
: p,
stopActionByTag: d ? function(t) {
t !== cc.Action.TAG_INVALID ? cc.director.getActionManager().removeActionByTag(t, this) : cc.logID(1612)
}
: p,
getActionByTag: d ? function(t) {
return t === cc.Action.TAG_INVALID ? (cc.logID(1613),
null) : cc.director.getActionManager().getActionByTag(t, this)
}
: function() {
return null
}
,
getNumberOfRunningActions: d ? function() {
return cc.director.getActionManager().getNumberOfRunningActionsInTarget(this)
}
: function() {
return 0
}
,
getPosition: function(t) {
return t = t || new i.Vec3,
i.Trs.toPosition(t, this._trs)
},
setPosition: function(t, e, i) {
var n;
void 0 === e ? (n = t.x,
e = t.y,
i = t.z) : n = t;
var r = this._trs;
void 0 === i && (i = r[2]),
(r[0] !== n || r[1] !== e || r[2] !== i) && (r[0] = n,
r[1] = e,
r[2] = i,
this.setLocalDirty(U.ALL_POSITION),
this._renderFlag |= u.FLAG_WORLD_TRANSFORM,
1 & this._eventMask && this.emit(z.POSITION_CHANGED))
},
getScale: function(t) {
return void 0 !== t ? i.Trs.toScale(t, this._trs) : (cc.errorID(1400, "cc.Node.getScale", "cc.Node.scale or cc.Node.getScale(cc.Vec3)"),
this._trs[7])
},
setScale: function(t, e, i) {
var n;
t && "number" != typeof t ? (n = t.x,
e = t.y,
i = t.z) : void 0 !== t && void 0 === e ? (n = t,
e = t,
i = t) : n = t;
var r = this._trs;
void 0 === i && (i = r[9]),
r[7] === n && r[8] === e && r[9] === i || (r[7] = n,
r[8] = e,
r[9] = i,
this.setLocalDirty(U.ALL_SCALE),
this._renderFlag |= u.FLAG_TRANSFORM,
2 & this._eventMask && this.emit(z.SCALE_CHANGED))
},
getRotation: function(t) {
return t instanceof i.Quat ? i.Trs.toRotation(t, this._trs) : -this.angle
},
setRotation: function(t, e, i, n) {
if ("number" == typeof t && void 0 === e)
this.angle = -t;
else {
var r = t;
void 0 === e && (r = t.x,
e = t.y,
i = t.z,
n = t.w);
var s = this._trs;
s[3] === r && s[4] === e && s[5] === i && s[6] === n || (s[3] = r,
s[4] = e,
s[5] = i,
s[6] = n,
this.setLocalDirty(U.ALL_ROTATION),
4 & this._eventMask && this.emit(z.ROTATION_CHANGED))
}
},
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;
i.width = t.width,
i.height = t.height
} else {
if (t === i.width && e === i.height)
return;
i.width = t,
i.height = e
}
8 & this._eventMask && this.emit(z.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(U.ALL_POSITION),
16 & this._eventMask && this.emit(z.ANCHOR_CHANGED)
},
_invTransformPoint: function(t, e) {
this._parent ? this._parent._invTransformPoint(t, e) : i.Vec3.copy(t, e);
var n = this._trs;
return i.Trs.toPosition(v, n),
i.Vec3.sub(t, t, v),
i.Trs.toRotation(A, n),
i.Quat.conjugate(x, A),
i.Vec3.transformQuat(t, t, x),
i.Trs.toScale(v, n),
i.Vec3.inverseSafe(g, v),
i.Vec3.mul(t, t, g),
t
},
getWorldPosition: function(t) {
i.Trs.toPosition(t, this._trs);
for (var e, n = this._parent; n; )
e = n._trs,
i.Trs.toScale(m, e),
i.Vec3.mul(t, t, m),
i.Trs.toRotation(y, e),
i.Vec3.transformQuat(t, t, y),
i.Trs.toPosition(m, e),
i.Vec3.add(t, t, m),
n = n._parent;
return t
},
setWorldPosition: function(t) {
var e = this._trs;
this._parent ? this._parent._invTransformPoint(b, t) : i.Vec3.copy(b, t),
i.Trs.fromPosition(e, b),
this.setLocalDirty(U.ALL_POSITION),
1 & this._eventMask && this.emit(z.POSITION_CHANGED)
},
getWorldRotation: function(t) {
i.Trs.toRotation(L, this._trs),
i.Quat.copy(t, L);
for (var e = this._parent; e; )
i.Trs.toRotation(L, e._trs),
i.Quat.mul(t, L, t),
e = e._parent;
return t
},
setWorldRotation: function(t) {
this._parent ? (this._parent.getWorldRotation(F),
i.Quat.conjugate(F, F),
i.Quat.mul(F, F, t)) : i.Quat.copy(F, t),
i.Trs.fromRotation(this._trs, F),
this.setLocalDirty(U.ALL_ROTATION)
},
getWorldScale: function(t) {
i.Trs.toScale(C, this._trs),
i.Vec3.copy(t, C);
for (var e = this._parent; e; )
i.Trs.toScale(C, e._trs),
i.Vec3.mul(t, t, C),
e = e._parent;
return t
},
setWorldScale: function(t) {
this._parent ? (this._parent.getWorldScale(T),
i.Vec3.div(T, t, T)) : i.Vec3.copy(T, t),
i.Trs.fromScale(this._trs, T),
this.setLocalDirty(U.ALL_SCALE)
},
getWorldRT: function(t) {
var e = S
, n = E
, r = this._trs;
i.Trs.toPosition(e, r),
i.Trs.toRotation(n, r);
for (var s = this._parent; s; )
r = s._trs,
i.Trs.toScale(w, r),
i.Vec3.mul(e, e, w),
i.Trs.toRotation(M, r),
i.Vec3.transformQuat(e, e, M),
i.Trs.toPosition(w, r),
i.Vec3.add(e, e, w),
i.Quat.mul(n, M, n),
s = s._parent;
return i.Mat4.fromRT(t, n, e),
t
},
lookAt: function(t, e) {
this.getWorldPosition(D),
i.Vec3.sub(D, D, t),
i.Vec3.normalize(D, D),
i.Quat.fromViewUp(B, D, e),
this.setWorldRotation(B)
},
_updateLocalMatrix: lt,
_calculWorldMatrix: function() {
this._localMatDirty & U.TRSS && this._updateLocalMatrix();
var t = this._parent;
t ? this._mulMat(this._worldMatrix, t._worldMatrix, this._matrix) : i.Mat4.copy(this._worldMatrix, this._matrix),
this._worldMatDirty = !1
},
_mulMat: ut,
_updateWorldMatrix: function() {
if (this._parent && this._parent._updateWorldMatrix(),
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 |= t,
this._worldMatDirty = !0,
t === U.ALL_POSITION || t === U.POSITION ? this._renderFlag |= u.FLAG_WORLD_TRANSFORM : this._renderFlag |= u.FLAG_TRANSFORM
},
setWorldDirty: function() {
this._worldMatDirty = !0
},
getLocalMatrix: function(t) {
return this._updateLocalMatrix(),
i.Mat4.copy(t, this._matrix)
},
getWorldMatrix: function(t) {
return this._updateWorldMatrix(),
i.Mat4.copy(t, this._worldMatrix)
},
convertToNodeSpaceAR: function(t, e) {
return this._updateWorldMatrix(),
i.Mat4.invert(V, this._worldMatrix),
t instanceof cc.Vec2 ? (e = e || new cc.Vec2,
i.Vec2.transformMat4(e, t, V)) : (e = e || new cc.Vec3,
i.Vec3.transformMat4(e, t, V))
},
convertToWorldSpaceAR: function(t, e) {
return this._updateWorldMatrix(),
t instanceof cc.Vec2 ? (e = e || new cc.Vec2,
i.Vec2.transformMat4(e, t, this._worldMatrix)) : (e = e || new cc.Vec3,
i.Vec3.transformMat4(e, t, this._worldMatrix))
},
convertToNodeSpace: function(t) {
this._updateWorldMatrix(),
i.Mat4.invert(V, this._worldMatrix);
var e = new cc.Vec2;
return i.Vec2.transformMat4(e, t, V),
e.x += this._anchorPoint.x * this._contentSize.width,
e.y += this._anchorPoint.y * this._contentSize.height,
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 i.Vec2.transformMat4(e, e, this._worldMatrix)
},
getNodeToParentTransform: function(t) {
t || (t = a.identity()),
this._updateLocalMatrix();
var e = this._contentSize;
return N.x = -this._anchorPoint.x * e.width,
N.y = -this._anchorPoint.y * e.height,
i.Mat4.copy(V, this._matrix),
i.Mat4.transform(V, V, N),
a.fromMat4(t, V)
},
getNodeToParentTransformAR: function(t) {
return t || (t = a.identity()),
this._updateLocalMatrix(),
a.fromMat4(t, this._matrix)
},
getNodeToWorldTransform: function(t) {
t || (t = a.identity()),
this._updateWorldMatrix();
var e = this._contentSize;
return N.x = -this._anchorPoint.x * e.width,
N.y = -this._anchorPoint.y * e.height,
i.Mat4.copy(V, this._worldMatrix),
i.Mat4.transform(V, V, N),
a.fromMat4(t, V)
},
getNodeToWorldTransformAR: function(t) {
return t || (t = a.identity()),
this._updateWorldMatrix(),
a.fromMat4(t, this._worldMatrix)
},
getParentToNodeTransform: function(t) {
return t || (t = a.identity()),
this._updateLocalMatrix(),
i.Mat4.invert(V, this._matrix),
a.fromMat4(t, V)
},
getWorldToNodeTransform: function(t) {
return t || (t = a.identity()),
this._updateWorldMatrix(),
i.Mat4.invert(V, this._worldMatrix),
a.fromMat4(t, V)
},
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() {
return this._parent ? (this._parent._updateWorldMatrix(),
this._getBoundingBoxTo()) : this.getBoundingBox()
},
_getBoundingBoxTo: function() {
var t = this._contentSize.width
, e = this._contentSize.height
, i = cc.rect(-this._anchorPoint.x * t, -this._anchorPoint.y * e, t, e);
if (this._calculWorldMatrix(),
i.transformMat4(i, this._worldMatrix),
!this._children)
return i;
for (var n = this._children, r = 0; r < n.length; r++) {
var s = n[r];
if (s && s.active) {
var a = s._getBoundingBoxTo();
a && i.union(i, a)
}
}
return i
},
_updateOrderOfArrival: function() {
var t = this._parent ? ++this._parent._childArrivalOrder : 0;
this._localZOrder = 4294901760 & this._localZOrder | t,
this.emit(z.SIBLING_ORDER_CHANGED)
},
addChild: function(t, e, i) {
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() {
d && cc.director.getActionManager().removeAllActionsFromTarget(this),
o.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) {
this._reorderChildDirty = !1;
var t = this._children;
this._childArrivalOrder = 1;
for (var e = 0, i = t.length; e < i; e++)
t[e]._updateOrderOfArrival();
if (o._setDirtyForNode(this),
t.length > 1) {
for (var n, r, s = 1, a = t.length; s < a; s++) {
n = t[s];
for (var l = s; l > 0 && (r = t[l - 1])._localZOrder > n._localZOrder; l--)
t[l] = r;
t[l] = n
}
this.emit(z.CHILD_REORDER, this)
}
cc.director.__fastOff(cc.Director.EVENT_AFTER_UPDATE, this.sortAllChildren, this)
}
},
_delaySort: function() {
this._reorderChildDirty || (this._reorderChildDirty = !0,
cc.director.__fastOn(cc.Director.EVENT_AFTER_UPDATE, this.sortAllChildren, this))
},
_restoreProperties: !1,
onRestore: !1
}
, dt = cc.Class(ft)
, pt = dt.prototype;
h.getset(pt, "position", pt.getPosition, pt.setPosition, !1, !0),
cc.Node = e.exports = dt
}
), {
"./event-manager": 138,
"./event/event": 141,
"./event/event-target": 140,
"./platform/CCMacro": 198,
"./platform/js": 214,
"./renderer/render-flow": 225,
"./utils/affine-transform": 258,
"./utils/base-node": 259,
"./utils/prefab-helper": 270,
"./utils/trans-pool": 276,
"./value-types": 282
}],
30: [(function(t, e) {
"use strict";
var i = t("./CCNode")
, n = t("./renderer/render-flow")
, r = (cc.Object.Flags.HideInHierarchy,
i._LocalDirtyFlag)
, s = cc.Class({
name: "cc.PrivateNode",
extends: i,
properties: {
x: {
get: function() {
return this._originPos.x
},
set: function(t) {
var e = this._originPos;
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;
t !== e.y && (e.y = t,
this._posDirty(!0))
},
override: !0
},
zIndex: {
get: function() {
return cc.macro.MIN_ZINDEX
},
set: function() {},
override: !0
},
showInEditor: {
default: !1,
editorOnly: !0,
override: !0
}
},
ctor: function() {
this._localZOrder = cc.macro.MIN_ZINDEX << 16,
this._originPos = cc.v2()
},
_posDirty: function(t) {
this.setLocalDirty(r.POSITION),
this._renderFlag |= n.FLAG_TRANSFORM,
!0 === t && 1 & this._eventMask && this.emit(i.EventType.POSITION_CHANGED)
},
_updateLocalMatrix: function() {
if (this._localMatDirty) {
var t = this.parent;
t && (this._trs[0] = this._originPos.x - (t._anchorPoint.x - .5) * t._contentSize.width,
this._trs[1] = 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;
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),
e !== t && (e && e.off(i.EventType.ANCHOR_CHANGED, this._posDirty, this),
t && t.on(i.EventType.ANCHOR_CHANGED, this._posDirty, this))
},
_updateOrderOfArrival: function() {}
})
, a = s.prototype;
cc.js.getset(a, "parent", a.getParent, a.setParent),
cc.js.getset(a, "position", a.getPosition, a.setPosition),
cc.PrivateNode = e.exports = s
}
), {
"./CCNode": 29,
"./renderer/render-flow": 225
}],
31: [(function(t, e) {
"use strict";
cc.Scene = cc.Class({
name: "cc.Scene",
extends: t("./CCNode"),
properties: {
_is3DNode: {
default: !0,
override: !0
},
autoReleaseAssets: !1
},
ctor: function() {
this._anchorPoint.x = 0,
this._anchorPoint.y = 0,
this._activeInHierarchy = !1,
this._inited = !cc.game._isCloning,
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() {
this._inited || (this._onBatchCreated(!1),
this._inited = !0)
},
_activate: function(t) {
t = !1 !== t,
cc.director._nodeActivator.activateNode(this, t)
}
}),
e.exports = cc.Scene
}
), {
"./CCNode": 29
}],
32: [(function(t, e) {
"use strict";
var i = t("./platform/js")
, n = new (t("./platform/id-generater"))("Scheduler")
, r = function(t, e, i, n) {
this.target = t,
this.priority = e,
this.paused = i,
this.markedForDeletion = n
}
, s = [];
r.get = function(t, e, i, n) {
var a = s.pop();
return a ? (a.target = t,
a.priority = e,
a.paused = i,
a.markedForDeletion = n) : a = new r(t,e,i,n),
a
}
,
r.put = function(t) {
s.length < 20 && (t.target = null,
s.push(t))
}
;
var a = function(t, e, i, n) {
this.list = t,
this.entry = e,
this.target = i,
this.callback = n
}
, o = [];
a.get = function(t, e, i, n) {
var r = o.pop();
return r ? (r.list = t,
r.entry = e,
r.target = i,
r.callback = n) : r = new a(t,e,i,n),
r
}
,
a.put = function(t) {
o.length < 20 && (t.list = t.entry = t.target = t.callback = null,
o.push(t))
}
;
var l = function(t, e, i, n, r, s) {
var a = this;
a.timers = t,
a.target = e,
a.timerIndex = i,
a.currentTimer = n,
a.currentTimerSalvaged = r,
a.paused = s
}
, h = [];
function c() {
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
}
l.get = function(t, e, i, n, r, s) {
var a = h.pop();
return a ? (a.timers = t,
a.target = e,
a.timerIndex = i,
a.currentTimer = n,
a.currentTimerSalvaged = r,
a.paused = s) : a = new l(t,e,i,n,r,s),
a
}
,
l.put = function(t) {
h.length < 20 && (t.timers = t.target = t.currentTimer = null,
h.push(t))
}
;
var u = c.prototype;
u.initWithCallback = function(t, e, i, n, r, s) {
return 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,
!0
}
,
u.getInterval = function() {
return this._interval
}
,
u.setInterval = function(t) {
this._interval = t
}
,
u.update = function(t) {
-1 === this._elapsed ? (this._elapsed = 0,
this._timesExecuted = 0) : (this._elapsed += t,
this._runForever && !this._useDelay ? this._elapsed >= this._interval && (this.trigger(),
this._elapsed = 0) : (this._useDelay ? this._elapsed >= this._delay && (this.trigger(),
this._elapsed -= this._delay,
this._timesExecuted += 1,
this._useDelay = !1) : this._elapsed >= this._interval && (this.trigger(),
this._elapsed = 0,
this._timesExecuted += 1),
this._callback && !this._runForever && this._timesExecuted > this._repeat && this.cancel()))
}
,
u.getCallback = function() {
return this._callback
}
,
u.trigger = function() {
this._target && this._callback && (this._lock = !0,
this._callback.call(this._target, this._elapsed),
this._lock = !1)
}
,
u.cancel = function() {
this._scheduler.unschedule(this._callback, this._target)
}
;
var _ = [];
c.get = function() {
return _.pop() || new c
}
,
c.put = function(t) {
_.length < 20 && !t._lock && (t._scheduler = t._target = t._callback = null,
_.push(t))
}
,
cc.Scheduler = function() {
this._timeScale = 1,
this._updatesNegList = [],
this._updates0List = [],
this._updatesPosList = [],
this._hashForUpdates = i.createMap(!0),
this._hashForTimers = i.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
}
l.put(t)
},
_removeUpdateFromHash: function(t) {
var e = t.target._id
, i = this._hashForUpdates[e];
if (i) {
for (var n = i.list, s = i.entry, o = 0, l = n.length; o < l; o++)
if (n[o] === s) {
n.splice(o, 1);
break
}
delete this._hashForUpdates[e],
r.put(s),
a.put(i)
}
},
_priorityIn: function(t, e, i) {
for (var n = 0; n < t.length; n++)
if (i < t[n].priority)
return void t.splice(n, 0, e);
t.push(e)
},
_appendIn: function(t, e) {
t.push(e)
},
enableForTarget: function(t) {
t._id || (t.__instanceId ? cc.warnID(1513) : t._id = n.getNewId())
},
setTimeScale: function(t) {
this._timeScale = t
},
getTimeScale: function() {
return this._timeScale
},
update: function(t) {
var e, i, n, r;
for (this._updateHashLocked = !0,
1 !== this._timeScale && (t *= this._timeScale),
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, a = this._arrayForTimers;
for (e = 0; e < a.length; e++) {
if (s = a[e],
this._currentTarget = s,
this._currentTargetSalvaged = !1,
!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;
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(t, e, i, n, r, s) {
if ("function" != typeof t) {
var a = t;
t = e,
e = a
}
4 !== arguments.length && 5 !== arguments.length || (s = !!n,
n = cc.macro.REPEAT_FOREVER,
r = 0),
cc.assertID(e, 1502);
var o = e._id;
o || (e.__instanceId ? (cc.warnID(1513),
o = e._id = e.__instanceId) : cc.errorID(1510));
var h, u, _ = this._hashForTimers[o];
if (_ ? _.paused !== s && cc.warnID(1511) : (_ = l.get(null, e, 0, null, null, s),
this._arrayForTimers.push(_),
this._hashForTimers[o] = _),
null == _.timers)
_.timers = [];
else
for (u = 0; u < _.timers.length; ++u)
if ((h = _.timers[u]) && t === h._callback)
return cc.logID(1507, h.getInterval(), i),
void (h._interval = i);
(h = c.get()).initWithCallback(this, t, e, i, n, r),
_.timers.push(h),
this._currentTarget === _ && this._currentTargetSalvaged && (this._currentTargetSalvaged = !1)
},
scheduleUpdate: function(t, e, i) {
var n = t._id;
n || (t.__instanceId ? (cc.warnID(1513),
n = t._id = t.__instanceId) : cc.errorID(1510));
var s = this._hashForUpdates[n];
if (s && s.entry) {
if (s.entry.priority === e)
return s.entry.markedForDeletion = !1,
void (s.entry.paused = i);
if (this._updateHashLocked)
return cc.logID(1506),
s.entry.markedForDeletion = !1,
void (s.entry.paused = i);
this.unscheduleUpdate(t)
}
var o, l = r.get(t, e, i, !1);
0 === e ? (o = this._updates0List,
this._appendIn(o, l)) : (o = e < 0 ? this._updatesNegList : this._updatesPosList,
this._priorityIn(o, l, e)),
this._hashForUpdates[n] = a.get(o, l, t, null)
},
unschedule: function(t, e) {
if (e && t) {
var i = e._id;
i || (e.__instanceId ? (cc.warnID(1513),
i = e._id = e.__instanceId) : cc.errorID(1510));
var n = this._hashForTimers[i];
if (n)
for (var r = n.timers, s = 0, a = r.length; s < a; s++) {
var o = r[s];
if (t === o._callback)
return o !== n.currentTimer || n.currentTimerSalvaged || (n.currentTimerSalvaged = !0),
r.splice(s, 1),
c.put(o),
n.timerIndex >= s && n.timerIndex--,
void (0 === r.length && (this._currentTarget === n ? this._currentTargetSalvaged = !0 : this._removeHashElement(n)))
}
}
},
unscheduleUpdate: function(t) {
if (t) {
var e = t._id;
e || (t.__instanceId ? (cc.warnID(1513),
e = t._id = t.__instanceId) : 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;
e || (t.__instanceId ? (cc.warnID(1513),
e = t._id = t.__instanceId) : 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++)
c.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;
i || (e.__instanceId ? (cc.warnID(1513),
i = e._id = e.__instanceId) : 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 = [], a = this._arrayForTimers;
for (i = 0,
n = a.length; i < n; i++)
(e = a[i]) && (e.paused = !0,
s.push(e.target));
if (t < 0)
for (i = 0; i < this._updatesNegList.length; i++)
(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++)
(r = this._updates0List[i]) && (r.paused = !0,
s.push(r.target));
for (i = 0; i < this._updatesPosList.length; i++)
(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;
e || (t.__instanceId ? (cc.warnID(1513),
e = t._id = t.__instanceId) : 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;
e || (t.__instanceId ? (cc.warnID(1513),
e = t._id = t.__instanceId) : 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;
e || (t.__instanceId ? (cc.warnID(1513),
e = t._id = t.__instanceId) : 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,
e.exports = cc.Scheduler
}
), {
"./platform/id-generater": 210,
"./platform/js": 214
}],
33: [(function(t, e) {
"use strict";
var i = t("./preprocess")
, n = t("./fetch")
, r = t("./cache")
, s = t("./helper")
, a = t("./releaseManager")
, o = t("./depend-util")
, l = t("./load")
, h = t("./pipeline")
, c = t("./task")
, u = t("./request-item")
, _ = t("./downloader")
, f = t("./parser")
, d = t("./pack-manager")
, p = t("./bundle")
, m = t("./builtins")
, y = t("./factory")
, v = t("./urlTransformer")
, g = v.parse
, A = v.combine
, x = t("./utilities")
, b = x.parseParameters
, C = x.asyncify
, T = t("./shared")
, S = T.assets
, w = T.files
, E = T.parsed
, M = T.pipeline
, D = T.transformPipeline
, B = T.fetchPipeline
, I = T.RequestType
, P = T.bundles
, R = T.BuiltinBundleName;
function O() {
this._preprocessPipe = i,
this._fetchPipe = n,
this._loadPipe = l,
this.pipeline = M.append(i).append(l),
this.fetchPipeline = B.append(i).append(n),
this.transformPipeline = D.append(g).append(A),
this.bundles = P,
this.assets = S,
this._files = w,
this._parsed = E,
this.generalImportBase = "",
this.generalNativeBase = "",
this.dependUtil = o,
this._releaseManager = a,
this.cacheAsset = !0,
this.force = !1,
this.utils = s,
this.downloader = _,
this.parser = f,
this.builtins = m,
this.packManager = d,
this.factory = y,
this.cacheManager = null,
this.presets = {
default: {
priority: 0
},
preload: {
maxConcurrency: 2,
maxRequestsPerFrame: 2,
priority: -1
},
scene: {
maxConcurrency: 8,
maxRequestsPerFrame: 8,
priority: 1
},
bundle: {
maxConcurrency: 8,
maxRequestsPerFrame: 8,
priority: 2
},
remote: {
maxRetryCount: 4
},
script: {
maxConcurrency: 1024,
maxRequestsPerFrame: 1024,
priority: 2
}
}
}
O.Pipeline = h,
O.Task = c,
O.Cache = r,
O.RequestItem = u,
O.Bundle = p,
O.BuiltinBundleName = R,
O.prototype = {
constructor: O,
get main() {
return P.get(R.MAIN)
},
get resources() {
return P.get(R.RESOURCES)
},
get internal() {
return P.get(R.INTERNAL)
},
init: function(t) {
t = t || Object.create(null),
this._files.clear(),
this._parsed.clear(),
this._releaseManager.init(),
this.assets.clear(),
this.bundles.clear(),
this.packManager.init(),
this.downloader.init(t.bundleVers, t.server),
this.parser.init(),
this.dependUtil.init(),
this.generalImportBase = t.importBase,
this.generalNativeBase = t.nativeBase
},
getBundle: function(t) {
return P.get(t)
},
removeBundle: function(t) {
t._destroy(),
P.remove(t.name)
},
loadAny: function(t, e, i, n) {
var r = b(e, i, n);
e = r.options,
i = r.onProgress,
n = r.onComplete,
e.preset = e.preset || "default",
t = Array.isArray(t) ? t.concat() : t;
var s = new c({
input: t,
onProgress: i,
onComplete: C(n),
options: e
});
M.async(s)
},
preloadAny: function(t, e, i, n) {
var r = b(e, i, n);
e = r.options,
i = r.onProgress,
n = r.onComplete,
e.preset = e.preset || "preload",
t = Array.isArray(t) ? t.concat() : t;
var s = new c({
input: t,
onProgress: i,
onComplete: C(n),
options: e
});
B.async(s)
},
postLoadNative: function(t, e, i) {
if (!(t instanceof cc.Asset))
throw new Error("input is not asset");
var n = b(e, void 0, i);
if (e = n.options,
i = n.onComplete,
!t._native || t._nativeAsset)
return C(i)(null);
var r = o.getNativeDep(t._uuid);
if (r) {
if (!P.has(r.bundle)) {
var s = P.find((function(e) {
return e.getAssetInfo(t._uuid)
}
));
s && (r.bundle = s.name)
}
this.loadAny(r, e, (function(e, n) {
e ? cc.error(e.message, e.stack) : t.isValid && !t._nativeAsset && (t._nativeAsset = n),
i && i(e)
}
))
}
},
loadRemote: function(t, e, i) {
var n = b(e, void 0, i);
if (e = n.options,
i = n.onComplete,
this.assets.has(t))
return C(i)(null, this.assets.get(t));
e.__isNative__ = !0,
e.preset = e.preset || "remote",
this.loadAny({
url: t
}, e, null, (function(n, r) {
n ? (cc.error(n.message, n.stack),
i && i(n, null)) : y.create(t, r, e.ext || cc.path.extname(t), e, (function(t, e) {
i && i(t, e)
}
))
}
))
},
loadScript: function(t, e, i) {
var n = b(e, void 0, i);
e = n.options,
i = n.onComplete,
e.__requestType__ = I.URL,
e.preset = e.preset || "script",
this.loadAny(t, e, i)
},
loadBundle: function(t, e, i) {
var n = b(e, void 0, i)
, r = (e = n.options,
i = n.onComplete,
cc.path.basename(t));
if (this.bundles.has(r))
return C(i)(null, this.getBundle(r));
e.preset = e.preset || "bundle",
e.ext = "bundle",
this.loadRemote(t, e, i)
},
releaseAsset: function(t) {
a.tryRelease(t, !0)
},
releaseUnusedAssets: function() {
S.forEach((function(t) {
a.tryRelease(t)
}
))
},
releaseAll: function() {
S.forEach((function(t) {
a.tryRelease(t, !0)
}
))
},
_transform: function(t, e) {
var i = c.create({
input: t,
options: e
})
, n = [];
try {
for (var r = D.sync(i), s = 0, a = r.length; s < a; s++) {
var o = r[s]
, l = o.url;
o.recycle(),
n.push(l)
}
} catch (h) {
for (s = 0,
a = i.output.length; s < a; s++)
i.output[s].recycle();
cc.error(h.message, h.stack)
}
return i.recycle(),
n.length > 1 ? n : n[0]
}
},
cc.AssetManager = O,
cc.assetManager = new O,
Object.defineProperty(cc, "resources", {
get: function() {
return P.get(R.RESOURCES)
}
}),
e.exports = cc.assetManager
}
), {
"./builtins": 34,
"./bundle": 35,
"./cache": 36,
"./depend-util": 38,
"./downloader": 45,
"./factory": 46,
"./fetch": 47,
"./helper": 49,
"./load": 51,
"./pack-manager": 52,
"./parser": 53,
"./pipeline": 54,
"./preprocess": 55,
"./releaseManager": 56,
"./request-item": 57,
"./shared": 58,
"./task": 59,
"./urlTransformer": 60,
"./utilities": 61
}],
34: [(function(t, e) {
"use strict";
var i = t("./cache")
, n = t("./releaseManager")
, r = t("./shared").BuiltinBundleName
, s = {
_assets: new i({
material: new i,
effect: new i
}),
_loadBuiltins: function(t, e) {
var i = t + "s"
, n = this._assets.get(t);
return cc.assetManager.internal.loadDir(i, null, null, (function(t, i) {
if (t)
cc.error(t.message, t.stack);
else
for (var r = 0; r < i.length; r++) {
var s = i[r];
n.add(s.name, s.addRef())
}
e()
}
))
},
init: function(t) {
var e = this;
if (this.clear(),
cc.game.renderType === cc.game.RENDER_TYPE_CANVAS || !cc.assetManager.bundles.has(r.INTERNAL))
return t && t();
this._loadBuiltins("effect", (function() {
e._loadBuiltins("material", t)
}
))
},
getBuiltin: function(t, e) {
return 0 === arguments.length ? this._assets : 1 === arguments.length ? this._assets.get(t) : this._assets.get(t).get(e)
},
clear: function() {
this._assets.forEach((function(t) {
t.forEach((function(t) {
n.tryRelease(t, !0)
}
)),
t.clear()
}
))
}
};
e.exports = s
}
), {
"./cache": 36,
"./releaseManager": 56,
"./shared": 58
}],
35: [(function(t, e) {
"use strict";
var i = t("./config")
, n = t("./releaseManager")
, r = t("./utilities")
, s = r.parseParameters
, a = r.parseLoadResArgs
, o = t("./shared")
, l = o.RequestType
, h = o.assets
, c = o.bundles;
function u() {
this._config = new i
}
u.prototype = {
constructor: u,
get name() {
return this._config.name
},
get deps() {
return this._config.deps
},
get base() {
return this._config.base
},
getInfoWithPath: function(t, e) {
return this._config.getInfoWithPath(t, e)
},
getDirWithPath: function(t, e, i) {
return this._config.getDirWithPath(t, e, i)
},
getAssetInfo: function(t) {
return this._config.getAssetInfo(t)
},
getSceneInfo: function(t) {
return this._config.getSceneInfo(t)
},
init: function(t) {
this._config.init(t),
c.add(t.name, this)
},
load: function(t, e, i, n) {
var r = a(e, i, n);
e = r.type,
i = r.onProgress,
n = r.onComplete,
cc.assetManager.loadAny(t, {
__requestType__: l.PATH,
type: e,
bundle: this.name,
__outputAsArray__: Array.isArray(t)
}, i, n)
},
preload: function(t, e, i, n) {
var r = a(e, i, n);
e = r.type,
i = r.onProgress,
n = r.onComplete,
cc.assetManager.preloadAny(t, {
__requestType__: l.PATH,
type: e,
bundle: this.name
}, i, n)
},
loadDir: function(t, e, i, n) {
var r = a(e, i, n);
e = r.type,
i = r.onProgress,
n = r.onComplete,
cc.assetManager.loadAny(t, {
__requestType__: l.DIR,
type: e,
bundle: this.name,
__outputAsArray__: !0
}, i, n)
},
preloadDir: function(t, e, i, n) {
var r = a(e, i, n);
e = r.type,
i = r.onProgress,
n = r.onComplete,
cc.assetManager.preloadAny(t, {
__requestType__: l.DIR,
type: e,
bundle: this.name
}, i, n)
},
loadScene: function(t, e, i, n) {
var r = s(e, i, n);
e = r.options,
i = r.onProgress,
n = r.onComplete,
e.preset = e.preset || "scene",
e.bundle = this.name,
cc.assetManager.loadAny({
scene: t
}, e, i, (function(t, e) {
if (t)
cc.error(t.message, t.stack),
n && n(t);
else if (e instanceof cc.SceneAsset) {
var i = e.scene;
i._id = e._uuid,
i._name = e._name,
n && n(null, e)
} else
n && n(new Error("The asset " + e._uuid + " is not a scene"))
}
))
},
preloadScene: function(t, e, i, n) {
var r = s(e, i, n);
e = r.options,
i = r.onProgress,
n = r.onComplete,
e.bundle = this.name,
cc.assetManager.preloadAny({
scene: t
}, e, i, (function(e) {
e && cc.errorID(1210, t, e.message),
n && n(e)
}
))
},
get: function(t, e) {
var i = this.getInfoWithPath(t, e);
return h.get(i && i.uuid)
},
release: function(t, e) {
n.tryRelease(this.get(t, e), !0)
},
releaseUnusedAssets: function() {
var t = this;
h.forEach((function(e) {
var i = t.getAssetInfo(e._uuid);
i && !i.redirect && n.tryRelease(e)
}
))
},
releaseAll: function() {
var t = this;
h.forEach((function(e) {
var i = t.getAssetInfo(e._uuid);
i && !i.redirect && n.tryRelease(e, !0)
}
))
},
_destroy: function() {
this._config.destroy()
}
},
e.exports = u
}
), {
"./config": 37,
"./releaseManager": 56,
"./shared": 58,
"./utilities": 61
}],
36: [(function(t, e) {
"use strict";
var i = t("../platform/js");
function n(t) {
t ? (this._map = t,
this._count = Object.keys(t).length) : (this._map = i.createMap(!0),
this._count = 0)
}
n.prototype = {
constructor: n,
add: function(t, e) {
return t in this._map || this._count++,
this._map[t] = e
},
get: function(t) {
return this._map[t]
},
has: function(t) {
return t in this._map
},
remove: function(t) {
var e = this._map[t];
return t in this._map && (delete this._map[t],
this._count--),
e
},
clear: function() {
0 !== this._count && (this._map = i.createMap(!0),
this._count = 0)
},
forEach: function(t) {
for (var e in this._map)
t(this._map[e], e)
},
find: function(t) {
for (var e in this._map)
if (t(this._map[e], e))
return this._map[e];
return null
},
get count() {
return this._count
},
destroy: function() {
this._map = null
}
},
e.exports = n
}
), {
"../platform/js": 214
}],
37: [(function(t, e) {
"use strict";
var i = t("../platform/js")
, n = t("./cache")
, r = t("./helper").normalize
, s = t("./utilities").processOptions;
function a() {
this.name = "",
this.base = "",
this.importBase = "",
this.nativeBase = "",
this.deps = null,
this.assetInfos = new n,
this.scenes = new n,
this.paths = new n
}
a.prototype = {
constructor: a,
init: function(t) {
s(t),
this.importBase = t.importBase || "",
this.nativeBase = t.nativeBase || "",
this.base = t.base || "",
this.name = t.name || "",
this.deps = t.deps || [],
this._initUuid(t.uuids),
this._initPath(t.paths),
this._initScene(t.scenes),
this._initPackage(t.packs),
this._initVersion(t.versions),
this._initRedirect(t.redirect)
},
_initUuid: function(t) {
if (t) {
this.assetInfos.clear();
for (var e = 0, i = t.length; e < i; e++) {
var n = t[e];
this.assetInfos.add(n, {
uuid: n
})
}
}
},
_initPath: function(t) {
if (t) {
var e = this.paths;
for (var n in e.clear(),
t) {
var r = t[n]
, s = r[0]
, a = r[1]
, o = 3 === r.length
, l = this.assetInfos.get(n);
l.path = s,
l.ctor = i._getClassById(a),
e.has(s) ? o ? e.get(s).push(l) : e.get(s).splice(0, 0, l) : e.add(s, [l])
}
}
},
_initScene: function(t) {
if (t) {
var e = this.scenes;
e.clear();
var i = this.assetInfos;
for (var n in t) {
var r = t[n]
, s = i.get(r);
s.url = n,
e.add(n, s)
}
}
},
_initPackage: function(t) {
if (t) {
var e = this.assetInfos;
for (var i in t) {
var n = t[i]
, r = {
uuid: i,
packs: n,
ext: ".json"
};
e.add(i, r);
for (var s = 0, a = n.length; s < a; s++) {
var o = n[s]
, l = e.get(o)
, h = l.packs;
h ? 1 === a ? h.splice(0, 0, r) : h.push(r) : l.packs = [r]
}
}
}
},
_initVersion: function(t) {
if (t) {
var e = this.assetInfos
, i = t.import;
if (i)
for (var n = 0, r = i.length; n < r; n += 2) {
var s = i[n];
e.get(s).ver = i[n + 1]
}
if (i = t.native)
for (n = 0,
r = i.length; n < r; n += 2)
s = i[n],
e.get(s).nativeVer = i[n + 1]
}
},
_initRedirect: function(t) {
if (t)
for (var e = this.assetInfos, i = 0, n = t.length; i < n; i += 2) {
var r = t[i];
e.get(r).redirect = t[i + 1]
}
},
getInfoWithPath: function(t, e) {
if (!t)
return null;
t = r(t);
var n = this.paths.get(t);
if (n) {
if (!e)
return n[0];
for (var s = 0, a = n.length; s < a; s++) {
var o = n[s];
if (i.isChildClassOf(o.ctor, e))
return o
}
}
return null
},
getDirWithPath: function(t, e, n) {
"/" === (t = r(t))[t.length - 1] && (t = t.slice(0, -1));
var s = n || [];
function a(t, e) {
return !(t.length > e.length) || 47 === t.charCodeAt(e.length)
}
return this.paths.forEach((function(n, r) {
if (r.startsWith(t) && a(r, t) || !t)
for (var o = 0, l = n.length; o < l; o++) {
var h = n[o];
e && !i.isChildClassOf(h.ctor, e) || s.push(h)
}
}
)),
s
},
getAssetInfo: function(t) {
return this.assetInfos.get(t)
},
getSceneInfo: function(t) {
return t.endsWith(".fire") || (t += ".fire"),
"/" === t[0] || t.startsWith("db://") || (t = "/" + t),
this.scenes.find((function(e, i) {
return i.endsWith(t)
}
))
},
destroy: function() {
this.paths.destroy(),
this.scenes.destroy(),
this.assetInfos.destroy()
}
},
e.exports = a
}
), {
"../platform/js": 214,
"./cache": 36,
"./helper": 49,
"./utilities": 61
}],
38: [(function(t, e) {
"use strict";
var i = (function(t) {
if (t && t.__esModule)
return t;
if (null === t || "object" != typeof t && "function" != typeof t)
return {
default: t
};
var e = n();
if (e && e.has(t))
return e.get(t);
var i = {}
, r = Object.defineProperty && Object.getOwnPropertyDescriptor;
for (var s in t)
if (Object.prototype.hasOwnProperty.call(t, s)) {
var a = r ? Object.getOwnPropertyDescriptor(t, s) : null;
a && (a.get || a.set) ? Object.defineProperty(i, s, a) : i[s] = t[s]
}
return i.default = t,
e && e.set(t, i),
i
}
)(t("../platform/deserialize-compiled"));
function n() {
if ("function" != typeof WeakMap)
return null;
var t = new WeakMap;
return n = function() {
return t
}
,
t
}
var r = t("./cache")
, s = t("./deserialize")
, a = t("./shared")
, o = a.files
, l = a.parsed
, h = {
_depends: new r,
init: function() {
this._depends.clear()
},
getNativeDep: function(t) {
var e = this._depends.get(t);
return e ? e.nativeDep && Object.assign({}, e.nativeDep) : null
},
getDeps: function(t) {
return this._depends.has(t) ? this._depends.get(t).deps : []
},
getDepsRecursively: function(t) {
var e = Object.create(null)
, i = [];
return this._descend(t, e, i),
i
},
_descend: function(t, e, i) {
for (var n = this.getDeps(t), r = 0; r < n.length; r++) {
var s = n[r];
e[s] || (e[s] = !0,
i.push(s),
this._descend(s, e, i))
}
},
remove: function(t) {
this._depends.remove(t)
},
parse: function(t, e) {
var n = null;
if (Array.isArray(e) || e.__type__) {
if (n = this._depends.get(t))
return n;
if (Array.isArray(e) && !(0,
i.hasNativeDep)(e))
n = {
deps: this._parseDepsFromJson(e)
};
else
try {
var r = s(e);
(n = this._parseDepsFromAsset(r)).nativeDep && (n.nativeDep.uuid = t),
l.add(t + "@import", r)
} catch (a) {
o.remove(t + "@import"),
n = {
deps: []
}
}
} else {
if ((n = this._depends.get(t)) && n.parsedFromExistAsset)
return n;
n = this._parseDepsFromAsset(e)
}
return this._depends.add(t, n),
n
},
_parseDepsFromAsset: function(t) {
for (var e = {
deps: [],
parsedFromExistAsset: !0,
preventPreloadNativeObject: t.constructor.preventPreloadNativeObject,
preventDeferredLoadDependents: t.constructor.preventDeferredLoadDependents
}, i = t.__depends__, n = 0, r = i.length; n < r; n++) {
var s = i[n].uuid;
e.deps.push(s)
}
return t.__nativeDepend__ && (e.nativeDep = t._nativeDep),
e
},
_parseDepsFromJson: function(t) {
var e = (0,
i.getDependUuidList)(t);
return e.forEach((function(t, i) {
return e[i] = cc.assetManager.utils.decodeUuid(t)
}
)),
e
}
};
e.exports = h
}
), {
"../platform/deserialize-compiled": 208,
"./cache": 36,
"./deserialize": 40,
"./shared": 58
}],
39: [(function(t) {
"use strict";
var e = t("../platform/js");
t("../CCDirector");
var i = t("./utilities")
, n = t("./depend-util")
, r = t("./releaseManager")
, s = t("./downloader")
, a = t("./factory")
, o = t("./helper")
, l = [".png", ".jpg", ".bmp", ".jpeg", ".gif", ".ico", ".tiff", ".webp", ".image", ".pvr", ".pkm"]
, h = [".mp3", ".ogg", ".wav", ".m4a"];
function c() {
return !0
}
var u = {
transformURL: function(t) {
var e = o.getUuidFromURL(t);
if (!e)
return t;
var i = cc.assetManager.bundles.find((function(t) {
return !!t.getAssetInfo(e)
}
));
if (!i)
return t;
var n, r = i.getAssetInfo(e);
if (!(n = t.startsWith(i.base + i._config.nativeBase) ? r.nativeVer || "" : r.ver || "") || -1 !== t.indexOf(n))
return t;
var s = !1;
if (".ttf" === cc.path.extname(t) && (s = !0),
s) {
var a = cc.path.dirname(t)
, l = cc.path.basename(t);
t = a + "." + n + "/" + l
} else
t = t.replace(/.*[/\\][0-9a-fA-F]{2}[/\\]([0-9a-fA-F-]{8,})/, (function(t) {
return t + "." + n
}
));
return t
}
}
, _ = {
onProgress: null,
_autoReleaseSetting: Object.create(null),
get _cache() {
return cc.assetManager.assets._map
},
load: function(t, e, i) {
void 0 === i && void 0 !== e && (i = e,
e = null),
t = Array.isArray(t) ? t : [t];
for (var n = 0; n < t.length; n++) {
var r = t[n];
"string" == typeof r ? t[n] = {
url: r,
__isNative__: !0
} : (r.type && (r.ext = "." + r.type,
r.type = void 0),
r.url && (r.__isNative__ = !0))
}
var s = []
, o = [];
cc.assetManager.loadAny(t, null, (function(t, i, n) {
n.content && (l.includes(n.ext) ? s.push(n.content) : h.includes(n.ext) && o.push(n.content)),
e && e(t, i, n)
}
), (function(e, n) {
var r = null;
if (!e) {
n = Array.isArray(n) ? n : [n];
for (var l = 0; l < n.length; l++) {
var h = n[l];
if (!(h instanceof cc.Asset)) {
var u = h
, _ = t[l].url;
s.includes(u) ? a.create(_, h, ".png", null, (function(t, e) {
u = n[l] = e
}
)) : o.includes(u) && a.create(_, h, ".mp3", null, (function(t, e) {
u = n[l] = e
}
)),
cc.assetManager.assets.add(_, u)
}
}
if (n.length > 1) {
var f = Object.create(null);
n.forEach((function(t) {
f[t._uuid] = t
}
)),
r = {
isCompleted: c,
_map: f
}
} else
r = n[0]
}
i && i(e, r)
}
))
},
getXMLHttpRequest: function() {
return new XMLHttpRequest
},
_parseLoadResArgs: i.parseLoadResArgs,
getItem: function(t) {
return cc.assetManager.assets.has(t) ? {
content: cc.assetManager.assets.get(t)
} : null
},
loadRes: function(t, e, i, n) {
var r = this._parseLoadResArgs(e, i, n)
, s = (e = r.type,
r.onProgress)
, a = r.onComplete
, o = cc.path.extname(t);
o && (t = t.slice(0, -o.length)),
cc.resources.load(t, e, s, a)
},
loadResArray: function(t, e, i, n) {
var r = this._parseLoadResArgs(e, i, n)
, s = (e = r.type,
r.onProgress)
, a = r.onComplete;
t.forEach((function(e, i) {
var n = cc.path.extname(e);
n && (t[i] = e.slice(0, -n.length))
}
)),
cc.resources.load(t, e, s, a)
},
loadResDir: function(t, e, i, n) {
var r = this._parseLoadResArgs(e, i, n)
, s = (e = r.type,
r.onProgress)
, a = r.onComplete;
cc.resources.loadDir(t, e, s, (function(i, n) {
var r = [];
i || (r = cc.resources.getDirWithPath(t, e).map((function(t) {
return t.path
}
))),
a && a(i, n, r)
}
))
},
getRes: function(t, e) {
return cc.assetManager.assets.has(t) ? cc.assetManager.assets.get(t) : cc.resources.get(t, e)
},
getResCount: function() {
return cc.assetManager.assets.count
},
getDependsRecursively: function(t) {
return t ? n.getDepsRecursively("string" == typeof t ? t : t._uuid).concat([t._uuid]) : []
},
get assetLoader() {},
get md5Pipe() {
return u
},
get downloader() {
return cc.assetManager.downloader
},
get loader() {
return cc.assetManager.parser
},
addDownloadHandlers: function(t) {
var e = Object.create(null);
for (var i in t) {
var n = t[i];
e["." + i] = function(t, e, i) {
n({
url: t
}, i)
}
}
cc.assetManager.downloader.register(e)
},
addLoadHandlers: function(t) {
var e = Object.create(null);
for (var i in t) {
var n = t[i];
e["." + i] = function(t, e, i) {
n({
content: t
}, i)
}
}
cc.assetManager.parser.register(e)
},
flowInDeps: function() {},
release: function(t) {
if (Array.isArray(t))
for (var e = 0; e < t.length; e++) {
var i = t[e];
"string" == typeof i && (i = cc.assetManager.assets.get(i)),
cc.assetManager.builtins._assets.find((function(t) {
return t.find((function(t) {
return t === i
}
))
}
)) || cc.assetManager.releaseAsset(i)
}
else if (t) {
if ("string" == typeof t && (t = cc.assetManager.assets.get(t)),
cc.assetManager.builtins._assets.find((function(e) {
return e.find((function(e) {
return e === t
}
))
}
)))
return;
cc.assetManager.releaseAsset(t)
}
},
releaseAsset: function(t) {
cc.assetManager.releaseAsset(t)
},
releaseRes: function(t, e) {
cc.resources.release(t, e)
},
releaseResDir: function() {},
releaseAll: function() {
cc.assetManager.releaseAll(),
cc.assetManager.assets.clear()
},
removeItem: function(t) {
cc.assetManager.assets.remove(t)
},
setAutoRelease: function(t, e) {
"object" == typeof t && (t = t._uuid),
this._autoReleaseSetting[t] = !!e
},
setAutoReleaseRecursively: function(t, e) {
"object" == typeof t && (t = t._uuid),
e = !!e,
this._autoReleaseSetting[t] = e;
for (var i = n.getDepsRecursively(t), r = 0; r < i.length; r++) {
var s = i[r];
this._autoReleaseSetting[s] = e
}
},
isAutoRelease: function(t) {
return "object" == typeof t && (t = t._uuid),
!!this._autoReleaseSetting[t]
}
};
s.loadSubpackage = function(t, e) {
cc.assetManager.loadBundle(t, null, e)
}
;
var f = {
init: function(t) {
t.importBase = t.libraryPath,
t.nativeBase = t.rawAssetsBase,
cc.assetManager.init(t),
t.rawAssets && (new cc.AssetManager.Bundle).init({
name: cc.AssetManager.BuiltinBundleName.RESOURCES,
importBase: t.importBase,
nativeBase: t.nativeBase,
paths: t.rawAssets.assets,
uuids: Object.keys(t.rawAssets.assets)
})
},
loadAsset: function(t, e) {
cc.assetManager.loadAny(t, e)
},
getLibUrlNoExt: function() {},
queryAssetInfo: function() {}
};
cc.url = {
normalize: function(t) {
return cc.warnID(1400, "cc.url.normalize", "cc.assetManager.utils.normalize"),
cc.assetManager.utils.normalize(t)
},
raw: function(t) {
return cc.warnID(1400, "cc.url.raw", "cc.resources.load"),
t.startsWith("resources/") ? cc.assetManager._transform({
path: cc.path.changeExtname(t.substr(10)),
bundle: cc.AssetManager.BuiltinBundleName.RESOURCES,
__isNative__: !0,
ext: cc.path.extname(t)
}) : ""
}
},
Object.defineProperties(cc, {
loader: {
get: function() {
return _
}
},
AssetLibrary: {
get: function() {
return f
}
},
LoadingItems: {
get: function() {
return cc.warnID(1400, "cc.LoadingItems", "cc.AssetManager.Task"),
cc.AssetManager.Task
}
},
Pipeline: {
get: function() {
return cc.warnID(1400, "cc.Pipeline", "cc.AssetManager.Pipeline"),
cc.AssetManager.Pipeline
}
}
}),
e.obsolete(cc, "cc.RawAsset", "cc.Asset"),
e.obsolete(cc.Asset.prototype, "cc.Asset.url", "nativeUrl"),
Object.defineProperties(cc.macro, {
DOWNLOAD_MAX_CONCURRENT: {
get: function() {
return cc.assetManager.downloader.maxConcurrency
},
set: function(t) {
cc.assetManager.downloader.maxConcurrency = t
}
}
}),
Object.assign(cc.director, {
_getSceneUuid: function(t) {
cc.assetManager.main.getSceneInfo(t)
}
}),
Object.defineProperties(cc.game, {
_sceneInfos: {
get: function() {
var t = [];
return cc.assetManager.main._config.scenes.forEach((function(e) {
t.push(e)
}
)),
t
}
}
});
var d = i.parseParameters;
i.parseParameters = function(t, e, i) {
var n = d(t, e, i);
return n.onProgress = n.onProgress || _.onProgress,
n
}
;
var p = r._autoRelease;
r._autoRelease = function() {
p.apply(this, arguments);
for (var t = _._autoReleaseSetting, e = Object.keys(t), i = 0; i < e.length; i++) {
var n = e[i];
if (!0 === t[n]) {
var s = cc.assetManager.assets.get(n);
s && r.tryRelease(s)
}
}
}
}
), {
"../CCDirector": 27,
"../platform/js": 214,
"./depend-util": 38,
"./downloader": 45,
"./factory": 46,
"./helper": 49,
"./releaseManager": 56,
"./utilities": 61
}],
40: [(function(t, e) {
"use strict";
var i = t("./helper");
t("../platform/deserialize"),
e.exports = function(t, e) {
var n;
n = cc._MissingScript.safeFindClass;
var r, s = null, a = (s = cc.deserialize.Details.pool).get();
try {
r = cc.deserialize(t, a, {
classFinder: n,
customEnv: e
})
} catch (f) {
throw s.put(a),
f
}
for (var o = a.uuidList, l = a.uuidObjList, h = a.uuidPropList, c = [], u = 0; u < o.length; u++) {
var _ = o[u];
c[u] = {
uuid: i.decodeUuid(_),
owner: l[u],
prop: h[u]
}
}
return r.__depends__ = c,
r._native && (r.__nativeDepend__ = !0),
s.put(a),
r
}
}
), {
"../platform/deserialize": 209,
"../platform/deserialize-compiled": 208,
"../platform/deserialize-editor": void 0,
"./helper": 49
}],
41: [(function(t, e) {
"use strict";
var i = cc.sys.__audioSupport
, n = t("./utilities").parseParameters;
e.exports = function(t, e, r) {
var s = n(e, void 0, r)
, a = (e = s.options,
r = s.onComplete,
document.createElement("audio"));
a.src = t;
var o = function() {
clearTimeout(l),
a.removeEventListener("canplaythrough", h, !1),
a.removeEventListener("error", c, !1),
i.USE_LOADER_EVENT && a.removeEventListener(i.USE_LOADER_EVENT, h, !1)
}
, l = setTimeout((function() {
0 === a.readyState ? c() : h()
}
), 8e3)
, h = function() {
o(),
r && r(null, a)
}
, c = function() {
o();
var e = "load audio failure - " + t;
cc.log(e),
r && r(new Error(e))
};
return a.addEventListener("canplaythrough", h, !1),
a.addEventListener("error", c, !1),
i.USE_LOADER_EVENT && a.addEventListener(i.USE_LOADER_EVENT, h, !1),
a
}
}
), {
"./utilities": 61
}],
42: [(function(t, e) {
"use strict";
var i = t("./utilities").parseParameters;
e.exports = function(t, e, n) {
var r = i(e, void 0, n)
, s = (e = r.options,
n = r.onComplete,
new Image);
function a() {
s.removeEventListener("load", a),
s.removeEventListener("error", o),
n && n(null, s)
}
function o() {
s.removeEventListener("load", a),
s.removeEventListener("error", o),
n && n(new Error(cc.debug.getError(4930, t)))
}
return "file:" !== window.location.protocol && (s.crossOrigin = "anonymous"),
s.addEventListener("load", a),
s.addEventListener("error", o),
s.src = t,
s
}
}
), {
"./utilities": 61
}],
43: [(function(t, e) {
"use strict";
var i = t("./utilities").parseParameters;
e.exports = function(t, e, n, r) {
var s = i(e, n, r)
, a = (e = s.options,
n = s.onProgress,
r = s.onComplete,
new XMLHttpRequest)
, o = "download failed: " + t + ", status: ";
if (a.open("GET", t, !0),
void 0 !== e.responseType && (a.responseType = e.responseType),
void 0 !== e.withCredentials && (a.withCredentials = e.withCredentials),
void 0 !== e.mimeType && a.overrideMimeType && a.overrideMimeType(e.mimeType),
void 0 !== e.timeout && (a.timeout = e.timeout),
e.header)
for (var l in e.header)
a.setRequestHeader(l, e.header[l]);
return a.onload = function() {
200 === a.status || 0 === a.status ? r && r(null, a.response) : r && r(new Error(o + a.status + "(no response)"))
}
,
n && (a.onprogress = function(t) {
t.lengthComputable && n(t.loaded, t.total)
}
),
a.onerror = function() {
r && r(new Error(o + a.status + "(error)"))
}
,
a.ontimeout = function() {
r && r(new Error(o + a.status + "(time out)"))
}
,
a.onabort = function() {
r && r(new Error(o + a.status + "(abort)"))
}
,
a.send(null),
a
}
}
), {
"./utilities": 61
}],
44: [(function(t, e) {
"use strict";
var i = t("./utilities").parseParameters
, n = {};
e.exports = function(t, e, r) {
var s = i(e, void 0, r);
if (e = s.options,
r = s.onComplete,
n[t])
return r && r(null);
var a = document
, o = document.createElement("script");
function l() {
o.parentNode.removeChild(o),
o.removeEventListener("load", l, !1),
o.removeEventListener("error", h, !1),
n[t] = !0,
r && r(null)
}
function h() {
o.parentNode.removeChild(o),
o.removeEventListener("load", l, !1),
o.removeEventListener("error", h, !1),
r && r(new Error(cc.debug.getError(4928, t)))
}
"file:" !== window.location.protocol && (o.crossOrigin = "anonymous"),
o.async = e.async,
o.src = t,
o.addEventListener("load", l, !1),
o.addEventListener("error", h, !1),
a.body.appendChild(o)
}
}
), {
"./utilities": 61
}],
45: [(function(t, e) {
"use strict";
var i = t("../platform/js")
, n = t("../CCDebug")
, r = t("./font-loader").loadFont
, s = t("../platform/utils").callInNextTick
, a = t("./download-dom-image")
, o = t("./download-dom-audio")
, l = t("./download-file")
, h = t("./download-script.js")
, c = t("./cache")
, u = t("./shared").files
, _ = t("../platform/CCSys")
, f = _.__audioSupport
, d = _.capabilities
, p = t("./utilities")
, m = p.urlAppendTimestamp
, y = p.retry
, v = /^(?:\w+:\/\/|\.+\/).+/
, g = function(t, e, i) {
e.audioLoadMode !== cc.AudioClip.LoadMode.DOM_AUDIO ? C(t, e, i) : o(t, e, i)
}
, A = (g = 0 === (f.format || []).length ? function(t, e, i) {
i(new Error(n.getError(4927)))
}
: f.WEB_AUDIO ? g : o,
function() {
var t = d.imageBitmap && cc.macro.ALLOW_IMAGE_BITMAP ? x : a;
t.apply(this, arguments)
}
)
, x = function(t, e, i) {
e.responseType = "blob",
l(t, e, e.onFileProgress, i)
}
, b = function(t, e, i) {
e.responseType = "json",
l(t, e, e.onFileProgress, (function(t, e) {
if (!t && "string" == typeof e)
try {
e = JSON.parse(e)
} catch (n) {
t = n
}
i && i(t, e)
}
))
}
, C = function(t, e, i) {
e.responseType = "arraybuffer",
l(t, e, e.onFileProgress, i)
}
, T = function(t, e, i) {
e.responseType = "text",
l(t, e, e.onFileProgress, i)
}
, S = function(t, e, i) {
i(null, t)
}
, w = new c
, E = []
, M = !1
, D = 0
, B = 0
, I = -1
, P = !1
, R = function() {
var t = Date.now()
, e = cc.director._deltaTime > L._maxInterval ? L._maxInterval : cc.director._deltaTime;
t - I > 1e3 * e && (B = 0,
I = t)
}
, O = function t(e, i) {
for (P = !1,
R(); E.length > 0 && D < e && B < i; ) {
M && (E.sort((function(t, e) {
return t.priority - e.priority
}
)),
M = !1);
var n = E.pop();
if (!n)
break;
D++,
B++,
n.invoke()
}
E.length > 0 && D < e && (s(t, e, i),
P = !0)
}
, L = {
_remoteServerAddress: "",
_maxInterval: 1 / 30,
get remoteServerAddress() {
return this._remoteServerAddress
},
maxConcurrency: 6,
maxRequestsPerFrame: 6,
maxRetryCount: 3,
appendTimeStamp: !1,
limited: !0,
retryInterval: 2e3,
bundleVers: null,
downloadDomImage: a,
downloadDomAudio: o,
downloadFile: l,
downloadScript: h,
init: function(t, e) {
w.clear(),
E.length = 0,
this._remoteServerAddress = e || "",
this.bundleVers = t || Object.create(null)
},
register: function(t, e) {
"object" == typeof t ? i.mixin(F, t) : F[t] = e
},
download: function(t, e, i, n, r) {
var a, o, l = F[i] || F.default, h = this;
if (a = u.get(t))
r(null, a);
else if (o = w.get(t)) {
o.push(r);
for (var c = 0, _ = E.length; c < _; c++) {
var f = E[c];
if (f.id === t) {
var d = n.priority || 0;
return void (f.priority < d && (f.priority = d,
M = !0))
}
}
} else {
var p = void 0 !== n.maxRetryCount ? n.maxRetryCount : this.maxRetryCount
, v = void 0 !== n.maxConcurrency ? n.maxConcurrency : this.maxConcurrency
, g = void 0 !== n.maxRequestsPerFrame ? n.maxRequestsPerFrame : this.maxRequestsPerFrame;
y((function(i, a) {
if (0 === i && w.add(t, [r]),
!h.limited)
return l(m(e), n, a);
function o() {
l(m(e), n, (function() {
D--,
!P && E.length > 0 && (s(O, v, g),
P = !0),
a.apply(this, arguments)
}
))
}
R(),
D < v && B < g ? (o(),
D++,
B++) : (E.push({
id: t,
priority: n.priority || 0,
invoke: o
}),
M = !0,
!P && D < v && (s(O, v, g),
P = !0))
}
), p, this.retryInterval, (function(e, i) {
e || u.add(t, i);
for (var n = w.remove(t), r = 0, s = n.length; r < s; r++)
n[r](e, i)
}
))
}
}
}
, F = {
".png": A,
".jpg": A,
".bmp": A,
".jpeg": A,
".gif": A,
".ico": A,
".tiff": A,
".webp": A,
".image": A,
".pvr": C,
".pkm": C,
".mp3": g,
".ogg": g,
".wav": g,
".m4a": g,
".txt": T,
".xml": T,
".vsh": T,
".fsh": T,
".atlas": T,
".tmx": T,
".tsx": T,
".json": b,
".ExportJson": b,
".plist": T,
".fnt": T,
".font": r,
".eot": r,
".ttf": r,
".woff": r,
".svg": r,
".ttc": r,
".mp4": S,
".avi": S,
".mov": S,
".mpg": S,
".mpeg": S,
".rm": S,
".rmvb": S,
".binary": C,
".bin": C,
".dbbin": C,
".skel": C,
".js": h,
bundle: function(t, e, i) {
var n = cc.path.basename(t)
, r = t;
v.test(r) || (r = "assets/" + n);
var s = e.version || L.bundleVers[n]
, a = 0
, o = null
, l = null;
b(r + "/config." + (s ? s + "." : "") + "json", e, (function(t, e) {
t && (l = t),
(o = e) && (o.base = r + "/"),
2 == ++a && i(l, o)
}
)),
h(r + "/index." + (s ? s + "." : "") + "js", e, (function(t) {
t && (l = t),
2 == ++a && i(l, o)
}
))
},
default: T
};
L._downloaders = F,
e.exports = L
}
), {
"../CCDebug": 26,
"../platform/CCSys": 202,
"../platform/js": 214,
"../platform/utils": 217,
"./cache": 36,
"./download-dom-audio": 41,
"./download-dom-image": 42,
"./download-file": 43,
"./download-script.js": 44,
"./font-loader": 48,
"./shared": 58,
"./utilities": 61
}],
46: [(function(t, e) {
"use strict";
var i = t("./bundle")
, n = t("./cache")
, r = t("./shared")
, s = r.assets
, a = r.bundles
, o = new n;
function l(t, e, i, n) {
var r = null
, s = null;
try {
(r = new cc.Texture2D)._nativeUrl = t,
r._nativeAsset = e
} catch (a) {
s = a
}
n && n(s, r)
}
function h(t, e, i, n) {
var r = new cc.AudioClip;
r._nativeUrl = t,
r._nativeAsset = e,
r.duration = e.duration,
n && n(null, r)
}
function c(t, e, i, n) {
var r = new cc.JsonAsset;
r.json = e,
n && n(null, r)
}
function u(t, e, i, n) {
var r = new cc.TextAsset;
r.text = e,
n && n(null, r)
}
function _(t, e, i, n) {
var r = new cc.TTFFont;
r._nativeUrl = t,
r._nativeAsset = e,
n && n(null, r)
}
function f(t, e, i, n) {
var r = new cc.BufferAsset;
r._nativeUrl = t,
r._nativeAsset = e,
n && n(null, r)
}
var d = {
register: function(t, e) {
"object" == typeof t ? cc.js.mixin(p, t) : p[t] = e
},
create: function(t, e, i, n, r) {
var a, l, h = p[i] || p.default;
(a = s.get(t)) ? r(null, a) : (l = o.get(t)) ? l.push(r) : (o.add(t, [r]),
h(t, e, n, (function(e, i) {
!e && i instanceof cc.Asset && (i._uuid = t,
s.add(t, i));
for (var n = o.remove(t), r = 0, a = n.length; r < a; r++)
n[r](e, i)
}
)))
}
}
, p = {
".png": l,
".jpg": l,
".bmp": l,
".jpeg": l,
".gif": l,
".ico": l,
".tiff": l,
".webp": l,
".image": l,
".pvr": l,
".pkm": l,
".mp3": h,
".ogg": h,
".wav": h,
".m4a": h,
".txt": u,
".xml": u,
".vsh": u,
".fsh": u,
".atlas": u,
".tmx": u,
".tsx": u,
".fnt": u,
".json": c,
".ExportJson": c,
".font": _,
".eot": _,
".ttf": _,
".woff": _,
".svg": _,
".ttc": _,
".binary": f,
".bin": f,
".dbbin": f,
".skel": f,
bundle: function(t, e, n, r) {
var s = a.get(e.name);
s || (s = new i,
e.base = e.base || t + "/",
s.init(e)),
r && r(null, s)
},
default: function(t, e, i, n) {
var r = new cc.Asset;
r._nativeUrl = t,
r._nativeAsset = e,
n && n(null, r)
}
};
e.exports = d
}
), {
"./bundle": 35,
"./cache": 36,
"./shared": 58
}],
47: [(function(t, e) {
"use strict";
var i = t("./pack-manager")
, n = t("./task")
, r = t("./utilities")
, s = r.getDepends
, a = r.clear
, o = r.forEach
, l = t("./shared")
, h = l.assets
, c = l.fetchPipeline;
function u(t) {
for (var e = t.output, i = 0, n = e.length; i < n; i++)
e[i].content && e[i].content.decRef(!1)
}
function _(t, e, i, n, r, a, o) {
var l = e.options.__exclude__
, h = e.progress;
t.content = i,
t.file = n,
e.output.push(t),
r && (l[t.uuid] = !0,
s(t.uuid, n || i, l, a, !0, !1, t.config),
h.total = o + a.length),
h.canInvoke && e.dispatch("progress", ++h.finish, h.total, t)
}
e.exports = function(t, e) {
var r = !1;
t.progress || (t.progress = {
finish: 0,
total: t.input.length,
canInvoke: !0
},
r = !0);
var s = t.options
, l = []
, f = t.progress
, d = f.total;
s.__exclude__ = s.__exclude__ || Object.create(null),
t.output = [],
o(t.input, (function(n, s) {
if (!n.isNative && h.has(n.uuid)) {
var a = h.get(n.uuid);
return a.addRef(),
_(n, t, a, null, a.__asyncLoadAssets__, l, d),
s()
}
i.load(n, t.options, (function(i, a) {
i ? t.isFinish || (!cc.assetManager.force || r ? (cc.error(i.message, i.stack),
f.canInvoke = !1,
e(i)) : _(n, t, null, null, !1, l, d)) : t.isFinish || _(n, t, null, a, !n.isNative, l, d),
s()
}
))
}
), (function() {
if (t.isFinish)
return a(t, !0),
t.dispatch("error");
if (l.length > 0) {
var i = n.create({
name: t.name + " dependencies",
input: l,
progress: f,
options: s,
onProgress: t.onProgress,
onError: n.prototype.recycle,
onComplete: function(n) {
n || (t.output.push.apply(t.output, this.output),
i.recycle()),
r && u(t),
e(n)
}
});
c.async(i)
} else
r && u(t),
e()
}
))
}
}
), {
"./pack-manager": 52,
"./shared": 58,
"./task": 59,
"./utilities": 61
}],
48: [(function(t, e) {
"use strict";
var i, n = t("../utils/text-utils"), r = null, s = "BES bswy:->@123\u4e01\u3041\u1101", a = Object.create(null), o = -1, l = [], h = 3e3, c = (i = void 0,
function() {
if (void 0 === i)
if (window.FontFace) {
var t = /Gecko.*Firefox\/(\d+)/.exec(window.navigator.userAgent)
, e = /OS X.*Version\/10\..*Safari/.exec(window.navigator.userAgent) && /Apple/.exec(window.navigator.vendor);
i = t ? parseInt(t[1], 10) > 42 : !e
} else
i = !1;
return i
}
);
function u() {
for (var t = !0, e = Date.now(), i = l.length - 1; i >= 0; i--) {
var a = l[i]
, c = a.fontFamilyName;
if (e - a.startTime > h)
cc.warnID(4933, c),
a.onComplete(null, c),
l.splice(i, 1);
else {
var u = a.refWidth
, _ = "40px " + c;
r.font = _,
u !== n.safeMeasureText(r, s, _) ? (l.splice(i, 1),
a.onComplete(null, c)) : t = !1
}
}
t && (clearInterval(o),
o = -1)
}
var _ = {
loadFont: function(t, e, i) {
var f = _._getFontFamily(t);
if (a[f])
return i(null, f);
if (!r) {
var d = document.createElement("canvas");
d.width = 100,
d.height = 100,
r = d.getContext("2d")
}
var p = "40px " + f;
r.font = p;
var m = n.safeMeasureText(r, s, p)
, y = document.createElement("style");
y.type = "text/css";
var v = "";
isNaN(f - 0) ? v += "@font-face { font-family:" + f + "; src:" : v += "@font-face { font-family:'" + f + "'; src:",
v += "url('" + t + "');",
y.textContent = v + "}",
document.body.appendChild(y);
var g, A, x, b, C, T, S = document.createElement("div"), w = S.style;
if (w.fontFamily = f,
S.innerHTML = ".",
w.position = "absolute",
w.left = "-100px",
w.top = "-100px",
document.body.appendChild(S),
c())
g = Date.now(),
A = f,
x = i,
b = new Promise(function(t, e) {
(function i() {
Date.now() - g >= h ? e() : document.fonts.load("40px " + A).then((function(e) {
e.length >= 1 ? t() : setTimeout(i, 100)
}
), (function() {
e()
}
))
}
)()
}
),
C = null,
T = new Promise(function(t, e) {
C = setTimeout(e, h)
}
),
Promise.race([T, b]).then((function() {
C && (clearTimeout(C),
C = null),
x(null, A)
}
), (function() {
cc.warnID(4933, A),
x(null, A)
}
));
else {
var E = {
fontFamilyName: f,
refWidth: m,
onComplete: i,
startTime: Date.now()
};
l.push(E),
-1 === o && (o = setInterval(u, 100))
}
a[f] = y
},
_getFontFamily: function(t) {
var e = t.lastIndexOf(".ttf");
if (-1 === e)
return t;
var i, n = t.lastIndexOf("/");
return -1 !== (i = -1 === n ? t.substring(0, e) + "_LABEL" : t.substring(n + 1, e) + "_LABEL").indexOf(" ") && (i = '"' + i + '"'),
i
}
};
e.exports = _
}
), {
"../utils/text-utils": 274
}],
49: [(function(t, e) {
"use strict";
var i, n = t("./shared").bundles, r = {
decodeUuid: t("../utils/decode-uuid"),
getUuidFromURL: (i = /.*[/\\][0-9a-fA-F]{2}[/\\]([0-9a-fA-F-]{8,})/,
function(t) {
var e = t.match(i);
return e ? e[1] : ""
}
),
getUrlWithUuid: function(t, e) {
(e = e || Object.create(null)).__isNative__ = e.isNative,
e.ext = e.nativeExt;
var i = n.find((function(e) {
return e.getAssetInfo(t)
}
));
return i && (e.bundle = i.name),
cc.assetManager._transform(t, e)
},
isScene: function(t) {
return t && (t.constructor === cc.SceneAsset || t instanceof cc.Scene)
},
normalize: function(t) {
return t && (46 === t.charCodeAt(0) && 47 === t.charCodeAt(1) ? t = t.slice(2) : 47 === t.charCodeAt(0) && (t = t.slice(1))),
t
}
};
e.exports = r
}
), {
"../utils/decode-uuid": 262,
"./shared": 58
}],
50: [(function(t) {
"use strict";
t("./deprecated"),
t("./CCAssetManager")
}
), {
"./CCAssetManager": 33,
"./deprecated": 39
}],
51: [(function(t, e) {
"use strict";
var i = t("./pack-manager")
, n = t("./pipeline")
, r = t("./parser")
, s = t("./utilities")
, a = s.getDepends
, o = s.cache
, l = s.gatherAsset
, h = s.setProperties
, c = s.forEach
, u = s.clear
, _ = s.checkCircleReference
, f = t("./shared")
, d = f.assets
, p = f.files
, m = f.parsed
, y = f.pipeline
, v = t("./task")
, g = new n("loadOneAsset",[function(t, e) {
var n = t.output = t.input
, r = n.options
, s = n.isNative
, a = n.uuid
, o = n.file
, l = r.reload;
if (o || !l && !s && d.has(a))
return e();
i.load(n, t.options, (function(t, i) {
n.file = i,
e(t)
}
))
}
, function(t, e) {
var i = t.output = t.input
, n = t.progress
, s = t.options.__exclude__
, a = i.id
, o = i.file
, l = i.options;
if (i.isNative)
r.parse(a, o, i.ext, l, (function(r, s) {
if (r)
return e(r);
i.content = s,
n.canInvoke && t.dispatch("progress", ++n.finish, n.total, i),
p.remove(a),
m.remove(a),
e()
}
));
else {
var h = i.uuid;
if (h in s) {
var c = s[h]
, u = c.finish
, f = c.content
, y = c.err
, v = c.callbacks;
n.canInvoke && t.dispatch("progress", ++n.finish, n.total, i),
u || _(h, h, s) ? (f && f.addRef && f.addRef(),
i.content = f,
e(y)) : v.push({
done: e,
item: i
})
} else if (!l.reload && d.has(h)) {
var g = d.get(h);
l.__asyncLoadAssets__ || !g.__asyncLoadAssets__ ? (i.content = g.addRef(),
n.canInvoke && t.dispatch("progress", ++n.finish, n.total, i),
e()) : A(t, g, e, !1)
} else
r.parse(a, o, "import", l, (function(i, n) {
if (i)
return e(i);
n._uuid = h,
A(t, n, e, !0)
}
))
}
}
]);
function A(t, e, i, n) {
var r = t.input
, s = t.progress
, l = r.uuid
, c = r.id
, u = r.options
, _ = r.config
, f = u.__asyncLoadAssets__
, d = u.cacheAsset
, g = [];
e.addRef && e.addRef(),
a(l, e, Object.create(null), g, !1, f, _),
s.canInvoke && t.dispatch("progress", ++s.finish, s.total += g.length, r);
var A = t.options.__exclude__[l] = {
content: e,
finish: !1,
callbacks: [{
done: i,
item: r
}]
}
, x = v.create({
input: g,
options: t.options,
onProgress: t.onProgress,
onError: v.prototype.recycle,
progress: s,
onComplete: function(t) {
if (e.decRef && e.decRef(!1),
e.__asyncLoadAssets__ = f,
A.finish = !0,
A.err = t,
!t) {
for (var i = Array.isArray(x.output) ? x.output : [x.output], r = Object.create(null), s = 0, a = i.length; s < a; s++) {
var u = i[s];
u && (r[u instanceof cc.Asset ? u._uuid + "@import" : l + "@native"] = u)
}
if (n) {
if (!h(l, e, r) && !e.__onLoadInvoked__)
try {
e.onLoad && e.onLoad(),
e.__onLoadInvoked__ = !0
} catch (b) {
cc.error(b.message, b.stack)
}
p.remove(c),
m.remove(c),
o(l, e, void 0 !== d ? d : cc.assetManager.cacheAsset)
} else if (e.__nativeDepend__ && !e._nativeAsset && !h(l, e, r) && !e.__onLoadInvoked__)
try {
e.onLoad && e.onLoad(),
e.__onLoadInvoked__ = !0
} catch (b) {
cc.error(b.message, b.stack)
}
x.recycle()
}
for (var _ = A.callbacks, y = 0, v = _.length; y < v; y++) {
var g = _[y];
e.addRef && e.addRef(),
g.item.content = e,
g.done(t)
}
_.length = 0
}
});
y.async(x)
}
e.exports = function(t, e) {
var i = !1;
t.progress || (t.progress = {
finish: 0,
total: t.input.length,
canInvoke: !0
},
i = !0);
var n = t.options
, r = t.progress;
n.__exclude__ = n.__exclude__ || Object.create(null),
t.output = [],
c(t.input, (function(s, a) {
var o = v.create({
input: s,
onProgress: t.onProgress,
options: n,
progress: r,
onComplete: function(n, s) {
n && !t.isFinish && (!cc.assetManager.force || i ? (cc.error(n.message, n.stack),
r.canInvoke = !1,
e(n)) : r.canInvoke && t.dispatch("progress", ++r.finish, r.total, s)),
t.output.push(s),
o.recycle(),
a()
}
});
g.async(o)
}
), (function() {
if (n.__exclude__ = null,
t.isFinish)
return u(t, !0),
t.dispatch("error");
l(t),
u(t, !0),
e()
}
))
}
}
), {
"./pack-manager": 52,
"./parser": 53,
"./pipeline": 54,
"./shared": 58,
"./task": 59,
"./utilities": 61
}],
52: [(function(t, e) {
"use strict";
var i = t("../platform/deserialize-compiled")
, n = t("./downloader")
, r = t("./cache")
, s = t("../platform/js")
, a = t("./shared").files
, o = new r;
function l(t) {
return o.has(t.uuid)
}
var h = {
unpackJson: function(t, e, n, r) {
var a = s.createMap(!0)
, o = null;
if (Array.isArray(e)) {
(e = (0,
i.unpackJSONs)(e)).length !== t.length && cc.errorID(4915);
for (var l = 0; l < t.length; l++)
a[t[l] + "@import"] = e[l]
} else {
var h = s._getClassId(cc.Texture2D);
if (e.type === h) {
if (e.data) {
var c = e.data.split("|");
c.length !== t.length && cc.errorID(4915);
for (var u = 0; u < t.length; u++)
a[t[u] + "@import"] = (0,
i.packCustomObjData)(h, c[u], !0)
}
} else
o = new Error("unmatched type pack!"),
a = null
}
r && r(o, a)
},
init: function() {
o.clear()
},
register: function(t, e) {
"object" == typeof t ? s.mixin(c, t) : c[t] = e
},
unpack: function(t, e, i, n, r) {
e ? (0,
c[i])(t, e, n, r) : r && r(new Error("package data is wrong!"))
},
load: function(t, e, i) {
if (t.isNative || !t.info || !t.info.packs)
return n.download(t.id, t.url, t.ext, t.options, i);
if (a.has(t.id))
return i(null, a.get(t.id));
var r = t.info.packs
, s = r.find(l);
if (s)
return o.get(s.uuid).push({
onComplete: i,
id: t.id
});
s = r[0],
o.add(s.uuid, [{
onComplete: i,
id: t.id
}]);
var c = cc.assetManager._transform(s.uuid, {
ext: s.ext,
bundle: t.config.name
});
n.download(s.uuid, c, s.ext, t.options, (function(e, i) {
a.remove(s.uuid),
e && cc.error(e.message, e.stack),
h.unpack(s.packs, i, s.ext, t.options, (function(t, e) {
if (!t)
for (var i in e)
a.add(i, e[i]);
for (var n = o.remove(s.uuid), r = 0, l = n.length; r < l; r++) {
var h = n[r];
if (t)
h.onComplete(t);
else {
var c = e[h.id];
c ? h.onComplete(null, c) : h.onComplete(new Error("can not retrieve data from package"))
}
}
}
))
}
))
}
}
, c = {
".json": h.unpackJson
};
e.exports = h
}
), {
"../platform/deserialize-compiled": 208,
"../platform/js": 214,
"./cache": 36,
"./downloader": 45,
"./shared": 58
}],
53: [(function(t, e) {
"use strict";
var i = t("../platform/CCSAXParser").plistParser
, n = t("../platform/js")
, r = t("./deserialize")
, s = t("./cache")
, a = t("./helper").isScene
, o = t("./shared")
, l = o.parsed
, h = o.files
, c = t("../platform/CCSys")
, u = c.__audioSupport
, _ = c.capabilities
, f = new s
, d = {
parseImage: function(t, e, i) {
if (_.imageBitmap && t instanceof Blob) {
var n = {};
n.imageOrientation = e.__flipY__ ? "flipY" : "none",
n.premultiplyAlpha = e.__premultiplyAlpha__ ? "premultiply" : "none",
createImageBitmap(t, n).then((function(t) {
t.flipY = !!e.__flipY__,
t.premultiplyAlpha = !!e.__premultiplyAlpha__,
i && i(null, t)
}
), (function(t) {
i && i(t, null)
}
))
} else
i && i(null, t)
},
parseAudio: function(t, e, i) {
t instanceof ArrayBuffer ? u.context.decodeAudioData(t, (function(t) {
i && i(null, t)
}
), (function(t) {
i && i(t, null)
}
)) : i && i(null, t)
},
parsePVRTex: function(t, e, i) {
var n = null
, r = null;
try {
var s = t instanceof ArrayBuffer ? t : t.buffer
, a = new Int32Array(s,0,13);
if (55727696 != a[0])
throw new Error("Invalid magic number in PVR header");
var o = a[7]
, l = a[6]
, h = a[12] + 52;
r = {
_data: new Uint8Array(s,h),
_compressed: !0,
width: o,
height: l
}
} catch (c) {
n = c
}
i && i(n, r)
},
parsePKMTex: (function() {
function t(t, e) {
return t[e] << 8 | t[e + 1]
}
return function(e, i, n) {
var r = null
, s = null;
try {
var a = e instanceof ArrayBuffer ? e : e.buffer
, o = new Uint8Array(a)
, l = t(o, 6);
if (0 !== l && 1 !== l && 3 !== l)
return new Error("Invalid magic number in ETC header");
var h = t(o, 12)
, c = t(o, 14);
t(o, 8),
t(o, 10),
s = {
_data: new Uint8Array(a,16),
_compressed: !0,
width: h,
height: c
}
} catch (u) {
r = u
}
n && n(r, s)
}
}
)(),
parsePlist: function(t, e, n) {
var r = null
, s = i.parse(t);
s || (r = new Error("parse failed")),
n && n(r, s)
},
parseImport: function(t, e, i) {
if (!t)
return i && i(new Error("Json is empty"));
var n, s = null;
try {
n = r(t, e)
} catch (a) {
s = a
}
i && i(s, n)
},
init: function() {
f.clear()
},
register: function(t, e) {
"object" == typeof t ? n.mixin(p, t) : p[t] = e
},
parse: function(t, e, i, n, r) {
var s, o, c;
(s = l.get(t)) ? r(null, s) : (o = f.get(t)) ? o.push(r) : (c = p[i]) ? (f.add(t, [r]),
c(e, n, (function(e, i) {
e ? h.remove(t) : a(i) || l.add(t, i);
for (var n = f.remove(t), r = 0, s = n.length; r < s; r++)
n[r](e, i)
}
))) : r(null, e)
}
}
, p = {
".png": d.parseImage,
".jpg": d.parseImage,
".bmp": d.parseImage,
".jpeg": d.parseImage,
".gif": d.parseImage,
".ico": d.parseImage,
".tiff": d.parseImage,
".webp": d.parseImage,
".image": d.parseImage,
".pvr": d.parsePVRTex,
".pkm": d.parsePKMTex,
".mp3": d.parseAudio,
".ogg": d.parseAudio,
".wav": d.parseAudio,
".m4a": d.parseAudio,
".plist": d.parsePlist,
import: d.parseImport
};
e.exports = d
}
), {
"../platform/CCSAXParser": 200,
"../platform/CCSys": 202,
"../platform/js": 214,
"./cache": 36,
"./deserialize": 40,
"./helper": 49,
"./shared": 58
}],
54: [(function(t, e) {
"use strict";
var i = t("./task")
, n = 0;
function r(t, e) {
if (Array.isArray(e)) {
this.id = n++,
this.name = t,
this.pipes = [];
for (var i = 0, r = e.length; i < r; i++)
"function" == typeof e[i] && this.pipes.push(e[i])
} else
cc.warn("funcs must be an array")
}
r.prototype = {
constructor: r,
insert: function(t, e) {
if (!("function" != typeof t || e > this.pipes.length))
return this.pipes.splice(e, 0, t),
this;
cc.warnID(4921)
},
append: function(t) {
if ("function" == typeof t)
return this.pipes.push(t),
this
},
remove: function(t) {
if ("number" == typeof t)
return this.pipes.splice(t, 1),
this
},
sync: function(t) {
var e = this.pipes;
if (t instanceof i && 0 !== e.length) {
null != t.output && (t.input = t.output,
t.output = null),
t._isFinish = !1;
for (var n = 0, r = e.length; n < r; ) {
var s = (0,
e[n])(t);
if (s)
return t._isFinish = !0,
s;
++n !== r && (t.input = t.output,
t.output = null)
}
return t._isFinish = !0,
t.output
}
},
async: function(t) {
var e = this.pipes;
t instanceof i && 0 !== e.length && (null != t.output && (t.input = t.output,
t.output = null),
t._isFinish = !1,
this._flow(0, t))
},
_flow: function(t, e) {
var i = this;
(0,
this.pipes[t])(e, (function(n) {
n ? (e._isFinish = !0,
e.onComplete && e.onComplete(n)) : ++t < i.pipes.length ? (e.input = e.output,
e.output = null,
i._flow(t, e)) : (e._isFinish = !0,
e.onComplete && e.onComplete(n, e.output))
}
))
}
},
e.exports = r
}
), {
"./task": 59
}],
55: [(function(t, e) {
"use strict";
var i = t("./task")
, n = t("./shared")
, r = n.transformPipeline
, s = n.RequestType;
e.exports = function(t, e) {
var n = t.options
, a = Object.create(null)
, o = Object.create(null);
for (var l in n)
switch (l) {
case s.PATH:
case s.UUID:
case s.DIR:
case s.SCENE:
case s.URL:
break;
case "__requestType__":
case "__isNative__":
case "ext":
case "type":
case "__nativeName__":
case "audioLoadMode":
case "bundle":
a[l] = n[l];
break;
case "__exclude__":
case "__outputAsArray__":
o[l] = n[l];
break;
default:
a[l] = n[l],
o[l] = n[l]
}
t.options = o;
var h = i.create({
input: t.input,
options: a
})
, c = null;
try {
t.output = t.source = r.sync(h)
} catch (f) {
c = f;
for (var u = 0, _ = h.output.length; u < _; u++)
h.output[u].recycle()
}
h.recycle(),
e(c)
}
}
), {
"./shared": 58,
"./task": 59
}],
56: [(function(t, e) {
"use strict";
var i = t("./depend-util")
, n = t("./cache");
t("../assets/CCAsset");
var r = t("./shared").assets
, s = t("../platform/utils").callInNextTick;
function a(t, e) {
t._uuid && e.push(t._uuid)
}
function o(t, e) {
for (var i = Object.getOwnPropertyNames(t), n = 0; n < i.length; n++) {
var r = i[n];
if ("node" !== r && "__eventTargets" !== r) {
var s = t[r];
if ("object" == typeof s && s)
if (Array.isArray(s))
for (var o = 0; o < s.length; o++) {
var l = s[o];
l instanceof cc.Asset && a(l, e)
}
else if (s.constructor && s.constructor !== Object)
s instanceof cc.Asset && a(s, e);
else
for (var h = Object.getOwnPropertyNames(s), c = 0; c < h.length; c++) {
var u = s[h[c]];
u instanceof cc.Asset && a(u, e)
}
}
}
}
var l = [];
function h(t, e) {
for (var i = 0; i < t._components.length; i++)
o(t._components[i], e);
for (var n = 0; n < t._children.length; n++)
h(t._children[n], e)
}
function c(t, e, n, s) {
n.push(t._uuid);
for (var a = i.getDeps(t._uuid), o = 0, l = a.length; o < l; o++) {
var h = r.get(a[o]);
if (h) {
var u = h._uuid;
if (u in e ? e[u] += s : e[u] = h.refCount + s,
n.includes(u))
continue;
c(h, e, n, s)
}
}
}
function u(t) {
var e = Object.create(null);
if (e[t._uuid] = t.refCount,
c(t, e, l, -1),
l.length = 0,
0 !== e[t._uuid])
return e[t._uuid];
for (var i in e)
0 !== e[i] && c(r.get(i), e, l, 1);
return l.length = 0,
e[t._uuid]
}
var _ = new n
, f = new n
, d = !1;
function p() {
d = !1,
f.forEach((function(t) {
m._free(t)
}
)),
f.clear()
}
var m = {
init: function() {
_.clear(),
f.clear()
},
_addPersistNodeRef: function(t) {
var e = [];
h(t, e);
for (var i = 0, n = e.length; i < n; i++) {
var s = r.get(e[i]);
s && s.addRef()
}
_.add(t.uuid, e)
},
_removePersistNodeRef: function(t) {
if (_.has(t.uuid)) {
for (var e = _.get(t.uuid), i = 0, n = e.length; i < n; i++) {
var s = r.get(e[i]);
s && s.decRef()
}
_.remove(t.uuid)
}
},
_autoRelease: function(t, e, n) {
if (t) {
for (var s = i.getDeps(t._id), a = 0, o = s.length; a < o; a++) {
var l = r.get(s[a]);
l && l.decRef(t.autoReleaseAssets)
}
var h = i._depends.get(t._id);
if (h && h.persistDeps)
for (var c = h.persistDeps, u = 0, f = c.length; u < f; u++) {
var d = r.get(c[u]);
d && d.decRef(t.autoReleaseAssets)
}
t._id !== e._id && i.remove(t._id)
}
var p = i._depends.get(e._id);
for (var m in p && (p.persistDeps = []),
n) {
for (var y = n[m], v = _.get(y.uuid), g = 0, A = v.length; g < A; g++) {
var x = r.get(v[g]);
x && x.addRef()
}
p && p.persistDeps.push.apply(p.persistDeps, v)
}
},
_free: function(t, e) {
if (f.remove(t._uuid),
cc.isValid(t, !0) && !(!e && t.refCount > 0 && u(t) > 0)) {
r.remove(t._uuid);
for (var n = i.getDeps(t._uuid), s = 0, a = n.length; s < a; s++) {
var o = r.get(n[s]);
o && (o.decRef(!1),
m._free(o, !1))
}
t.destroy(),
i.remove(t._uuid)
}
},
tryRelease: function(t, e) {
t instanceof cc.Asset && (e ? m._free(t, e) : (f.add(t._uuid, t),
d || (d = !0,
s(p))))
}
};
e.exports = m
}
), {
"../assets/CCAsset": 62,
"../platform/utils": 217,
"./cache": 36,
"./depend-util": 38,
"./shared": 58
}],
57: [(function(t, e) {
"use strict";
var i = [];
function n() {
this._id = "",
this.uuid = "",
this.url = "",
this.ext = ".json",
this.content = null,
this.file = null,
this.info = null,
this.config = null,
this.isNative = !1,
this.options = Object.create(null)
}
n.prototype = {
constructor: n,
get id() {
return this._id || (this._id = this.uuid + "@" + (this.isNative ? "native" : "import")),
this._id
},
recycle: function() {
500 !== i.length && (this._id = "",
this.uuid = "",
this.url = "",
this.ext = ".json",
this.content = null,
this.file = null,
this.info = null,
this.config = null,
this.isNative = !1,
this.options = Object.create(null),
i.push(this))
}
},
n.create = function() {
return 0 !== i.length ? i.pop() : new n
}
,
e.exports = n
}
), {}],
58: [(function(t, e) {
"use strict";
var i = t("./cache")
, n = t("./pipeline")
, r = new i
, s = new i
, a = new i
, o = new i
, l = new n("normal load",[])
, h = new n("fetch",[])
, c = new n("transform url",[]);
e.exports = {
assets: r,
files: s,
parsed: a,
pipeline: l,
fetchPipeline: h,
transformPipeline: c,
RequestType: {
UUID: "uuid",
PATH: "path",
DIR: "dir",
URL: "url",
SCENE: "scene"
},
bundles: o,
BuiltinBundleName: {
RESOURCES: "resources",
INTERNAL: "internal",
MAIN: "main",
START_SCENE: "start-scene"
}
}
}
), {
"./cache": 36,
"./pipeline": 54
}],
59: [(function(t, e) {
"use strict";
var i = 0
, n = [];
function r(t) {
this.id = i++,
this._isFinish = !0,
this.onComplete = null,
this.onProgress = null,
this.onError = null,
this.source = null,
this.output = null,
this.input = null,
this.progress = null,
this.options = null,
this.set(t)
}
r.prototype = {
constructor: r,
set: function(t) {
t = t || Object.create(null),
this.onComplete = t.onComplete,
this.onProgress = t.onProgress,
this.onError = t.onError,
this.source = this.input = t.input,
this.output = null,
this.progress = t.progress,
this.options = t.options || Object.create(null)
},
dispatch: function(t, e, i, n, r) {
switch (t) {
case "complete":
this.onComplete && this.onComplete(e, i, n, r);
break;
case "progress":
this.onProgress && this.onProgress(e, i, n, r);
break;
case "error":
this.onError && this.onError(e, i, n, r);
break;
default:
var s = "on" + t[0].toUpperCase() + t.substr(1);
"function" == typeof this[s] && this[s](e, i, n, r)
}
},
recycle: function() {
500 !== n.length && (this.onComplete = null,
this.onProgress = null,
this.onError = null,
this.source = this.output = this.input = null,
this.progress = null,
this.options = null,
n.push(this))
},
get isFinish() {
return this._isFinish
}
},
r.create = function(t) {
var e = null;
return 0 !== n.length ? (e = n.pop()).set(t) : e = new r(t),
e
}
,
e.exports = r
}
), {}],
60: [(function(t, e) {
"use strict";
var i = t("./helper").decodeUuid
, n = t("./request-item")
, r = t("./shared")
, s = r.RequestType
, a = r.bundles;
e.exports = {
parse: function(t) {
var e = t.input
, r = t.options;
e = Array.isArray(e) ? e : [e],
t.output = [];
for (var o = 0; o < e.length; o++) {
var l = e[o]
, h = n.create();
if ("string" == typeof l && ((l = Object.create(null))[r.__requestType__ || s.UUID] = e[o]),
"object" == typeof l)
for (var c in cc.js.addon(l, r),
l.preset && cc.js.addon(l, cc.assetManager.presets[l.preset]),
l) {
switch (c) {
case s.UUID:
var u = h.uuid = i(l.uuid);
if (a.has(l.bundle)) {
if ((p = (m = a.get(l.bundle)._config).getAssetInfo(u)) && p.redirect) {
if (!a.has(p.redirect))
throw new Error("Please load bundle " + p.redirect + " first");
p = (m = a.get(p.redirect)._config).getAssetInfo(u)
}
h.config = m,
h.info = p
}
h.ext = l.ext || ".json";
break;
case "__requestType__":
case "ext":
case "bundle":
case "preset":
case "type":
break;
case s.DIR:
if (a.has(l.bundle)) {
var _ = [];
a.get(l.bundle)._config.getDirWithPath(l.dir, l.type, _);
for (var f = 0, d = _.length; f < d; f++) {
var p = _[f];
e.push({
uuid: p.uuid,
__isNative__: !1,
ext: ".json",
bundle: l.bundle
})
}
}
h.recycle(),
h = null;
break;
case s.PATH:
if (a.has(l.bundle)) {
if ((p = (m = a.get(l.bundle)._config).getInfoWithPath(l.path, l.type)) && p.redirect) {
if (!a.has(p.redirect))
throw new Error("you need to load bundle " + p.redirect + " first");
p = (m = a.get(p.redirect)._config).getAssetInfo(p.uuid)
}
if (!p)
throw h.recycle(),
new Error("Bundle " + l.bundle + " doesn't contain " + l.path);
h.config = m,
h.uuid = p.uuid,
h.info = p
}
h.ext = l.ext || ".json";
break;
case s.SCENE:
if (a.has(l.bundle)) {
var m;
if ((p = (m = a.get(l.bundle)._config).getSceneInfo(l.scene)) && p.redirect) {
if (!a.has(p.redirect))
throw new Error("you need to load bundle " + p.redirect + " first");
p = (m = a.get(p.redirect)._config).getAssetInfo(p.uuid)
}
if (!p)
throw h.recycle(),
new Error("Bundle " + m.name + " doesn't contain scene " + l.scene);
h.config = m,
h.uuid = p.uuid,
h.info = p
}
break;
case "__isNative__":
h.isNative = l.__isNative__;
break;
case s.URL:
h.url = l.url,
h.uuid = l.uuid || l.url,
h.ext = l.ext || cc.path.extname(l.url),
h.isNative = void 0 === l.__isNative__ || l.__isNative__;
break;
default:
h.options[c] = l[c]
}
if (!h)
break
}
if (h && (t.output.push(h),
!h.uuid && !h.url))
throw new Error("Can not parse this input:" + JSON.stringify(l))
}
return null
},
combine: function(t) {
for (var e = t.output = t.input, i = 0; i < e.length; i++) {
var n = e[i];
if (!n.url) {
var r, s, a = n.config;
s = n.isNative ? a && a.nativeBase ? a.base + a.nativeBase : cc.assetManager.generalNativeBase : a && a.importBase ? a.base + a.importBase : cc.assetManager.generalImportBase;
var o = n.uuid
, l = "";
n.info && (l = n.isNative ? n.info.nativeVer ? "." + n.info.nativeVer : "" : n.info.ver ? "." + n.info.ver : ""),
r = ".ttf" === n.ext ? s + "/" + o.slice(0, 2) + "/" + o + l + "/" + n.options.__nativeName__ : s + "/" + o.slice(0, 2) + "/" + o + l + n.ext,
n.url = r
}
}
return null
}
}
}
), {
"./helper": 49,
"./request-item": 57,
"./shared": 58
}],
61: [(function(t, e) {
"use strict";
var i = t("./depend-util")
, n = t("./helper")
, r = n.isScene
, s = n.decodeUuid
, a = t("./shared").assets
, o = t("../platform/utils").callInNextTick;
t("../assets/CCAsset");
var l = {
processOptions: function(t) {
var e = t.uuids
, i = t.paths
, n = t.types
, r = t.deps
, a = t.paths = Object.create(null);
if (!1 === t.debug) {
for (var o = 0, l = e.length; o < l; o++)
e[o] = s(e[o]);
for (var h in i) {
var c = i[h]
, u = c[1];
c[1] = n[u]
}
} else {
for (var _ = Object.create(null), f = 0, d = e.length; f < d; f++) {
var p = e[f];
e[f] = _[p] = s(p)
}
e = _
}
for (var m in i) {
var y = i[m];
a[e[m]] = y
}
var v = t.scenes;
for (var g in v) {
var A = v[g];
v[g] = e[A]
}
var x = t.packs;
for (var b in x)
for (var C = x[b], T = 0; T < C.length; ++T)
C[T] = e[C[T]];
var S = t.versions;
if (S)
for (var w in S)
for (var E = S[w], M = 0; M < E.length; M += 2) {
var D = E[M];
E[M] = e[D] || D
}
var B = t.redirect;
if (B)
for (var I = 0; I < B.length; I += 2)
B[I] = e[B[I]],
B[I + 1] = r[B[I + 1]]
},
clear: function(t, e) {
for (var i = 0, n = t.input.length; i < n; i++) {
var r = t.input[i];
e && !r.isNative && r.content && r.content.decRef && r.content.decRef(!1),
r.recycle()
}
t.input = null
},
urlAppendTimestamp: function(t) {
return cc.assetManager.downloader.appendTimeStamp && "string" == typeof t ? /\?/.test(t) ? t + "&_t=" + (new Date - 0) : t + "?_t=" + (new Date - 0) : t
},
retry: function(t, e, i, n, r) {
t(r = r || 0, (function(s, a) {
r++,
!s || r > e ? n && n(s, a) : setTimeout((function() {
l.retry(t, e, i, n, r)
}
), i)
}
))
},
getDepends: function(t, e, n, r, s, a, o) {
try {
var l = i.parse(t, e)
, h = !0;
if (e instanceof cc.Asset && (!e.__nativeDepend__ || e._nativeAsset) && (h = !1),
s) {
for (var c = 0, u = l.deps.length; c < u; c++) {
var _ = l.deps[c];
_ in n || (n[_] = !0,
r.push({
uuid: _,
bundle: o && o.name
}))
}
h && l.nativeDep && (o && (l.nativeDep.bundle = o.name),
r.push(Object.assign({}, l.nativeDep)))
} else {
a = !!e.asyncLoadAssets || a && !l.preventDeferredLoadDependents;
for (var f = 0, d = l.deps.length; f < d; f++) {
var p = l.deps[f];
p in n || (n[p] = !0,
r.push({
uuid: p,
__asyncLoadAssets__: a,
bundle: o && o.name
}))
}
h && !a && !l.preventPreloadNativeObject && l.nativeDep && (o && (l.nativeDep.bundle = o.name),
r.push(Object.assign({}, l.nativeDep)))
}
} catch (m) {
cc.error(m.message, m.stack)
}
},
cache: function(t, e, i) {
e && (!r(e) && i && a.add(t, e))
},
setProperties: function(t, e, i) {
var n = !1
, r = e.__depends__;
if (r) {
for (var s = 0, a = r.length; s < a; s++) {
var o = r[s]
, l = i[o.uuid + "@import"];
l ? o.owner[o.prop] = l.addRef() : (cc.error("The asset " + o.uuid + " is missing!"),
n = !0)
}
e.__depends__ = void 0
}
return e.__nativeDepend__ && (e._nativeAsset || (i[t + "@native"] ? e._nativeAsset = i[t + "@native"] : n = !0),
e.__nativeDepend__ = void 0),
n
},
gatherAsset: function(t) {
var e = t.source;
if (t.options.__outputAsArray__ || 1 !== e.length)
for (var i = t.output = [], n = 0, r = e.length; n < r; n++)
i.push(e[n].content);
else
t.output = e[0].content
},
forEach: function(t, e, i) {
var n = 0
, r = [];
0 === t.length && i && i(r);
for (var s = 0, a = t.length; s < a; s++)
e(t[s], (function(t) {
t && r.push(t),
++n === a && i && i(r)
}
))
},
parseParameters: function(t, e, i) {
if (void 0 === i) {
var n = "function" == typeof t;
e ? (i = e,
n || (e = null)) : void 0 === e && n && (i = t,
t = null,
e = null),
void 0 !== e && n && (e = t,
t = null)
}
return {
options: t = t || Object.create(null),
onProgress: e,
onComplete: i
}
},
parseLoadResArgs: function(t, e, i) {
if (void 0 === i) {
var n = cc.js.isChildClassOf(t, cc.Asset);
e ? (i = e,
n && (e = null)) : void 0 !== e || n || (i = t,
e = null,
t = null),
void 0 === e || n || (e = t,
t = null)
}
return {
type: t,
onProgress: e,
onComplete: i
}
},
checkCircleReference: function(t, e, n, r) {
if (r || (r = Object.create(null)),
!n[e] || r[e])
return !1;
r[e] = !0;
var s = !1
, a = i.getDeps(e);
if (a)
for (var o = 0, h = a.length; o < h; o++) {
var c = a[o];
if (c === t || l.checkCircleReference(t, c, n, r)) {
s = !0;
break
}
}
return s
},
asyncify: function(t) {
return function(e, i) {
if (t) {
var n = [];
Array.isArray(i) ? i.forEach((function(t) {
return t instanceof cc.Asset && n.push(t.addRef())
}
)) : i instanceof cc.Asset && n.push(i.addRef()),
o((function() {
n.forEach((function(t) {
return t.decRef(!1)
}
)),
t(e, i)
}
))
}
}
}
};
e.exports = l
}
), {
"../assets/CCAsset": 62,
"../platform/utils": 217,
"./depend-util": 38,
"./helper": 49,
"./shared": 58
}],
62: [(function(t, e) {
"use strict";
var i = t("../platform/CCObject");
cc.Asset = cc.Class({
name: "cc.Asset",
extends: i,
ctor: function() {
Object.defineProperty(this, "_uuid", {
value: "",
writable: !0
}),
this.loaded = !0,
this._nativeUrl = "",
this._ref = 0
},
properties: {
nativeUrl: {
get: function() {
if (!this._nativeUrl && this._native) {
var t = this._native;
if (47 === t.charCodeAt(0))
return t.slice(1);
46 === t.charCodeAt(0) ? this._nativeUrl = cc.assetManager.utils.getUrlWithUuid(this._uuid, {
nativeExt: t,
isNative: !0
}) : this._nativeUrl = cc.assetManager.utils.getUrlWithUuid(this._uuid, {
__nativeName__: t,
nativeExt: cc.path.extname(t),
isNative: !0
})
}
return this._nativeUrl
},
visible: !1
},
refCount: {
get: function() {
return this._ref
}
},
_native: "",
_nativeAsset: {
get: function() {
return this._$nativeAsset
},
set: function(t) {
this._$nativeAsset = t
}
},
_nativeDep: {
get: function() {
if (this._native)
return {
__isNative__: !0,
uuid: this._uuid,
ext: this._native
}
}
}
},
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
},
addRef: function() {
return this._ref++,
this
},
decRef: function(t) {
return this._ref > 0 && this._ref--,
!1 !== t && cc.assetManager._releaseManager.tryRelease(this),
this
}
}),
e.exports = cc.Asset
}
), {
"../platform/CCObject": 199
}],
63: [(function(t, e) {
"use strict";
var i = t("./CCAsset")
, n = t("../event/event-target")
, r = cc.Enum({
WEB_AUDIO: 0,
DOM_AUDIO: 1
})
, s = cc.Class({
name: "cc.AudioClip",
extends: i,
mixins: [n],
ctor: function() {
this._loading = !1,
this.loaded = !1,
this._audio = null
},
properties: {
duration: 0,
loadMode: {
default: r.WEB_AUDIO,
type: r
},
_nativeAsset: {
get: function() {
return this._audio
},
set: function(t) {
t instanceof cc.AudioClip ? this._audio = t._nativeAsset : this._audio = t,
this._audio && (this.loaded = !0,
this.emit("load"))
},
override: !0
},
_nativeDep: {
get: function() {
return {
uuid: this._uuid,
audioLoadMode: this.loadMode,
ext: cc.path.extname(this._native),
__isNative__: !0
}
},
override: !0
}
},
statics: {
LoadMode: r,
_loadByUrl: function(t, e) {
var i = cc.assetManager.assets.get(t);
i ? e(null, i) : cc.assetManager.loadRemote(t, (function(t, i) {
if (t)
return e(t);
e(null, i)
}
))
}
},
_ensureLoaded: function(t) {
if (this.loaded)
return t && t();
if (t && this.once("load", t),
!this._loading) {
this._loading = !0;
var e = this;
cc.assetManager.postLoadNative(this, (function() {
e._loading = !1
}
))
}
},
destroy: function() {
cc.audioEngine.uncache(this),
this._super()
}
});
cc.AudioClip = s,
e.exports = s
}
), {
"../event/event-target": 140,
"./CCAsset": 62
}],
64: [(function(t, e) {
"use strict";
var i = 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
}
, n = function(t) {
this._letterDefinitions = {},
this._texture = t
};
n.prototype = {
constructor: n,
addLetterDefinitions: function(t, e) {
this._letterDefinitions[t] = e
},
cloneLetterDefinition: function() {
var t = {};
for (var e in this._letterDefinitions) {
var n = new i;
cc.js.mixin(n, this._letterDefinitions[e]),
t[e] = n
}
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 r = 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 || (this._fontDefDictionary = new n,
t && (this._fontDefDictionary._texture = t._texture));
var e = this._fntConfig;
if (e) {
var r = e.fontDefDictionary;
for (var s in r) {
var a = new i
, o = r[s].rect;
a.offsetX = r[s].xOffset,
a.offsetY = r[s].yOffset,
a.w = o.width,
a.h = o.height,
a.u = o.x,
a.v = o.y,
a.textureID = 0,
a.valid = !0,
a.xAdvance = r[s].xAdvance,
this._fontDefDictionary.addLetterDefinitions(s, a)
}
}
}
});
cc.BitmapFont = r,
cc.BitmapFont.FontLetterDefinition = i,
cc.BitmapFont.FontAtlas = n,
e.exports = r
}
), {}],
65: [(function(t, e) {
"use strict";
var i = 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 = i
}
), {}],
66: [(function(t, e) {
"use strict";
var i = cc.Class({
name: "cc.Font",
extends: cc.Asset
});
cc.Font = e.exports = i
}
), {}],
67: [(function(t, e) {
"use strict";
var i = cc.Class({
name: "cc.JsonAsset",
extends: cc.Asset,
properties: {
json: null
}
});
e.exports = cc.JsonAsset = i
}
), {}],
68: [(function(t, e) {
"use strict";
var i = 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 = i,
e.exports = i
}
), {}],
69: [(function(t, e) {
"use strict";
var i = cc.Enum({
AUTO: 0,
SINGLE_INSTANCE: 1,
MULTI_INSTANCE: 2
})
, n = cc.Class({
name: "cc.Prefab",
extends: cc.Asset,
ctor: function() {
this._createFunction = null,
this._instantiatedTimes = 0
},
properties: {
data: null,
optimizationPolicy: i.AUTO,
asyncLoadAssets: !1,
readonly: {
default: !1,
editorOnly: !0
}
},
statics: {
OptimizationPolicy: i,
OptimizationPolicyThreshold: 3
},
createNode: !1,
compileCreateFunction: function() {
var e = t("../platform/instantiate-jit");
this._createFunction = e.compile(this.data)
},
_doInstantiate: function(t) {
return this.data._prefab || cc.warnID(3700),
this._createFunction || this.compileCreateFunction(),
this._createFunction(t)
},
_instantiate: function() {
var t;
return this.optimizationPolicy !== i.SINGLE_INSTANCE && (this.optimizationPolicy === i.MULTI_INSTANCE || this._instantiatedTimes + 1 >= n.OptimizationPolicyThreshold) ? (t = this._doInstantiate(),
this.data._instantiate(t)) : t = this.data._instantiate(),
++this._instantiatedTimes,
t
},
destroy: function() {
this.data && this.data.destroy(),
this._super()
}
});
cc.Prefab = e.exports = n,
cc.js.obsolete(cc, "cc._Prefab", "Prefab")
}
), {
"../platform/instantiate-jit": 212
}],
70: [(function(t, e) {
"use strict";
var i, n = (i = t("../../renderer/gfx")) && i.__esModule ? i : {
default: i
}, r = t("../renderer"), s = t("./CCTexture2D"), a = cc.Enum({
RB_FMT_D24S8: n.default.RB_FMT_D24S8,
RB_FMT_S8: n.default.RB_FMT_S8,
RB_FMT_D16: n.default.RB_FMT_D16
}), o = cc.Class({
name: "cc.RenderTexture",
extends: s,
statics: {
DepthStencilFormat: a
},
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, a = {
colors: [this._texture]
};
this._depthStencilBuffer && this._depthStencilBuffer.destroy(),
i && (s = new n.default.RenderBuffer(r.device,i,t,e),
i === n.default.RB_FMT_D24S8 ? a.depthStencil = s : i === n.default.RB_FMT_S8 ? a.stencil = s : i === n.default.RB_FMT_D16 && (a.depth = s)),
this._depthStencilBuffer = s,
this._framebuffer && this._framebuffer.destroy(),
this._framebuffer = new n.default.FrameBuffer(r.device,t,e,a),
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 && 0 !== t._image.width && 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, r) {
if (!this._framebuffer || !this._texture)
return t;
e = e || 0,
i = i || 0;
var s = n || this.width
, a = r || this.height;
t = t || new Uint8Array(s * a * 4);
var o = cc.game._renderContext
, l = o.getParameter(o.FRAMEBUFFER_BINDING);
return o.bindFramebuffer(o.FRAMEBUFFER, this._framebuffer.getHandle()),
o.readPixels(e, i, s, a, o.RGBA, o.UNSIGNED_BYTE, t),
o.bindFramebuffer(o.FRAMEBUFFER, l),
t
},
destroy: function() {
this._super(),
this._framebuffer && (this._framebuffer.destroy(),
this._framebuffer = null)
}
});
cc.RenderTexture = e.exports = o
}
), {
"../../renderer/gfx": 315,
"../renderer": 224,
"./CCTexture2D": 77
}],
71: [(function(t, e) {
"use strict";
var i = cc.Class({
name: "cc.SceneAsset",
extends: cc.Asset,
properties: {
scene: null,
asyncLoadAssets: void 0
}
});
cc.SceneAsset = i,
e.exports = i
}
), {}],
72: [(function() {
"use strict";
var t = cc.Class({
name: "cc.Script",
extends: cc.Asset
});
cc._Script = t;
var e = cc.Class({
name: "cc.JavaScript",
extends: t
});
cc._JavaScript = e;
var i = cc.Class({
name: "cc.TypeScript",
extends: t
});
cc._TypeScript = i
}
), {}],
73: [(function(t, e) {
"use strict";
var i = 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];
return e ? (e.name || (e.name = t),
e) : null
},
getSpriteFrames: function() {
var t = []
, e = this._spriteFrames;
for (var i in e)
t.push(this.getSpriteFrame(i));
return t
}
});
cc.SpriteAtlas = i,
e.exports = i
}
), {}],
74: [(function(t, e) {
"use strict";
var i = t("../event/event-target")
, n = [{
u: 0,
v: 0
}, {
u: 0,
v: 0
}, {
u: 0,
v: 0
}, {
u: 0,
v: 0
}]
, r = cc.Class({
name: "cc.SpriteFrame",
extends: t("../assets/CCAsset"),
mixins: [i],
properties: {
_textureSetter: {
set: function(t) {
t && this._texture !== t && this._refreshTexture(t)
}
},
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() {
i.call(this);
var t = arguments[0]
, e = arguments[1]
, n = arguments[2]
, r = arguments[3]
, s = arguments[4];
this._rect = null,
this.uv = [],
this._texture = null,
this._original = null,
this._offset = null,
this._originalSize = null,
this._rotated = !1,
this._flipX = !1,
this._flipY = !1,
this.vertices = null,
this._capInsets = [0, 0, 0, 0],
this.uvSliced = [],
void 0 !== t && this.setTexture(t, e, n, r, s)
},
textureLoaded: function() {
return this._texture && this._texture.loaded
},
onTextureLoaded: function(t, e) {
return this.textureLoaded() ? (t.call(e),
!0) : (this.once("load", t, e),
this.ensureLoadTexture(),
!1)
},
isRotated: function() {
return this._rotated
},
setRotated: function(t) {
this._rotated = t,
this._texture && this._calculateUV()
},
isFlipX: function() {
return this._flipX
},
isFlipY: function() {
return this._flipY
},
setFlipX: function(t) {
this._flipX = t,
this._texture && this._calculateUV()
},
setFlipY: function(t) {
this._flipY = 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) {
this._originalSize ? (this._originalSize.width = t.width,
this._originalSize.height = t.height) : 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 r(this._texture,this.getRect(),this._rotated,this.getOffset(),this.getOriginalSize())
},
setTexture: function(t, e, i, n, r) {
if (1 !== arguments.length || t !== this._texture) {
if (this._rect = e || null,
n ? this.setOffset(n) : this._offset = null,
r ? this.setOriginalSize(r) : this._originalSize = null,
this._rotated = i || !1,
"string" != typeof t)
return t instanceof cc.Texture2D && this._refreshTexture(t),
!0;
cc.errorID(3401)
}
},
ensureLoadTexture: function() {
this._texture && (this._texture.loaded || (this._refreshTexture(this._texture),
cc.assetManager.postLoadNative(this._texture)))
},
_checkRect: function(t) {
var e = this._rect
, i = e.x
, n = e.y;
this._rotated ? (i += e.height,
n += e.width) : (i += e.width,
n += e.height),
i > t.width && cc.errorID(3300, t.nativeUrl + "/" + this.name, i, t.width),
n > t.height && cc.errorID(3400, t.nativeUrl + "/" + this.name, n, t.height)
},
_flipXY: function(t) {
if (this._flipX) {
var e = t[0];
t[0] = t[1],
t[1] = e,
e = t[2],
t[2] = t[3],
t[3] = e
}
if (this._flipY) {
var i = t[0];
t[0] = t[2],
t[2] = i,
i = t[1],
t[1] = t[3],
t[3] = i
}
},
_calculateSlicedUV: function() {
var t = this._rect
, e = this._texture.width
, i = this._texture.height
, r = this._capInsets[0]
, s = this._capInsets[2]
, a = t.width - r - s
, o = this._capInsets[1]
, l = this._capInsets[3]
, h = t.height - o - l
, c = this.uvSliced;
if (c.length = 0,
this._rotated) {
n[0].u = t.x / e,
n[1].u = (t.x + l) / e,
n[2].u = (t.x + l + h) / e,
n[3].u = (t.x + t.height) / e,
n[3].v = t.y / i,
n[2].v = (t.y + r) / i,
n[1].v = (t.y + r + a) / i,
n[0].v = (t.y + t.width) / i,
this._flipXY(n);
for (var u = 0; u < 4; ++u)
for (var _ = n[u], f = 0; f < 4; ++f) {
var d = n[3 - f];
c.push({
u: _.u,
v: d.v
})
}
} else {
n[0].u = t.x / e,
n[1].u = (t.x + r) / e,
n[2].u = (t.x + r + a) / e,
n[3].u = (t.x + t.width) / e,
n[3].v = t.y / i,
n[2].v = (t.y + o) / i,
n[1].v = (t.y + o + h) / i,
n[0].v = (t.y + t.height) / i,
this._flipXY(n);
for (var p = 0; p < 4; ++p)
for (var m = n[p], y = 0; y < 4; ++y) {
var v = n[y];
c.push({
u: v.u,
v: m.v
})
}
}
},
_setDynamicAtlasFrame: function(t) {
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() {
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
, a = 0 === n ? 0 : (t.x + t.height) / n
, o = 0 === r ? 0 : (t.y + t.width) / r
, l = 0 === r ? 0 : t.y / r;
i[0] = s,
i[1] = l,
i[2] = s,
i[3] = o,
i[4] = a,
i[5] = l,
i[6] = a,
i[7] = o
} else {
var h = 0 === n ? 0 : t.x / n
, c = 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] = h,
i[1] = u,
i[2] = c,
i[3] = u,
i[4] = h,
i[5] = _,
i[6] = c,
i[7] = _
}
if (this._flipX) {
var f = i[0];
i[0] = i[2],
i[2] = f,
f = i[1],
i[1] = i[3],
i[3] = f,
f = i[4],
i[4] = i[6],
i[6] = f,
f = i[5],
i[5] = i[7],
i[7] = f
}
if (this._flipY) {
var d = i[0];
i[0] = i[4],
i[4] = d,
d = i[1],
i[1] = i[5],
i[5] = d,
d = i[2],
i[2] = i[6],
i[6] = d,
d = i[3],
i[3] = i[7],
i[7] = d
}
var p = this.vertices;
if (p) {
p.nu.length = 0,
p.nv.length = 0;
for (var m = 0; m < p.u.length; m++)
p.nu[m] = p.u[m] / n,
p.nv[m] = p.v[m] / r
}
this._calculateSlicedUV()
},
_serialize: !1,
_deserialize: function(t) {
var e = t.rect;
e && (this._rect = new cc.Rect(e[0],e[1],e[2],e[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 i = t.capInsets;
i && (this._capInsets[0] = i[0],
this._capInsets[1] = i[1],
this._capInsets[2] = i[2],
this._capInsets[3] = i[3]),
this.vertices = t.vertices,
this.vertices && (this.vertices.nu = [],
this.vertices.nv = [])
}
})
, s = r.prototype;
s.copyWithZone = s.clone,
s.copy = s.clone,
s.initWithTexture = s.setTexture,
cc.SpriteFrame = r,
e.exports = r
}
), {
"../assets/CCAsset": 62,
"../event/event-target": 140
}],
75: [(function(t, e) {
"use strict";
var i = t("./CCFont")
, n = cc.Class({
name: "cc.TTFFont",
extends: i,
properties: {
_fontFamily: null,
_nativeAsset: {
type: cc.String,
get: function() {
return this._fontFamily
},
set: function(t) {
this._fontFamily = t || "Arial"
},
override: !0
},
_nativeDep: {
get: function() {
return {
uuid: this._uuid,
__nativeName__: this._native,
ext: cc.path.extname(this._native),
__isNative__: !0
}
},
override: !0
}
}
});
cc.TTFFont = e.exports = n
}
), {
"./CCFont": 66
}],
76: [(function(t, e) {
"use strict";
var i = cc.Class({
name: "cc.TextAsset",
extends: cc.Asset,
properties: {
text: ""
},
toString: function() {
return this.text
}
});
e.exports = cc.TextAsset = i
}
), {}],
77: [(function(t, e) {
"use strict";
var i, n = (i = t("../../renderer/gfx")) && i.__esModule ? i : {
default: i
}, r = t("../event/event-target"), s = t("../renderer");
t("../platform/CCClass");
var a = new (t("../platform/id-generater"))("Tex")
, o = 1024
, l = 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_A_PVRTC_2BPPV1: o++,
RGB_PVRTC_4BPPV1: n.default.TEXTURE_FMT_RGB_PVRTC_4BPPV1,
RGBA_PVRTC_4BPPV1: n.default.TEXTURE_FMT_RGBA_PVRTC_4BPPV1,
RGB_A_PVRTC_4BPPV1: o++,
RGB_ETC1: n.default.TEXTURE_FMT_RGB_ETC1,
RGBA_ETC1: o++,
RGB_ETC2: n.default.TEXTURE_FMT_RGB_ETC2,
RGBA_ETC2: n.default.TEXTURE_FMT_RGBA_ETC2
})
, h = cc.Enum({
REPEAT: 10497,
CLAMP_TO_EDGE: 33071,
MIRRORED_REPEAT: 33648
})
, c = cc.Enum({
LINEAR: 9729,
NEAREST: 9728
})
, u = {
9728: 0,
9729: 1
}
, _ = []
, f = {
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 d() {
for (var t in f)
f[t] = void 0;
return _.length = 0,
f.images = _,
f
}
var p = 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: l.RGBA8888,
_premultiplyAlpha: !1,
_flipY: !1,
_minFilter: c.LINEAR,
_magFilter: c.LINEAR,
_mipFilter: c.LINEAR,
_wrapS: h.CLAMP_TO_EDGE,
_wrapT: h.CLAMP_TO_EDGE,
_isAlphaAtlas: !1,
_genMipmaps: !1,
genMipmaps: {
get: function() {
return this._genMipmaps
},
set: function(t) {
if (this._genMipmaps !== t) {
var e = d();
e.genMipmaps = t,
this.update(e)
}
}
},
_packable: !0,
packable: {
get: function() {
return this._packable
},
set: function(t) {
this._packable = t
}
},
_nativeDep: {
get: function() {
return {
__isNative__: !0,
uuid: this._uuid,
ext: this._native,
__flipY__: this._flipY,
__premultiplyAlpha__: this._premultiplyAlpha
}
},
override: !0
}
},
statics: {
PixelFormat: l,
WrapMode: h,
Filter: c,
_FilterIndex: u,
extnames: [".png", ".jpg", ".jpeg", ".bmp", ".webp", ".pvr", ".pkm"],
_parseExt: function(t, e) {
for (var i = cc.renderer.device, n = t.split("_"), r = "", s = "", a = 999, o = e, h = cc.macro.SUPPORT_TEXTURE_FORMATS, c = 0; c < n.length; c++) {
var u = n[c].split("@")
, _ = u[0];
_ = p.extnames[_.charCodeAt(0) - 48] || _;
var f = h.indexOf(_);
if (-1 !== f && f < a) {
var d = u[1] ? parseInt(u[1]) : e;
if (".pvr" === _ && !i.ext("WEBGL_compressed_texture_pvrtc"))
continue;
if (!(d !== l.RGB_ETC1 && d !== l.RGBA_ETC1 || i.ext("WEBGL_compressed_texture_etc1")))
continue;
if (!(d !== l.RGB_ETC2 && d !== l.RGBA_ETC2 || i.ext("WEBGL_compressed_texture_etc")))
continue;
if (".webp" === _ && !cc.sys.capabilities.webp)
continue;
a = f,
s = _,
o = d
} else
r || (r = _)
}
return {
bestExt: s,
bestFormat: o,
defaultExt: r
}
}
},
ctor: function() {
this._id = a.getNewId(),
this.loaded = !1,
this.width = 0,
this.height = 0,
this._hashDirty = !0,
this._hash = 0,
this._texture = null
},
getImpl: function() {
return this._texture || (this._texture = new s.Texture2D(s.device,{})),
this._texture
},
getId: function() {
return this._id
},
toString: function() {
return this.nativeUrl || ""
},
update: function(t) {
if (t) {
var e = !1;
void 0 !== t.width && (this.width = t.width),
void 0 !== t.height && (this.height = t.height),
void 0 !== t.minFilter && (this._minFilter = t.minFilter,
t.minFilter = u[t.minFilter]),
void 0 !== t.magFilter && (this._magFilter = t.magFilter,
t.magFilter = u[t.magFilter]),
void 0 !== t.mipFilter && (this._mipFilter = t.mipFilter,
t.mipFilter = u[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),
void 0 !== t.flipY && (this._flipY = t.flipY,
e = !0),
void 0 !== t.premultiplyAlpha && (this._premultiplyAlpha = t.premultiplyAlpha,
e = !0),
void 0 !== t.genMipmaps && (this._genMipmaps = t.genMipmaps),
cc.sys.capabilities.imageBitmap && this._image instanceof ImageBitmap ? this._checkImageBitmap(this._upload.bind(this, t, e)) : this._upload(t, e)
}
},
_upload: function(t, e) {
e && this._image && (t.image = this._image),
t.images && t.images.length > 0 ? this._image = t.images[0] : void 0 !== t.image && (this._image = t.image,
t.images || (_.length = 0,
t.images = _),
t.images.push(t.image)),
this._texture && this._texture.update(t),
this._hashDirty = !0
},
initWithElement: function(t) {
if (t)
if (this._image = t,
t.complete || t instanceof HTMLCanvasElement)
this.handleLoadedTexture();
else if (cc.sys.capabilities.imageBitmap && t instanceof ImageBitmap)
this._checkImageBitmap(this.handleLoadedTexture.bind(this));
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 = d();
return r.image = t,
r.images = [r.image],
r.genMipmaps = this._genMipmaps,
r.premultiplyAlpha = this._premultiplyAlpha,
r.flipY = this._flipY,
r.minFilter = u[this._minFilter],
r.magFilter = u[this._magFilter],
r.wrapS = this._wrapS,
r.wrapT = this._wrapT,
r.format = this._getGFXPixelFormat(e),
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._updateFormat(),
this._checkPackable(),
this.loaded = !0,
this.emit("load"),
!0
},
getHtmlElementObj: function() {
return this._image
},
destroy: function() {
cc.sys.capabilities.imageBitmap && this._image instanceof ImageBitmap && this._image.close && this._image.close(),
this._packable && cc.dynamicAtlasManager && cc.dynamicAtlasManager.deleteAtlasTexture(this),
this._image = null,
this._texture && this._texture.destroy(),
this._super()
},
getPixelFormat: function() {
return this._format
},
hasPremultipliedAlpha: function() {
return this._premultiplyAlpha || !1
},
isAlphaAtlas: function() {
return this._isAlphaAtlas
},
handleLoadedTexture: function() {
if (this._image && this._image.width && this._image.height) {
this.width = this._image.width,
this.height = this._image.height;
var t = d();
t.image = this._image,
t.images = [t.image],
t.width = this.width,
t.height = this.height,
t.genMipmaps = this._genMipmaps,
t.format = this._getGFXPixelFormat(this._format),
t.premultiplyAlpha = this._premultiplyAlpha,
t.flipY = this._flipY,
t.minFilter = u[this._minFilter],
t.magFilter = u[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._updateFormat(),
this._checkPackable(),
this.loaded = !0,
this.emit("load"),
cc.macro.CLEANUP_IMAGE_CACHE && (this._image instanceof HTMLImageElement ? this._clearImage() : cc.sys.capabilities.imageBitmap && this._image instanceof ImageBitmap && this._image.close && this._image.close())
}
},
description: function() {
return "<cc.Texture2D | Name = " + this.nativeUrl + " | Dimensions = " + this.width + " x " + this.height + ">"
},
releaseTexture: function() {
this._image = null,
this._texture && this._texture.destroy()
},
setWrapMode: function(t, e) {
if (this._wrapS !== t || this._wrapT !== e) {
var i = d();
i.wrapS = t,
i.wrapT = e,
this.update(i)
}
},
setFilters: function(t, e) {
if (this._minFilter !== t || this._magFilter !== e) {
var i = d();
i.minFilter = t,
i.magFilter = e,
this.update(i)
}
},
setFlipY: function(t) {
if (this._flipY !== t) {
var e = d();
e.flipY = t,
e.premultiplyAlpha = this._premultiplyAlpha,
this.update(e)
}
},
setPremultiplyAlpha: function(t) {
if (this._premultiplyAlpha !== t) {
var e = d();
e.flipY = this._flipY,
e.premultiplyAlpha = t,
this.update(e)
}
},
_updateFormat: function() {
this._isAlphaAtlas = this._format === l.RGBA_ETC1 || this._format === l.RGB_A_PVRTC_4BPPV1 || this._format === l.RGB_A_PVRTC_2BPPV1
},
_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 || this._getHash() !== t.Atlas.DEFAULT_HASH ? this._packable = !1 : this._image && this._image instanceof HTMLCanvasElement && (this._packable = !0)
}
},
_getOpts: function() {
var t = d();
return 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 = u[this._minFilter],
t.magFilter = u[this._magFilter],
t.mipFilter = u[this._mipFilter],
t.wrapS = this._wrapS,
t.wrapT = this._wrapT,
t
},
_getGFXPixelFormat: function(t) {
return t === l.RGBA_ETC1 ? t = l.RGB_ETC1 : t === l.RGB_A_PVRTC_4BPPV1 ? t = l.RGB_PVRTC_4BPPV1 : t === l.RGB_A_PVRTC_2BPPV1 && (t = l.RGB_PVRTC_2BPPV1),
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) {
var e = t.split(",")
, i = e[0];
if (i) {
var n = p._parseExt(i, this._format);
if (n.bestExt)
this._setRawAsset(n.bestExt),
this._format = n.bestFormat;
else {
if (!n.defaultExt)
throw new Error(cc.debug.getError(3121));
this._setRawAsset(n.defaultExt),
cc.warnID(3120, n.defaultExt, n.defaultExt)
}
}
8 === e.length && (this._minFilter = parseInt(e[1]),
this._magFilter = parseInt(e[2]),
this._wrapS = parseInt(e[3]),
this._wrapT = parseInt(e[4]),
this._premultiplyAlpha = 49 === e[5].charCodeAt(0),
this._genMipmaps = 49 === e[6].charCodeAt(0),
this._packable = 49 === e[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 === c.LINEAR ? 1 : 2
, r = this._magFilter === c.LINEAR ? 1 : 2
, s = this._wrapS === h.REPEAT ? 1 : this._wrapS === h.CLAMP_TO_EDGE ? 2 : 3
, a = this._wrapT === h.REPEAT ? 1 : this._wrapT === h.CLAMP_TO_EDGE ? 2 : 3
, o = this._format;
return this._image,
this._hash = Number("" + n + r + o + s + a + t + e + i),
this._hashDirty = !1,
this._hash
},
_isCompressed: function() {
return this._format < l.A8 || this._format > l.RGBA32F
},
_clearImage: function() {
this._image.src = ""
},
_checkImageBitmap: function(t) {
var e = this
, i = this._image
, n = this._flipY
, r = this._premultiplyAlpha;
this._flipY !== i.flipY || this._premultiplyAlpha !== i.premultiplyAlpha ? createImageBitmap(i, {
imageOrientation: n !== i.flipY ? "flipY" : "none",
premultiplyAlpha: r ? "premultiply" : "none"
}).then((function(s) {
i.close && i.close(),
s.flipY = n,
s.premultiplyAlpha = r,
e._image = s,
t()
}
), (function(t) {
cc.error(t.message)
}
)) : t()
}
});
cc.Texture2D = e.exports = p
}
), {
"../../renderer/gfx": 315,
"../assets/CCAsset": 62,
"../event/event-target": 140,
"../platform/CCClass": 193,
"../platform/id-generater": 210,
"../renderer": 224
}],
78: [(function(t) {
"use strict";
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("./material")
}
), {
"./CCAsset": 62,
"./CCAudioClip": 63,
"./CCBitmapFont": 64,
"./CCBufferAsset": 65,
"./CCFont": 66,
"./CCJsonAsset": 67,
"./CCLabelAtlas": 68,
"./CCPrefab": 69,
"./CCRenderTexture": 70,
"./CCSceneAsset": 71,
"./CCScripts": 72,
"./CCSpriteAtlas": 73,
"./CCSpriteFrame": 74,
"./CCTTFFont": 75,
"./CCTextAsset": 76,
"./CCTexture2D": 77,
"./material": 85
}],
79: [(function(t, e) {
"use strict";
var i, n = (i = t("../CCAsset")) && i.__esModule ? i : {
default: i
}, r = t("./effect-parser"), s = cc.Class({
name: "cc.EffectAsset",
extends: n.default,
ctor: function() {
this._effect = null
},
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]);
this._initEffect()
}
},
_initEffect: function() {
this._effect || (this._effect = (0,
r.parseEffect)(this),
Object.freeze(this._effect))
},
getInstantiatedEffect: function() {
return this._initEffect(),
this._effect.clone()
},
getEffect: function() {
return this._initEffect(),
this._effect
}
});
e.exports = cc.EffectAsset = s
}
), {
"../CCAsset": 62,
"./effect-parser": 82
}],
80: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n = t("../CCAsset")
, r = t("../CCTexture2D")
, s = (r.PixelFormat,
t("./CCEffectAsset"))
, a = (t("../../utils/texture-util"),
cc.gfx)
, o = cc.Enum({
SPRITE: "2d-sprite",
GRAY_SPRITE: "2d-gray-sprite",
UNLIT: "unlit"
})
, l = cc.Class({
name: "cc.Material",
extends: n,
ctor: function() {
this.loaded = !1,
this._manualHash = !1,
this._dirty = !0,
this._effect = null
},
properties: {
_defines: {
default: void 0,
type: Object
},
_props: {
default: void 0,
type: Object
},
_effectAsset: {
type: s,
default: null
},
_techniqueIndex: 0,
_techniqueData: Object,
effectName: void 0,
effectAsset: {
get: function() {
return this._effectAsset
},
set: function(t) {
cc.game.renderType !== cc.game.RENDER_TYPE_CANVAS && (this._effectAsset = t,
t ? this._effect = this._effectAsset.getInstantiatedEffect() : cc.error("Can not set an empty effect asset."))
}
},
effect: {
get: function() {
return this._effect
}
},
techniqueIndex: {
get: function() {
return this._techniqueIndex
},
set: function(t) {
this._techniqueIndex = t,
this._effect.switchTechnique(t)
}
}
},
statics: {
getBuiltinMaterial: function(t) {
return cc.game.renderType === cc.game.RENDER_TYPE_CANVAS ? new cc.Material : cc.assetManager.builtins.getBuiltin("material", "builtin-" + t)
},
BUILTIN_NAME: o,
createWithBuiltin: function(t, e) {
void 0 === e && (e = 0);
var i = cc.assetManager.builtins.getBuiltin("effect", "builtin-" + t);
return l.create(i, e)
},
create: function(t, e) {
if (void 0 === e && (e = 0),
!t)
return null;
var i = new l;
return i.effectAsset = t,
i.techniqueIndex = e,
i
}
},
setProperty: function(t, e, i, n) {
if (cc.game.renderType !== cc.game.RENDER_TYPE_CANVAS) {
if ("string" == typeof i && (i = parseInt(i)),
e instanceof r) {
var s = e.isAlphaAtlas()
, a = "CC_USE_ALPHA_ATLAS_" + t
, o = this.getDefine(a, i);
(s || o) && this.define(a, s),
e.loaded || cc.assetManager.postLoadNative(e)
}
this._effect.setProperty(t, e, i, n)
}
},
getProperty: function(t, e) {
return "string" == typeof e && (e = parseInt(e)),
this._effect.getProperty(t, e)
},
define: function(t, e, i, n) {
cc.game.renderType !== cc.game.RENDER_TYPE_CANVAS && ("string" == typeof i && (i = parseInt(i)),
this._effect.define(t, e, i, n))
},
getDefine: function(t, e) {
return "string" == typeof e && (e = parseInt(e)),
this._effect.getDefine(t, e)
},
setCullMode: function(t, e) {
void 0 === t && (t = a.CULL_BACK),
this._effect.setCullMode(t, e)
},
setDepth: function(t, e, i, n) {
void 0 === t && (t = !1),
void 0 === e && (e = !1),
void 0 === i && (i = a.DS_FUNC_LESS),
this._effect.setDepth(t, e, i, n)
},
setBlend: function(t, e, i, n, r, s, o, l, h) {
void 0 === t && (t = !1),
void 0 === e && (e = a.BLEND_FUNC_ADD),
void 0 === i && (i = a.BLEND_SRC_ALPHA),
void 0 === n && (n = a.BLEND_ONE_MINUS_SRC_ALPHA),
void 0 === r && (r = a.BLEND_FUNC_ADD),
void 0 === s && (s = a.BLEND_SRC_ALPHA),
void 0 === o && (o = a.BLEND_ONE_MINUS_SRC_ALPHA),
void 0 === l && (l = 4294967295),
this._effect.setBlend(t, e, i, n, r, s, o, l, h)
},
setStencilEnabled: function(t, e) {
void 0 === t && (t = a.STENCIL_INHERIT),
this._effect.setStencilEnabled(t, e)
},
setStencil: function(t, e, i, n, r, s, o, l, h) {
void 0 === t && (t = a.STENCIL_INHERIT),
void 0 === e && (e = a.DS_FUNC_ALWAYS),
void 0 === i && (i = 0),
void 0 === n && (n = 255),
void 0 === r && (r = a.STENCIL_OP_KEEP),
void 0 === s && (s = a.STENCIL_OP_KEEP),
void 0 === o && (o = a.STENCIL_OP_KEEP),
void 0 === l && (l = 255),
this._effect.setStencil(t, e, i, n, r, s, o, l, h)
},
updateHash: function(t) {
this._manualHash = t,
this._effect && this._effect.updateHash(t)
},
getHash: function() {
return this._manualHash || this._effect && this._effect.getHash()
},
onLoad: function() {
if (this.effectAsset = this._effectAsset,
this._effect) {
this._techniqueIndex && this._effect.switchTechnique(this._techniqueIndex),
this._techniqueData = this._techniqueData || {};
var t = this._techniqueData;
for (var e in t) {
var i = t[e = parseInt(e)];
if (i) {
for (var n in i.defines)
this.define(n, i.defines[n], e);
for (var r in i.props)
this.setProperty(r, i.props[r], e)
}
}
}
}
})
, h = l;
i.default = h,
cc.Material = l,
e.exports = i.default
}
), {
"../../utils/texture-util": 275,
"../CCAsset": 62,
"../CCTexture2D": 77,
"./CCEffectAsset": 79
}],
81: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r = (n = t("../../../renderer/core/pass")) && n.__esModule ? n : {
default: n
};
function s(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)
}
}
var a = cc.gfx
, o = (function() {
function t() {
this._dirty = !0,
this._name = "",
this._technique = null
}
var e, i, n = t.prototype;
return n._createPassProp = function(t, e) {
var i = e._properties[t];
if (i) {
var n = Object.create(null);
return n.name = t,
n.type = i.type,
i.value instanceof Float32Array ? n.value = new Float32Array(i.value) : i.value instanceof Float64Array ? n.value = new Float64Array(i.value) : n.value = i.value,
e._properties[t] = n,
n
}
}
,
n._setPassProperty = function(t, e, i, n) {
var s = i._properties;
return s.hasOwnProperty(t) || this._createPassProp(t, i),
s[t].value === e || (this._dirty = !0,
r.default.prototype.setProperty.call(i, t, e, n))
}
,
n.setProperty = function(t, e, i, n) {
var r = !1
, s = this.passes
, a = 0
, o = s.length;
void 0 !== i && (a = i,
o = i + 1);
for (var l = a; l < o; l++)
this._setPassProperty(t, e, s[l], n) && (r = !0);
r || cc.warnID(9103, this.name, t)
}
,
n.getProperty = function(t, e) {
var i = this.passes;
if (!(e >= i.length)) {
var n = 0
, r = i.length;
void 0 !== e && (n = e,
r = e + 1);
for (var s = n; s < r; s++) {
var a = i[s].getProperty(t);
if (void 0 !== a)
return a
}
}
}
,
n.define = function(t, e, i, n) {
var r = !1
, s = this.passes
, a = 0
, o = s.length;
void 0 !== i && (a = i,
o = i + 1);
for (var l = a; l < o; l++)
s[l].define(t, e, n) && (r = !0);
r || cc.warnID(9104, this.name, t)
}
,
n.getDefine = function(t, e) {
var i = this.passes;
if (!(e >= i.length)) {
var n = 0
, r = i.length;
void 0 !== e && (n = e,
r = e + 1);
for (var s = n; s < r; s++) {
var a = i[s].getDefine(t);
if (void 0 !== a)
return a
}
}
}
,
n.setCullMode = function(t, e) {
void 0 === t && (t = a.CULL_BACK);
var i = this.passes
, n = 0
, r = i.length;
void 0 !== e && (n = e,
r = e + 1);
for (var s = n; s < r; s++)
i[s].setCullMode(t);
this._dirty = !0
}
,
n.setDepth = function(t, e, i, n) {
var r = this.passes
, s = 0
, a = r.length;
void 0 !== n && (s = n,
a = n + 1);
for (var o = s; o < a; o++)
r[o].setDepth(t, e, i);
this._dirty = !0
}
,
n.setBlend = function(t, e, i, n, r, s, a, o, l) {
var h = this.passes
, c = 0
, u = h.length;
void 0 !== l && (c = l,
u = l + 1);
for (var _ = c; _ < u; _++)
h[_].setBlend(t, e, i, n, r, s, a, o);
this._dirty = !0
}
,
n.setStencilEnabled = function(t, e) {
void 0 === t && (t = a.STENCIL_INHERIT);
var i = this.passes
, n = 0
, r = i.length;
void 0 !== e && (n = e,
r = e + 1);
for (var s = n; s < r; s++)
i[s].setStencilEnabled(t);
this._dirty = !0
}
,
n.setStencil = function(t, e, i, n, r, s, a, o, l) {
var h = this.passes
, c = 0
, u = h.length;
void 0 !== l && (c = l,
u = l + 1);
for (var _ = c; _ < u; _++) {
var f = h[_];
f.setStencilFront(t, e, i, n, r, s, a, o),
f.setStencilBack(t, e, i, n, r, s, a, o)
}
this._dirty = !0
}
,
e = t,
(i = [{
key: "name",
get: function() {
return this._name
}
}, {
key: "technique",
get: function() {
return this._technique
}
}, {
key: "passes",
get: function() {
return []
}
}]) && s(e.prototype, i),
t
}
)();
i.default = o,
cc.EffectBase = o,
e.exports = i.default
}
), {
"../../../renderer/core/pass": 306
}],
82: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.parseEffect = function(t) {
var e = _(t);
return new a.default(t.name,e,0,t)
}
;
var n = l(t("../../../renderer/core/pass"))
, r = t("../../../renderer/types")
, s = l(t("../../../renderer/enums"))
, a = l(t("./effect"))
, o = l(t("../../../renderer/core/technique"));
function l(t) {
return t && t.__esModule ? t : {
default: t
}
}
function h(t) {
return cc.renderer._forward._programLib.getTemplate(t)
}
function c(t, e) {
var i = e.properties || {}
, n = h(e.program)
, a = function(e) {
if (!n.uniforms.find((function(t) {
return t.name === e
}
)))
return cc.warnID(9107, t.name, e),
"continue"
};
for (var o in i)
a(o);
var l = {};
return n.uniforms.forEach((function(t) {
var e, n = t.name, a = l[n] = Object.assign({}, t), o = i[n];
void 0 === (e = o ? o.type === s.default.PARAM_TEXTURE_2D ? null : o.type === s.default.PARAM_INT || o.type === s.default.PARAM_FLOAT ? Array.isArray(o.value) ? o.value[0] : o.value : new Float32Array(o.value) : r.enums2default[t.type]) && (e = null),
a.value = e
}
)),
l
}
function u(t) {
var e = {};
return h(t.program).defines.forEach((function(t) {
e[t.name] = r.enums2default[t.type]
}
)),
e
}
function _(t) {
for (var e = t.techniques.length, i = new Array(e), r = 0; r < e; ++r) {
for (var s = t.techniques[r], a = s.name || r, l = s.passes.length, h = new Array(l), _ = 0; _ < l; ++_) {
var f = s.passes[_]
, d = f.name || _
, p = t.name + "-" + a + "-" + d
, m = f.stage || "opaque"
, y = c(t, f)
, v = u(f)
, g = h[_] = new n.default(d,p,f.program,m,y,v);
f.rasterizerState && g.setCullMode(f.rasterizerState.cullMode);
var A = f.blendState && f.blendState.targets[0];
A && g.setBlend(A.blend, A.blendEq, A.blendSrc, A.blendDst, A.blendAlphaEq, A.blendSrcAlpha, A.blendDstAlpha, A.blendColor);
var x = f.depthStencilState;
x && (g.setDepth(x.depthTest, x.depthWrite, x.depthFunc),
g.setStencilFront(x.stencilTest, x.stencilFuncFront, x.stencilRefFront, x.stencilMaskFront, x.stencilFailOpFront, x.stencilZFailOpFront, x.stencilZPassOpFront, x.stencilWriteMaskFront),
g.setStencilBack(x.stencilTest, x.stencilFuncBack, x.stencilRefBack, x.stencilMaskBack, x.stencilFailOpBack, x.stencilZFailOpBack, x.stencilZPassOpBack, x.stencilWriteMaskBack))
}
i[r] = new o.default(a,h)
}
return i
}
}
), {
"../../../renderer/core/pass": 306,
"../../../renderer/core/technique": 308,
"../../../renderer/enums": 310,
"../../../renderer/types": 338,
"./effect": 84
}],
83: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n = a(t("../../../renderer/murmurhash2_gc"))
, r = a(t("./utils"))
, s = a(t("./effect-base"));
function a(t) {
return t && t.__esModule ? t : {
default: t
}
}
function o(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)
}
}
function l(t, e) {
return (l = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
cc.gfx;
var h = (function(t) {
var e, i;
function s(e) {
var i;
return (i = t.call(this) || this)._effect = void 0,
i._passes = [],
i._stagePasses = {},
i._hash = 0,
i.init(e),
i
}
i = t,
(e = s).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
l(e, i);
var a, h, c = s.prototype;
return c._onEffectChanged = function() {}
,
c.init = function(t) {
if (t instanceof s && (t = t.effect),
this._effect = t,
this._dirty = !0,
t) {
var e = t.passes
, i = this._passes;
i.length = 0;
for (var n = this._stagePasses = {}, r = 0; r < e.length; r++) {
var a = i[r] = Object.setPrototypeOf({}, e[r]);
a._properties = Object.setPrototypeOf({}, e[r]._properties),
a._defines = Object.setPrototypeOf({}, e[r]._defines),
n[a._stage] || (n[a._stage] = []),
n[a._stage].push(a)
}
}
}
,
c.updateHash = function() {}
,
c.getHash = function() {
if (!this._dirty)
return this._hash;
this._dirty = !1;
var t = "";
t += r.default.serializePasses(this._passes);
var e = this._effect;
return e && (t += r.default.serializePasses(e.passes)),
this._hash = (0,
n.default)(t, 666),
this.updateHash(this._hash),
this._hash
}
,
a = s,
(h = [{
key: "effect",
get: function() {
return this._effect
}
}, {
key: "name",
get: function() {
return this._effect && this._effect.name + " (variant)"
}
}, {
key: "passes",
get: function() {
return this._passes
}
}, {
key: "stagePasses",
get: function() {
return this._stagePasses
}
}]) && o(a.prototype, h),
s
}
)(s.default);
i.default = h,
cc.EffectVariant = h,
e.exports = i.default
}
), {
"../../../renderer/murmurhash2_gc": 333,
"./effect-base": 81,
"./utils": 88
}],
84: [(function(t, e, i) {
"use strict";
var n;
function r(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)
}
}
function s(t, e) {
return (s = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
i.__esModule = !0,
i.default = void 0;
var a = (function(t) {
var e, i;
function n(e, i, n, r) {
var s;
return (s = t.call(this) || this)._techniques = [],
s._asset = null,
s.init(e, i, n, r, !0),
s
}
i = t,
(e = n).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
s(e, i);
var a, o, l = n.prototype;
return l.init = function(t, e, i, n) {
this._name = t,
this._techniques = e,
this._technique = e[i],
this._asset = n
}
,
l.switchTechnique = function(t) {
t >= this._techniques.length ? cc.warn("Can not switch to technique with index [" + t + "]") : this._technique = this._techniques[t]
}
,
l.clear = function() {
this._techniques = []
}
,
l.clone = function() {
for (var t = [], e = 0; e < this._techniques.length; e++)
t.push(this._techniques[e].clone());
var i = this._techniques.indexOf(this._technique);
return new n(this._name,t,i,this._asset)
}
,
a = n,
(o = [{
key: "technique",
get: function() {
return this._technique
}
}, {
key: "passes",
get: function() {
return this._technique.passes
}
}]) && r(a.prototype, o),
n
}
)(((n = t("./effect-base")) && n.__esModule ? n : {
default: n
}).default);
i.default = a,
cc.Effect = a,
e.exports = i.default
}
), {
"./effect-base": 81
}],
85: [(function(t) {
"use strict";
t("./CCEffectAsset"),
t("./CCMaterial"),
t("./material-variant")
}
), {
"./CCEffectAsset": 79,
"./CCMaterial": 80,
"./material-variant": 87
}],
86: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n = s(t("./utils"))
, r = s(t("../../utils/pool"));
function s(t) {
return t && t.__esModule ? t : {
default: t
}
}
function a(t, e) {
return (a = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
var o = new (function(t) {
var e, i;
function r() {
for (var e, i = arguments.length, n = new Array(i), r = 0; r < i; r++)
n[r] = arguments[r];
return (e = t.call.apply(t, [this].concat(n)) || this).enabled = !1,
e._pool = {},
e
}
i = t,
(e = r).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
a(e, i);
var s = r.prototype;
return s.get = function(t, e) {
var i, r = this._pool;
if (t instanceof cc.MaterialVariant) {
if (!t._owner)
return t._owner = e,
t;
if (t._owner === e)
return t;
t = t.material
}
if (this.enabled) {
var s = t.effectAsset._uuid;
if (r[s]) {
var a = n.default.serializeDefines(t._effect._defines) + n.default.serializeTechniques(t._effect._techniques);
i = r[s][a] && r[s][a].pop()
}
}
return i ? this.count-- : ((i = new cc.MaterialVariant(t))._name = t._name + " (Instance)",
i._uuid = t._uuid),
i._owner = e,
i
}
,
s.put = function(t) {
if (this.enabled && t._owner) {
var e = this._pool
, i = t.effectAsset._uuid;
e[i] || (e[i] = {});
var r = n.default.serializeDefines(t._effect._defines) + n.default.serializeTechniques(t._effect._techniques);
e[i][r] || (e[i][r] = []),
this.count > this.maxSize || (this._clean(t),
e[i][r].push(t),
this.count++)
}
}
,
s.clear = function() {
this._pool = {},
this.count = 0
}
,
s._clean = function(t) {
t._owner = null
}
,
r
}(r.default));
r.default.register("material", o);
var l = o;
i.default = l,
e.exports = i.default
}
), {
"../../utils/pool": 269,
"./utils": 88
}],
87: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r = o(t("./CCMaterial")), s = o(t("./effect-variant")), a = o(t("./material-pool"));
function o(t) {
return t && t.__esModule ? t : {
default: t
}
}
function l(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)
}
}
function h(t, e) {
return (h = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
var c = (0,
cc._decorator.ccclass)("cc.MaterialVariant")(n = (function(t) {
var e, i, n, o;
function c(e) {
var i;
return (i = t.call(this) || this)._owner = null,
i._material = null,
i.init(e),
i
}
return i = t,
(e = c).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
h(e, i),
c.createWithBuiltin = function(t, e) {
return c.create(r.default.getBuiltinMaterial(t), e)
}
,
c.create = function(t, e) {
return t ? a.default.get(t, e) : null
}
,
c.prototype.init = function(t) {
this._effect = new s.default(t.effect),
this._effectAsset = t._effectAsset,
this._material = t
}
,
n = c,
(o = [{
key: "uuid",
get: function() {
return this._material._uuid
}
}, {
key: "owner",
get: function() {
return this._owner
}
}, {
key: "material",
get: function() {
return this._material
}
}]) && l(n.prototype, o),
c
}
)(r.default)) || n;
i.default = c,
cc.MaterialVariant = c,
e.exports = i.default
}
), {
"./CCMaterial": 80,
"./effect-variant": 83,
"./material-pool": 86
}],
88: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r = (n = t("../../../renderer/enums")) && n.__esModule ? n : {
default: n
};
function s(t) {
var e = "";
for (var i in t)
e += i + t[i];
return e
}
function a(t) {
var e = "";
for (var i in t) {
var n = t[i]
, s = n.value;
s && (n.type === r.default.PARAM_TEXTURE_2D || n.type === r.default.PARAM_TEXTURE_CUBE ? e += s._id + ";" : e += s.toString() + ";")
}
return e
}
var o = {
serializeDefines: s,
serializePasses: function(t) {
for (var e, i, n = "", r = 0; r < t.length; r++)
n += (void 0,
i = void 0,
i = (e = t[r])._programName + e._cullMode,
e._blend && (i += e._blendEq + e._blendAlphaEq + e._blendSrc + e._blendDst + e._blendSrcAlpha + e._blendDstAlpha + e._blendColor),
e._depthTest && (i += e._depthWrite + e._depthFunc),
e._stencilTest && (i += e._stencilFuncFront + e._stencilRefFront + e._stencilMaskFront + e._stencilFailOpFront + e._stencilZFailOpFront + e._stencilZPassOpFront + e._stencilWriteMaskFront + e._stencilFuncBack + e._stencilRefBack + e._stencilMaskBack + e._stencilFailOpBack + e._stencilZFailOpBack + e._stencilZPassOpBack + e._stencilWriteMaskBack),
i += a(e._properties),
i += s(e._defines));
return n
},
serializeUniforms: a
};
i.default = o,
e.exports = i.default
}
), {
"../../../renderer/enums": 310
}],
89: [(function(t, e) {
"use strict";
t("../CCNode").EventType;
var i = 56
, n = 7
, r = cc.Enum({
ONCE: 0,
ON_WINDOW_RESIZE: 1,
ALWAYS: 2
});
function s(t, e, i, n) {
for (var r = t._parent.scaleX, s = t._parent.scaleY, a = 0, o = 0, l = t._parent; ; ) {
if (a += l.x,
o += l.y,
!(l = l._parent))
return i.x = i.y = 0,
void (n.x = n.y = 1);
if (l === e)
break;
var h = l.scaleX
, c = l.scaleY;
a *= h,
o *= c,
r *= h,
s *= c
}
n.x = 0 !== r ? 1 / r : 1,
n.y = 0 !== s ? 1 / s : 1,
i.x = -a,
i.y = -o
}
var a = cc.Vec2.ZERO
, o = cc.Vec2.ONE;
function l(t, e) {
var r, l, h, c = e._target;
c ? s(t, r = c, l = a, h = o) : r = t._parent;
var u, _ = (u = r)instanceof cc.Scene ? cc.visibleRect : u._contentSize, f = r._anchorPoint, d = r instanceof cc.Scene, p = t.x, m = t.y, y = t._anchorPoint;
if (e._alignFlags & i) {
var v, g, A = _.width;
d ? (v = cc.visibleRect.left.x,
g = cc.visibleRect.right.x) : g = (v = -f.x * A) + A,
v += e._isAbsLeft ? e._left : e._left * A,
g -= e._isAbsRight ? e._right : e._right * A,
c && (v += l.x,
v *= h.x,
g += l.x,
g *= h.x);
var x, b = y.x, C = t.scaleX;
if (C < 0 && (b = 1 - b,
C = -C),
e.isStretchWidth)
x = g - v,
0 !== C && (t.width = x / C),
p = v + b * x;
else if (x = t.width * C,
e.isAlignHorizontalCenter) {
var T = e._isAbsHorizontalCenter ? e._horizontalCenter : e._horizontalCenter * A
, S = (.5 - f.x) * _.width;
c && (T *= h.x,
S += l.x,
S *= h.x),
p = S + (b - .5) * x + T
} else
p = e.isAlignLeft ? v + b * x : g + (b - 1) * x
}
if (e._alignFlags & n) {
var w, E, M = _.height;
d ? (E = cc.visibleRect.bottom.y,
w = cc.visibleRect.top.y) : w = (E = -f.y * M) + M,
E += e._isAbsBottom ? e._bottom : e._bottom * M,
w -= e._isAbsTop ? e._top : e._top * M,
c && (E += l.y,
E *= h.y,
w += l.y,
w *= h.y);
var D, B = y.y, I = t.scaleY;
if (I < 0 && (B = 1 - B,
I = -I),
e.isStretchHeight)
D = w - E,
0 !== I && (t.height = D / I),
m = E + B * D;
else if (D = t.height * I,
e.isAlignVerticalCenter) {
var P = e._isAbsVerticalCenter ? e._verticalCenter : e._verticalCenter * M
, R = (.5 - f.y) * _.height;
c && (P *= h.y,
R += l.y,
R *= h.y),
m = R + (B - .5) * D + P
} else
m = e.isAlignBottom ? E + B * D : w + (B - 1) * D
}
t.setPosition(p, m)
}
function h(t) {
var e = t._widget;
e && (l(t, e),
e.alignMode !== r.ALWAYS ? _.remove(e) : u.push(e));
for (var i = t._children, n = 0; n < i.length; n++) {
var s = i[n];
s._active && h(s)
}
}
function c() {
var t = cc.director.getScene();
if (t) {
if (_.isAligning = !0,
_._nodesOrderDirty)
u.length = 0,
h(t),
_._nodesOrderDirty = !1;
else {
var e, i = _._activeWidgetsIterator;
for (i.i = 0; i.i < u.length; ++i.i)
l((e = u[i.i]).node, e)
}
_.isAligning = !1
}
}
var u = []
, _ = 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(u),
init: function(t) {
t.on(cc.Director.EVENT_AFTER_UPDATE, c);
var e = this.onResized.bind(this);
cc.view.on("canvas-resize", e),
window.addEventListener("orientationchange", e)
},
add: function(t) {
t.node._widget = t,
this._nodesOrderDirty = !0
},
remove: function(t) {
t.node._widget = null,
this._activeWidgetsIterator.remove(t)
},
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.enabled && e.alignMode === r.ON_WINDOW_RESIZE && this.add(e);
for (var i = t._children, n = 0; n < i.length; n++) {
var s = i[n];
this.refreshWidgetOnResized(s)
}
},
updateAlignment: function t(e) {
var i = e._parent;
cc.Node.isNode(i) && t(i);
var n = e._widget || e.getComponent(cc.Widget);
n && i && l(e, n)
},
AlignMode: r
}
}
), {
"../CCNode": 29
}],
90: [(function(t, e) {
"use strict";
var i = t("../value-types")
, n = t("../geom-utils")
, r = t("../utils/affine-transform")
, s = t("../renderer/index")
, a = t("../renderer/render-flow")
, o = t("../CCGame")
, l = null;
l = t("../../renderer/scene/camera");
var h = cc.mat4()
, c = cc.mat4()
, u = cc.v3()
, _ = cc.v3()
, f = cc.v3()
, d = [];
function p() {
for (var t = 0, e = Number.MAX_VALUE; t < d.length; t++) {
var i = d[t];
i._depth < e && (A.main = i,
e = i._depth)
}
}
var m = null;
function y() {
if (m) {
var t = m.getNode()
, e = cc.game.canvas;
t.z = e.height / 1.1566,
t.x = e.width / 2,
t.y = e.height / 2
}
}
var v = cc.Enum({
COLOR: 1,
DEPTH: 2,
STENCIL: 4
})
, g = cc.Enum({
OPAQUE: 1,
TRANSPARENT: 2
})
, A = cc.Class({
name: "cc.Camera",
extends: cc.Component,
ctor: function() {
if (o.renderType !== o.RENDER_TYPE_CANVAS) {
var t = new l;
t.setStages(["opaque"]),
t.dirty = !0,
this._inited = !1,
this._camera = t
} else
this._inited = !0
},
editor: !1,
properties: {
_cullingMask: 4294967295,
_clearFlags: v.DEPTH | v.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,
_alignWithScreen: !0,
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.equals(t) || (this._backgroundColor.set(t),
this._updateBackgroundColor())
},
tooltip: !1
},
depth: {
get: function() {
return this._depth
},
set: function(t) {
A.main === this ? this._depth < t && p() : A.main && t < A.main._depth && d.includes(this) && (A.main = this),
this._depth = t,
this._camera && this._camera.setPriority(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
},
alignWithScreen: {
get: function() {
return this._alignWithScreen
},
set: function(t) {
this._alignWithScreen = t
}
},
_is3D: {
get: function() {
return this.node && this.node._is3DNode
}
}
},
statics: {
main: null,
cameras: d,
ClearFlags: v,
findCamera: function(t) {
for (var e = 0, i = d.length; e < i; e++) {
var n = d[e];
if (n.containsNode(t))
return n
}
return null
},
_findRendererCamera: function(t) {
for (var e = s.scene._cameras, i = 0; i < e._count; i++)
if (e._data[i]._cullingMask & t._cullingMask)
return e._data[i];
return null
},
_setupDebugCamera: function() {
if (!m && o.renderType !== o.RENDER_TYPE_CANVAS) {
var t = new l;
m = 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.setPriority(cc.macro.MAX_ZINDEX),
t.setClearFlags(0),
t.setColor(0, 0, 0, 0);
var e = new cc.Node;
t.setNode(e),
y(),
cc.view.on("design-resolution-changed", y),
s.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.setFrameBuffer(t ? t._framebuffer : null)
}
},
_updateClippingpPlanes: function() {
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 = [];
t & g.OPAQUE && e.push("opaque"),
t & g.TRANSPARENT && e.push("transparent"),
this._camera.setStages(e)
},
_init: function() {
if (!this._inited) {
this._inited = !0;
var t = this._camera;
t && (t.setNode(this.node),
t.setClearFlags(this._clearFlags),
t.setPriority(this._depth),
this._updateBackgroundColor(),
this._updateCameraMask(),
this._updateTargetTexture(),
this._updateClippingpPlanes(),
this._updateProjection(),
this._updateStages(),
this._updateRect(),
this.beforeDraw())
}
},
__preload: function() {
this._init()
},
onEnable: function() {
o.renderType !== o.RENDER_TYPE_CANVAS && (cc.director.on(cc.Director.EVENT_BEFORE_DRAW, this.beforeDraw, this),
s.scene.addCamera(this._camera)),
d.push(this),
(!A.main || this._depth < A.main._depth) && (A.main = this)
},
onDisable: function() {
o.renderType !== o.RENDER_TYPE_CANVAS && (cc.director.off(cc.Director.EVENT_BEFORE_DRAW, this.beforeDraw, this),
s.scene.removeCamera(this._camera)),
cc.js.array.fastRemove(d, this),
A.main === this && (A.main = null,
p())
},
getScreenToWorldMatrix2D: function(t) {
return this.getWorldToScreenMatrix2D(t),
i.Mat4.invert(t, t),
t
},
getWorldToScreenMatrix2D: function(t) {
this.node.getWorldRT(h);
var e = this.zoomRatio
, n = h.m;
n[0] *= e,
n[1] *= e,
n[4] *= e,
n[5] *= e;
var r = n[12]
, s = n[13]
, a = cc.visibleRect.center;
return n[12] = a.x - (n[0] * r + n[4] * s),
n[13] = a.y - (n[1] * r + n[5] * s),
t !== h && i.Mat4.copy(t, h),
t
},
getScreenToWorldPoint: function(t, e) {
return this.node.is3DNode ? (e = e || new cc.Vec3,
this._camera.screenToWorld(e, t, cc.visibleRect.width, cc.visibleRect.height)) : (e = e || new cc.Vec2,
this.getScreenToWorldMatrix2D(h),
i.Vec2.transformMat4(e, t, h)),
e
},
getWorldToScreenPoint: function(t, e) {
return this.node.is3DNode ? (e = e || new cc.Vec3,
this._camera.worldToScreen(e, t, cc.visibleRect.width, cc.visibleRect.height)) : (e = e || new cc.Vec2,
this.getWorldToScreenMatrix2D(h),
i.Vec2.transformMat4(e, t, h)),
e
},
getRay: function(t) {
return cc.geomUtils ? (i.Vec3.set(f, t.x, t.y, 1),
this._camera.screenToWorld(_, f, cc.visibleRect.width, cc.visibleRect.height),
this.ortho ? (i.Vec3.set(f, t.x, t.y, -1),
this._camera.screenToWorld(u, f, cc.visibleRect.width, cc.visibleRect.height)) : this.node.getWorldPosition(u),
n.Ray.fromPoints(new n.Ray, u, _)) : t
},
containsNode: function(t) {
return (t._cullingMask & this.cullingMask) > 0
},
render: function(t) {
if (!(t = t || cc.director.getScene()))
return null;
this.node.getWorldMatrix(h),
this.beforeDraw(),
a.renderCamera(this._camera, t)
},
_onAlignWithScreen: function() {
var t = cc.game.canvas.height / cc.view._scaleY;
this._targetTexture && (t = cc.visibleRect.height);
var e = this._fov * cc.macro.RAD;
this.node.z = t / (2 * Math.tan(e / 2)),
e = 2 * Math.atan(Math.tan(e / 2) / this.zoomRatio),
this._camera.setFov(e),
this._camera.setOrthoHeight(t / 2 / this.zoomRatio),
this.node.setRotation(0, 0, 0, 1)
},
beforeDraw: function() {
if (this._camera) {
if (this._alignWithScreen)
this._onAlignWithScreen();
else {
var t = this._fov * cc.macro.RAD;
t = 2 * Math.atan(Math.tan(t / 2) / this.zoomRatio),
this._camera.setFov(t),
this._camera.setOrthoHeight(this._orthoSize / this.zoomRatio)
}
this._camera.dirty = !0
}
}
});
cc.js.mixin(A.prototype, {
getNodeToCameraTransform: function(t) {
var e = r.identity();
return t.getWorldMatrix(c),
this.containsNode(t) && (this.getWorldToCameraMatrix(h),
i.Mat4.mul(c, c, h)),
r.fromMat4(e, c),
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/scene/camera": 335,
"../CCGame": 28,
"../geom-utils": 148,
"../renderer/index": 224,
"../renderer/render-flow": 225,
"../utils/affine-transform": 258,
"../value-types": 282
}],
91: [(function(t, e) {
"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 i = cc.Class({
name: "cc.BoxCollider",
extends: cc.Collider,
mixins: [cc.Collider.Box],
editor: !1
});
cc.BoxCollider = e.exports = i
}
), {}],
92: [(function(t, e) {
"use strict";
cc.Collider.Circle = cc.Class({
properties: {
_offset: cc.v2(0, 0),
_radius: 50,
offset: {
tooltip: !1,
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 i = cc.Class({
name: "cc.CircleCollider",
extends: cc.Collider,
mixins: [cc.Collider.Circle],
editor: !1
});
cc.CircleCollider = e.exports = i
}
), {}],
93: [(function(t, e) {
"use strict";
var i = 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 = i
}
), {}],
94: [(function(t, e) {
"use strict";
var i, n = (i = t("../value-types/vec2")) && i.__esModule ? i : {
default: i
}, r = t("./CCContact"), s = r.CollisionType, a = t("../CCNode").EventType, o = new n.default;
function l(t, e, i, n, r, s) {
var a = t.x
, o = t.y
, l = t.width
, h = t.height
, c = e.m
, u = c[0]
, _ = c[1]
, f = c[4]
, d = c[5]
, p = u * a + f * o + c[12]
, m = _ * a + d * o + c[13]
, y = u * l
, v = _ * l
, g = f * h
, A = d * h;
n.x = p,
n.y = m,
r.x = y + p,
r.y = v + m,
i.x = g + p,
i.y = A + m,
s.x = y + g + p,
s.y = v + A + m
}
var h = 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() {
if (this.enabled) {
var t, e, i = this._colliders;
for (t = 0,
e = i.length; t < e; t++)
this.updateCollider(i[t]);
var n = this._contacts
, r = [];
for (t = 0,
e = n.length; t < e; t++) {
var a = n[t].updateState();
a !== s.None && r.push([a, n[t]])
}
for (t = 0,
e = r.length; t < e; t++) {
var o = r[t];
this._doCollide(o[0], o[1])
}
this.drawColliders()
}
},
_doCollide: function(t, e) {
var i;
switch (t) {
case s.CollisionEnter:
i = "onCollisionEnter";
break;
case s.CollisionStay:
i = "onCollisionStay";
break;
case s.CollisionExit:
i = "onCollisionExit"
}
var n, r, a, o = e.collider1, l = e.collider2, h = o.node._components, c = l.node._components;
for (n = 0,
r = h.length; n < r; n++)
(a = h[n])[i] && a[i](l, o);
for (n = 0,
r = c.length; n < r; n++)
(a = c[n])[i] && a[i](o, l)
},
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 = cc.mat4(),
e.radius = 0,
t instanceof cc.BoxCollider ? (e.position = null,
e.points = [cc.v2(), cc.v2(), cc.v2(), cc.v2()]) : t instanceof cc.PolygonCollider ? (e.position = null,
e.points = t.points.map((function(t) {
return cc.v2(t.x, t.y)
}
))) : t instanceof cc.CircleCollider && (e.position = cc.v2(),
e.points = null)
}
},
updateCollider: function(t) {
var e = t.offset
, i = t.world
, r = i.aabb
, s = i.matrix;
t.node.getWorldMatrix(s);
var a = i.preAabb;
if (a.x = r.x,
a.y = r.y,
a.width = r.width,
a.height = r.height,
t instanceof cc.BoxCollider) {
var h = t.size;
r.x = e.x - h.width / 2,
r.y = e.y - h.height / 2,
r.width = h.width,
r.height = h.height;
var c = i.points
, u = c[0]
, _ = c[1]
, f = c[2]
, d = c[3];
l(r, s, u, _, f, d);
var p = Math.min(u.x, _.x, f.x, d.x)
, m = Math.min(u.y, _.y, f.y, d.y)
, y = Math.max(u.x, _.x, f.x, d.x)
, v = Math.max(u.y, _.y, f.y, d.y);
r.x = p,
r.y = m,
r.width = y - p,
r.height = v - m
} else if (t instanceof cc.CircleCollider) {
n.default.transformMat4(o, t.offset, s),
i.position.x = o.x,
i.position.y = o.y;
var g = s.m
, A = g[12]
, x = g[13];
g[12] = g[13] = 0,
o.x = t.radius,
o.y = 0,
n.default.transformMat4(o, o, s);
var b = Math.sqrt(o.x * o.x + o.y * o.y);
i.radius = b,
r.x = i.position.x - b,
r.y = i.position.y - b,
r.width = 2 * b,
r.height = 2 * b,
g[12] = A,
g[13] = x
} else if (t instanceof cc.PolygonCollider) {
var C = t.points
, T = i.points;
T.length = C.length;
for (var S = 1e6, w = 1e6, E = -1e6, M = -1e6, D = 0, B = C.length; D < B; D++) {
T[D] || (T[D] = cc.v2()),
o.x = C[D].x + e.x,
o.y = C[D].y + e.y,
n.default.transformMat4(o, o, s);
var I = o.x
, P = o.y;
T[D].x = I,
T[D].y = P,
I > E && (E = I),
I < S && (S = I),
P > M && (M = P),
P < w && (w = P)
}
r.x = S,
r.y = w,
r.width = E - S,
r.height = M - w
}
},
addCollider: function(t) {
var e = this._colliders;
if (-1 === e.indexOf(t)) {
for (var i = 0, n = e.length; i < n; i++) {
var s = e[i];
if (this.shouldCollide(t, s)) {
var o = new r(t,s);
this._contacts.push(o)
}
}
e.push(t),
this.initCollider(t)
}
t.node.on(a.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, r = n.length - 1; r >= 0; r--) {
var o = n[r];
o.collider1 !== t && o.collider2 !== t || (o.touching && this._doCollide(s.CollisionExit, o),
n.splice(r, 1))
}
t.node.off(a.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];
cc.PhysicsCollider && 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];
if (t.strokeColor = cc.Color.WHITE,
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 a = 1; a < s.length; a++)
t.lineTo(s[a].x, s[a].y);
t.close(),
t.stroke()
}
} else
r instanceof cc.CircleCollider && (t.circle(r.world.position.x, r.world.position.y, r.world.radius),
t.stroke());
if (this.enabledDrawBoundingBox) {
var o = r.world.aabb;
t.strokeColor = cc.Color.BLUE,
t.moveTo(o.xMin, o.yMin),
t.lineTo(o.xMin, o.yMax),
t.lineTo(o.xMax, o.yMax),
t.lineTo(o.xMax, o.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(h.prototype, "enabledDebugDraw", (function() {
return this._enabledDebugDraw
}
), (function(t) {
t && !this._enabledDebugDraw ? (this._checkDebugDrawValid(),
this._debugDrawer.node.active = !0) : !t && this._enabledDebugDraw && (this._debugDrawer.clear(!0),
this._debugDrawer.node.active = !1),
this._enabledDebugDraw = t
}
)),
cc.CollisionManager = e.exports = h
}
), {
"../CCNode": 29,
"../value-types/vec2": 291,
"./CCContact": 95
}],
95: [(function(t, e) {
"use strict";
var i = t("./CCIntersection")
, n = cc.Enum({
None: 0,
CollisionEnter: 1,
CollisionStay: 2,
CollisionExit: 3
});
function r(t, e) {
this.collider1 = t,
this.collider2 = e,
this.touching = !1;
var n = t instanceof cc.BoxCollider || t instanceof cc.PolygonCollider
, r = e instanceof cc.BoxCollider || e instanceof cc.PolygonCollider
, s = t instanceof cc.CircleCollider
, a = e instanceof cc.CircleCollider;
n && r ? this.testFunc = i.polygonPolygon : s && a ? this.testFunc = i.circleCircle : n && a ? this.testFunc = i.polygonCircle : s && r ? (this.testFunc = i.polygonCircle,
this.collider1 = e,
this.collider2 = t) : cc.errorID(6601, cc.js.getClassName(t), cc.js.getClassName(e))
}
r.prototype.test = function() {
var t = this.collider1.world
, e = this.collider2.world;
return !!t.aabb.intersects(e.aabb) && (this.testFunc === i.polygonPolygon ? this.testFunc(t.points, e.points) : this.testFunc === i.circleCircle ? this.testFunc(t, e) : this.testFunc === i.polygonCircle && this.testFunc(t.points, e))
}
,
r.prototype.updateState = function() {
var t = this.test()
, e = n.None;
return t && !this.touching ? (this.touching = !0,
e = n.CollisionEnter) : t && this.touching ? e = n.CollisionStay : !t && this.touching && (this.touching = !1,
e = n.CollisionExit),
e
}
,
r.CollisionType = n,
e.exports = r
}
), {
"./CCIntersection": 96
}],
96: [(function(t, e) {
"use strict";
var i = {};
function n(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)
, a = (n.y - i.y) * (e.x - t.x) - (n.x - i.x) * (e.y - t.y);
if (0 !== a) {
var o = r / a
, l = s / a;
if (0 <= o && o <= 1 && 0 <= l && l <= 1)
return !0
}
return !1
}
function r(t, e, i) {
for (var r = i.length, s = 0; s < r; ++s)
if (n(t, e, i[s], i[(s + 1) % r]))
return !0;
return !1
}
function s(t, e) {
for (var i = !1, n = t.x, r = t.y, s = e.length, a = 0, o = s - 1; a < s; o = a++) {
var l = e[a].x
, h = e[a].y
, c = e[o].x
, u = e[o].y;
h > r != u > r && n < (c - l) * (r - h) / (u - h) + l && (i = !i)
}
return i
}
function a(t, e, i, n) {
var r, s = i.x - e.x, a = i.y - e.y, o = s * s + a * a, l = ((t.x - e.x) * s + (t.y - e.y) * a) / o;
return r = n ? o ? l < 0 ? e : l > 1 ? i : cc.v2(e.x + l * s, e.y + l * a) : e : cc.v2(e.x + l * s, e.y + l * a),
s = t.x - r.x,
a = t.y - r.y,
Math.sqrt(s * s + a * a)
}
i.lineLine = n,
i.lineRect = function(t, e, i) {
var r = new cc.Vec2(i.x,i.y)
, s = new cc.Vec2(i.x,i.yMax)
, a = new cc.Vec2(i.xMax,i.yMax)
, o = new cc.Vec2(i.xMax,i.y);
return !!(n(t, e, r, s) || n(t, e, s, a) || n(t, e, a, o) || n(t, e, o, r))
}
,
i.linePolygon = r,
i.rectRect = function(t, e) {
var i = t.x
, n = t.y
, r = t.x + t.width
, s = t.y + t.height
, a = e.x
, o = e.y
, l = e.x + e.width
, h = e.y + e.height;
return i <= l && r >= a && n <= h && s >= o
}
,
i.rectPolygon = function(t, e) {
var i, n, a = new cc.Vec2(t.x,t.y), o = new cc.Vec2(t.x,t.yMax), l = new cc.Vec2(t.xMax,t.yMax), h = new cc.Vec2(t.xMax,t.y);
if (r(a, o, e))
return !0;
if (r(o, l, e))
return !0;
if (r(l, h, e))
return !0;
if (r(h, a, e))
return !0;
for (i = 0,
n = e.length; i < n; ++i)
if (s(e[i], t))
return !0;
return !!(s(a, e) || s(o, e) || s(l, e) || s(h, e))
}
,
i.polygonPolygon = function(t, e) {
var i, n;
for (i = 0,
n = t.length; i < n; ++i)
if (r(t[i], t[(i + 1) % n], e))
return !0;
for (i = 0,
n = e.length; i < n; ++i)
if (s(e[i], t))
return !0;
for (i = 0,
n = t.length; i < n; ++i)
if (s(t[i], e))
return !0;
return !1
}
,
i.circleCircle = function(t, e) {
return t.position.sub(e.position).mag() < t.radius + e.radius
}
,
i.polygonCircle = function(t, e) {
var i = e.position;
if (s(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
}
,
i.pointInPolygon = s,
i.pointLineDistance = a,
cc.Intersection = e.exports = i
}
), {}],
97: [(function(t, e) {
"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 i = cc.Class({
name: "cc.PolygonCollider",
extends: cc.Collider,
mixins: [cc.Collider.Polygon],
editor: !1
});
cc.PolygonCollider = e.exports = i
}
), {}],
98: [(function(t) {
"use strict";
t("./CCCollisionManager"),
t("./CCCollider"),
t("./CCBoxCollider"),
t("./CCCircleCollider"),
t("./CCPolygonCollider")
}
), {
"./CCBoxCollider": 91,
"./CCCircleCollider": 92,
"./CCCollider": 93,
"./CCCollisionManager": 94,
"./CCPolygonCollider": 97
}],
99: [(function(t, e) {
"use strict";
t("./platform/CCClass");
var i = t("./platform/CCObject").Flags
, n = t("./platform/js").array
, r = i.IsStartCalled
, s = i.IsOnEnableCalled;
function a(t, e) {
for (var i = e.constructor._executionOrder, n = e._id, r = 0, s = t.length - 1, a = s >>> 1; r <= s; a = r + s >>> 1) {
var o = t[a]
, l = o.constructor._executionOrder;
if (l > i)
s = a - 1;
else if (l < i)
r = a + 1;
else {
var h = o._id;
if (h > n)
s = a - 1;
else {
if (!(h < n))
return a;
r = a + 1
}
}
}
return ~r
}
function o(t, e) {
for (var i = t.array, n = t.i + 1; n < i.length; ) {
var r = i[n];
r._enabled && r.node._activeInHierarchy ? ++n : (t.removeAt(n),
e && (r._objFlags &= ~e))
}
}
i.IsEditorOnEnableCalled;
var l = cc.Class({
__ctor__: function(t) {
var e = n.MutableForwardIterator;
this._zero = new e([]),
this._neg = new e([]),
this._pos = new e([]),
this._invoke = t
},
statics: {
stableRemoveInactive: o
},
add: null,
remove: null,
invoke: null
});
function h(t, e) {
return t.constructor._executionOrder - e.constructor._executionOrder
}
var c = 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) {
o(this._zero, t),
o(this._neg, t),
o(this._pos, t)
},
invoke: function() {
var t = this._neg;
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;
e.array.length > 0 && (e.array.sort(h),
this._invoke(e),
e.array.length = 0)
}
})
, u = 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 _(t, e, i, n) {
var r = "var a=it.array;for(it.i=0;it.i<a.length;++it.i){var c=a[it.i];" + t + "}";
return n = e ? Function("it", "dt", r) : Function("it", r),
t = Function("c", "dt", t),
function(e, r) {
try {
n(e, r)
} catch (a) {
cc._throw(a);
var s = e.array;
for (i && (s[e.i]._objFlags |= i),
++e.i; e.i < s.length; ++e.i)
try {
t(s[e.i], r)
} catch (a) {
cc._throw(a),
i && (s[e.i]._objFlags |= i)
}
}
}
}
var f = _("c.start();c._objFlags|=" + r, !1, r)
, d = _("c.update(dt)", !0)
, p = _("c.lateUpdate(dt)", !0);
function m() {
this.startInvoker = new c(f),
this.updateInvoker = new u(d),
this.lateUpdateInvoker = new u(p),
this._deferredComps = [],
this._updating = !1
}
var y = cc.Class({
ctor: m,
unscheduleAll: m,
statics: {
LifeCycleInvoker: l,
OneOffInvoker: c,
createInvokeImpl: _,
invokeOnEnable: function(t) {
var e = cc.director._compScheduler
, i = t.array;
for (t.i = 0; t.i < i.length; ++t.i) {
var n = i[t.i];
n._enabled && (n.onEnable(),
!n.node._activeInHierarchy || e._onEnabled(n))
}
}
},
_onEnabled: function(t) {
cc.director.getScheduler().resumeTarget(t),
t._objFlags |= s,
this._updating ? this._deferredComps.push(t) : this._scheduleImmediate(t)
},
_onDisabled: function(t) {
cc.director.getScheduler().pauseTarget(t),
t._objFlags &= ~s;
var e = this._deferredComps.indexOf(t);
e >= 0 ? n.fastRemoveAt(this._deferredComps, e) : (!t.start || t._objFlags & r || this.startInvoker.remove(t),
t.update && this.updateInvoker.remove(t),
t.lateUpdate && this.lateUpdateInvoker.remove(t))
},
enableComp: function(t, e) {
if (!(t._objFlags & s)) {
if (t.onEnable) {
if (e)
return void e.add(t);
if (t.onEnable(),
!t.node._activeInHierarchy)
return
}
this._onEnabled(t)
}
},
disableComp: function(t) {
t._objFlags & s && (t.onDisable && t.onDisable(),
this._onDisabled(t))
},
_scheduleImmediate: function(t) {
"function" != typeof t.start || t._objFlags & r || this.startInvoker.add(t),
"function" == typeof t.update && this.updateInvoker.add(t),
"function" == typeof t.lateUpdate && this.lateUpdateInvoker.add(t)
},
_deferredSchedule: function() {
for (var t = this._deferredComps, e = 0, i = t.length; e < i; e++)
this._scheduleImmediate(t[e]);
t.length = 0
},
_startForNewComps: function() {
this._deferredComps.length > 0 && (this._deferredSchedule(),
this.startInvoker.invoke())
},
startPhase: function() {
this._updating = !0,
this.startInvoker.invoke(),
this._startForNewComps()
},
updatePhase: function(t) {
this.updateInvoker.invoke(t)
},
lateUpdatePhase: function(t) {
this.lateUpdateInvoker.invoke(t),
this._updating = !1,
this._startForNewComps()
}
});
e.exports = y
}
), {
"./platform/CCClass": 193,
"./platform/CCObject": 199,
"./platform/js": 214,
"./utils/misc": 267
}],
100: [(function(t, e) {
"use strict";
var i = t("../../animation/animation-animator")
, n = t("../../animation/animation-clip")
, r = t("../event/event-target")
, s = t("../platform/js")
, a = function(t, e) {
return t === e
}
, o = cc.Enum({
PLAY: "play",
STOP: "stop",
PAUSE: "pause",
RESUME: "resume",
LASTFRAME: "lastframe",
FINISHED: "finished"
})
, l = cc.Class({
name: "cc.Animation",
extends: t("./CCComponent"),
mixins: [r],
editor: !1,
statics: {
EventType: o
},
ctor: function() {
cc.EventTarget.call(this),
this._animator = null,
this._nameToState = s.createMap(!0),
this._didInit = !1,
this._currentClip = null
},
properties: {
_defaultClip: {
default: null,
type: n
},
defaultClip: {
type: n,
get: function() {
return this._defaultClip
},
set: function() {},
tooltip: !1
},
currentClip: {
get: function() {
return this._currentClip
},
set: function(t) {
this._currentClip = t
},
type: n,
visible: !1
},
_writableClips: {
get: function() {
return this._clips
},
set: function(t) {
this._didInit = !1,
this._clips = t,
this._init()
},
type: [n]
},
_clips: {
default: [],
type: [n],
tooltip: !1,
visible: !0
},
playOnLoad: {
default: !1,
tooltip: !1
}
},
start: function() {
if (this.playOnLoad && this._defaultClip && (!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);
return this._animator.stopStatesExcept(i),
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;
n.isPlaying && i.isPlaying ? i.isPaused ? n.resumeState(i) : (n.stopState(i),
n.playState(i, e)) : 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.getAnimationState(t);
e && this._animator.resumeState(e)
} else
this.enabled = !0
},
setCurrentTime: function(t, e) {
if (this._init(),
e) {
var i = this.getAnimationState(e);
i && this._animator.setStateTime(i, t)
} else
this._animator.setStateTime(t)
},
getAnimationState: function(t) {
this._init();
var e = this._nameToState[t];
return e && !e.curveLoaded && this._animator._reloadClip(e),
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);
return this._nameToState[e] = r,
r
}
cc.warnID(3900)
},
removeClip: function(t, e) {
if (t) {
var i;
for (var n in this._init(),
this._nameToState)
if (i = this._nameToState[n],
a(i.clip, t))
break;
if (t === this._defaultClip) {
if (!e)
return void cc.warnID(3902);
this._defaultClip = null
}
if (i && i.isPlaying) {
if (!e)
return void cc.warnID(3903);
this.stop(i.name)
}
this._clips = this._clips.filter((function(e) {
return !a(e, t)
}
)),
i && delete this._nameToState[i.name]
} else
cc.warnID(3901)
},
sample: function(t) {
if (this._init(),
t) {
var e = this.getAnimationState(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 a in s)
s[a]._lastframeEventOn = !0
}
return r
},
off: function(t, e, i, n) {
if (this._init(),
"lastframe" === t) {
var r = this._nameToState;
for (var s in r)
r[s]._lastframeEventOn = !1
}
this._EventTargetOff(t, e, i, n)
},
_init: function() {
this._didInit || (this._didInit = !0,
this._animator = new i(this.node,this),
this._createStates())
},
_createStates: function() {
this._nameToState = s.createMap(!0);
for (var t = null, e = !1, i = 0; i < this._clips.length; ++i) {
var n = this._clips[i];
n && (t = new cc.AnimationState(n),
this._nameToState[t.name] = t,
a(this._defaultClip, n) && (e = t))
}
this._defaultClip && !e && (t = new cc.AnimationState(this._defaultClip),
this._nameToState[t.name] = t)
}
});
l.prototype._EventTargetOn = r.prototype.on,
l.prototype._EventTargetOff = r.prototype.off,
cc.Animation = e.exports = l
}
), {
"../../animation/animation-animator": 9,
"../../animation/animation-clip": 10,
"../event/event-target": 140,
"../platform/js": 214,
"./CCComponent": 105
}],
101: [(function(t, e) {
"use strict";
var i = t("../utils/misc")
, n = t("./CCComponent")
, r = t("../assets/CCAudioClip")
, s = cc.Class({
name: "cc.AudioSource",
extends: n,
editor: !1,
ctor: function() {
this.audio = new cc._Audio
},
properties: {
_clip: {
default: null,
type: r
},
_volume: 1,
_mute: !1,
_loop: !1,
_pausedFlag: {
default: !1,
serializable: !1
},
_firstlyEnabled: !0,
isPlaying: {
get: function() {
return this.audio.getState() === cc._Audio.State.PLAYING
},
visible: !1
},
clip: {
get: function() {
return this._clip
},
set: function(t) {
if (t !== this._clip) {
if (!(t instanceof r))
return cc.error("Wrong type of AudioClip.");
this._clip = t,
this.audio.stop(),
this.audio.src = this._clip,
this.preload && this._clip._ensureLoaded()
}
},
type: r,
tooltip: !1,
animatable: !1
},
volume: {
get: function() {
return this._volume
},
set: function(t) {
return t = i.clamp01(t),
this._volume = t,
this._mute || this.audio.setVolume(t),
t
},
tooltip: !1
},
mute: {
get: function() {
return this._mute
},
set: function(t) {
return this._mute = t,
this.audio.setVolume(t ? 0 : this._volume),
t
},
animatable: !1,
tooltip: !1
},
loop: {
get: function() {
return this._loop
},
set: function(t) {
return this._loop = t,
this.audio.setLoop(t),
t
},
animatable: !1,
tooltip: !1
},
playOnLoad: {
default: !1,
tooltip: !1,
animatable: !1
},
preload: {
default: !1,
animatable: !1
}
},
_pausedCallback: function() {
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.src || (this.audio.src = this._clip),
this.preload && this._clip._ensureLoaded()
},
onEnable: function() {
this.playOnLoad && this._firstlyEnabled && (this._firstlyEnabled = !1,
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.audio.destroy()
},
play: function() {
if (this._clip) {
var t = this.audio;
t.setVolume(this._mute ? 0 : this._volume),
t.setLoop(this._loop),
t.setCurrentTime(0),
t.play()
}
},
stop: function() {
this.audio.stop()
},
pause: function() {
this.audio.pause()
},
resume: function() {
this.audio.resume()
},
rewind: function() {
this.audio.setCurrentTime(0)
},
getCurrentTime: function() {
return this.audio.getCurrentTime()
},
setCurrentTime: function(t) {
return this.audio.setCurrentTime(t),
t
},
getDuration: function() {
return this.audio.getDuration()
}
});
cc.AudioSource = e.exports = s
}
), {
"../assets/CCAudioClip": 63,
"../utils/misc": 267,
"./CCComponent": 105
}],
102: [(function(t, e) {
"use strict";
var i = ["touchstart", "touchmove", "touchend", "mousedown", "mousemove", "mouseup", "mouseenter", "mouseleave", "mousewheel"];
function n(t) {
t.stopPropagation()
}
var r = 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 < i.length; t++)
this.node.on(i[t], n, this)
},
onDisable: function() {
for (var t = 0; t < i.length; t++)
this.node.off(i[t], n, this)
}
});
cc.BlockInputEvents = e.exports = r
}
), {
"./CCComponent": 105
}],
103: [(function(t, e) {
"use strict";
var i = t("./CCComponent")
, n = t("../utils/gray-sprite-state")
, r = cc.Enum({
NONE: 0,
COLOR: 1,
SPRITE: 2,
SCALE: 3
})
, s = cc.Enum({
NORMAL: 0,
HOVER: 1,
PRESSED: 2,
DISABLED: 3
})
, a = cc.Class({
name: "cc.Button",
extends: i,
mixins: [n],
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(!0)
}
},
transition: {
default: r.NONE,
tooltip: !1,
type: r,
animatable: !1,
notify: function(t) {
this._updateTransition(t)
},
formerlySerializedAs: "transition"
},
normalColor: {
default: cc.Color.WHITE,
displayName: "Normal",
tooltip: !1,
notify: function() {
this.transition === r.Color && this._getButtonState() === s.NORMAL && (this._getTarget().opacity = this.normalColor.a),
this._updateState()
}
},
pressedColor: {
default: cc.color(211, 211, 211),
displayName: "Pressed",
tooltip: !1,
notify: function() {
this.transition === r.Color && this._getButtonState() === s.PRESSED && (this._getTarget().opacity = this.pressedColor.a),
this._updateState()
},
formerlySerializedAs: "pressedColor"
},
hoverColor: {
default: cc.Color.WHITE,
displayName: "Hover",
tooltip: !1,
notify: function() {
this.transition === r.Color && this._getButtonState() === s.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 === r.Color && this._getButtonState() === s.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: r
},
__preload: function() {
this._applyTarget(),
this._resetState()
},
_resetState: function() {
this._pressed = !1,
this._hovered = !1;
var t = this._getTarget()
, e = this.transition
, i = this._originalScale;
e === r.COLOR && this.interactable ? this._setTargetColor(this.normalColor) : e === r.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(),
this._updateState()
},
onDisable: function() {
this._resetState(),
this._unregisterNodeEvent()
},
_getTarget: function() {
return this.target ? this.target : this.node
},
_onTargetSpriteFrameChanged: function(t) {
this.transition === r.SPRITE && this._setCurrentStateSprite(t.spriteFrame)
},
_onTargetColorChanged: function(t) {
this.transition === r.COLOR && this._setCurrentStateColor(t)
},
_onTargetScaleChanged: function() {
var t = this._getTarget();
this._originalScale && (this.transition !== r.SCALE || this._transitionFinished) && (this._originalScale.x = t.scaleX,
this._originalScale.y = t.scaleY)
},
_setTargetColor: function(t) {
var e = this._getTarget()
, i = t.clone();
e.opacity = i.a,
i.a = 255,
e.color = i
},
_getStateColor: function(t) {
switch (t) {
case s.NORMAL:
return this.normalColor;
case s.HOVER:
return this.hoverColor;
case s.PRESSED:
return this.pressedColor;
case s.DISABLED:
return this.disabledColor
}
},
_getStateSprite: function(t) {
switch (t) {
case s.NORMAL:
return this.normalSprite;
case s.HOVER:
return this.hoverSprite;
case s.PRESSED:
return this.pressedSprite;
case s.DISABLED:
return this.disabledSprite
}
},
_setCurrentStateColor: function(t) {
switch (this._getButtonState()) {
case s.NORMAL:
this.normalColor = t;
break;
case s.HOVER:
this.hoverColor = t;
break;
case s.PRESSED:
this.pressedColor = t;
break;
case s.DISABLED:
this.disabledColor = t
}
},
_setCurrentStateSprite: function(t) {
switch (this._getButtonState()) {
case s.NORMAL:
this.normalSprite = t;
break;
case s.HOVER:
this.hoverSprite = t;
break;
case s.PRESSED:
this.pressedSprite = t;
break;
case s.DISABLED:
this.disabledSprite = t
}
},
update: function(t) {
var e = this._getTarget();
if (!this._transitionFinished && (this.transition === r.COLOR || this.transition === r.SCALE)) {
this.time += t;
var i = 1;
if (this.duration > 0 && (i = this.time / this.duration),
i >= 1 && (i = 1),
this.transition === r.COLOR) {
var n = this._fromColor.lerp(this._toColor, i);
this._setTargetColor(n)
} else
this.transition === r.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) {
t.on(cc.Node.EventType.SCALE_CHANGED, this._onTargetScaleChanged, this)
},
_unregisterTargetEvent: function(t) {
t.off(cc.Node.EventType.SCALE_CHANGED, this._onTargetScaleChanged, this)
},
_getTargetSprite: function(t) {
var e = null;
return t && (e = t.getComponent(cc.Sprite)),
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) {
this.interactable && this.enabledInHierarchy && (this._pressed = !0,
this._updateState(),
t.stopPropagation())
},
_onTouchMove: function(t) {
if (this.interactable && this.enabledInHierarchy && this._pressed) {
var e, i = t.touch, n = this.node._hitTest(i.getLocation()), a = this._getTarget(), o = this._originalScale;
this.transition === r.SCALE && o ? n ? (this._fromScale.x = o.x,
this._fromScale.y = o.y,
this._toScale.x = o.x * this.zoomScale,
this._toScale.y = o.y * this.zoomScale,
this._transitionFinished = !1) : (this.time = 0,
this._transitionFinished = !0,
a.setScale(o.x, o.y)) : (e = n ? s.PRESSED : s.NORMAL,
this._applyTransition(e)),
t.stopPropagation()
}
},
_onTouchEnded: function(t) {
this.interactable && this.enabledInHierarchy && (this._pressed && (cc.Component.EventHandler.emitEvents(this.clickEvents, t),
this.node.emit("click", this)),
this._pressed = !1,
this._updateState(),
t.stopPropagation())
},
_onTouchCancel: function() {
this.interactable && this.enabledInHierarchy && (this._pressed = !1,
this._updateState())
},
_onMouseMoveIn: function() {
!this._pressed && this.interactable && this.enabledInHierarchy && (this.transition !== r.SPRITE || this.hoverSprite) && (this._hovered || (this._hovered = !0,
this._updateState()))
},
_onMouseMoveOut: function() {
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 ? s.PRESSED : this._hovered ? s.HOVER : s.NORMAL : s.DISABLED
},
_updateColorTransitionImmediately: function(t) {
var e = this._getStateColor(t);
this._setTargetColor(e),
this._fromColor = e.clone(),
this._toColor = e
},
_updateColorTransition: function(t) {
if (t === s.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 === s.PRESSED ? this._zoomUp() : this._zoomBack()
},
_zoomUp: function() {
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 === r.COLOR ? this._updateColorTransitionImmediately(s.NORMAL) : t === r.SPRITE && this._updateSpriteTransition(s.NORMAL),
this._updateState()
},
_applyTransition: function(t) {
var e = this.transition;
e === r.COLOR ? this._updateColorTransition(t) : e === r.SPRITE ? this._updateSpriteTransition(t) : e === r.SCALE && this._updateScaleTransition(t)
},
_resizeNodeToTargetNode: !1,
_updateDisabledState: function(t) {
if (this._sprite && (this.enableAutoGrayEffect || t)) {
var e = !1;
this.transition === r.SPRITE && this.disabledSprite || (e = this.enableAutoGrayEffect && !this.interactable),
this._switchGrayMaterial(e, this._sprite)
}
}
});
cc.Button = e.exports = a
}
), {
"../utils/gray-sprite-state": 264,
"./CCComponent": 105
}],
104: [(function(t, e) {
"use strict";
var i = t("../camera/CCCamera")
, n = t("./CCComponent")
, r = cc.Class({
name: "cc.Canvas",
extends: n,
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()
},
tooltip: !1
},
_fitWidth: !1,
_fitHeight: !0,
fitHeight: {
get: function() {
return this._fitHeight
},
set: function(t) {
this._fitHeight !== t && (this._fitHeight = t,
this.applySettings())
},
tooltip: !1
},
fitWidth: {
get: function() {
return this._fitWidth
},
set: function(t) {
this._fitWidth !== t && (this._fitWidth = t,
this.applySettings())
},
tooltip: !1
}
},
_fitDesignResolution: !1,
__preload: function() {
if (r.instance)
return cc.warnID(6700, this.node.name, r.instance.node.name);
r.instance = this,
this.applySettings();
var t = this.getComponent(cc.Widget);
t && t.updateAlignment()
},
start: function() {
if (!i.main && cc.game.renderType !== cc.game.RENDER_TYPE_CANVAS) {
var t = new cc.Node("Main Camera");
t.parent = this.node,
t.setSiblingIndex(0);
var e = t.addComponent(i)
, n = i.ClearFlags;
e.clearFlags = n.COLOR | n.DEPTH | n.STENCIL,
e.depth = -1
}
},
onDestroy: function() {
r.instance === this && (r.instance = null)
},
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 = r
}
), {
"../camera/CCCamera": 90,
"./CCComponent": 105
}],
105: [(function(t, e) {
"use strict";
var i = t("../platform/CCObject")
, n = t("../platform/js")
, r = new (t("../platform/id-generater"))("Comp")
, s = (i.Flags.IsOnEnableCalled,
i.Flags.IsOnLoadCalled)
, a = !!cc.ActionManager
, o = cc.Class({
name: "cc.Component",
extends: i,
ctor: function() {
this._id = r.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(".");
return e >= 0 && (t = t.slice(e + 1)),
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,
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 & s
}
}
},
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() {
a && cc.director.getActionManager().removeAllActionsFromTarget(this),
this.unscheduleAllCallbacks();
for (var t = this.__eventTargets, e = t.length - 1; e >= 0; --e) {
var i = t[e];
i && i.targetOff(this)
}
t.length = 0,
cc.director._nodeActivator.destroyComp(this),
this.node._removeComponent(this)
},
_instantiate: function(t) {
return t || (t = cc.instantiate._clone(this, this)),
t.node = null,
t
},
schedule: function(t, e, i, n) {
cc.assertID(t, 1619),
e = e || 0,
cc.assertID(e >= 0, 1620),
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)
}
});
o._requireComponent = null,
o._executionOrder = 0,
n.value(o, "_registerEditorProps", (function(t, e) {
var i = e.requireComponent;
i && (t._requireComponent = i);
var n = e.executionOrder;
n && "number" == typeof n && (t._executionOrder = n)
}
)),
o.prototype.__scriptUuid = "",
cc.Component = e.exports = o
}
), {
"../platform/CCObject": 199,
"../platform/id-generater": 210,
"../platform/js": 214
}],
106: [(function() {
"use strict";
cc.Component.EventHandler = cc.Class({
name: "cc.ClickEvent",
properties: {
target: {
default: null,
type: cc.Node
},
component: "",
_componentId: "",
_componentName: {
get: function() {
return this._genCompIdIfNeeded(),
this._compId2Name(this._componentId)
},
set: function(t) {
this._componentId = this._compName2Id(t)
}
},
handler: {
default: ""
},
customEventData: {
default: ""
}
},
statics: {
emitEvents: function(t) {
var e;
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 a = t[r];
a instanceof cc.Component.EventHandler && a.emit(e)
}
}
},
emit: function(t) {
var e = this.target;
if (cc.isValid(e)) {
this._genCompIdIfNeeded();
var i = cc.js._getClassById(this._componentId)
, n = e.getComponent(i);
if (cc.isValid(n)) {
var r = n[this.handler];
"function" == typeof r && (null != this.customEventData && "" !== this.customEventData && (t = t.slice()).push(this.customEventData),
r.apply(n, t))
}
}
},
_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() {
this._componentId || (this._componentName = this.component,
this.component = "")
}
})
}
), {}],
107: [(function(t, e) {
"use strict";
var i = t("../platform/CCMacro")
, n = t("./CCRenderComponent")
, r = (t("../assets/material/CCMaterial"),
t("../renderer/utils/label/label-frame"))
, s = t("../utils/blend-func")
, a = t("../renderer/utils/utils").deleteFromDynamicAtlas
, o = i.TextAlignment
, l = i.VerticalTextAlignment
, h = cc.Enum({
NONE: 0,
CLAMP: 1,
SHRINK: 2,
RESIZE_HEIGHT: 3
})
, c = cc.Enum({
NONE: 0,
BITMAP: 1,
CHAR: 2
})
, u = cc.Class({
name: "cc.Label",
extends: n,
mixins: [s],
ctor: function() {
this._actualFontSize = 0,
this._assemblerData = null,
this._frame = null,
this._ttfTexture = null,
this._letterTexture = null,
cc.game.renderType === cc.game.RENDER_TYPE_CANVAS ? this._updateMaterial = this._updateMaterialCanvas : this._updateMaterial = this._updateMaterialWebgl
},
editor: !1,
properties: {
_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.setVertsDirty(),
this._checkStringEmpty()
},
multiline: !0,
tooltip: !1
},
horizontalAlign: {
default: o.LEFT,
type: o,
tooltip: !1,
notify: function(t) {
this.horizontalAlign !== t && this.setVertsDirty()
},
animatable: !1
},
verticalAlign: {
default: l.TOP,
type: l,
tooltip: !1,
notify: function(t) {
this.verticalAlign !== t && this.setVertsDirty()
},
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) {
this._fontSize !== t && (this._fontSize = t,
this.setVertsDirty())
},
range: [0, 512],
tooltip: !1
},
fontFamily: {
default: "Arial",
tooltip: !1,
notify: function(t) {
this.fontFamily !== t && this.setVertsDirty()
},
animatable: !1
},
_lineHeight: 40,
lineHeight: {
get: function() {
return this._lineHeight
},
set: function(t) {
this._lineHeight !== t && (this._lineHeight = t,
this.setVertsDirty())
},
tooltip: !1
},
overflow: {
default: h.NONE,
type: h,
tooltip: !1,
notify: function(t) {
this.overflow !== t && this.setVertsDirty()
},
animatable: !1
},
_enableWrapText: !0,
enableWrapText: {
get: function() {
return this._enableWrapText
},
set: function(t) {
this._enableWrapText !== t && (this._enableWrapText = t,
this.setVertsDirty())
},
animatable: !1,
tooltip: !1
},
_N$file: null,
font: {
get: function() {
return this._N$file
},
set: function(t) {
this.font !== t && (t || (this._isSystemFontUsed = !0),
this._N$file = t,
t && this._isSystemFontUsed && (this._isSystemFontUsed = !1),
this.enabledInHierarchy && this._forceUpdateRenderData())
},
type: cc.Font,
tooltip: !1,
animatable: !1
},
_isSystemFontUsed: !0,
useSystemFont: {
get: function() {
return this._isSystemFontUsed
},
set: function(t) {
if (this._isSystemFontUsed !== t) {
if (this._isSystemFontUsed = !!t,
t) {
if (this.font = null,
!this.enabledInHierarchy)
return;
this._forceUpdateRenderData()
}
this.markForValidate()
}
},
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
},
_spacingX: 0,
spacingX: {
get: function() {
return this._spacingX
},
set: function(t) {
this._spacingX = t,
this.setVertsDirty()
},
tooltip: !1
},
_batchAsBitmap: !1,
cacheMode: {
default: c.NONE,
type: c,
tooltip: !1,
notify: function(t) {
this.cacheMode !== t && (t !== c.BITMAP || this.font instanceof cc.BitmapFont || this._frame && this._frame._resetDynamicAtlasFrame(),
t === c.CHAR && (this._ttfTexture = null),
this.enabledInHierarchy && this._forceUpdateRenderData())
},
animatable: !1
},
_styleFlags: 0,
enableBold: {
get: function() {
return !!(1 & this._styleFlags)
},
set: function(t) {
t ? this._styleFlags |= 1 : this._styleFlags &= -2,
this.setVertsDirty()
},
animatable: !1,
tooltip: !1
},
enableItalic: {
get: function() {
return !!(2 & this._styleFlags)
},
set: function(t) {
t ? this._styleFlags |= 2 : this._styleFlags &= -3,
this.setVertsDirty()
},
animatable: !1,
tooltip: !1
},
enableUnderline: {
get: function() {
return !!(4 & this._styleFlags)
},
set: function(t) {
t ? this._styleFlags |= 4 : this._styleFlags &= -5,
this.setVertsDirty()
},
animatable: !1,
tooltip: !1
},
_underlineHeight: 0,
underlineHeight: {
get: function() {
return this._underlineHeight
},
set: function(t) {
this._underlineHeight !== t && (this._underlineHeight = t,
this.setVertsDirty())
},
tooltip: !1
}
},
statics: {
HorizontalAlign: o,
VerticalAlign: l,
Overflow: h,
CacheMode: c,
_shareAtlas: null,
clearCharCache: function() {
u._shareAtlas && u._shareAtlas.clearAllCache()
}
},
onLoad: function() {
this._batchAsBitmap && this.cacheMode === c.NONE && (this.cacheMode = c.BITMAP,
this._batchAsBitmap = !1),
cc.game.renderType === cc.game.RENDER_TYPE_CANVAS && (this.cacheMode = c.NONE)
},
onEnable: function() {
this._super(),
this.node.on(cc.Node.EventType.SIZE_CHANGED, this._nodeSizeChanged, this),
this.node.on(cc.Node.EventType.ANCHOR_CHANGED, this.setVertsDirty, this),
this.node.on(cc.Node.EventType.COLOR_CHANGED, this._nodeColorChanged, this),
this._forceUpdateRenderData()
},
onDisable: function() {
this._super(),
this.node.off(cc.Node.EventType.SIZE_CHANGED, this._nodeSizeChanged, this),
this.node.off(cc.Node.EventType.ANCHOR_CHANGED, this.setVertsDirty, this),
this.node.off(cc.Node.EventType.COLOR_CHANGED, this._nodeColorChanged, this)
},
onDestroy: function() {
this._assembler && this._assembler._resetAssemblerData && this._assembler._resetAssemblerData(this._assemblerData),
this._assemblerData = null,
this._letterTexture = null,
this._ttfTexture && (this._ttfTexture.destroy(),
this._ttfTexture = null),
this._super()
},
_nodeSizeChanged: function() {
this.overflow !== h.NONE && this.setVertsDirty()
},
_nodeColorChanged: function() {
this.font instanceof cc.BitmapFont || this.setVertsDirty()
},
setVertsDirty: function() {
this._super()
},
_updateColor: function() {
this.font instanceof cc.BitmapFont || this._srcBlendFactor === cc.macro.BlendFactor.SRC_ALPHA && this.node._renderFlag & cc.RenderFlow.FLAG_OPACITY || this.setVertsDirty(),
n.prototype._updateColor.call(this)
},
_validateRender: function() {
if (this.string) {
if (this._materials[0]) {
var t = this.font;
if (!(t instanceof cc.BitmapFont))
return;
var e = t.spriteFrame;
if (e && e.textureLoaded() && t._fntConfig)
return
}
this.disableRender()
} else
this.disableRender()
},
_resetAssembler: function() {
this._resetFrame(),
n.prototype._resetAssembler.call(this)
},
_resetFrame: function() {
!this._frame || this.font instanceof cc.BitmapFont || (a(this, this._frame),
this._frame = null)
},
_checkStringEmpty: function() {
this.markForRender(!!this.string)
},
_on3DNodeChanged: function() {
this._resetAssembler(),
this._applyFontTexture()
},
_onBMFontTextureLoaded: function() {
this._frame._texture = this.font.spriteFrame._texture,
this.markForRender(!0),
this._updateMaterial(),
this._assembler && this._assembler.updateRenderData(this)
},
_onBlendChanged: function() {
this.useSystemFont && this.enabledInHierarchy && this._forceUpdateRenderData()
},
_applyFontTexture: function() {
var t = this.font;
if (t instanceof cc.BitmapFont) {
var e = t.spriteFrame;
this._frame = e,
e && e.onTextureLoaded(this._onBMFontTextureLoaded, this)
} else
this._nativeTTF() || (this._frame || (this._frame = new r),
this.cacheMode === c.CHAR ? (this._letterTexture = this._assembler._getAssemblerData(),
this._frame._refreshTexture(this._letterTexture)) : this._ttfTexture || (this._ttfTexture = new cc.Texture2D,
this._assemblerData = this._assembler._getAssemblerData(),
this._ttfTexture.initWithElement(this._assemblerData.canvas)),
this.cacheMode !== c.CHAR && (this._frame._resetDynamicAtlasFrame(),
this._frame._refreshTexture(this._ttfTexture),
this._srcBlendFactor === cc.macro.BlendFactor.ONE && this._ttfTexture.setPremultiplyAlpha(!0)),
this._updateMaterial()),
this._assembler && this._assembler.updateRenderData(this);
this.markForValidate()
},
_updateMaterialCanvas: function() {
this._frame && (this._frame._texture._nativeUrl = this.uuid + "_texture")
},
_updateMaterialWebgl: function() {
var t = this.getMaterial(0);
this._nativeTTF() ? t && this._assembler._updateTTFMaterial(this) : this._frame && (t && t.setProperty("texture", this._frame._texture),
s.prototype._updateMaterial.call(this))
},
_forceUseCanvas: !1,
_useNativeTTF: function() {
return cc.macro.ENABLE_NATIVE_TTF_RENDERER && !this._forceUseCanvas
},
_nativeTTF: function() {
return this._useNativeTTF() && !!this._assembler && !!this._assembler._updateTTFMaterial
},
_forceUpdateRenderData: function() {
this.setVertsDirty(),
this._resetAssembler(),
this._applyFontTexture()
},
_enableBold: function(t) {
this.enableBold = !!t
},
_enableItalics: function(t) {
this.enableItalic = !!t
},
_enableUnderline: function(t) {
this.enableUnderline = !!t
}
});
cc.Label = e.exports = u
}
), {
"../assets/material/CCMaterial": 80,
"../platform/CCMacro": 198,
"../renderer/utils/label/label-frame": 229,
"../renderer/utils/utils": 232,
"../utils/blend-func": 261,
"./CCRenderComponent": 115
}],
108: [(function(t, e) {
"use strict";
var i = 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.clone()
},
set: function(t) {
this._color.equals(t) || this._color.set(t),
this._updateRenderData()
}
},
width: {
tooltip: !1,
get: function() {
return this._width
},
set: function(t) {
this._width !== 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.setVertsDirty()
}
});
cc.LabelOutline = e.exports = i
}
), {
"./CCComponent": 105
}],
109: [(function(t, e) {
"use strict";
var i = 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.clone()
},
set: function(t) {
this._color.equals(t) || this._color.set(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.markForRender(!0)
}
});
cc.LabelShadow = e.exports = i
}
), {
"./CCComponent": 105
}],
110: [(function(t, e) {
"use strict";
var i = t("../CCNode").EventType
, n = cc.Enum({
NONE: 0,
HORIZONTAL: 1,
VERTICAL: 2,
GRID: 3
})
, r = cc.Enum({
NONE: 0,
CONTAINER: 1,
CHILDREN: 2
})
, s = cc.Enum({
HORIZONTAL: 0,
VERTICAL: 1
})
, a = cc.Enum({
BOTTOM_TO_TOP: 0,
TOP_TO_BOTTOM: 1
})
, o = 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: r.NONE,
_N$layoutType: n.NONE,
type: {
type: n,
get: function() {
return this._N$layoutType
},
set: function(t) {
this._N$layoutType = t,
this._doLayoutDirty()
},
tooltip: !1,
animatable: !1
},
resizeMode: {
type: r,
tooltip: !1,
animatable: !1,
get: function() {
return this._resize
},
set: function(t) {
this.type === n.NONE && t === r.CHILDREN || (this._resize = t,
this._doLayoutDirty())
}
},
cellSize: {
default: cc.size(40, 40),
tooltip: !1,
type: cc.Size,
notify: function() {
this._doLayoutDirty()
}
},
startAxis: {
default: s.HORIZONTAL,
tooltip: !1,
type: s,
notify: function() {
this._doLayoutDirty()
},
animatable: !1
},
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: o.LEFT_TO_RIGHT,
type: o,
notify: function() {
this._doLayoutDirty()
},
tooltip: !1,
animatable: !1
},
affectedByScale: {
default: !1,
notify: function() {
this._doLayoutDirty()
},
animatable: !1,
tooltip: !1
}
},
statics: {
Type: n,
VerticalDirection: a,
HorizontalDirection: o,
ResizeMode: r,
AxisDirection: s
},
onEnable: function() {
this._addEventListeners(),
this.node.getContentSize().equals(cc.size(0, 0)) && this.node.setContentSize(this._layoutSize),
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(i.SIZE_CHANGED, this._resized, this),
this.node.on(i.ANCHOR_CHANGED, this._doLayoutDirty, this),
this.node.on(i.CHILD_ADDED, this._childAdded, this),
this.node.on(i.CHILD_REMOVED, this._childRemoved, this),
this.node.on(i.CHILD_REORDER, this._doLayoutDirty, this),
this._addChildrenEventListeners()
},
_removeEventListeners: function() {
cc.director.off(cc.Director.EVENT_AFTER_UPDATE, this.updateLayout, this),
this.node.off(i.SIZE_CHANGED, this._resized, this),
this.node.off(i.ANCHOR_CHANGED, this._doLayoutDirty, this),
this.node.off(i.CHILD_ADDED, this._childAdded, this),
this.node.off(i.CHILD_REMOVED, this._childRemoved, this),
this.node.off(i.CHILD_REORDER, this._doLayoutDirty, this),
this._removeChildrenEventListeners()
},
_addChildrenEventListeners: function() {
for (var t = this.node.children, e = 0; e < t.length; ++e) {
var n = t[e];
n.on(i.SCALE_CHANGED, this._doScaleDirty, this),
n.on(i.SIZE_CHANGED, this._doLayoutDirty, this),
n.on(i.POSITION_CHANGED, this._doLayoutDirty, this),
n.on(i.ANCHOR_CHANGED, this._doLayoutDirty, this),
n.on("active-in-hierarchy-changed", this._doLayoutDirty, this)
}
},
_removeChildrenEventListeners: function() {
for (var t = this.node.children, e = 0; e < t.length; ++e) {
var n = t[e];
n.off(i.SCALE_CHANGED, this._doScaleDirty, this),
n.off(i.SIZE_CHANGED, this._doLayoutDirty, this),
n.off(i.POSITION_CHANGED, this._doLayoutDirty, this),
n.off(i.ANCHOR_CHANGED, this._doLayoutDirty, this),
n.off("active-in-hierarchy-changed", this._doLayoutDirty, this)
}
},
_childAdded: function(t) {
t.on(i.SCALE_CHANGED, this._doScaleDirty, this),
t.on(i.SIZE_CHANGED, this._doLayoutDirty, this),
t.on(i.POSITION_CHANGED, this._doLayoutDirty, this),
t.on(i.ANCHOR_CHANGED, this._doLayoutDirty, this),
t.on("active-in-hierarchy-changed", this._doLayoutDirty, this),
this._doLayoutDirty()
},
_childRemoved: function(t) {
t.off(i.SCALE_CHANGED, this._doScaleDirty, this),
t.off(i.SIZE_CHANGED, this._doLayoutDirty, this),
t.off(i.POSITION_CHANGED, this._doLayoutDirty, this),
t.off(i.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, s) {
var l = this.node.getAnchorPoint()
, h = this.node.children
, c = 1
, u = this.paddingLeft
, _ = -l.x * t;
this.horizontalDirection === o.RIGHT_TO_LEFT && (c = -1,
_ = (1 - l.x) * t,
u = this.paddingRight);
for (var f = _ + c * u - c * this.spacingX, d = 0, p = 0, m = 0, y = 0, v = 0, g = 0, A = 0, x = 0; x < h.length; ++x)
(C = h[x]).activeInHierarchy && A++;
var b = this.cellSize.width;
for (this.type !== n.GRID && this.resizeMode === r.CHILDREN && (b = (t - (this.paddingLeft + this.paddingRight) - (A - 1) * this.spacingX) / A),
x = 0; x < h.length; ++x) {
var C = h[x]
, T = this._getUsedScaleValue(C.scaleX)
, S = this._getUsedScaleValue(C.scaleY);
if (C.activeInHierarchy) {
this._resize === r.CHILDREN && (C.width = b / T,
this.type === n.GRID && (C.height = this.cellSize.height / S));
var w = C.anchorX
, E = C.width * T
, M = C.height * S;
m > p && (p = m),
M >= p && (m = p,
p = M,
g = C.getAnchorPoint().y),
this.horizontalDirection === o.RIGHT_TO_LEFT && (w = 1 - C.anchorX),
f = f + c * w * E + c * this.spacingX;
var D = c * (1 - w) * E;
if (e) {
var B = f + D + c * (c > 0 ? this.paddingRight : this.paddingLeft)
, I = this.horizontalDirection === o.LEFT_TO_RIGHT && B > (1 - l.x) * t
, P = this.horizontalDirection === o.RIGHT_TO_LEFT && B < -l.x * t;
(I || P) && (M >= p ? (0 === m && (m = p),
d += m,
m = p) : (d += p,
m = M,
p = 0),
f = _ + c * (u + w * E),
y++)
}
var R = i(C, d, y);
t >= E + this.paddingLeft + this.paddingRight && s && C.setPosition(cc.v2(f, R));
var O, L = 1, F = 0 === p ? M : p;
this.verticalDirection === a.TOP_TO_BOTTOM ? (v = v || this.node._contentSize.height,
(O = R + (L = -1) * (F * g + this.paddingBottom)) < v && (v = O)) : (v = v || -this.node._contentSize.height,
(O = R + L * (F * g + this.paddingTop)) > v && (v = O)),
f += D
}
}
return v
},
_getVerticalBaseHeight: function(t) {
var e = 0
, i = 0;
if (this.resizeMode === r.CONTAINER) {
for (var n = 0; n < t.length; ++n) {
var s = t[n];
s.activeInHierarchy && (i++,
e += s.height * this._getUsedScaleValue(s.scaleY))
}
e += (i - 1) * this.spacingY + this.paddingBottom + this.paddingTop
} else
e = this.node.getContentSize().height;
return e
},
_doLayoutVertically: function(t, e, i, s) {
var l = this.node.getAnchorPoint()
, h = this.node.children
, c = 1
, u = this.paddingBottom
, _ = -l.y * t;
this.verticalDirection === a.TOP_TO_BOTTOM && (c = -1,
_ = (1 - l.y) * t,
u = this.paddingTop);
for (var f = _ + c * u - c * this.spacingY, d = 0, p = 0, m = 0, y = 0, v = 0, g = 0, A = 0, x = 0; x < h.length; ++x)
(C = h[x]).activeInHierarchy && A++;
var b = this.cellSize.height;
for (this.type !== n.GRID && this.resizeMode === r.CHILDREN && (b = (t - (this.paddingTop + this.paddingBottom) - (A - 1) * this.spacingY) / A),
x = 0; x < h.length; ++x) {
var C = h[x]
, T = this._getUsedScaleValue(C.scaleX)
, S = this._getUsedScaleValue(C.scaleY);
if (C.activeInHierarchy) {
this.resizeMode === r.CHILDREN && (C.height = b / S,
this.type === n.GRID && (C.width = this.cellSize.width / T));
var w = C.anchorY
, E = C.width * T
, M = C.height * S;
m > p && (p = m),
E >= p && (m = p,
p = E,
g = C.getAnchorPoint().x),
this.verticalDirection === a.TOP_TO_BOTTOM && (w = 1 - C.anchorY),
f = f + c * w * M + c * this.spacingY;
var D = c * (1 - w) * M;
if (e) {
var B = f + D + c * (c > 0 ? this.paddingTop : this.paddingBottom)
, I = this.verticalDirection === a.BOTTOM_TO_TOP && B > (1 - l.y) * t
, P = this.verticalDirection === a.TOP_TO_BOTTOM && B < -l.y * t;
(I || P) && (E >= p ? (0 === m && (m = p),
d += m,
m = p) : (d += p,
m = E,
p = 0),
f = _ + c * (u + w * M),
y++)
}
var R = i(C, d, y);
t >= M + (this.paddingTop + this.paddingBottom) && s && C.setPosition(cc.v2(R, f));
var O, L = 1, F = 0 === p ? E : p;
this.horizontalDirection === o.RIGHT_TO_LEFT ? (L = -1,
v = v || this.node._contentSize.width,
(O = R + L * (F * g + this.paddingLeft)) < v && (v = O)) : (v = v || -this.node._contentSize.width,
(O = R + L * (F * g + this.paddingRight)) > v && (v = O)),
f += D
}
}
return v
},
_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))
, a = (s = cc.v2(s.x + this.paddingRight, s.y + this.paddingTop)).sub(r);
if (0 !== (a = cc.size(parseFloat(a.x.toFixed(2)), parseFloat(a.y.toFixed(2)))).width) {
var o = -r.x / a.width;
this.node.anchorX = parseFloat(o.toFixed(2))
}
if (0 !== a.height) {
var l = -r.y / a.height;
this.node.anchorY = parseFloat(l.toFixed(2))
}
this.node.setContentSize(a)
}
},
_doLayoutGridAxisHorizontal: function(t, e) {
var i = e.width
, n = 1
, s = -t.y * e.height
, o = this.paddingBottom;
this.verticalDirection === a.TOP_TO_BOTTOM && (n = -1,
s = (1 - t.y) * e.height,
o = this.paddingTop);
var l = function(t, e, i) {
return s + n * (e + t.anchorY * t.height * this._getUsedScaleValue(t.scaleY) + o + i * this.spacingY)
}
.bind(this)
, h = 0;
if (this.resizeMode === r.CONTAINER) {
var c = this._doLayoutHorizontally(i, !0, l, !1);
(h = s - c) < 0 && (h *= -1),
s = -t.y * h,
this.verticalDirection === a.TOP_TO_BOTTOM && (n = -1,
s = (1 - t.y) * h)
}
this._doLayoutHorizontally(i, !0, l, !0),
this.resizeMode === r.CONTAINER && this.node.setContentSize(i, h)
},
_doLayoutGridAxisVertical: function(t, e) {
var i = e.height
, n = 1
, s = -t.x * e.width
, a = this.paddingLeft;
this.horizontalDirection === o.RIGHT_TO_LEFT && (n = -1,
s = (1 - t.x) * e.width,
a = this.paddingRight);
var l = function(t, e, i) {
return s + n * (e + t.anchorX * t.width * this._getUsedScaleValue(t.scaleX) + a + i * this.spacingX)
}
.bind(this)
, h = 0;
if (this.resizeMode === r.CONTAINER) {
var c = this._doLayoutVertically(i, !0, l, !1);
(h = s - c) < 0 && (h *= -1),
s = -t.x * h,
this.horizontalDirection === o.RIGHT_TO_LEFT && (n = -1,
s = (1 - t.x) * h)
}
this._doLayoutVertically(i, !0, l, !0),
this.resizeMode === r.CONTAINER && this.node.setContentSize(h, i)
},
_doLayoutGrid: function() {
var t = this.node.getAnchorPoint()
, e = this.node.getContentSize();
this.startAxis === s.HORIZONTAL ? this._doLayoutGridAxisHorizontal(t, e) : this.startAxis === s.VERTICAL && this._doLayoutGridAxisVertical(t, e)
},
_getHorizontalBaseWidth: function(t) {
var e = 0
, i = 0;
if (this.resizeMode === r.CONTAINER) {
for (var n = 0; n < t.length; ++n) {
var s = t[n];
s.activeInHierarchy && (i++,
e += s.width * this._getUsedScaleValue(s.scaleX))
}
e += (i - 1) * this.spacingX + this.paddingLeft + this.paddingRight
} else
e = this.node.getContentSize().width;
return e
},
_doLayout: function() {
if (this.type === n.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 === n.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 === n.NONE ? this.resizeMode === r.CONTAINER && this._doLayoutBasic() : this.type === n.GRID && this._doLayoutGrid()
},
_getUsedScaleValue: function(t) {
return this.affectedByScale ? Math.abs(t) : 1
},
updateLayout: function() {
this._layoutDirty && this.node.children.length > 0 && (this._doLayout(),
this._layoutDirty = !1)
}
});
cc.Layout = e.exports = l
}
), {
"../CCNode": 29,
"./CCComponent": 105
}],
111: [(function(t, e) {
"use strict";
var i = a(t("../../renderer/gfx"))
, n = a(t("../value-types/mat4"))
, r = a(t("../value-types/vec2"))
, s = a(t("../assets/material/material-variant"));
function a(t) {
return t && t.__esModule ? t : {
default: t
}
}
var o = t("../utils/misc")
, l = t("./CCRenderComponent")
, h = t("../renderer/render-flow")
, c = t("../graphics/graphics")
, u = new r.default
, _ = new n.default
, f = [];
function d(t, e, i) {
f.length = 0;
for (var n = 2 * Math.PI / i, r = 0; r < i; ++r)
f.push(cc.v2(e.x * Math.cos(n * r) + t.x, e.y * Math.sin(n * r) + t.y));
return f
}
var p = cc.Enum({
RECT: 0,
ELLIPSE: 1,
IMAGE_STENCIL: 2
})
, m = cc.Class({
name: "cc.Mask",
extends: l,
editor: !1,
ctor: function() {
this._graphics = null,
this._enableMaterial = null,
this._exitMaterial = null,
this._clearMaterial = null
},
properties: {
_spriteFrame: {
default: null,
type: cc.SpriteFrame
},
_type: p.RECT,
type: {
get: function() {
return this._type
},
set: function(t) {
this._type !== t && this._resetAssembler(),
this._type = t,
this._type !== p.IMAGE_STENCIL && (this.spriteFrame = null,
this.alphaThreshold = 0,
this._updateGraphics()),
this._activateMaterial()
},
type: p,
tooltip: !1
},
spriteFrame: {
type: cc.SpriteFrame,
tooltip: !1,
get: function() {
return this._spriteFrame
},
set: function(t) {
this._spriteFrame !== t && (this._spriteFrame = t,
this.setVertsDirty(),
this._updateMaterial())
}
},
alphaThreshold: {
default: .1,
type: cc.Float,
range: [0, 1, .1],
slide: !0,
tooltip: !1,
notify: function() {
cc.game.renderType !== cc.game.RENDER_TYPE_CANVAS ? this._updateMaterial() : 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 = o.clampf(t, 3, 1e4),
this._updateGraphics()
},
type: cc.Integer,
tooltip: !1
},
_resizeToTarget: {
animatable: !1,
set: function(t) {
t && this._resizeNodeToTargetNode()
}
}
},
statics: {
Type: p
},
onRestore: function() {
this._activateMaterial()
},
onEnable: function() {
this._super(),
this._type !== p.IMAGE_STENCIL && 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)
},
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 &= ~h.FLAG_POST_RENDER
},
onDestroy: function() {
this._super(),
this._removeGraphics()
},
_resizeNodeToTargetNode: !1,
_validateRender: function() {
if (this._type === p.IMAGE_STENCIL) {
var t = this._spriteFrame;
t && t.textureLoaded() || this.disableRender()
}
},
_activateMaterial: function() {
this._createGraphics();
var t = this._materials[0];
(t = t ? s.default.create(t, this) : s.default.createWithBuiltin("2d-sprite", this)).define("USE_ALPHA_TEST", !0),
this._type === p.IMAGE_STENCIL ? (t.define("CC_USE_MODEL", !1),
t.define("USE_TEXTURE", !0)) : (t.define("CC_USE_MODEL", !0),
t.define("USE_TEXTURE", !1)),
this._enableMaterial || (this._enableMaterial = s.default.createWithBuiltin("2d-sprite", this)),
this._exitMaterial || (this._exitMaterial = s.default.createWithBuiltin("2d-sprite", this),
this._exitMaterial.setStencilEnabled(i.default.STENCIL_DISABLE)),
this._clearMaterial || (this._clearMaterial = s.default.createWithBuiltin("clear-stencil", this)),
this.setMaterial(0, t),
this._graphics._materials[0] = t,
this._updateMaterial()
},
_updateMaterial: function() {
var t = this._materials[0];
if (t) {
if (this._type === p.IMAGE_STENCIL && this.spriteFrame) {
var e = this.spriteFrame.getTexture();
t.setProperty("texture", e)
}
t.setProperty("alphaThreshold", this.alphaThreshold)
}
},
_createGraphics: function() {
this._graphics || (this._graphics = new c,
cc.Assembler.init(this._graphics),
this._graphics.node = this.node,
this._graphics.lineWidth = 0,
this._graphics.strokeColor = cc.color(0, 0, 0, 0))
},
_updateGraphics: function() {
if (this.enabledInHierarchy) {
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 === p.RECT)
e.rect(r, s, i, n);
else if (this._type === p.ELLIPSE) {
for (var a = d(cc.v2(r + i / 2, s + n / 2), {
x: i / 2,
y: n / 2
}, this._segments), o = 0; o < a.length; ++o) {
var l = a[o];
0 === o ? e.moveTo(l.x, l.y) : e.lineTo(l.x, l.y)
}
e.close()
}
cc.game.renderType === cc.game.RENDER_TYPE_CANVAS ? e.stroke() : e.fill()
}
},
_removeGraphics: function() {
this._graphics && (this._graphics.destroy(),
this._graphics._destroyImmediate(),
this._graphics = null)
},
_hitTest: function(t) {
var e = this.node
, i = e.getContentSize()
, s = i.width
, a = i.height
, o = u;
if (e._updateWorldMatrix(),
!n.default.invert(_, e._worldMatrix))
return !1;
r.default.transformMat4(o, t, _),
o.x += e._anchorPoint.x * s,
o.y += e._anchorPoint.y * a;
var l = !1;
if (this.type === p.RECT || this.type === p.IMAGE_STENCIL)
l = o.x >= 0 && o.y >= 0 && o.x <= s && o.y <= a;
else if (this.type === p.ELLIPSE) {
var h = s / 2
, c = a / 2
, f = o.x - .5 * s
, d = o.y - .5 * a;
l = f * f / (h * h) + d * d / (c * c) < 1
}
return this.inverted && (l = !l),
l
},
markForRender: function(t) {
var e = h.FLAG_RENDER | h.FLAG_UPDATE_RENDER_DATA | h.FLAG_POST_RENDER;
t ? (this.node._renderFlag |= e,
this.markForValidate()) : t || (this.node._renderFlag &= ~e)
},
disableRender: function() {
this.node._renderFlag &= ~(h.FLAG_RENDER | h.FLAG_UPDATE_RENDER_DATA | h.FLAG_POST_RENDER)
}
});
cc.Mask = e.exports = m
}
), {
"../../renderer/gfx": 315,
"../assets/material/material-variant": 87,
"../graphics/graphics": 156,
"../renderer/render-flow": 225,
"../utils/misc": 267,
"../value-types/mat4": 284,
"../value-types/vec2": 291,
"./CCRenderComponent": 115
}],
112: [(function(t, e) {
"use strict";
var i = cc.Enum({
Unified: 0,
Free: 1
})
, n = cc.Enum({
Horizontal: 0,
Vertical: 1
})
, r = cc.Enum({
PAGE_TURNING: 0
})
, s = 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: i.Unified,
type: i,
tooltip: !1,
notify: function() {
this._syncSizeMode()
}
},
direction: {
default: n.Horizontal,
type: n,
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: i,
Direction: n,
EventType: r
},
onEnable: function() {
this._super(),
this.node.on(cc.Node.EventType.SIZE_CHANGED, this._updateAllPagesSize, this),
this.node.on("scroll-ended-with-threshold", this._dispatchPageTurningEvent, this)
},
onDisable: function() {
this._super(),
this.node.off(cc.Node.EventType.SIZE_CHANGED, this._updateAllPagesSize, this),
this.node.off("scroll-ended-with-threshold", this._dispatchPageTurningEvent, this)
},
onLoad: function() {
this._initPages(),
this.indicator && this.indicator.setPageView(this)
},
getCurrentPageIndex: function() {
return this._curPageIdx
},
setCurrentPageIndex: function(t) {
this.scrollToPage(t, !0)
},
getPages: function() {
return this._pages
},
addPage: function(t) {
t && -1 === this._pages.indexOf(t) && this.content && (this.content.addChild(t),
this._pages.push(t),
this._updatePageView())
},
insertPage: function(t, e) {
e < 0 || !t || -1 !== this._pages.indexOf(t) || !this.content || (e >= this._pages.length ? this.addPage(t) : (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];
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) {
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 === n.Horizontal,
this.vertical = this.direction === n.Vertical
},
_syncSizeMode: function() {
if (this.content) {
var t = this.content.getComponent(cc.Layout);
if (t) {
if (this.sizeMode === i.Free && this._pages.length > 0) {
var e = this._pages[this._pages.length - 1];
this.direction === n.Horizontal ? (t.paddingLeft = (this._view.width - this._pages[0].width) / 2,
t.paddingRight = (this._view.width - e.width) / 2) : this.direction === n.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;
this._curPageIdx >= e && (this._curPageIdx = 0 === e ? 0 : e - 1,
this._lastPageIdx = this._curPageIdx);
for (var i = this._initContentPos, r = 0; r < e; ++r) {
var s = this._pages[r];
s.setSiblingIndex(r),
this.direction === n.Horizontal ? this._scrollCenterOffsetX[r] = Math.abs(i.x + s.x) : this._scrollCenterOffsetY[r] = Math.abs(i.y + s.y)
}
this.indicator && this.indicator._refresh()
},
_updateAllPagesSize: function() {
if (this.sizeMode === i.Unified && this._view)
for (var t = this._pages, e = this._view.getContentSize(), n = 0, r = t.length; n < r; n++)
t[n].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() {
this._lastPageIdx !== this._curPageIdx && (this._lastPageIdx = this._curPageIdx,
cc.Component.EventHandler.emitEvents(this.pageEvents, this, r.PAGE_TURNING),
this.node.emit("page-turning", this))
},
_isScrollable: function(t, e, r) {
if (this.sizeMode === i.Free) {
var s, a;
if (this.direction === n.Horizontal)
return s = this._scrollCenterOffsetX[e],
a = this._scrollCenterOffsetX[r],
Math.abs(t.x) >= Math.abs(s - a) * this.scrollThreshold;
if (this.direction === n.Vertical)
return s = this._scrollCenterOffsetY[e],
a = this._scrollCenterOffsetY[r],
Math.abs(t.y) >= Math.abs(s - a) * this.scrollThreshold
} else {
if (this.direction === n.Horizontal)
return Math.abs(t.x) >= this._view.width * this.scrollThreshold;
if (this.direction === n.Vertical)
return Math.abs(t.y) >= this._view.height * this.scrollThreshold
}
},
_isQuicklyScrollable: function(t) {
if (this.direction === n.Horizontal) {
if (Math.abs(t.x) > this.autoPageTurningThreshold)
return !0
} else if (this.direction === n.Vertical && Math.abs(t.y) > this.autoPageTurningThreshold)
return !0;
return !1
},
_moveOffsetValue: function(t) {
var e = cc.v2(0, 0);
return this.sizeMode === i.Free ? this.direction === n.Horizontal ? e.x = this._scrollCenterOffsetX[t] : this.direction === n.Vertical && (e.y = this._scrollCenterOffsetY[t]) : this.direction === n.Horizontal ? e.x = t * this._view.width : this.direction === n.Vertical && (e.y = t * this._view.height),
e
},
_getDragDirection: function(t) {
return this.direction === n.Horizontal ? 0 === t.x ? 0 : t.x > 0 ? 1 : -1 : this.direction === n.Vertical ? 0 === t.y ? 0 : t.y < 0 ? 1 : -1 : void 0
},
_handleReleaseLogic: function() {
this._autoScrollToPage(),
this._scrolling && (this._scrolling = !1,
this._autoScrolling || this._dispatchEvent("scroll-ended"))
},
_autoScrollToPage: function() {
if (this._startBounceBackIfNeeded()) {
var t = this._getHowMuchOutOfBoundary();
((t = this._clampDelta(t)).x > 0 || t.y < 0) && (this._curPageIdx = 0 === this._pages.length ? 0 : this._pages.length - 1),
(t.x < 0 || t.y > 0) && (this._curPageIdx = 0),
this.indicator && this.indicator._changedState()
} else {
var e = this._touchBeganPosition.sub(this._touchEndPosition)
, i = this._curPageIdx
, n = i + this._getDragDirection(e)
, r = this.pageTurningSpeed * Math.abs(i - n);
if (n < this._pages.length) {
if (this._isScrollable(e, i, n))
return void this.scrollToPage(n, r);
var s = this._calculateTouchMoveVelocity();
if (this._isQuicklyScrollable(s))
return void this.scrollToPage(n, r)
}
this.scrollToPage(i, r)
}
},
_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 = s
}
), {}],
113: [(function(t, e) {
"use strict";
var i = cc.Enum({
HORIZONTAL: 0,
VERTICAL: 1
})
, n = 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: i.HORIZONTAL,
type: i,
tooltip: !1
},
cellSize: {
default: cc.size(20, 20),
tooltip: !1
},
spacing: {
default: 0,
tooltip: !1
}
},
statics: {
Direction: i
},
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)),
this.direction === i.HORIZONTAL ? (this._layout.type = cc.Layout.Type.HORIZONTAL,
this._layout.spacingX = this.spacing) : this.direction === i.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
, e = t.addComponent(cc.Sprite);
return e.spriteFrame = this.spriteFrame,
e.sizeMode = cc.Sprite.SizeMode.CUSTOM,
t.parent = this.node,
t.width = this.cellSize.width,
t.height = this.cellSize.height,
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 = n
}
), {
"./CCComponent": 105
}],
114: [(function(t, e) {
"use strict";
var i = t("../utils/misc")
, n = t("./CCComponent")
, r = cc.Enum({
HORIZONTAL: 0,
VERTICAL: 1,
FILLED: 2
})
, s = cc.Class({
name: "cc.ProgressBar",
extends: n,
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 = r.FILLED);
var s = t.getContentSize();
if (this.mode === r.HORIZONTAL ? this.totalLength = s.width : this.mode === r.VERTICAL ? this.totalLength = s.height : this.totalLength = this.barSprite.fillRange,
t.parent === this.node) {
var a = -e.width * i.x;
t.setPosition(cc.v2(a, 0))
}
}
},
_updateBarStatus: function() {
if (this.barSprite) {
var t = this.barSprite.node;
if (!t)
return;
var e, n, s, a = t.getAnchorPoint(), o = t.getContentSize(), l = t.getPosition(), h = cc.v2(0, .5), c = i.clamp01(this.progress), u = this.totalLength * c;
switch (this.mode) {
case r.HORIZONTAL:
this.reverse && (h = cc.v2(1, .5)),
e = cc.size(u, o.height),
n = this.totalLength,
s = o.height;
break;
case r.VERTICAL:
h = this.reverse ? cc.v2(.5, 1) : cc.v2(.5, 0),
e = cc.size(o.width, u),
n = o.width,
s = this.totalLength
}
if (this.mode === r.FILLED)
this.barSprite.type !== cc.Sprite.Type.FILLED ? cc.warn("ProgressBar FILLED mode only works when barSprite's Type is FILLED!") : (this.reverse && (u *= -1),
this.barSprite.fillRange = u);
else if (this.barSprite.type !== cc.Sprite.Type.FILLED) {
var _ = h.x - a.x
, f = h.y - a.y
, d = cc.v2(n * _, s * f);
t.setPosition(l.x + d.x, l.y + d.y),
t.setAnchorPoint(h),
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: r.HORIZONTAL,
type: r,
tooltip: !1,
notify: function() {
if (this.barSprite) {
var t = this.barSprite.node;
if (!t)
return;
var e = t.getContentSize();
this.mode === r.HORIZONTAL ? this.totalLength = e.width : this.mode === r.VERTICAL ? this.totalLength = e.height : this.mode === r.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 === r.FILLED && (t = i.clamp01(t)),
this._N$totalLength = t,
this._updateBarStatus()
}
},
progress: {
default: 1,
type: cc.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: r
}
});
cc.ProgressBar = e.exports = s
}
), {
"../utils/misc": 267,
"./CCComponent": 105
}],
115: [(function(t, e) {
"use strict";
var i = s(t("../renderer/assembler"))
, n = s(t("../assets/material/material-variant"))
, r = t("../value-types");
function s(t) {
return t && t.__esModule ? t : {
default: t
}
}
var a = t("./CCComponent")
, o = t("../renderer/render-flow")
, l = t("../assets/material/CCMaterial")
, h = new r.Color
, c = cc.Class({
name: "RenderComponent",
extends: a,
editor: !1,
properties: {
_materials: {
default: [],
type: l
},
materials: {
get: function() {
return this._materials
},
set: function(t) {
this._materials = t,
this._activateMaterial()
},
type: [l],
displayName: "Materials",
animatable: !1
}
},
ctor: function() {
this._vertsDirty = !0,
this._assembler = null
},
_resetAssembler: function() {
i.default.init(this),
this._updateColor(),
this.setVertsDirty()
},
__preload: function() {
this._resetAssembler(),
this._activateMaterial()
},
onEnable: function() {
this.node._renderComponent && (this.node._renderComponent.enabled = !1),
this.node._renderComponent = this,
this.node._renderFlag |= o.FLAG_OPACITY_COLOR,
this.setVertsDirty()
},
onDisable: function() {
this.node._renderComponent = null,
this.disableRender()
},
onDestroy: function() {
for (var t = this._materials, e = 0; e < t.length; e++)
cc.pool.material.put(t[e]);
t.length = 0,
cc.pool.assembler.put(this._assembler)
},
setVertsDirty: function() {
this._vertsDirty = !0,
this.markForRender(!0)
},
_on3DNodeChanged: function() {
this._resetAssembler()
},
_validateRender: function() {},
markForValidate: function() {
cc.RenderFlow.registerValidate(this)
},
markForRender: function(t) {
var e = o.FLAG_RENDER | o.FLAG_UPDATE_RENDER_DATA;
t ? (this.node._renderFlag |= e,
this.markForValidate()) : this.node._renderFlag &= ~e
},
disableRender: function() {
this.node._renderFlag &= ~(o.FLAG_RENDER | o.FLAG_UPDATE_RENDER_DATA)
},
getMaterial: function(t) {
if (t < 0 || t >= this._materials.length)
return null;
var e = this._materials[t];
if (!e)
return null;
var i = n.default.create(e, this);
return i !== e && this.setMaterial(t, i),
i
},
getMaterials: function() {
for (var t = this._materials, e = 0; e < t.length; e++)
t[e] = n.default.create(t[e], this);
return t
},
setMaterial: function(t, e) {
return e !== this._materials[t] && (e = n.default.create(e, this),
this._materials[t] = e),
this._updateMaterial(),
this.markForRender(!0),
e
},
_getDefaultMaterial: function() {
return l.getBuiltinMaterial("2d-sprite")
},
_activateMaterial: function() {
var t = this._materials;
if (!t[0]) {
var e = this._getDefaultMaterial();
t[0] = e
}
for (var i = 0; i < t.length; i++)
t[i] = n.default.create(t[i], this);
this._updateMaterial()
},
_updateMaterial: function() {},
_updateColor: function() {
if (this._assembler.updateColor) {
var t = this.srcBlendFactor === cc.macro.BlendFactor.ONE;
t && r.Color.premultiplyAlpha(h, this.node._color);
var e = t ? h._val : null;
this._assembler.updateColor(this, e)
}
},
_checkBacth: function(t, e) {
var i = this._materials[0];
(i && i.getHash() !== t.material.getHash() || t.cullingMask !== e) && (t._flush(),
t.node = i.getDefine("CC_USE_MODEL") ? this.node : t._dummyNode,
t.material = i,
t.cullingMask = e)
}
});
cc.RenderComponent = e.exports = c
}
), {
"../assets/material/CCMaterial": 80,
"../assets/material/material-variant": 87,
"../renderer/assembler": 221,
"../renderer/render-flow": 225,
"../value-types": 282,
"./CCComponent": 105
}],
116: [(function(t, e) {
"use strict";
var i = t("../platform/js")
, n = t("../platform/CCMacro")
, r = t("../utils/text-utils")
, s = new (t("../utils/html-text-parser"))
, a = n.TextAlignment
, o = n.VerticalTextAlignment
, l = cc.Label.CacheMode
, h = new i.Pool(function(t) {
if (!cc.isValid(t))
return !1;
var e = t.getComponent(cc.LabelOutline);
return e && (e.width = 0),
!0
}
,20);
h.get = function() {
var t = this._get();
t || (t = new cc.PrivateNode("RICHTEXT_CHILD")),
t.setPosition(0, 0),
t.setAnchorPoint(.5, .5),
t.skewX = 0;
var e = t.getComponent(cc.Label);
return e || (e = t.addComponent(cc.Label)),
e.string = "",
e.horizontalAlign = a.LEFT,
e.verticalAlign = o.CENTER,
e._forceUseCanvas = !0,
t
}
;
var c = 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: "<color=#00ff00>Rich</c><color=#0fffff>Text</color>",
multiline: !0,
tooltip: !1,
notify: function() {
this._updateRichTextStatus()
}
},
horizontalAlign: {
default: a.LEFT,
type: a,
tooltip: !1,
animatable: !1,
notify: function(t) {
this.horizontalAlign !== t && (this._layoutDirty = !0,
this._updateRichTextStatus())
}
},
fontSize: {
default: 40,
tooltip: !1,
notify: function(t) {
this.fontSize !== t && (this._layoutDirty = !0,
this._updateRichTextStatus())
}
},
_fontFamily: "Arial",
fontFamily: {
tooltip: !1,
get: function() {
return this._fontFamily
},
set: function(t) {
this._fontFamily !== t && (this._fontFamily = t,
this._layoutDirty = !0,
this._updateRichTextStatus())
},
animatable: !1
},
font: {
default: null,
type: cc.TTFFont,
tooltip: !1,
notify: function(t) {
this.font !== t && (this._layoutDirty = !0,
this.font ? (this.useSystemFont = !1,
this._onTTFLoaded()) : this.useSystemFont = !0,
this._updateRichTextStatus())
}
},
_isSystemFontUsed: !0,
useSystemFont: {
get: function() {
return this._isSystemFontUsed
},
set: function(t) {
this._isSystemFontUsed !== t && (this._isSystemFontUsed = t,
this._layoutDirty = !0,
this._updateRichTextStatus())
},
animatable: !1,
tooltip: !1
},
cacheMode: {
default: l.NONE,
type: l,
tooltip: !1,
notify: function(t) {
this.cacheMode !== t && this._updateRichTextStatus()
},
animatable: !1
},
maxWidth: {
default: 0,
tooltip: !1,
notify: function(t) {
this.maxWidth !== t && (this._layoutDirty = !0,
this._updateRichTextStatus())
}
},
lineHeight: {
default: 40,
tooltip: !1,
notify: function(t) {
this.lineHeight !== t && (this._layoutDirty = !0,
this._updateRichTextStatus())
}
},
imageAtlas: {
default: null,
type: cc.SpriteAtlas,
tooltip: !1,
notify: function(t) {
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: a,
VerticalAlign: o
},
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, null, !0)
}
.bind(this))
},
_createFontLabel: function(t) {
return h.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.assetManager.postLoadNative(this.font, (function() {
t._layoutDirty = !0,
t._updateRichText()
}
))
}
else
this._layoutDirty = !0,
this._updateRichText()
},
_measureText: function(t, e) {
var i = this
, n = function(e) {
var n;
return 0 === i._labelSegmentsCache.length ? (n = i._createFontLabel(e),
i._labelSegmentsCache.push(n)) : n = i._labelSegmentsCache[0],
n._styleIndex = t,
i._applyTextAttribute(n, e, !0),
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
, a = r._clickParam;
s && e._containsTouchLocation(r, t.touch.getLocation()) && (i.forEach((function(e) {
e.enabledInHierarchy && e[s] && e[s](t, a)
}
)),
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];
"RICHTEXT_CHILD" !== i.name && "RICHTEXT_Image_CHILD" !== i.name || (i.parent === this.node ? i.parent = null : t.splice(e, 1),
"RICHTEXT_CHILD" === i.name && h.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;
return (i = 0 === this._labelSegmentsCache.length ? this._createFontLabel(t) : this._labelSegmentsCache.pop())._styleIndex = e,
i._lineCount = this._lineCount,
i.active = this.node.active,
i.setAnchorPoint(0, 0),
this._applyTextAttribute(i, t),
this.node.addChild(i),
this._labelSegments.push(i),
i
},
_updateRichTextWithMaxWidth: function(t, e, i) {
var n = e;
if (this._lineOffsetX > 0 && n + this._lineOffsetX > this.maxWidth)
for (var s = 0; this._lineOffsetX <= this.maxWidth; ) {
var a = this._getFirstWordLen(t, s, t.length)
, o = t.substr(s, a)
, l = this._measureText(i, o);
if (!(this._lineOffsetX + l <= this.maxWidth)) {
if (s > 0) {
var h = t.substr(0, s);
this._addLabelSegment(h, i),
t = t.substr(s, t.length),
n = this._measureText(i, t)
}
this._updateLineInfo();
break
}
this._lineOffsetX += l,
s += a
}
if (n > this.maxWidth)
for (var c = r.fragmentText(t, n, this.maxWidth, this._measureText(i)), u = 0; u < c.length; ++u) {
var _ = c[u]
, f = this._addLabelSegment(_, i).getContentSize();
this._lineOffsetX += f.width,
c.length > 1 && u < c.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;
var r = i.style
, s = n.style;
if (r) {
if (s) {
if (!r.outline != !s.outline)
return !0;
if (r.size !== s.size || !r.italic != !s.italic || r.isImage !== s.isImage)
return !0;
if (r.src !== s.src || r.imageAlign !== s.imageAlign || r.imageHeight !== s.imageHeight || r.imageWidth !== s.imageWidth || r.imageOffset !== s.imageOffset)
return !0
} else if (r.size || r.italic || r.isImage || r.outline)
return !0
} else if (s && (s.size || s.italic || s.isImage || s.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);
switch (t.style.imageAlign) {
case "top":
n.setAnchorPoint(0, 1);
break;
case "center":
n.setAnchorPoint(0, .5);
break;
default:
n.setAnchorPoint(0, 0)
}
t.style.imageOffset && (n._imageOffset = t.style.imageOffset),
r.type = cc.Sprite.Type.SLICED,
r.sizeMode = cc.Sprite.SizeMode.CUSTOM,
this.node.addChild(n),
this._labelSegments.push(n);
var s = i.getRect()
, a = 1
, o = s.width
, l = s.height
, h = t.style.imageWidth
, c = t.style.imageHeight;
c > 0 ? (o *= a = c / l,
l *= a) : (o *= a = this.lineHeight / l,
l *= a),
h > 0 && (o = h),
this.maxWidth > 0 ? (this._lineOffsetX + o > this.maxWidth && this._updateLineInfo(),
this._lineOffsetX += o) : (this._lineOffsetX += o,
this._lineOffsetX > this._labelWidth && (this._labelWidth = this._lineOffsetX)),
r.spriteFrame = i,
n.setContentSize(o, l),
n._lineCount = this._lineCount,
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 = "") : n._clickHandler = null
} else
cc.warnID(4400)
},
_updateRichText: function() {
if (this.enabledInHierarchy) {
var t = s.parse(this.string);
if (!this._needsUpdateTextLayout(t))
return this._textArray = t,
void this._updateLabelSegmentTextAttributes();
this._textArray = t,
this._resetState();
for (var e, i = !1, n = 0; n < this._textArray.length; ++n) {
var a = this._textArray[n]
, o = a.text;
if ("" === o) {
if (a.style && a.style.newline) {
this._updateLineInfo();
continue
}
if (a.style && a.style.isImage && this.imageAtlas) {
this._addRichTextImageElement(a);
continue
}
}
for (var l = o.split("\n"), h = 0; h < l.length; ++h) {
var c = l[h];
if ("" !== c)
if (i = !1,
this.maxWidth > 0) {
var u = this._measureText(n, c);
this._updateRichTextWithMaxWidth(c, u, n),
l.length > 1 && h < l.length - 1 && this._updateLineInfo()
} else
e = this._addLabelSegment(c, n).getContentSize(),
this._lineOffsetX += e.width,
this._lineOffsetX > this._labelWidth && (this._labelWidth = this._lineOffsetX),
l.length > 1 && h < l.length - 1 && this._updateLineInfo();
else {
if (this._isLastComponentCR(o) && h === l.length - 1)
continue;
this._updateLineInfo(),
i = !0
}
}
}
i || this._linesWidth.push(this._lineOffsetX),
this.maxWidth > 0 && (this._labelWidth = this.maxWidth),
this._labelHeight = (this._lineCount + r.BASELINE_RATIO) * this.lineHeight,
this.node.setContentSize(this._labelWidth, this._labelHeight),
this._updateRichTextPosition(),
this._layoutDirty = !1
}
},
_getFirstWordLen: function(t, e, i) {
var n = t.charAt(e);
if (r.isUnicodeCJK(n) || r.isUnicodeSpace(n))
return 1;
for (var s = 1, a = e + 1; a < i && (n = t.charAt(a),
!r.isUnicodeSpace(n) && !r.isUnicodeCJK(n)); ++a)
s++;
return s
},
_updateRichTextPosition: function() {
for (var t = 0, e = 1, i = this._lineCount, n = 0; n < this._labelSegments.length; ++n) {
var s = this._labelSegments[n]
, o = s._lineCount;
o > e && (t = 0,
e = o);
var l = 0;
switch (this.horizontalAlign) {
case a.LEFT:
l = -this._labelWidth / 2;
break;
case a.CENTER:
l = -this._linesWidth[o - 1] / 2;
break;
case a.RIGHT:
l = this._labelWidth / 2 - this._linesWidth[o - 1]
}
s.x = t + l;
var h = s.getContentSize();
if (s.y = this.lineHeight * (i - o) - this._labelHeight / 2,
o === e && (t += h.width),
s.getComponent(cc.Sprite)) {
var c = this.lineHeight
, u = this.lineHeight * (1 + r.BASELINE_RATIO);
switch (s.anchorY) {
case 1:
s.y += c + (u - c) / 2;
break;
case .5:
s.y += u / 2;
break;
default:
s.y += (u - c) / 2
}
if (s._imageOffset) {
var _ = s._imageOffset.split(",");
if (1 === _.length && _[0]) {
var f = parseFloat(_[0]);
Number.isInteger(f) && (s.y += f)
} else if (2 === _.length) {
var d = parseFloat(_[0])
, p = parseFloat(_[1]);
Number.isInteger(d) && (s.x += d),
Number.isInteger(p) && (s.y += p)
}
}
}
var m = s.getComponent(cc.LabelOutline);
m && m.width && (s.y = s.y - m.width)
}
},
_convertLiteralColorValue: function(t) {
var e = t.toUpperCase();
return cc.Color[e] ? cc.Color[e] : cc.color().fromHEX(t)
},
_applyTextAttribute: function(t, e, i) {
var n = t.getComponent(cc.Label);
if (n) {
var r = t._styleIndex
, s = null;
if (this._textArray[r] && (s = this._textArray[r].style),
s && s.color ? t.color = this._convertLiteralColorValue(s.color) : t.color = this.node.color,
n.cacheMode = this.cacheMode,
this.font instanceof cc.Font && !this._isSystemFontUsed ? n.font = this.font : n.fontFamily = this.fontFamily,
n.useSystemFont = this._isSystemFontUsed,
n.lineHeight = this.lineHeight,
n.enableBold = s && s.bold,
n.enableItalics = s && s.italic,
s && s.italic && (t.skewX = 12),
n.enableUnderline = s && s.underline,
s && s.outline) {
var a = t.getComponent(cc.LabelOutline);
a || (a = t.addComponent(cc.LabelOutline)),
a.color = this._convertLiteralColorValue(s.outline.color),
a.width = s.outline.width
}
s && s.size ? n.fontSize = s.size : n.fontSize = this.fontSize,
null !== e && ("string" != typeof e && (e = "" + e),
n.string = e),
i && n._forceUpdateRenderData(),
s && s.event ? (s.event.click && (t._clickHandler = s.event.click),
s.event.param ? t._clickParam = s.event.param : t._clickParam = "") : t._clickHandler = null
}
},
onDestroy: function() {
for (var t = 0; t < this._labelSegments.length; ++t)
this._labelSegments[t].removeFromParent(),
h.put(this._labelSegments[t])
}
});
cc.RichText = e.exports = c
}
), {
"../platform/CCMacro": 198,
"../platform/js": 214,
"../utils/html-text-parser": 265,
"../utils/text-utils": 274
}],
117: [(function(t, e) {
"use strict";
var i = t("../utils/misc")
, n = (t("./CCComponent"),
cc.Enum({
HORIZONTAL: 0,
VERTICAL: 1
}))
, r = 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: n.HORIZONTAL,
type: n,
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: n
},
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);
return n.x += e.anchorX * e.width,
n.y += e.anchorY * e.height,
n
},
_setOpacity: function(t) {
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()
, r = this._scrollView.node.getContentSize()
, s = this.node.getContentSize();
if (this._conditionalDisableScrollBar(i, r))
return;
this.enableAutoHide && (this._autoHideRemainingTime = this.autoHideTime,
this._setOpacity(this._opacity));
var a = 0
, o = 0
, l = 0
, h = 0
, c = 0;
this.direction === n.HORIZONTAL ? (a = i.width,
o = r.width,
c = s.width,
l = t.x,
h = -this._convertToScrollViewSpace(e).x) : this.direction === n.VERTICAL && (a = i.height,
o = r.height,
c = s.height,
l = t.y,
h = -this._convertToScrollViewSpace(e).y);
var u = this._calculateLength(a, o, c, l)
, _ = this._calculatePosition(a, o, c, h, l, 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()
, r = this.handle.node.parent
, s = this.node.convertToWorldSpaceAR(cc.v2(-t.width * e.x, -t.height * e.y))
, a = r.convertToNodeSpaceAR(s);
return this.direction === n.HORIZONTAL ? a = cc.v2(a.x, a.y + (t.height - i.height) / 2) : this.direction === n.VERTICAL && (a = cc.v2(a.x + (t.width - i.width) / 2, a.y)),
this.handle.node.setPosition(a),
a
},
_onTouchBegan: function() {
this.enableAutoHide && (this._touching = !0)
},
_conditionalDisableScrollBar: function(t, e) {
return t.width <= e.width && this.direction === n.HORIZONTAL || t.height <= e.height && this.direction === n.VERTICAL
},
_onTouchEnded: function() {
if (this.enableAutoHide && (this._touching = !1,
!(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;
return n && (r += 20 * (n > 0 ? n : -n)),
i * (e / r)
},
_calculatePosition: function(t, e, r, s, a, o) {
var l = t - e;
a && (l += Math.abs(a));
var h = 0;
l && (h = s / l,
h = i.clamp01(h));
var c = (r - o) * h;
return this.direction === n.VERTICAL ? cc.v2(0, c) : cc.v2(c, 0)
},
_updateLength: function(t) {
if (this.handle) {
var e = this.handle.node
, i = e.getContentSize();
e.setAnchorPoint(cc.v2(0, 0)),
this.direction === n.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,
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 = r
}
), {
"../utils/misc": 267,
"./CCComponent": 105
}],
118: [(function(t, e) {
"use strict";
var i = t("../CCNode").EventType
, n = cc.v2()
, r = cc.v2()
, s = function() {
return (new Date).getMilliseconds()
}
, a = 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
})
, o = {
"scroll-to-top": a.SCROLL_TO_TOP,
"scroll-to-bottom": a.SCROLL_TO_BOTTOM,
"scroll-to-left": a.SCROLL_TO_LEFT,
"scroll-to-right": a.SCROLL_TO_RIGHT,
scrolling: a.SCROLLING,
"bounce-bottom": a.BOUNCE_BOTTOM,
"bounce-left": a.BOUNCE_LEFT,
"bounce-right": a.BOUNCE_RIGHT,
"bounce-top": a.BOUNCE_TOP,
"scroll-ended": a.SCROLL_ENDED,
"touch-up": a.TOUCH_UP,
"scroll-ended-with-threshold": a.AUTOSCROLL_ENDED_WITH_THRESHOLD,
"scroll-began": a.SCROLL_BEGAN
}
, l = 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() {
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: cc.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() {
this.horizontalScrollBar && (this.horizontalScrollBar.setTargetScrollView(this),
this._updateScrollBar(0))
},
animatable: !1
},
verticalScrollBar: {
default: void 0,
type: cc.Scrollbar,
tooltip: !1,
notify: function() {
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: a
},
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;
return i = i >= 0 ? i : 0,
n = n >= 0 ? n : 0,
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) {
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;
cc.sys.os === cc.sys.OS_WINDOWS && cc.sys.browserType === cc.sys.BROWSER_TYPE_FIREFOX && (n = -.1 / 3),
this.vertical ? i = cc.v2(0, t.getScrollY() * n) : this.horizontal && (i = cc.v2(t.getScrollY() * n, 0)),
this._mouseWheelEventElapsedTime = 0,
this._processDeltaMove(i),
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))
return this._processInertiaScroll(),
this.unschedule(this._checkMouseWheel),
this._dispatchEvent("scroll-ended"),
void (this._stopMouseWheel = !1);
this._mouseWheelEventElapsedTime += t,
this._mouseWheelEventElapsedTime > .1 && (this._onScrollBarTouchEnded(),
this.unschedule(this._checkMouseWheel),
this._dispatchEvent("scroll-ended"),
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()
, a = this._getContentBottomBoundary() - this._bottomBoundary;
a = -a;
var o = this._getContentLeftBoundary() - this._leftBoundary;
o = -o;
var l = cc.v2(0, 0)
, h = 0;
return i && (h = s.width - r.width,
l.x = o - h * e.x),
n && (h = s.height - r.height,
l.y = a - h * e.y),
l
},
_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,
e.height < t.height && (r = e.height - t.height,
n.y = i - r),
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;
if (this.content && this._handleMoveLogic(i),
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)
},
_getLocalAxisAlignDelta: function(t) {
return this.node.convertToNodeSpaceAR(t.getLocation(), n),
this.node.convertToNodeSpaceAR(t.getPreviousLocation(), r),
n.sub(r)
},
_handleMoveLogic: function(t) {
var e = this._getLocalAxisAlignDelta(t);
this._processDeltaMove(e)
},
_scrollChildren: function(t) {
var e, i = t = this._clampDelta(t);
this.elastic && (e = this._getHowMuchOutOfBoundary(),
i.x *= 0 === e.x ? 1 : .5,
i.y *= 0 === e.y ? 1 : .5),
this.elastic || (e = this._getHowMuchOutOfBoundary(i),
i = i.add(e));
var n = -1;
i.y > 0 ? this.content.y - this.content.anchorY * this.content.height + i.y >= this._bottomBoundary && (n = "scroll-to-bottom") : i.y < 0 && this.content.y - this.content.anchorY * this.content.height + this.content.height + i.y <= this._topBoundary && (n = "scroll-to-top"),
i.x < 0 ? this.content.x - this.content.anchorX * this.content.width + this.content.width + i.x <= this._rightBoundary && (n = "scroll-to-right") : i.x > 0 && this.content.x - this.content.anchorX * this.content.width + i.x >= this._leftBoundary && (n = "scroll-to-left"),
this._moveContent(i, !1),
0 === i.x && 0 === i.y || (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();
return e.width < i.width && (t.x = 0),
e.height < i.height && (t.y = 0),
t
},
_gatherTouchMove: function(t) {
for (t = this._clampDelta(t); 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);
return this._startAutoScroll(t, e, !0),
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),
!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 = this._getLocalAxisAlignDelta(t);
this._gatherTouchMove(e),
this._processInertiaScroll(),
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)
return this._autoScrollCurrentlyOutOfBoundary = !0,
this._autoScrollBraking = !0,
this._autoScrollBrakingStartPosition = this.getContentPosition(),
!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, r = Math.min(1, this._autoScrollAccumulatedTime / this._autoScrollTotalTime);
this._autoScrollAttenuate && (n = r,
r = (n -= 1) * n * n * n * n + 1);
var s = this._autoScrollStartPosition.add(this._autoScrollTargetDelta.mul(r))
, a = Math.abs(r - 1) <= 1e-4;
if (Math.abs(r - 1) <= this.getScrollEndedEventTiming() && !this._isScrollEndedWithThresholdEventFired && (this._dispatchEvent("scroll-ended-with-threshold"),
this._isScrollEndedWithThresholdEventFired = !0),
this.elastic) {
var o = s.sub(this._autoScrollBrakingStartPosition);
e && (o = o.mul(i)),
s = this._autoScrollBrakingStartPosition.add(o)
} else {
var l = s.sub(this.getContentPosition())
, h = this._getHowMuchOutOfBoundary(l);
h.fuzzyEquals(cc.v2(0, 0), 1e-4) || (s = s.add(h),
a = !0)
}
a && (this._autoScrolling = !1);
var c = s.sub(this.getContentPosition());
this._moveContent(this._clampDelta(c), a),
this._dispatchEvent("scrolling"),
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()
, a = r.width - s.width
, o = r.height - s.height
, l = this._calculateAttenuatedFactor(a)
, h = this._calculateAttenuatedFactor(o);
n = cc.v2(n.x * a * (1 - this.brake) * l, n.y * o * h * (1 - this.brake));
var c = t.mag()
, u = n.mag() / c;
n = n.add(t),
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);
return e = this._touchMoveDisplacements.reduce((function(t, e) {
return t.add(e)
}
), e),
cc.v2(e.x * (1 - this.brake) / t, e.y * (1 - this.brake) / t)
},
_flattenVectorByDirection: function(t) {
var e = t;
return e.x = this.horizontal ? e.x : 0,
e.y = this.vertical ? e.y : 0,
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);
return 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)),
t.fuzzyEquals(cc.v2(0, 0), 1e-4) && (this._outOfBoundaryAmount = e,
this._outOfBoundaryAmountDirty = !1),
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 << o[t];
if (this._scrollEventEmitMask & e)
return;
this._scrollEventEmitMask |= e
}
cc.Component.EventHandler.emitEvents(this.scrollEvents, this, o[t]),
this.node.emit(t, this)
},
_adjustContentOutOfBoundary: function() {
if (this._outOfBoundaryAmountDirty = !0,
this._isOutOfBoundary()) {
var t = this._getHowMuchOutOfBoundary(cc.v2(0, 0))
, e = this.getContentPosition().add(t);
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(),
this.content && (this.content.off(i.SIZE_CHANGED, this._calculateBoundary, this),
this.content.off(i.SCALE_CHANGED, this._calculateBoundary, this),
this._view && (this._view.off(i.POSITION_CHANGED, this._calculateBoundary, this),
this._view.off(i.SCALE_CHANGED, this._calculateBoundary, this),
this._view.off(i.SIZE_CHANGED, this._calculateBoundary, this))),
this._hideScrollbar(),
this.stopAutoScroll()
},
onEnable: function() {
this._registerEvent(),
this.content && (this.content.on(i.SIZE_CHANGED, this._calculateBoundary, this),
this.content.on(i.SCALE_CHANGED, this._calculateBoundary, this),
this._view && (this._view.on(i.POSITION_CHANGED, this._calculateBoundary, this),
this._view.on(i.SCALE_CHANGED, this._calculateBoundary, this),
this._view.on(i.SIZE_CHANGED, this._calculateBoundary, this))),
this._updateScrollBarState()
},
update: function(t) {
this._autoScrolling && this._processAutoScrolling(t)
}
});
cc.ScrollView = e.exports = l
}
), {
"../CCNode": 29,
"./CCViewGroup": 125
}],
119: [(function(t, e) {
"use strict";
var i = t("../utils/misc")
, n = t("./CCComponent")
, r = cc.Enum({
Horizontal: 0,
Vertical: 1
})
, s = cc.Class({
name: "cc.Slider",
extends: n,
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() {}
},
direction: {
default: r.Horizontal,
type: r,
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: r
},
__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),
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),
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) {
this.handle && (this._dragging = !0,
this._touchHandle || this._handleSliderLogic(t.touch),
t.stopPropagation())
},
_onTouchMoved: function(t) {
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
, n = e.convertToNodeSpaceAR(t.getLocation());
this.direction === r.Horizontal ? this.progress = i.clamp01((n.x - this._offset.x + e.anchorX * e.width) / e.width) : this.progress = i.clamp01((n.y - this._offset.y + e.anchorY * e.height) / e.height)
}
},
_updateHandlePosition: function() {
if (this.handle) {
var t;
t = this.direction === r.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 = s
}
), {
"../utils/misc": 267,
"./CCComponent": 105
}],
120: [(function(t, e) {
"use strict";
var i = t("../utils/misc")
, n = (t("../CCNode").EventType,
t("./CCRenderComponent"))
, r = t("../utils/blend-func")
, s = cc.Enum({
SIMPLE: 0,
SLICED: 1,
TILED: 2,
FILLED: 3,
MESH: 4
})
, a = cc.Enum({
HORIZONTAL: 0,
VERTICAL: 1,
RADIAL: 2
})
, o = cc.Enum({
CUSTOM: 0,
TRIMMED: 1,
RAW: 2
})
, l = cc.Enum({
NORMAL: 0,
GRAY: 1
})
, h = cc.Class({
name: "cc.Sprite",
extends: n,
mixins: [r],
editor: !1,
properties: {
_spriteFrame: {
default: null,
type: cc.SpriteFrame
},
_type: s.SIMPLE,
_sizeMode: o.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) {
var e = this._spriteFrame;
e !== t && (this._spriteFrame = t,
this._applySpriteFrame(e))
},
type: cc.SpriteFrame
},
type: {
get: function() {
return this._type
},
set: function(t) {
this._type !== t && (this._type = t,
this.setVertsDirty(),
this._resetAssembler())
},
type: s,
animatable: !1,
tooltip: !1
},
fillType: {
get: function() {
return this._fillType
},
set: function(t) {
t !== this._fillType && (this._fillType = t,
this.setVertsDirty(),
this._resetAssembler())
},
type: a,
tooltip: !1
},
fillCenter: {
get: function() {
return this._fillCenter
},
set: function(t) {
this._fillCenter.x = t.x,
this._fillCenter.y = t.y,
this._type === s.FILLED && this.setVertsDirty()
},
tooltip: !1
},
fillStart: {
get: function() {
return this._fillStart
},
set: function(t) {
this._fillStart = i.clampf(t, -1, 1),
this._type === s.FILLED && this.setVertsDirty()
},
tooltip: !1
},
fillRange: {
get: function() {
return this._fillRange
},
set: function(t) {
this._fillRange = i.clampf(t, -1, 1),
this._type === s.FILLED && this.setVertsDirty()
},
tooltip: !1
},
trim: {
get: function() {
return this._isTrimmedMode
},
set: function(t) {
this._isTrimmedMode !== t && (this._isTrimmedMode = t,
this._type !== s.SIMPLE && this._type !== s.MESH || this.setVertsDirty())
},
animatable: !1,
tooltip: !1
},
sizeMode: {
get: function() {
return this._sizeMode
},
set: function(t) {
this._sizeMode = t,
t !== o.CUSTOM && this._applySpriteSize()
},
animatable: !1,
type: o,
tooltip: !1
}
},
statics: {
FillType: a,
Type: s,
SizeMode: o,
State: l
},
setVisible: function(t) {
this.enabled = t
},
setState: function() {},
getState: function() {},
__preload: function() {
this._super(),
this._applySpriteFrame()
},
onEnable: function() {
this._super(),
this._spriteFrame && this._spriteFrame.ensureLoadTexture(),
this.node.on(cc.Node.EventType.SIZE_CHANGED, this.setVertsDirty, this),
this.node.on(cc.Node.EventType.ANCHOR_CHANGED, this.setVertsDirty, this)
},
onDisable: function() {
this._super(),
this.node.off(cc.Node.EventType.SIZE_CHANGED, this.setVertsDirty, this),
this.node.off(cc.Node.EventType.ANCHOR_CHANGED, this.setVertsDirty, this)
},
_updateMaterial: function() {
var t = null;
this._spriteFrame && (t = this._spriteFrame.getTexture());
var e = this.getMaterial(0);
e && (void 0 !== e.getDefine("USE_TEXTURE") && e.define("USE_TEXTURE", !0),
e.getProperty("texture") !== t && e.setProperty("texture", t)),
r.prototype._updateMaterial.call(this)
},
_applyAtlas: !1,
_validateRender: function() {
var t = this._spriteFrame;
this._materials[0] && t && t.textureLoaded() || this.disableRender()
},
_applySpriteSize: function() {
if (this._spriteFrame && this.isValid) {
if (o.RAW === this._sizeMode) {
var t = this._spriteFrame._originalSize;
this.node.setContentSize(t)
} else if (o.TRIMMED === this._sizeMode) {
var e = this._spriteFrame._rect;
this.node.setContentSize(e.width, e.height)
}
this.setVertsDirty()
}
},
_applySpriteFrame: function(t) {
if (this.isValid) {
var e = t && t.getTexture();
e && !e.loaded && t.off("load", this._applySpriteSize, this),
this._updateMaterial();
var i = this._spriteFrame;
if (i) {
var n = i.getTexture();
n && n.loaded ? this._applySpriteSize() : (this.disableRender(),
i.once("load", this._applySpriteSize, this))
} else
this.disableRender()
}
}
});
cc.Sprite = e.exports = h
}
), {
"../CCNode": 29,
"../utils/blend-func": 261,
"../utils/misc": 267,
"./CCRenderComponent": 115
}],
121: [(function(t, e) {
"use strict";
var i = cc.Enum({
NONE: 0,
CHECKBOX: 1,
TEXT_ATLAS: 2,
SLIDER_BAR: 3,
LIST_VIEW: 4,
PAGE_VIEW: 5
})
, n = cc.Enum({
VERTICAL: 0,
HORIZONTAL: 1
})
, r = cc.Enum({
TOP: 0,
CENTER: 1,
BOTTOM: 2
})
, s = cc.Enum({
LEFT: 0,
CENTER: 1,
RIGHT: 2
})
, a = cc.Class({
name: "cc.StudioComponent",
extends: cc.Component,
editor: !1,
properties: !1,
statics: {
ComponentType: i,
ListDirection: n,
VerticalAlign: r,
HorizontalAlign: s
}
});
cc.StudioComponent = e.exports = a;
var o = cc.Class({
name: "cc.StudioWidget",
extends: cc.Widget,
editor: !1,
_validateTargetInDEV: function() {}
});
cc.StudioWidget = e.exports = o
}
), {}],
122: [(function(t, e) {
"use strict";
var i = t("../utils/gray-sprite-state")
, n = cc.Class({
name: "cc.Toggle",
extends: t("./CCButton"),
mixins: [i],
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;
e && e.enabled && this._N$isChecked && !e.allowSwitchOff || (this._N$isChecked = t,
this._updateCheckMark(),
e && e.enabled && e.updateToggles(this),
cc.Toggle._triggerEventInScript_isChecked && 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()
}
}
},
statics: {
_triggerEventInScript_check: !1,
_triggerEventInScript_isChecked: !1
},
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,
cc.Toggle._triggerEventInScript_isChecked || !cc.Toggle._triggerEventInScript_check && !t || this._emitToggleEvents()
},
check: function() {
this.isChecked = !0,
!cc.Toggle._triggerEventInScript_isChecked && cc.Toggle._triggerEventInScript_check && this._emitToggleEvents()
},
uncheck: function() {
this.isChecked = !1,
!cc.Toggle._triggerEventInScript_isChecked && cc.Toggle._triggerEventInScript_check && this._emitToggleEvents()
},
_updateCheckMark: function() {
this.checkMark && (this.checkMark.node.active = !!this.isChecked)
},
_updateDisabledState: function() {
if (this._super(),
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 = n,
t("../platform/js").get(n.prototype, "_toggleContainer", (function() {
var t = this.node.parent;
return cc.Node.isNode(t) ? t.getComponent(cc.ToggleContainer) : null
}
))
}
), {
"../platform/js": 214,
"../utils/gray-sprite-state": 264,
"./CCButton": 103,
"./CCToggleGroup": 124
}],
123: [(function(t, e) {
"use strict";
var i = 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) {
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;
return this.toggleItems.forEach((function(e) {
t ? e._hideCheckMark() : e.isChecked && (t = !0)
}
)),
t
},
_makeAtLeastOneToggleChecked: function() {
if (!this._allowOnlyOneToggleChecked() && !this.allowSwitchOff) {
var t = this.toggleItems;
t.length > 0 && t[0].check()
}
},
onEnable: function() {
this._makeAtLeastOneToggleChecked(),
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)
}
});
t("../platform/js").get(i.prototype, "toggleItems", (function() {
return this.node._children.map((function(t) {
return t.getComponent(cc.Toggle)
}
)).filter(Boolean)
}
)),
cc.ToggleContainer = e.exports = i
}
), {
"../platform/js": 214
}],
124: [(function(t, e) {
"use strict";
var i = 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;
return this._toggleItems.forEach((function(e) {
t && e.enabled && e._hideCheckMark(),
e.isChecked && e.enabled && (t = !0)
}
)),
t
},
_makeAtLeastOneToggleChecked: function() {
this._allowOnlyOneToggleChecked() || this.allowSwitchOff || this._toggleItems.length > 0 && (this._toggleItems[0].isChecked = !0)
},
start: function() {
this._makeAtLeastOneToggleChecked()
}
})
, n = t("../platform/js")
, r = !1;
n.get(cc, "ToggleGroup", (function() {
return r || (cc.errorID(1405, "cc.ToggleGroup", "cc.ToggleContainer"),
r = !0),
i
}
)),
e.exports = i
}
), {
"../platform/js": 214
}],
125: [(function(t, e) {
"use strict";
var i = cc.Class({
name: "cc.ViewGroup",
extends: t("./CCComponent")
});
cc.ViewGroup = e.exports = i
}
), {
"./CCComponent": 105
}],
126: [(function(t, e) {
"use strict";
var i = t("../base-ui/CCWidgetManager")
, n = i.AlignMode
, r = i._AlignFlags
, s = r.TOP
, a = r.MID
, o = r.BOT
, l = r.LEFT
, h = r.CENTER
, c = r.RIGHT
, u = s | o
, _ = l | c
, f = cc.Class({
name: "cc.Widget",
extends: t("./CCComponent"),
editor: !1,
properties: {
target: {
get: function() {
return this._target
},
set: function(t) {
this._target = t
},
type: cc.Node,
tooltip: !1
},
isAlignTop: {
get: function() {
return (this._alignFlags & s) > 0
},
set: function(t) {
this._setAlign(s, t)
},
animatable: !1,
tooltip: !1
},
isAlignVerticalCenter: {
get: function() {
return (this._alignFlags & a) > 0
},
set: function(t) {
t ? (this.isAlignTop = !1,
this.isAlignBottom = !1,
this._alignFlags |= a) : this._alignFlags &= ~a
},
animatable: !1,
tooltip: !1
},
isAlignBottom: {
get: function() {
return (this._alignFlags & o) > 0
},
set: function(t) {
this._setAlign(o, 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) {
t ? (this.isAlignLeft = !1,
this.isAlignRight = !1,
this._alignFlags |= h) : this._alignFlags &= ~h
},
animatable: !1,
tooltip: !1
},
isAlignRight: {
get: function() {
return (this._alignFlags & c) > 0
},
set: function(t) {
this._setAlign(c, t)
},
animatable: !1,
tooltip: !1
},
isStretchWidth: {
get: function() {
return (this._alignFlags & _) === _
},
visible: !1
},
isStretchHeight: {
get: function() {
return (this._alignFlags & u) === u
},
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: n.ON_WINDOW_RESIZE,
type: n,
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: n
},
onLoad: function() {
void 0 !== this._wasAlignOnce && (this.alignMode = this._wasAlignOnce ? n.ONCE : n.ALWAYS,
this._wasAlignOnce = void 0)
},
onEnable: function() {
i.add(this)
},
onDisable: function() {
i.remove(this)
},
_validateTargetInDEV: !1,
_setAlign: function(t, e) {
if (e !== (this._alignFlags & t) > 0) {
var i = (t & _) > 0;
e ? (this._alignFlags |= t,
i ? (this.isAlignHorizontalCenter = !1,
this.isStretchWidth && (this._originalWidth = this.node.width)) : (this.isAlignVerticalCenter = !1,
this.isStretchHeight && (this._originalHeight = this.node.height))) : (i ? this.isStretchWidth && (this.node.width = this._originalWidth) : this.isStretchHeight && (this.node.height = this._originalHeight),
this._alignFlags &= ~t)
}
},
updateAlignment: function() {
i.updateAlignment(this.node)
}
});
Object.defineProperty(f.prototype, "isAlignOnce", {
get: function() {
return this.alignMode === n.ONCE
},
set: function(t) {
this.alignMode = t ? n.ONCE : n.ALWAYS
}
}),
cc.Widget = e.exports = f
}
), {
"../base-ui/CCWidgetManager": 89,
"./CCComponent": 105
}],
127: [(function(t, e) {
"use strict";
var i = t("../../platform/CCMacro")
, n = t("../editbox/EditBoxImplBase")
, r = t("../CCLabel")
, s = t("./types")
, a = s.InputMode
, o = s.InputFlag
, l = s.KeyboardReturnType;
function h(t) {
return t.charAt(0).toUpperCase() + t.slice(1)
}
var c = cc.Class({
name: "cc.EditBox",
extends: cc.Component,
editor: !1,
properties: {
_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: r,
notify: function(t) {
this.textLabel && this.textLabel !== t && (this._updateTextLabel(),
this._updateLabels())
}
},
placeholderLabel: {
tooltip: !1,
default: null,
type: r,
notify: function(t) {
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: o.DEFAULT,
type: o,
notify: function() {
this._updateString(this._string)
}
},
inputMode: {
tooltip: !1,
default: a.ANY,
type: a,
notify: function(t) {
this.inputMode !== t && (this._updateTextLabel(),
this._updatePlaceholderLabel())
}
},
fontSize: {
get: function() {
return this.textLabel ? this.textLabel.fontSize : 0
},
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 : 0
},
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 : cc.Color.BLACK
},
set: function(t) {
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 : 0
},
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 : cc.Color.BLACK
},
set: function(t) {
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) {
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: n,
KeyboardReturnType: l,
InputFlag: o,
InputMode: a
},
_init: function() {
this._upgradeComp(),
this._isLabelVisible = !0,
this.node.on(cc.Node.EventType.SIZE_CHANGED, this._syncSize, this),
(this._impl = new c._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,
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(r)) || (t = e.addComponent(r)),
e.parent = this.node,
this.textLabel = t
}
t.node.setAnchorPoint(0, 1),
t.overflow = r.Overflow.CLAMP,
this.inputMode === a.ANY ? (t.verticalAlign = i.VerticalTextAlignment.TOP,
t.enableWrapText = !0) : (t.verticalAlign = i.VerticalTextAlignment.CENTER,
t.enableWrapText = !1),
t.string = this._updateLabelStringStyle(this._string),
void 0 !== this._N$fontColor && (t.node.color = this._N$fontColor,
t.node.opacity = this._N$fontColor.a,
this._N$fontColor = void 0),
void 0 !== this._N$fontSize && (t.fontSize = this._N$fontSize,
this._N$fontSize = void 0),
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(r)) || (t = e.addComponent(r)),
e.parent = this.node,
this.placeholderLabel = t
}
t.node.setAnchorPoint(0, 1),
t.overflow = r.Overflow.CLAMP,
this.inputMode === a.ANY ? (t.verticalAlign = i.VerticalTextAlignment.TOP,
t.enableWrapText = !0) : (t.verticalAlign = i.VerticalTextAlignment.CENTER,
t.enableWrapText = !1),
t.string = this.placeholder,
void 0 !== this._N$placeholderFontColor && (t.node.color = this._N$placeholderFontColor,
t.node.opacity = this._N$placeholderFontColor.a,
this._N$placeholderFontColor = void 0),
void 0 !== this._N$placeholderFontSize && (t.fontSize = this._N$placeholderFontSize,
this._N$placeholderFontSize = void 0)
},
_upgradeComp: function() {
void 0 !== this._N$returnType && (this.returnType = this._N$returnType,
this._N$returnType = void 0),
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(),
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 !== o.PASSWORD)
i === o.INITIAL_CAPS_ALL_CHARACTERS ? t = t.toUpperCase() : i === o.INITIAL_CAPS_WORD ? t = t.replace(/(?:^|\s)\S/g, (function(t) {
return t.toUpperCase()
}
)) : i === o.INITIAL_CAPS_SENTENCE && (t = h(t));
else {
for (var n = "", r = t.length, s = 0; s < r; ++s)
n += "\u25cf";
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.errorID(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 = c,
cc.sys.isBrowser && t("./WebEditBoxImpl")
}
), {
"../../platform/CCMacro": 198,
"../CCLabel": 107,
"../editbox/EditBoxImplBase": 128,
"./WebEditBoxImpl": 129,
"./types": 131
}],
128: [(function(t, e) {
"use strict";
var i = cc.Class({
ctor: function() {
this._delegate = null,
this._editing = !1
},
init: function() {},
enable: function() {},
disable: function() {
this._editing && this.endEditing()
},
clear: function() {},
update: function() {},
setTabIndex: function() {},
setSize: function() {},
setFocus: function(t) {
t ? this.beginEditing() : this.endEditing()
},
isFocused: function() {
return this._editing
},
beginEditing: function() {},
endEditing: function() {}
});
e.exports = i
}
), {}],
129: [(function(t) {
"use strict";
var e, i = (e = t("../../value-types/mat4")) && e.__esModule ? e : {
default: e
}, n = t("../../platform/utils"), r = t("../../platform/CCMacro"), s = t("./types"), a = t("../CCLabel"), o = t("./tabIndexUtil"), l = cc.EditBox, h = cc.js, c = s.InputMode, u = s.InputFlag, _ = s.KeyboardReturnType, f = {
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 || (f.zoomInvalid = !0);
var d = 0
, p = cc.v3()
, m = null
, y = !1
, v = !1
, g = l._ImplClass;
function A() {
g.call(this),
this._domId = "EditBoxId_" + ++d,
this._placeholderStyleSheet = null,
this._elem = null,
this._isTextArea = !1,
this._worldMat = new i.default,
this._cameraMat = new i.default,
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._cacheViewportRect = cc.rect(0, 0, 0, 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
}
h.extend(A, g),
l._ImplClass = A,
Object.assign(A.prototype, {
init: function(t) {
t && (this._delegate = t,
t.inputMode === c.ANY ? this._createTextArea() : this._createInput(),
o.add(this),
this.setTabIndex(t.tabIndex),
this._initStyleSheet(),
this._registerEventListeners(),
this._addDomToGameContainer(),
y = cc.view.isAutoFullScreenEnabled(),
v = cc.view._resizeWithBrowserSize)
},
clear: function() {
this._removeEventListeners(),
this._removeDomFromGameContainer(),
o.remove(this),
m === this && (m = null)
},
update: function() {
this._updateMatrix()
},
setTabIndex: function(t) {
this._elem.tabIndex = t,
o.resort()
},
setSize: function(t, e) {
var i = this._elem;
i.style.width = t + "px",
i.style.height = e + "px"
},
beginEditing: function() {
m && m !== this && m.setFocus(!1),
this._editing = !0,
m = this,
this._delegate.editBoxEditingDidBegan(),
this._showDom(),
this._elem.focus()
},
endEditing: function() {
this._elem && this._elem.blur()
},
_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() {
cc.sys.os === cc.sys.OS_ANDROID && (y && (cc.view.enableAutoFullScreen(!1),
cc.screen.exitFullScreen()),
v && cc.view.resizeWithBrowserSize(!1),
this._adjustWindowScroll())
},
_hideDomOnMobile: function() {
cc.sys.os === cc.sys.OS_ANDROID && (v && cc.view.resizeWithBrowserSize(!0),
setTimeout((function() {
m || y && cc.view.enableAutoFullScreen(!0)
}
), 800)),
this._scrollBackWindow()
},
_adjustWindowScroll: function() {
var t = this;
setTimeout((function() {
window.scrollY < 100 && t._elem.scrollIntoView({
block: "start",
inline: "nearest",
behavior: "smooth"
})
}
), 800)
},
_scrollBackWindow: function() {
setTimeout((function() {
var t = cc.sys;
t.browserType !== t.BROWSER_TYPE_WECHAT || t.os !== t.OS_IOS ? window.scrollTo(0, 0) : window.top && window.top.scrollTo(0, 0)
}
), 800)
},
_updateCameraMatrix: function() {
var t = this._delegate.node;
t.getWorldMatrix(this._worldMat);
var e = this._worldMat
, n = t._contentSize
, r = t._anchorPoint;
p.x = -r.x * n.width,
p.y = -r.y * n.height,
i.default.transform(e, e, p);
var s = cc.Camera.findCamera(t);
return !!s && (s.getWorldToScreenMatrix2D(this._cameraMat),
i.default.mul(this._cameraMat, this._cameraMat, e),
!0)
},
_updateMatrix: function() {
if (this._updateCameraMatrix()) {
var t = this._cameraMat.m
, e = this._delegate.node
, i = cc.view;
if (this._m00 !== t[0] || this._m01 !== t[1] || this._m04 !== t[4] || this._m05 !== t[5] || this._m12 !== t[12] || this._m13 !== t[13] || this._w !== e._contentSize.width || this._h !== e._contentSize.height || !this._cacheViewportRect.equals(i._viewportRect)) {
this._m00 = t[0],
this._m01 = t[1],
this._m04 = t[4],
this._m05 = t[5],
this._m12 = t[12],
this._m13 = t[13],
this._w = e._contentSize.width,
this._h = e._contentSize.height,
this._cacheViewportRect.set(i._viewportRect);
var n = i._scaleX
, r = i._scaleY
, s = i._viewportRect
, a = i._devicePixelRatio;
n /= a,
r /= a;
var o = cc.game.container
, l = t[0] * n
, h = t[1]
, c = t[4]
, u = t[5] * r
, _ = o && o.style.paddingLeft && parseInt(o.style.paddingLeft);
_ += s.x / a;
var d = o && o.style.paddingBottom && parseInt(o.style.paddingBottom);
d += s.y / a;
var p = t[12] * n + _
, m = t[13] * r + d;
f.zoomInvalid && (this.setSize(e.width * l, e.height * u),
l = 1,
u = 1);
var y = this._elem
, v = "matrix(" + l + "," + -h + "," + -c + "," + u + "," + p + "," + -m + ")";
y.style.transform = v,
y.style["-webkit-transform"] = v,
y.style["transform-origin"] = "0px 100% 0px",
y.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) {
if (this._inputMode = e,
this._inputFlag = i,
this._returnType = n,
this._isTextArea) {
var s = "none";
return i === u.INITIAL_CAPS_ALL_CHARACTERS ? s = "uppercase" : i === u.INITIAL_CAPS_WORD && (s = "capitalize"),
void (r.style.textTransform = s)
}
if (i === u.PASSWORD)
return r.type = "password",
void (r.style.textTransform = "none");
var a = r.type;
e === c.EMAIL_ADDR ? a = "email" : e === c.NUMERIC || e === c.DECIMAL ? a = "number" : e === c.PHONE_NUMBER ? (a = "number",
r.pattern = "[0-9]*") : e === c.URL ? a = "url" : (a = "text",
n === _.SEARCH && (a = "search")),
r.type = a;
var o = "none";
i === u.INITIAL_CAPS_ALL_CHARACTERS ? o = "uppercase" : i === u.INITIAL_CAPS_WORD && (o = "capitalize"),
r.style.textTransform = o
}
},
_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 = "none",
t.style.position = "absolute",
t.style.bottom = "0px",
t.style.left = "2px",
t.className = "cocosEditBox",
t.id = this._domId,
this._isTextArea ? (t.style.resize = "none",
t.style.overflow_y = "scroll") : (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 = t.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;
switch (n.style.fontSize = i + "px",
n.style.color = t.node.color.toCSS(),
n.style.fontFamily = e,
t.horizontalAlign) {
case a.HorizontalAlign.LEFT:
n.style.textAlign = "left";
break;
case a.HorizontalAlign.CENTER:
n.style.textAlign = "center";
break;
case a.HorizontalAlign.RIGHT:
n.style.textAlign = "right"
}
}
}
},
_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, r = this._placeholderStyleSheet, s = t.node.color.toCSS(), o = t.fontSize;
switch (t.horizontalAlign) {
case a.HorizontalAlign.LEFT:
n = "left";
break;
case a.HorizontalAlign.CENTER:
n = "center";
break;
case a.HorizontalAlign.RIGHT:
n = "right"
}
r.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: " + s + "; line-height: " + o + "px; text-align: " + n + ";}",
cc.sys.browserType === cc.sys.BROWSER_TYPE_EDGE && (r.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() {
if (!i) {
var n = t._delegate.maxLength;
n >= 0 && (e.value = e.value.slice(0, n)),
t._delegate.editBoxTextChanged(e.value)
}
}
,
n.onClick = function() {
t._editing && cc.sys.isMobile && t._adjustWindowScroll()
}
,
n.onKeydown = function(i) {
i.keyCode === r.KEY.enter ? (i.stopPropagation(),
t._delegate.editBoxEditingReturn(),
t._isTextArea || e.blur()) : i.keyCode === r.KEY.tab && (i.stopPropagation(),
i.preventDefault(),
o.next(t))
}
,
n.onBlur = function() {
cc.sys.isMobile && i && n.compositionEnd(),
t._editing = !1,
m = 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("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("blur", e.onBlur),
t.removeEventListener("touchstart", e.onClick),
e.compositionStart = null,
e.compositionEnd = null,
e.onInput = null,
e.onKeydown = null,
e.onBlur = null,
e.onClick = null
}
})
}
), {
"../../platform/CCMacro": 198,
"../../platform/utils": 217,
"../../value-types/mat4": 284,
"../CCLabel": 107,
"./tabIndexUtil": 130,
"./types": 131
}],
130: [(function(t, e) {
"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);
if (t.setFocus(!1),
-1 !== i) {
var n = e[i + 1];
n && n._delegate._tabIndex >= 0 && n.setFocus(!0)
}
}
}
}
), {}],
131: [(function(t, e) {
"use strict";
var i = cc.Enum({
DEFAULT: 0,
DONE: 1,
SEND: 2,
SEARCH: 3,
GO: 4,
NEXT: 5
})
, n = cc.Enum({
ANY: 0,
EMAIL_ADDR: 1,
NUMERIC: 2,
PHONE_NUMBER: 3,
URL: 4,
DECIMAL: 5,
SINGLE_LINE: 6
})
, r = cc.Enum({
PASSWORD: 0,
SENSITIVE: 1,
INITIAL_CAPS_WORD: 2,
INITIAL_CAPS_SENTENCE: 3,
INITIAL_CAPS_ALL_CHARACTERS: 4,
DEFAULT: 5
});
e.exports = {
KeyboardReturnType: i,
InputMode: n,
InputFlag: r
}
}
), {}],
132: [(function(t, e) {
"use strict";
t("./CCComponent"),
t("./CCComponentEventHandler"),
t("./missing-script");
var i = t("./SubContextView");
i || (i = cc.Class({
name: "cc.SubContextView",
extends: cc.Component
}),
cc.SubContextView = cc.WXSubContextView = cc.SwanSubContextView = i);
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("./CCSafeArea"), i];
e.exports = n
}
), {
"./CCAnimation": 100,
"./CCAudioSource": 101,
"./CCBlockInputEvents": 102,
"./CCButton": 103,
"./CCCanvas": 104,
"./CCComponent": 105,
"./CCComponentEventHandler": 106,
"./CCLabel": 107,
"./CCLabelOutline": 108,
"./CCLabelShadow": 109,
"./CCLayout": 110,
"./CCMask": 111,
"./CCMotionStreak": void 0,
"./CCPageView": 112,
"./CCPageViewIndicator": 113,
"./CCProgressBar": 114,
"./CCRichText": 116,
"./CCSafeArea": void 0,
"./CCScrollBar": 117,
"./CCScrollView": 118,
"./CCSlider": 119,
"./CCSprite": 120,
"./CCToggle": 122,
"./CCToggleContainer": 123,
"./CCToggleGroup": 124,
"./CCWidget": 126,
"./SubContextView": void 0,
"./editbox/CCEditBox": 127,
"./missing-script": 133
}],
133: [(function(t, e) {
"use strict";
var i = cc.js
, n = 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) {
return i._getClassById(t) || (cc.deserialize.reportMissingClass(t),
n)
}
},
onLoad: function() {
cc.warnID(4600, this.node.name)
}
});
cc._MissingScript = e.exports = n
}
), {}],
134: [(function(t, e) {
"use strict";
var i = cc.js;
t("../event/event");
var n = 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
};
i.extend(n, cc.Event);
var r = n.prototype;
r.setScrollData = function(t, e) {
this._scrollX = t,
this._scrollY = e
}
,
r.getScrollX = function() {
return this._scrollX
}
,
r.getScrollY = function() {
return this._scrollY
}
,
r.setLocation = function(t, e) {
this._x = t,
this._y = e
}
,
r.getLocation = function() {
return cc.v2(this._x, this._y)
}
,
r.getLocationInView = function() {
return cc.v2(this._x, cc.view._designResolutionSize.height - this._y)
}
,
r._setPrevCursor = function(t, e) {
this._prevX = t,
this._prevY = e
}
,
r.getPreviousLocation = function() {
return cc.v2(this._prevX, this._prevY)
}
,
r.getDelta = function() {
return cc.v2(this._x - this._prevX, this._y - this._prevY)
}
,
r.getDeltaX = function() {
return this._x - this._prevX
}
,
r.getDeltaY = function() {
return this._y - this._prevY
}
,
r.setButton = function(t) {
this._button = t
}
,
r.getButton = function() {
return this._button
}
,
r.getLocationX = function() {
return this._x
}
,
r.getLocationY = function() {
return this._y
}
,
n.NONE = 0,
n.DOWN = 1,
n.UP = 2,
n.MOVE = 3,
n.SCROLL = 4,
n.BUTTON_LEFT = 0,
n.BUTTON_RIGHT = 2,
n.BUTTON_MIDDLE = 1,
n.BUTTON_4 = 3,
n.BUTTON_5 = 4,
n.BUTTON_6 = 5,
n.BUTTON_7 = 6,
n.BUTTON_8 = 7;
var s = function(t, e) {
cc.Event.call(this, cc.Event.TOUCH, e),
this._eventCode = 0,
this._touches = t || [],
this.touch = null,
this.currentTouch = null
};
i.extend(s, cc.Event),
(r = s.prototype).getEventCode = function() {
return this._eventCode
}
,
r.getTouches = function() {
return this._touches
}
,
r._setEventCode = function(t) {
this._eventCode = t
}
,
r._setTouches = function(t) {
this._touches = t
}
,
r.setLocation = function(t, e) {
this.touch && this.touch.setTouchInfo(this.touch.getID(), t, e)
}
,
r.getLocation = function() {
return this.touch ? this.touch.getLocation() : cc.v2()
}
,
r.getLocationInView = function() {
return this.touch ? this.touch.getLocationInView() : cc.v2()
}
,
r.getPreviousLocation = function() {
return this.touch ? this.touch.getPreviousLocation() : cc.v2()
}
,
r.getStartLocation = function() {
return this.touch ? this.touch.getStartLocation() : cc.v2()
}
,
r.getID = function() {
return this.touch ? this.touch.getID() : null
}
,
r.getDelta = function() {
return this.touch ? this.touch.getDelta() : cc.v2()
}
,
r.getDeltaX = function() {
return this.touch ? this.touch.getDelta().x : 0
}
,
r.getDeltaY = function() {
return this.touch ? this.touch.getDelta().y : 0
}
,
r.getLocationX = function() {
return this.touch ? this.touch.getLocationX() : 0
}
,
r.getLocationY = function() {
return this.touch ? this.touch.getLocationY() : 0
}
,
s.MAX_TOUCHES = 5,
s.BEGAN = 0,
s.MOVED = 1,
s.ENDED = 2,
s.CANCELED = 3;
var a = function(t, e) {
cc.Event.call(this, cc.Event.ACCELERATION, e),
this.acc = t
};
i.extend(a, cc.Event);
var o = function(t, e, i) {
cc.Event.call(this, cc.Event.KEYBOARD, i),
this.keyCode = t,
this.isPressed = e
};
i.extend(o, cc.Event),
cc.Event.EventMouse = n,
cc.Event.EventTouch = s,
cc.Event.EventAcceleration = a,
cc.Event.EventKeyboard = o,
e.exports = cc.Event
}
), {
"../event/event": 141
}],
135: [(function(t, e) {
"use strict";
var i = 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 n = 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"
}
, r = function(t, e) {
this._onCustomEvent = e,
cc.EventListener.call(this, cc.EventListener.CUSTOM, t, this._callback)
};
i.extend(r, cc.EventListener),
i.mixin(r.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 r(this._listenerID,this._onCustomEvent)
}
});
var s = function() {
cc.EventListener.call(this, cc.EventListener.MOUSE, n.MOUSE, this._callback)
};
i.extend(s, cc.EventListener),
i.mixin(s.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 s;
return t.onMouseDown = this.onMouseDown,
t.onMouseUp = this.onMouseUp,
t.onMouseMove = this.onMouseMove,
t.onMouseScroll = this.onMouseScroll,
t
},
checkAvailable: function() {
return !0
}
});
var a = function() {
cc.EventListener.call(this, cc.EventListener.TOUCH_ONE_BY_ONE, n.TOUCH_ONE_BY_ONE, null),
this._claimedTouches = []
};
i.extend(a, cc.EventListener),
i.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;
return t.onTouchBegan = this.onTouchBegan,
t.onTouchMoved = this.onTouchMoved,
t.onTouchEnded = this.onTouchEnded,
t.onTouchCancelled = this.onTouchCancelled,
t.swallowTouches = this.swallowTouches,
t
},
checkAvailable: function() {
return !!this.onTouchBegan || (cc.logID(1801),
!1)
}
});
var o = function() {
cc.EventListener.call(this, cc.EventListener.TOUCH_ALL_AT_ONCE, n.TOUCH_ALL_AT_ONCE, null)
};
i.extend(o, cc.EventListener),
i.mixin(o.prototype, {
constructor: o,
onTouchesBegan: null,
onTouchesMoved: null,
onTouchesEnded: null,
onTouchesCancelled: null,
clone: function() {
var t = new o;
return t.onTouchesBegan = this.onTouchesBegan,
t.onTouchesMoved = this.onTouchesMoved,
t.onTouchesEnded = this.onTouchesEnded,
t.onTouchesCancelled = this.onTouchesCancelled,
t
},
checkAvailable: function() {
return null !== this.onTouchesBegan || null !== this.onTouchesMoved || null !== this.onTouchesEnded || null !== this.onTouchesCancelled || (cc.logID(1802),
!1)
}
});
var l = function(t) {
this._onAccelerationEvent = t,
cc.EventListener.call(this, cc.EventListener.ACCELERATION, n.ACCELERATION, this._callback)
};
i.extend(l, cc.EventListener),
i.mixin(l.prototype, {
constructor: l,
_onAccelerationEvent: null,
_callback: function(t) {
this._onAccelerationEvent(t.acc, t)
},
checkAvailable: function() {
return cc.assertID(this._onAccelerationEvent, 1803),
!0
},
clone: function() {
return new l(this._onAccelerationEvent)
}
});
var h = function() {
cc.EventListener.call(this, cc.EventListener.KEYBOARD, n.KEYBOARD, this._callback)
};
i.extend(h, cc.EventListener),
i.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;
return t.onKeyPressed = this.onKeyPressed,
t.onKeyReleased = this.onKeyReleased,
t
},
checkAvailable: function() {
return null !== this.onKeyPressed || null !== this.onKeyReleased || (cc.logID(1800),
!1)
}
}),
cc.EventListener.create = function(t) {
cc.assertID(t && t.event, 1900);
var e = t.event;
delete t.event;
var i = null;
for (var n in e === cc.EventListener.TOUCH_ONE_BY_ONE ? i = new a : e === cc.EventListener.TOUCH_ALL_AT_ONCE ? i = new o : e === cc.EventListener.MOUSE ? i = new s : e === cc.EventListener.CUSTOM ? (i = new r(t.eventName,t.callback),
delete t.eventName,
delete t.callback) : e === cc.EventListener.KEYBOARD ? i = new h : e === cc.EventListener.ACCELERATION && (i = new l(t.callback),
delete t.callback),
t)
i[n] = t[n];
return i
}
,
e.exports = cc.EventListener
}
), {
"../platform/js": 214
}],
136: [(function(t, e) {
"use strict";
var i = t("../platform/js");
t("./CCEventListener");
var n = cc.EventListener.ListenerID
, r = function() {
this._fixedListeners = [],
this._sceneGraphListeners = [],
this.gt0Index = 0
};
r.prototype = {
constructor: r,
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 s = function(t) {
var e = cc.Event
, i = t.type;
return i === e.ACCELERATION ? n.ACCELERATION : i === e.KEYBOARD ? n.KEYBOARD : i.startsWith(e.MOUSE) ? n.MOUSE : (i.startsWith(e.TOUCH) && cc.logID(2e3),
"")
}
, 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,
_currentTouch: null,
_currentTouchListener: null,
_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.childrenCount > 0)
for (var s = t._children, a = 0, o = s.length; a < o; a++)
this._setDirtyForNode(s[a])
},
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._children;
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);
if (this._setDirtyForNode(t),
!0 === e) {
var s = t._children;
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 r,
this._listenersMap[e] = i),
i.push(t),
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),
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],
this._inDispatch || (i.clear(),
delete this._listenersMap[t])
}
var s, a = this._toAddedListeners;
for (e = a.length - 1; e >= 0; e--)
(s = a[e]) && s._getListenerID() === t && cc.js.array.removeAt(a, e)
},
_sortEventListeners: function(t) {
var e = this.DIRTY_NONE
, i = this._priorityDirtyFlagMap;
i[t] && (e = i[t]),
e !== this.DIRTY_NONE && (i[t] = this.DIRTY_NONE,
e & this.DIRTY_FIXED_PRIORITY && this._sortListenersOfFixedPriority(t),
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, a = !1; r._parent._id !== s._parent._id; )
r = null === r._parent._parent ? (a = !0) && n : r._parent,
s = null === s._parent._parent ? (a = !0) && i : s._parent;
if (r._id === s._id) {
if (r._id === n._id)
return -1;
if (r._id === i._id)
return 1
}
return a ? 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(), a = this._toRemovedListeners;
if (s)
for (e = s.length - 1; e >= 0; e--)
(i = s[e])._isRegistered() || (cc.js.array.removeAt(s, e),
-1 !== (n = a.indexOf(i)) && a.splice(n, 1));
if (r)
for (e = r.length - 1; e >= 0; e--)
(i = r[e])._isRegistered() || (cc.js.array.removeAt(r, e),
-1 !== (n = a.indexOf(i)) && a.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)
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() {
var t = this._inDispatch;
if (cc.assertID(t > 0, 3508),
!(t > 1)) {
var e;
(e = this._listenersMap[n.TOUCH_ONE_BY_ONE]) && this._onUpdateListeners(e),
(e = this._listenersMap[n.TOUCH_ALL_AT_ONCE]) && this._onUpdateListeners(e),
cc.assertID(1 === t, 3509);
var i = this._toAddedListeners;
if (0 !== i.length) {
for (var r = 0, s = i.length; r < s; r++)
this._forceAddEventListener(i[r]);
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(), a = n.getSceneGraphPriorityListeners();
a && -1 !== (r = a.indexOf(i)) && a.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(), l = cc.Event.EventTouch;
if (o === l.BEGAN) {
if (!cc.macro.ENABLE_MULTI_TOUCH && a._currentTouch) {
var h = a._currentTouchListener._node;
if (h && h.activeInHierarchy)
return !1
}
t.onTouchBegan && (s = t.onTouchBegan(n, i)) && t._registered && (t._claimedTouches.push(n),
a._currentTouchListener = t,
a._currentTouch = n)
} else if (t._claimedTouches.length > 0 && -1 !== (r = t._claimedTouches.indexOf(n))) {
if (s = !0,
!cc.macro.ENABLE_MULTI_TOUCH && a._currentTouch && a._currentTouch !== n)
return !1;
o === l.MOVED && t.onTouchMoved ? t.onTouchMoved(n, i) : o === l.ENDED ? (t.onTouchEnded && t.onTouchEnded(n, i),
t._registered && t._claimedTouches.splice(r, 1),
a._clearCurTouch()) : o === l.CANCELED && (t.onTouchCancelled && t.onTouchCancelled(n, i),
t._registered && t._claimedTouches.splice(r, 1),
a._clearCurTouch())
}
return i.isStopped() ? (a._updateTouchListeners(i),
!0) : !(!s || !t.swallowTouches || (e.needsMutableSet && e.touches.splice(n, 1),
0))
},
_dispatchTouchEvent: function(t) {
this._sortEventListeners(n.TOUCH_ONE_BY_ONE),
this._sortEventListeners(n.TOUCH_ALL_AT_ONCE);
var e = this._getListeners(n.TOUCH_ONE_BY_ONE)
, i = this._getListeners(n.TOUCH_ALL_AT_ONCE);
if (null !== e || null !== i) {
var r = t.getTouches()
, s = cc.js.array.copy(r)
, a = {
event: t,
needsMutableSet: e && i,
touches: s,
selTouch: null
};
if (e)
for (var o = 0; o < r.length; o++)
t.currentTouch = r[o],
t._propagationStopped = t._propagationImmediateStopped = !1,
this._dispatchEventToListeners(e, this._onTouchEventCallback, a);
i && s.length > 0 && (this._dispatchEventToListeners(i, this._onTouchesEventCallback, {
event: t,
touches: s
}),
t.isStopped()) || 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();
return 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.CANCELED && t.onTouchesCancelled && t.onTouchesCancelled(r, n),
!!n.isStopped() && (a._updateTouchListeners(n),
!0)
},
_associateNodeAndEventListener: function(t, e) {
var i = this._nodeListenersMap[t._id];
i || (i = [],
this._nodeListenersMap[t._id] = i),
i.push(e)
},
_dissociateNodeAndEventListener: function(t, e) {
var i = this._nodeListenersMap[t._id];
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, a = t.getFixedPriorityListeners(), o = t.getSceneGraphPriorityListeners(), l = 0;
if (a && 0 !== a.length)
for (; l < t.gt0Index; ++l)
if ((r = a[l]).isEnabled() && !r._isPaused() && r._isRegistered() && e(r, i)) {
s = !0;
break
}
if (o && !s)
for (n = 0; n < o.length; n++)
if ((r = o[n]).isEnabled() && !r._isPaused() && r._isRegistered() && e(r, i)) {
s = !0;
break
}
if (a && !s)
for (; l < a.length; ++l)
if ((r = a[l]).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) {
if (cc.assertID(t && e, 3503),
cc.js.isNumber(e) || e instanceof cc._BaseNode) {
if (t instanceof cc.EventListener) {
if (t._isRegistered())
return void cc.logID(3505)
} else
cc.assertID(!cc.js.isNumber(e), 3504),
t = cc.EventListener.create(t);
if (t.checkAvailable()) {
if (cc.js.isNumber(e)) {
if (0 === e)
return void cc.logID(3500);
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
});
return this.addListener(i, 1),
i
},
removeListener: function(t) {
if (null != t) {
var e, i = this._listenersMap;
for (var n in i) {
var r = i[n]
, s = r.getFixedPriorityListeners()
, a = r.getSceneGraphPriorityListeners();
if ((e = this._removeListenerInVector(a, t)) ? this._setDirty(t._getListenerID(), this.DIRTY_SCENE_GRAPH_PRIORITY) : (e = this._removeListenerInVector(s, t)) && this._setDirty(t._getListenerID(), this.DIRTY_FIXED_PRIORITY),
r.empty() && (delete this._priorityDirtyFlagMap[t._getListenerID()],
delete i[n]),
e)
break
}
if (!e)
for (var o = this._toAddedListeners, l = o.length - 1; l >= 0; l--) {
var h = o[l];
if (h === t) {
cc.js.array.removeAt(o, l),
h._setRegistered(!1);
break
}
}
this._currentTouchListener === t && this._clearCurTouch()
}
},
_clearCurTouch: function() {
this._currentTouchListener = null,
this._currentTouch = null
},
_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)
return n._setRegistered(!1),
null != n._getSceneGraphPriority() && (this._dissociateNodeAndEventListener(n._getSceneGraphPriority(), n),
n._setSceneGraphPriority(null)),
0 === this._inDispatch ? cc.js.array.removeAt(t, i) : this._toRemovedListeners.push(n),
!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)
return n._setRegistered(!1),
null != n._getSceneGraphPriority() && (this._dissociateNodeAndEventListener(n._getSceneGraphPriority(), n),
n._setSceneGraphPriority(null)),
0 === this._inDispatch ? cc.js.array.removeAt(t, i) : this._toRemovedListeners.push(n),
!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 r, s = i._nodeListenersMap[t._id];
if (s) {
var a = cc.js.array.copy(s);
for (r = 0; r < a.length; r++)
i.removeListener(a[r]);
delete i._nodeListenersMap[t._id]
}
var o = i._toAddedListeners;
for (r = 0; r < o.length; ) {
var l = o[r];
l._getSceneGraphPriority() === t ? (l._setSceneGraphPriority(null),
l._setRegistered(!1),
o.splice(r, 1)) : ++r
}
if (!0 === e) {
var h, c = t.children;
for (r = 0,
h = c.length; r < h; r++)
i.removeListeners(c[r], !0)
}
} else
t === cc.EventListener.TOUCH_ONE_BY_ONE ? i._removeListenersForListenerID(n.TOUCH_ONE_BY_ONE) : t === cc.EventListener.TOUCH_ALL_AT_ONCE ? i._removeListenersForListenerID(n.TOUCH_ALL_AT_ONCE) : t === cc.EventListener.MOUSE ? i._removeListenersForListenerID(n.MOUSE) : t === cc.EventListener.ACCELERATION ? i._removeListenersForListenerID(n.ACCELERATION) : t === cc.EventListener.KEYBOARD ? i._removeListenersForListenerID(n.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 && -1 !== r.indexOf(t))
return null != t._getSceneGraphPriority() && cc.logID(3502),
void (t._getFixedPriority() !== e && (t._setFixedPriority(e),
this._setDirty(t._getListenerID(), this.DIRTY_FIXED_PRIORITY)))
}
}
},
setEnabled: function(t) {
this._isEnabled = t
},
isEnabled: function() {
return this._isEnabled
},
dispatchEvent: function(t) {
if (this._isEnabled)
if (this._updateDirtyFlagForSceneGraph(),
this._inDispatch++,
t && t.getType) {
if (t.getType().startsWith(cc.Event.TOUCH))
return this._dispatchTouchEvent(t),
void this._inDispatch--;
var e = s(t);
this._sortEventListeners(e);
var i = this._listenersMap[e];
null != i && (this._dispatchEventToListeners(i, this._onListenerCallback, t),
this._onUpdateListeners(i)),
this._inDispatch--
} else
cc.errorID(3511)
},
_onListenerCallback: function(t, e) {
return e.currentTarget = t._target,
t._onEvent(e),
e.isStopped()
},
dispatchCustomEvent: function(t, e) {
var i = new cc.Event.EventCustom(t);
i.setUserData(e),
this.dispatchEvent(i)
}
};
i.get(cc, "eventManager", (function() {
return cc.errorID(1405, "cc.eventManager", "cc.EventTarget or cc.systemEvent"),
a
}
)),
e.exports = cc.internal.eventManager = a
}
), {
"../platform/js": 214,
"./CCEventListener": 135
}],
137: [(function() {
"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,
this._startPointCaptured || (this._startPoint = cc.v2(this._point),
cc.view._convertPointWithScale(this._startPoint),
this._startPointCaptured = !0)
},
_setPoint: function(t, e) {
void 0 === e ? (this._point.x = t.x,
this._point.y = t.y) : (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)
}
}
}
), {}],
138: [(function(t, e) {
"use strict";
t("./CCEvent"),
t("./CCTouch"),
t("./CCEventListener");
var i = t("./CCEventManager");
e.exports = i
}
), {
"./CCEvent": 134,
"./CCEventListener": 135,
"./CCEventManager": 136,
"./CCTouch": 137
}],
139: [(function(t, e) {
"use strict";
var i = cc.js
, n = t("../platform/callbacks-invoker");
function r() {
n.call(this)
}
i.extend(r, n),
r.prototype.emit = function(t, e) {
var i = t.type
, n = this._callbackTable[i];
if (n) {
var r = !n.isInvoking;
n.isInvoking = !0;
for (var s = n.callbackInfos, a = 0, o = s.length; a < o; ++a) {
var l = s[a];
if (l && l.callback && (l.callback.call(l.target, t, e),
t._propagationImmediateStopped))
break
}
r && (n.isInvoking = !1,
n.containCanceled && n.purgeCanceled())
}
}
,
e.exports = r
}
), {
"../platform/callbacks-invoker": 206
}],
140: [(function(t, e) {
"use strict";
var i = t("../platform/js")
, n = t("../platform/callbacks-invoker")
, r = i.array.fastRemove;
function s() {
n.call(this)
}
i.extend(s, n);
var a = s.prototype;
a.__on = a.on,
a.on = function(t, e, i, n) {
if (e)
return this.hasEventListener(t, e, i) || (this.__on(t, e, i, n),
i && i.__eventTargets && i.__eventTargets.push(this)),
e;
cc.errorID(6800)
}
,
a.__off = a.off,
a.off = function(t, e, i) {
if (e)
this.__off(t, e, i),
i && i.__eventTargets && r(i.__eventTargets, this);
else {
var n = this._callbackTable[t];
if (!n)
return;
for (var s = n.callbackInfos, a = 0; a < s.length; ++a) {
var o = s[a] && s[a].target;
o && o.__eventTargets && r(o.__eventTargets, this)
}
this.removeAll(t)
}
}
,
a.targetOff = function(t) {
this.removeAll(t),
t && t.__eventTargets && r(t.__eventTargets, this)
}
,
a.once = function(t, e, i) {
this.on(t, e, i, !0)
}
,
a.dispatchEvent = function(t) {
this.emit(t.type, t)
}
,
a.clear = function() {
for (var t in this._callbackTable)
for (var e = this._callbackTable[t].callbackInfos, i = e.length - 1; i >= 0; i--) {
var n = e[i];
n && this.off(t, n.callback, n.target)
}
}
,
cc.EventTarget = e.exports = s
}
), {
"../platform/callbacks-invoker": 206,
"../platform/js": 214
}],
141: [(function(t, e) {
"use strict";
var i = 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 n = function(t, e) {
cc.Event.call(this, t, e),
this.detail = null
};
i.extend(n, cc.Event),
n.prototype.reset = n,
n.prototype.setUserData = function(t) {
this.detail = t
}
,
n.prototype.getUserData = function() {
return this.detail
}
,
n.prototype.getEventName = cc.Event.prototype.getType;
var r = new i.Pool(10);
n.put = function(t) {
r.put(t)
}
,
n.get = function(t, e) {
var i = r._get();
return i ? i.reset(t, e) : i = new n(t,e),
i
}
,
cc.Event.EventCustom = n,
e.exports = cc.Event
}
), {
"../platform/js": 214
}],
142: [(function(t) {
"use strict";
t("./event"),
t("./event-listeners"),
t("./event-target"),
t("./system-event")
}
), {
"./event": 141,
"./event-listeners": 139,
"./event-target": 140,
"./system-event": 143
}],
143: [(function(t, e) {
"use strict";
var i = t("../event/event-target")
, n = t("../event-manager")
, r = t("../platform/CCInputManager")
, s = cc.Enum({
KEY_DOWN: "keydown",
KEY_UP: "keyup",
DEVICEMOTION: "devicemotion"
})
, a = null
, o = null
, l = cc.Class({
name: "SystemEvent",
extends: i,
statics: {
EventType: s
},
setAccelerometerEnabled: function(t) {
t && window.DeviceMotionEvent && "function" == typeof DeviceMotionEvent.requestPermission ? DeviceMotionEvent.requestPermission().then((function(t) {
console.log("Device Motion Event request permission: " + t),
r.setAccelerometerEnabled("granted" === t)
}
)) : r.setAccelerometerEnabled(t)
},
setAccelerometerInterval: function(t) {
r.setAccelerometerInterval(t)
},
on: function(t, e, i, r) {
this._super(t, e, i, r),
t !== s.KEY_DOWN && t !== s.KEY_UP || (a || (a = cc.EventListener.create({
event: cc.EventListener.KEYBOARD,
onKeyPressed: function(t, e) {
e.type = s.KEY_DOWN,
cc.systemEvent.dispatchEvent(e)
},
onKeyReleased: function(t, e) {
e.type = s.KEY_UP,
cc.systemEvent.dispatchEvent(e)
}
})),
n.hasEventListener(cc.EventListener.ListenerID.KEYBOARD) || n.addListener(a, 1)),
t === s.DEVICEMOTION && (o || (o = cc.EventListener.create({
event: cc.EventListener.ACCELERATION,
callback: function(t, e) {
e.type = s.DEVICEMOTION,
cc.systemEvent.dispatchEvent(e)
}
})),
n.hasEventListener(cc.EventListener.ListenerID.ACCELERATION) || n.addListener(o, 1))
},
off: function(t, e, i) {
if (this._super(t, e, i),
a && (t === s.KEY_DOWN || t === s.KEY_UP)) {
var r = this.hasEventListener(s.KEY_DOWN)
, l = this.hasEventListener(s.KEY_UP);
r || l || n.removeListener(a)
}
o && t === s.DEVICEMOTION && n.removeListener(o)
}
});
cc.SystemEvent = e.exports = l,
cc.systemEvent = new cc.SystemEvent
}
), {
"../event-manager": 138,
"../event/event-target": 140,
"../platform/CCInputManager": 197
}],
144: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n = a(t("../value-types/vec3"))
, r = a(t("../value-types/mat3"))
, s = a(t("./enums"));
function a(t) {
return t && t.__esModule ? t : {
default: t
}
}
var o = new n.default
, l = new n.default
, h = new r.default
, c = function(t, e, i) {
var r = h.m
, s = i.m;
r[0] = Math.abs(s[0]),
r[1] = Math.abs(s[1]),
r[2] = Math.abs(s[2]),
r[3] = Math.abs(s[4]),
r[4] = Math.abs(s[5]),
r[5] = Math.abs(s[6]),
r[6] = Math.abs(s[8]),
r[7] = Math.abs(s[9]),
r[8] = Math.abs(s[10]),
n.default.transformMat3(t, e, h)
}
, u = (function() {
function t(t, e, i, r, a, o) {
this.center = void 0,
this.halfExtents = void 0,
this._type = void 0,
this._type = s.default.SHAPE_AABB,
this.center = new n.default(t,e,i),
this.halfExtents = new n.default(r,a,o)
}
t.create = function(e, i, n, r, s, a) {
return new t(e,i,n,r,s,a)
}
,
t.clone = function(e) {
return new t(e.center.x,e.center.y,e.center.z,e.halfExtents.x,e.halfExtents.y,e.halfExtents.z)
}
,
t.copy = function(t, e) {
return n.default.copy(t.center, e.center),
n.default.copy(t.halfExtents, e.halfExtents),
t
}
,
t.fromPoints = function(t, e, i) {
return n.default.scale(t.center, n.default.add(o, e, i), .5),
n.default.scale(t.halfExtents, n.default.sub(l, i, e), .5),
t
}
,
t.set = function(t, e, i, r, s, a, o) {
return n.default.set(t.center, e, i, r),
n.default.set(t.halfExtents, s, a, o),
t
}
;
var e = t.prototype;
return e.getBoundary = function(t, e) {
n.default.sub(t, this.center, this.halfExtents),
n.default.add(e, this.center, this.halfExtents)
}
,
e.transform = function(t, e, i, r, s) {
s || (s = this),
n.default.transformMat4(s.center, this.center, t),
c(s.halfExtents, this.halfExtents, t)
}
,
t
}
)();
i.default = u,
e.exports = i.default
}
), {
"../value-types/mat3": 283,
"../value-types/vec3": 292,
"./enums": 146
}],
145: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.point_plane = _,
i.pt_point_plane = function(t, e, i) {
var r = _(e, i);
return n.Vec3.subtract(t, e, n.Vec3.multiplyScalar(t, i.n, r))
}
,
i.pt_point_aabb = function(t, e, i) {
return n.Vec3.copy(t, e),
n.Vec3.subtract(l, i.center, i.halfExtents),
n.Vec3.add(h, i.center, i.halfExtents),
t.x = t.x < l.x ? l.x : t.x,
t.y = t.y < l.x ? l.y : t.y,
t.z = t.z < l.x ? l.z : t.z,
t.x = t.x > h.x ? h.x : t.x,
t.y = t.y > h.x ? h.y : t.y,
t.z = t.z > h.x ? h.z : t.z,
t
}
,
i.pt_point_obb = function(t, e, i) {
var l = i.orientation.m;
n.Vec3.set(r, l[0], l[1], l[2]),
n.Vec3.set(s, l[3], l[4], l[5]),
n.Vec3.set(a, l[6], l[7], l[8]),
c[0] = r,
c[1] = s,
c[2] = a,
u[0] = i.halfExtents.x,
u[1] = i.halfExtents.y,
u[2] = i.halfExtents.z,
n.Vec3.subtract(o, e, i.center),
n.Vec3.set(t, i.center.x, i.center.y, i.center.z);
for (var h = 0; h < 3; h++) {
var _ = n.Vec3.dot(o, c[h]);
_ > u[h] && (_ = u[h]),
_ < -u[h] && (_ = -u[h]),
t.x += _ * c[h].x,
t.y += _ * c[h].y,
t.z += _ * c[h].z
}
return t
}
;
var n = t("../value-types")
, r = new n.Vec3
, s = new n.Vec3
, a = new n.Vec3
, o = new n.Vec3
, l = new n.Vec3
, h = new n.Vec3
, c = new Array(3)
, u = new Array(3);
function _(t, e) {
return n.Vec3.dot(e.n, t) - e.d
}
}
), {
"../value-types": 282
}],
146: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0,
i.default = {
SHAPE_RAY: 1,
SHAPE_LINE: 2,
SHAPE_SPHERE: 4,
SHAPE_AABB: 8,
SHAPE_OBB: 16,
SHAPE_PLANE: 32,
SHAPE_TRIANGLE: 64,
SHAPE_FRUSTUM: 128,
SHAPE_FRUSTUM_ACCURATE: 256
},
e.exports = i.default
}
), {}],
147: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n = t("../value-types")
, r = a(t("./enums"))
, s = a(t("./plane"));
function a(t) {
return t && t.__esModule ? t : {
default: t
}
}
function o(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)
}
}
var l = new Array(8);
l[0] = new n.Vec3(1,1,1),
l[1] = new n.Vec3(-1,1,1),
l[2] = new n.Vec3(-1,-1,1),
l[3] = new n.Vec3(1,-1,1),
l[4] = new n.Vec3(1,1,-1),
l[5] = new n.Vec3(-1,1,-1),
l[6] = new n.Vec3(-1,-1,-1),
l[7] = new n.Vec3(1,-1,-1);
var h, c = (function() {
function t() {
this.planes = void 0,
this.vertices = void 0,
this._type = void 0,
this._type = r.default.SHAPE_FRUSTUM,
this.planes = new Array(6);
for (var t = 0; t < 6; ++t)
this.planes[t] = s.default.create(0, 0, 0, 0);
this.vertices = new Array(8);
for (var e = 0; e < 8; ++e)
this.vertices[e] = new n.Vec3
}
t.create = function() {
return new t
}
,
t.clone = function(e) {
return t.copy(new t, e)
}
,
t.copy = function(t, e) {
t._type = e._type;
for (var i = 0; i < 6; ++i)
s.default.copy(t.planes[i], e.planes[i]);
for (var r = 0; r < 8; ++r)
n.Vec3.copy(t.vertices[r], e.vertices[r]);
return t
}
;
var e, i, a = t.prototype;
return a.update = function(t, e) {
var i = t.m;
if (n.Vec3.set(this.planes[0].n, i[3] + i[0], i[7] + i[4], i[11] + i[8]),
this.planes[0].d = -(i[15] + i[12]),
n.Vec3.set(this.planes[1].n, i[3] - i[0], i[7] - i[4], i[11] - i[8]),
this.planes[1].d = -(i[15] - i[12]),
n.Vec3.set(this.planes[2].n, i[3] + i[1], i[7] + i[5], i[11] + i[9]),
this.planes[2].d = -(i[15] + i[13]),
n.Vec3.set(this.planes[3].n, i[3] - i[1], i[7] - i[5], i[11] - i[9]),
this.planes[3].d = -(i[15] - i[13]),
n.Vec3.set(this.planes[4].n, i[3] + i[2], i[7] + i[6], i[11] + i[10]),
this.planes[4].d = -(i[15] + i[14]),
n.Vec3.set(this.planes[5].n, i[3] - i[2], i[7] - i[6], i[11] - i[10]),
this.planes[5].d = -(i[15] - i[14]),
this._type === r.default.SHAPE_FRUSTUM_ACCURATE) {
for (var s = 0; s < 6; s++) {
var a = this.planes[s]
, o = 1 / a.n.length();
n.Vec3.multiplyScalar(a.n, a.n, o),
a.d *= o
}
for (var h = 0; h < 8; h++)
n.Vec3.transformMat4(this.vertices[h], l[h], e)
}
}
,
a.transform = function(t) {
if (this._type === r.default.SHAPE_FRUSTUM_ACCURATE) {
for (var e = 0; e < 8; e++)
n.Vec3.transformMat4(this.vertices[e], this.vertices[e], t);
s.default.fromPoints(this.planes[0], this.vertices[1], this.vertices[5], this.vertices[6]),
s.default.fromPoints(this.planes[1], this.vertices[3], this.vertices[7], this.vertices[4]),
s.default.fromPoints(this.planes[2], this.vertices[6], this.vertices[7], this.vertices[3]),
s.default.fromPoints(this.planes[3], this.vertices[0], this.vertices[4], this.vertices[5]),
s.default.fromPoints(this.planes[4], this.vertices[2], this.vertices[3], this.vertices[0]),
s.default.fromPoints(this.planes[0], this.vertices[7], this.vertices[6], this.vertices[5])
}
}
,
e = t,
(i = [{
key: "accurate",
set: function(t) {
this._type = t ? r.default.SHAPE_FRUSTUM_ACCURATE : r.default.SHAPE_FRUSTUM
}
}]) && o(e.prototype, i),
t
}
)();
i.default = c,
c.createOrtho = (h = new n.Vec3,
function(t, e, i, r, a, o) {
var l = e / 2
, c = i / 2;
n.Vec3.set(h, l, c, r),
n.Vec3.transformMat4(t.vertices[0], h, o),
n.Vec3.set(h, -l, c, r),
n.Vec3.transformMat4(t.vertices[1], h, o),
n.Vec3.set(h, -l, -c, r),
n.Vec3.transformMat4(t.vertices[2], h, o),
n.Vec3.set(h, l, -c, r),
n.Vec3.transformMat4(t.vertices[3], h, o),
n.Vec3.set(h, l, c, a),
n.Vec3.transformMat4(t.vertices[4], h, o),
n.Vec3.set(h, -l, c, a),
n.Vec3.transformMat4(t.vertices[5], h, o),
n.Vec3.set(h, -l, -c, a),
n.Vec3.transformMat4(t.vertices[6], h, o),
n.Vec3.set(h, l, -c, a),
n.Vec3.transformMat4(t.vertices[7], h, o),
s.default.fromPoints(t.planes[0], t.vertices[1], t.vertices[6], t.vertices[5]),
s.default.fromPoints(t.planes[1], t.vertices[3], t.vertices[4], t.vertices[7]),
s.default.fromPoints(t.planes[2], t.vertices[6], t.vertices[3], t.vertices[7]),
s.default.fromPoints(t.planes[3], t.vertices[0], t.vertices[5], t.vertices[4]),
s.default.fromPoints(t.planes[4], t.vertices[2], t.vertices[0], t.vertices[3]),
s.default.fromPoints(t.planes[0], t.vertices[7], t.vertices[5], t.vertices[6])
}
),
e.exports = i.default
}
), {
"../value-types": 282,
"./enums": 146,
"./plane": 152
}],
148: [(function(t, e, i) {
"use strict";
i.__esModule = !0;
var n = {
enums: !0,
Triangle: !0,
Aabb: !0,
Ray: !0,
intersect: !0,
Sphere: !0,
Obb: !0,
Frustum: !0,
Line: !0,
Plane: !0
};
i.Plane = i.Line = i.Frustum = i.Obb = i.Sphere = i.intersect = i.Ray = i.Aabb = i.Triangle = i.enums = void 0;
var r = p(t("./enums"));
i.enums = r.default;
var s = p(t("./triangle"));
i.Triangle = s.default;
var a = p(t("./aabb"));
i.Aabb = a.default;
var o = p(t("./ray"));
i.Ray = o.default;
var l = p(t("./intersect"));
i.intersect = l.default;
var h = p(t("./sphere"));
i.Sphere = h.default;
var c = p(t("./obb"));
i.Obb = c.default;
var u = p(t("./frustum"));
i.Frustum = u.default;
var _ = p(t("./line"));
i.Line = _.default;
var f = p(t("./plane"));
i.Plane = f.default;
var d = t("./distance");
function p(t) {
return t && t.__esModule ? t : {
default: t
}
}
Object.keys(d).forEach((function(t) {
"default" !== t && "__esModule" !== t && (Object.prototype.hasOwnProperty.call(n, t) || t in i && i[t] === d[t] || (i[t] = d[t]))
}
)),
cc.geomUtils = e.exports
}
), {
"./aabb": 144,
"./distance": 145,
"./enums": 146,
"./frustum": 147,
"./intersect": 149,
"./line": 150,
"./obb": 151,
"./plane": 152,
"./ray": 153,
"./sphere": 154,
"./triangle": 155
}],
149: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n = _(t("../../renderer/gfx"))
, r = _(t("../../renderer/memop/recycle-pool"))
, s = t("../value-types")
, a = _(t("./aabb"))
, o = (function(t) {
if (t && t.__esModule)
return t;
if (null === t || "object" != typeof t && "function" != typeof t)
return {
default: t
};
var e = u();
if (e && e.has(t))
return e.get(t);
var i = {}
, n = Object.defineProperty && Object.getOwnPropertyDescriptor;
for (var r in t)
if (Object.prototype.hasOwnProperty.call(t, r)) {
var s = n ? Object.getOwnPropertyDescriptor(t, r) : null;
s && (s.get || s.set) ? Object.defineProperty(i, r, s) : i[r] = t[r]
}
return i.default = t,
e && e.set(t, i),
i
}
)(t("./distance"))
, l = _(t("./enums"))
, h = _(t("./ray"))
, c = _(t("./triangle"));
function u() {
if ("function" != typeof WeakMap)
return null;
var t = new WeakMap;
return u = function() {
return t
}
,
t
}
function _(t) {
return t && t.__esModule ? t : {
default: t
}
}
var f, d, p, m, y, v, g, A, x, b, C, T, S, w, E, M = (function() {
var t = c.default.create()
, e = 1 / 0;
function i(t, e, i, n) {
s.Vec3.set(t, e[i * n], e[i * n + 1], e[i * n + 2])
}
return function(r, s) {
e = 1 / 0;
for (var a = s._subMeshes, o = 0; o < a.length; o++)
if (a[o]._primitiveType === n.default.PT_TRIANGLES)
for (var l = s._subDatas[o] || s._subDatas[0], h = s._getAttrMeshData(o, n.default.ATTR_POSITION), c = l.getIData(Uint16Array), u = l.vfm.element(n.default.ATTR_POSITION).num, _ = 0; _ < c.length; _ += 3) {
i(t.a, h, c[_], u),
i(t.b, h, c[_ + 1], u),
i(t.c, h, c[_ + 2], u);
var f = P(r, t);
f > 0 && f < e && (e = f)
}
return e
}
}
)(), D = (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 = i.m
, r = e.x
, s = e.y
, a = e.z
, o = n[3] * r + n[7] * s + n[11] * a;
return o = o ? 1 / o : 1,
t.x = (n[0] * r + n[4] * s + n[8] * a) * o,
t.y = (n[1] * r + n[5] * s + n[9] * a) * o,
t.z = (n[2] * r + n[6] * s + n[10] * a) * o,
t
}
var n = new r.default(function() {
return {
distance: 0,
node: null
}
}
,1)
, o = []
, l = a.default.create()
, c = new s.Vec3
, u = new s.Vec3
, _ = new h.default
, f = cc.mat4()
, d = cc.mat4()
, p = new s.Vec3;
function m(t) {
return t > 0 && t < 1 / 0
}
return function(r, h, y, v) {
return n.reset(),
o.length = 0,
t(r = r || cc.director.getScene(), (function(t) {
if (!v || v(t)) {
s.Mat4.invert(d, t.getWorldMatrix(f)),
s.Vec3.transformMat4(_.o, h.o, d),
s.Vec3.normalize(_.d, i(_.d, h.d, d));
var e = 1 / 0
, r = t._renderComponent;
if (r instanceof cc.MeshRenderer ? e = V(_, r._boundingBox) : t.width && t.height && (s.Vec3.set(c, -t.width * t.anchorX, -t.height * t.anchorY, t.z),
s.Vec3.set(u, t.width * (1 - t.anchorX), t.height * (1 - t.anchorY), t.z),
a.default.fromPoints(l, c, u),
e = V(_, l)),
m(e) && (y && (e = y(_, t, e)),
m(e))) {
s.Vec3.scale(p, _.d, e),
i(p, p, f);
var g = n.add();
g.node = t,
g.distance = s.Vec3.mag(p),
o.push(g)
}
}
}
)),
o.sort(e),
o
}
}
)(), B = (f = new s.Vec3(0,0,0),
function(t, e) {
var i = s.Vec3.dot(t.d, e.n);
if (Math.abs(i) < Number.EPSILON)
return 0;
s.Vec3.multiplyScalar(f, e.n, e.d);
var n = s.Vec3.dot(s.Vec3.subtract(f, f, t.o), e.n) / i;
return n < 0 ? 0 : n
}
), I = (d = new s.Vec3(0,0,0),
function(t, e) {
s.Vec3.subtract(d, t.e, t.s);
var i = (e.d - s.Vec3.dot(t.s, e.n)) / s.Vec3.dot(d, e.n);
return i < 0 || i > 1 ? 0 : i
}
), P = (function() {
var t = new s.Vec3(0,0,0)
, e = new s.Vec3(0,0,0)
, i = new s.Vec3(0,0,0)
, n = new s.Vec3(0,0,0)
, r = new s.Vec3(0,0,0);
return function(a, o, l) {
s.Vec3.subtract(t, o.b, o.a),
s.Vec3.subtract(e, o.c, o.a),
s.Vec3.cross(i, a.d, e);
var h = s.Vec3.dot(t, i);
if (h < Number.EPSILON && (!l || h > -Number.EPSILON))
return 0;
var c = 1 / h;
s.Vec3.subtract(n, a.o, o.a);
var u = s.Vec3.dot(n, i) * c;
if (u < 0 || u > 1)
return 0;
s.Vec3.cross(r, n, t);
var _ = s.Vec3.dot(a.d, r) * c;
if (_ < 0 || u + _ > 1)
return 0;
var f = s.Vec3.dot(e, r) * c;
return f < 0 ? 0 : f
}
}
)(), R = P, O = (function() {
var t = new s.Vec3(0,0,0)
, e = new s.Vec3(0,0,0)
, i = new s.Vec3(0,0,0)
, n = new s.Vec3(0,0,0)
, r = new s.Vec3(0,0,0)
, a = new s.Vec3(0,0,0);
return function(o, l, h) {
s.Vec3.subtract(t, l.b, l.a),
s.Vec3.subtract(e, l.c, l.a),
s.Vec3.subtract(i, o.s, o.e),
s.Vec3.cross(r, t, e);
var c = s.Vec3.dot(i, r);
if (c <= 0)
return 0;
s.Vec3.subtract(n, o.s, l.a);
var u = s.Vec3.dot(n, r);
if (u < 0 || u > c)
return 0;
s.Vec3.cross(a, i, n);
var _ = s.Vec3.dot(e, a);
if (_ < 0 || _ > c)
return 0;
var f = -s.Vec3.dot(t, a);
if (f < 0 || _ + f > c)
return 0;
if (h) {
var d = 1 / c
, p = 1 - (_ *= d) - (f *= d);
s.Vec3.set(h, l.a.x * p + l.b.x * _ + l.c.x * f, l.a.y * p + l.b.y * _ + l.c.y * f, l.a.z * p + l.b.z * _ + l.c.z * f)
}
return 1
}
}
)(), L = (p = new s.Vec3(0,0,0),
m = new s.Vec3(0,0,0),
y = new s.Vec3(0,0,0),
v = new s.Vec3(0,0,0),
g = new s.Vec3(0,0,0),
A = new s.Vec3(0,0,0),
x = new s.Vec3(0,0,0),
function(t, e, i, n, r, a, o) {
s.Vec3.subtract(p, e, t),
s.Vec3.subtract(m, i, t),
s.Vec3.subtract(y, n, t),
s.Vec3.subtract(v, r, t),
s.Vec3.cross(A, v, p);
var l = s.Vec3.dot(m, A);
if (l >= 0) {
var h = -s.Vec3.dot(y, A);
if (h < 0)
return 0;
var c = s.Vec3.dot(s.Vec3.cross(x, p, y), m);
if (c < 0)
return 0;
if (o) {
var u = 1 / (h + l + c);
h *= u,
l *= u,
c *= u,
s.Vec3.set(o, i.x * h + n.x * l + r.x * c, i.y * h + n.y * l + r.y * c, i.z * h + n.z * l + r.z * c)
}
} else {
s.Vec3.subtract(g, a, t);
var _ = s.Vec3.dot(g, A);
if (_ < 0)
return 0;
var f = s.Vec3.dot(s.Vec3.cross(x, p, m), g);
if (f < 0)
return 0;
if (o) {
var d = 1 / (_ + (l = -l) + f);
_ *= d,
l *= d,
f *= d,
s.Vec3.set(o, i.x * _ + a.x * l + r.x * f, i.y * _ + a.y * l + r.y * f, i.z * _ + a.z * l + r.z * f)
}
}
return 1
}
), F = (function() {
var t = new s.Vec3(0,0,0);
return function(e, i) {
var n = i.radius
, r = i.center
, a = e.o
, o = e.d
, l = n * n;
s.Vec3.subtract(t, r, a);
var h = t.lengthSqr()
, c = s.Vec3.dot(t, o)
, u = l - (h - c * c);
if (u < 0)
return 0;
var _ = Math.sqrt(u)
, f = h < l ? c + _ : c - _;
return f < 0 ? 0 : f
}
}
)(), V = (b = new s.Vec3,
C = new s.Vec3,
function(t, e) {
var i = t.o
, n = t.d
, r = 1 / n.x
, a = 1 / n.y
, o = 1 / n.z;
s.Vec3.subtract(b, e.center, e.halfExtents),
s.Vec3.add(C, e.center, e.halfExtents);
var l = (b.x - i.x) * r
, h = (C.x - i.x) * r
, c = (b.y - i.y) * a
, u = (C.y - i.y) * a
, _ = (b.z - i.z) * o
, f = (C.z - i.z) * o
, d = Math.max(Math.max(Math.min(l, h), Math.min(c, u)), Math.min(_, f))
, p = Math.min(Math.min(Math.max(l, h), Math.max(c, u)), Math.max(_, f));
return p < 0 || d > p ? 0 : d
}
), N = V, k = (function() {
var t = new s.Vec3
, e = new s.Vec3
, i = new s.Vec3
, n = new s.Vec3
, r = new s.Vec3
, a = new s.Vec3
, o = new s.Vec3
, l = new Array(3)
, h = new Array(3)
, c = new Array(3)
, u = new Array(6);
return function(_, f) {
l[0] = f.halfExtents.x,
l[1] = f.halfExtents.y,
l[2] = f.halfExtents.z,
t = f.center,
e = _.o,
i = _.d;
var d = f.orientation.m;
s.Vec3.set(n, d[0], d[1], d[2]),
s.Vec3.set(r, d[3], d[4], d[5]),
s.Vec3.set(a, d[6], d[7], d[8]),
s.Vec3.subtract(o, t, e),
h[0] = s.Vec3.dot(n, i),
h[1] = s.Vec3.dot(r, i),
h[2] = s.Vec3.dot(a, i),
c[0] = s.Vec3.dot(n, o),
c[1] = s.Vec3.dot(r, o),
c[2] = s.Vec3.dot(a, o);
for (var p = 0; p < 3; ++p) {
if (0 === h[p]) {
if (-c[p] - l[p] > 0 || -c[p] + l[p] < 0)
return 0;
h[p] = 1e-7
}
u[2 * p + 0] = (c[p] + l[p]) / h[p],
u[2 * p + 1] = (c[p] - l[p]) / h[p]
}
var m = Math.max(Math.max(Math.min(u[0], u[1]), Math.min(u[2], u[3])), Math.min(u[4], u[5]))
, y = Math.min(Math.min(Math.max(u[0], u[1]), Math.max(u[2], u[3])), Math.max(u[4], u[5]));
return y < 0 || m > y || m < 0 ? 0 : m
}
}
)(), G = (T = new s.Vec3,
S = new s.Vec3,
w = new s.Vec3,
E = new s.Vec3,
function(t, e) {
return s.Vec3.subtract(T, t.center, t.halfExtents),
s.Vec3.add(S, t.center, t.halfExtents),
s.Vec3.subtract(w, e.center, e.halfExtents),
s.Vec3.add(E, e.center, e.halfExtents),
T.x <= E.x && S.x >= w.x && T.y <= E.y && S.y >= w.y && T.z <= E.z && S.z >= w.z
}
);
function U(t, e, i) {
s.Vec3.set(i[0], t.x, e.y, e.z),
s.Vec3.set(i[1], t.x, e.y, t.z),
s.Vec3.set(i[2], t.x, t.y, e.z),
s.Vec3.set(i[3], t.x, t.y, t.z),
s.Vec3.set(i[4], e.x, e.y, e.z),
s.Vec3.set(i[5], e.x, e.y, t.z),
s.Vec3.set(i[6], e.x, t.y, e.z),
s.Vec3.set(i[7], e.x, t.y, t.z)
}
function z(t, e, i, n, r, a) {
s.Vec3.set(a[0], t.x + i.x * e.x + n.x * e.y + r.x * e.z, t.y + i.y * e.x + n.y * e.y + r.y * e.z, t.z + i.z * e.x + n.z * e.y + r.z * e.z),
s.Vec3.set(a[1], t.x - i.x * e.x + n.x * e.y + r.x * e.z, t.y - i.y * e.x + n.y * e.y + r.y * e.z, t.z - i.z * e.x + n.z * e.y + r.z * e.z),
s.Vec3.set(a[2], t.x + i.x * e.x - n.x * e.y + r.x * e.z, t.y + i.y * e.x - n.y * e.y + r.y * e.z, t.z + i.z * e.x - n.z * e.y + r.z * e.z),
s.Vec3.set(a[3], t.x + i.x * e.x + n.x * e.y - r.x * e.z, t.y + i.y * e.x + n.y * e.y - r.y * e.z, t.z + i.z * e.x + n.z * e.y - r.z * e.z),
s.Vec3.set(a[4], t.x - i.x * e.x - n.x * e.y - r.x * e.z, t.y - i.y * e.x - n.y * e.y - r.y * e.z, t.z - i.z * e.x - n.z * e.y - r.z * e.z),
s.Vec3.set(a[5], t.x + i.x * e.x - n.x * e.y - r.x * e.z, t.y + i.y * e.x - n.y * e.y - r.y * e.z, t.z + i.z * e.x - n.z * e.y - r.z * e.z),
s.Vec3.set(a[6], t.x - i.x * e.x + n.x * e.y - r.x * e.z, t.y - i.y * e.x + n.y * e.y - r.y * e.z, t.z - i.z * e.x + n.z * e.y - r.z * e.z),
s.Vec3.set(a[7], t.x - i.x * e.x - n.x * e.y + r.x * e.z, t.y - i.y * e.x - n.y * e.y + r.y * e.z, t.z - i.z * e.x - n.z * e.y + r.z * e.z)
}
function H(t, e) {
for (var i = s.Vec3.dot(e, t[0]), n = i, r = 1; r < 8; ++r) {
var a = s.Vec3.dot(e, t[r]);
i = a < i ? a : i,
n = a > n ? a : n
}
return [i, n]
}
var W, j = (function() {
for (var t = new Array(15), e = 0; e < 15; e++)
t[e] = new s.Vec3(0,0,0);
for (var i = new Array(8), n = new Array(8), r = 0; r < 8; r++)
i[r] = new s.Vec3(0,0,0),
n[r] = new s.Vec3(0,0,0);
var a = new s.Vec3
, o = new s.Vec3;
return function(e, r) {
var l = r.orientation.m;
s.Vec3.set(t[0], 1, 0, 0),
s.Vec3.set(t[1], 0, 1, 0),
s.Vec3.set(t[2], 0, 0, 1),
s.Vec3.set(t[3], l[0], l[1], l[2]),
s.Vec3.set(t[4], l[3], l[4], l[5]),
s.Vec3.set(t[5], l[6], l[7], l[8]);
for (var h = 0; h < 3; ++h)
s.Vec3.cross(t[6 + 3 * h], t[h], t[0]),
s.Vec3.cross(t[7 + 3 * h], t[h], t[1]),
s.Vec3.cross(t[7 + 3 * h], t[h], t[2]);
s.Vec3.subtract(a, e.center, e.halfExtents),
s.Vec3.add(o, e.center, e.halfExtents),
U(a, o, i),
z(r.center, r.halfExtents, t[3], t[4], t[5], n);
for (var c = 0; c < 15; ++c) {
var u = H(i, t[c])
, _ = H(n, t[c]);
if (_[0] > u[1] || u[0] > _[1])
return 0
}
return 1
}
}
)(), X = function(t, e) {
var i = t.halfExtents.x * Math.abs(e.n.x) + t.halfExtents.y * Math.abs(e.n.y) + t.halfExtents.z * Math.abs(e.n.z)
, n = s.Vec3.dot(e.n, t.center);
return n + i < e.d ? -1 : n - i > e.d ? 0 : 1
}, Y = function(t, e) {
for (var i = 0; i < e.planes.length; i++)
if (-1 === X(t, e.planes[i]))
return 0;
return 1
}, q = (function() {
for (var t = new Array(8), e = 0, i = 0, n = 0; n < t.length; n++)
t[n] = new s.Vec3(0,0,0);
return function(n, r) {
for (var a = 0, o = !1, l = 0; l < r.planes.length; l++) {
if (-1 === (a = X(n, r.planes[l])))
return 0;
1 === a && (o = !0)
}
if (!o)
return 1;
for (var h = 0; h < r.vertices.length; h++)
s.Vec3.subtract(t[h], r.vertices[h], n.center);
e = 0,
i = 0;
for (var c = 0; c < r.vertices.length; c++)
t[c].x > n.halfExtents.x ? e++ : t[c].x < -n.halfExtents.x && i++;
if (e === r.vertices.length || i === r.vertices.length)
return 0;
e = 0,
i = 0;
for (var u = 0; u < r.vertices.length; u++)
t[u].y > n.halfExtents.y ? e++ : t[u].y < -n.halfExtents.y && i++;
if (e === r.vertices.length || i === r.vertices.length)
return 0;
e = 0,
i = 0;
for (var _ = 0; _ < r.vertices.length; _++)
t[_].z > n.halfExtents.z ? e++ : t[_].z < -n.halfExtents.z && i++;
return e === r.vertices.length || i === r.vertices.length ? 0 : 1
}
}
)(), J = (function() {
var t = new s.Vec3(0,0,0)
, e = new s.Mat3;
return function(i, n) {
return s.Vec3.subtract(t, n, i.center),
s.Vec3.transformMat3(t, t, s.Mat3.transpose(e, i.orientation)),
r = t,
a = i.halfExtents,
Math.abs(r.x) < a.x && Math.abs(r.y) < a.y && Math.abs(r.z) < a.z;
var r, a
}
}
)(), Z = (W = function(t, e, i, n) {
return Math.abs(t.x * e + t.y * i + t.z * n)
}
,
function(t, e) {
var i = t.orientation.m
, n = t.halfExtents.x * W(e.n, i[0], i[1], i[2]) + t.halfExtents.y * W(e.n, i[3], i[4], i[5]) + t.halfExtents.z * W(e.n, i[6], i[7], i[8])
, r = s.Vec3.dot(e.n, t.center);
return r + n < e.d ? -1 : r - n > e.d ? 0 : 1
}
), K = function(t, e) {
for (var i = 0; i < e.planes.length; i++)
if (-1 === Z(t, e.planes[i]))
return 0;
return 1
}, Q = (function() {
for (var t = new Array(8), e = 0, i = 0, n = 0, r = 0; r < t.length; r++)
t[r] = new s.Vec3(0,0,0);
var a = function(t, e, i, n) {
return t.x * e + t.y * i + t.z * n
};
return function(r, o) {
for (var l = 0, h = !1, c = 0; c < o.planes.length; c++) {
if (-1 === (l = Z(r, o.planes[c])))
return 0;
1 === l && (h = !0)
}
if (!h)
return 1;
for (var u = 0; u < o.vertices.length; u++)
s.Vec3.subtract(t[u], o.vertices[u], r.center);
i = 0,
n = 0;
for (var _ = r.orientation.m, f = 0; f < o.vertices.length; f++)
(e = a(t[f], _[0], _[1], _[2])) > r.halfExtents.x ? i++ : e < -r.halfExtents.x && n++;
if (i === o.vertices.length || n === o.vertices.length)
return 0;
i = 0,
n = 0;
for (var d = 0; d < o.vertices.length; d++)
(e = a(t[d], _[3], _[4], _[5])) > r.halfExtents.y ? i++ : e < -r.halfExtents.y && n++;
if (i === o.vertices.length || n === o.vertices.length)
return 0;
i = 0,
n = 0;
for (var p = 0; p < o.vertices.length; p++)
(e = a(t[p], _[6], _[7], _[8])) > r.halfExtents.z ? i++ : e < -r.halfExtents.z && n++;
return i === o.vertices.length || n === o.vertices.length ? 0 : 1
}
}
)(), $ = (function() {
for (var t = new Array(15), e = 0; e < 15; e++)
t[e] = new s.Vec3(0,0,0);
for (var i = new Array(8), n = new Array(8), r = 0; r < 8; r++)
i[r] = new s.Vec3(0,0,0),
n[r] = new s.Vec3(0,0,0);
return function(e, r) {
var a = e.orientation.m
, o = r.orientation.m;
s.Vec3.set(t[0], a[0], a[1], a[2]),
s.Vec3.set(t[1], a[3], a[4], a[5]),
s.Vec3.set(t[2], a[6], a[7], a[8]),
s.Vec3.set(t[3], o[0], o[1], o[2]),
s.Vec3.set(t[4], o[3], o[4], o[5]),
s.Vec3.set(t[5], o[6], o[7], o[8]);
for (var l = 0; l < 3; ++l)
s.Vec3.cross(t[6 + 3 * l], t[l], t[0]),
s.Vec3.cross(t[7 + 3 * l], t[l], t[1]),
s.Vec3.cross(t[7 + 3 * l], t[l], t[2]);
z(e.center, e.halfExtents, t[0], t[1], t[2], i),
z(r.center, r.halfExtents, t[3], t[4], t[5], n);
for (var h = 0; h < 15; ++h) {
var c = H(i, t[h])
, u = H(n, t[h]);
if (u[0] > c[1] || c[0] > u[1])
return 0
}
return 1
}
}
)(), tt = function(t, e) {
var i = s.Vec3.dot(e.n, t.center)
, n = t.radius * e.n.length();
return i + n < e.d ? -1 : i - n > e.d ? 0 : 1
}, et = function(t, e) {
for (var i = 0; i < e.planes.length; i++)
if (-1 === tt(t, e.planes[i]))
return 0;
return 1
}, it = (function() {
var t = new s.Vec3(0,0,0)
, e = [1, -1, 1, -1, 1, -1];
return function(i, n) {
for (var r = 0; r < 6; r++) {
var a = n.planes[r]
, o = i.radius
, l = i.center
, h = a.n
, c = a.d
, u = s.Vec3.dot(h, l);
if (u + o < c)
return 0;
if (!(u - o > c)) {
s.Vec3.add(t, l, s.Vec3.multiplyScalar(t, h, o));
for (var _ = 0; _ < 6; _++)
if (_ !== r && _ !== r + e[r]) {
var f = n.planes[_];
if (s.Vec3.dot(f.n, t) < f.d)
return 0
}
}
}
return 1
}
}
)(), nt = function(t, e) {
var i = t.radius + e.radius;
return s.Vec3.squaredDistance(t.center, e.center) < i * i
}, rt = (function() {
var t = new s.Vec3;
return function(e, i) {
return o.pt_point_aabb(t, e.center, i),
s.Vec3.squaredDistance(e.center, t) < e.radius * e.radius
}
}
)(), st = (function() {
var t = new s.Vec3;
return function(e, i) {
return o.pt_point_obb(t, e.center, i),
s.Vec3.squaredDistance(e.center, t) < e.radius * e.radius
}
}
)(), at = {
rayAabb: N,
rayMesh: M,
raycast: D,
rayTriangle: R,
ray_sphere: F,
ray_aabb: V,
ray_obb: k,
ray_plane: B,
ray_triangle: P,
line_plane: I,
line_triangle: O,
line_quad: L,
sphere_sphere: nt,
sphere_aabb: rt,
sphere_obb: st,
sphere_plane: tt,
sphere_frustum: et,
sphere_frustum_accurate: it,
aabb_aabb: G,
aabb_obb: j,
aabb_plane: X,
aabb_frustum: Y,
aabb_frustum_accurate: q,
obb_obb: $,
obb_plane: Z,
obb_frustum: K,
obb_frustum_accurate: Q,
obb_point: J,
resolve: function(t, e, i) {
void 0 === i && (i = null);
var n = t._type
, r = e._type
, s = this[n | r];
return n < r ? s(t, e, i) : s(e, t, i)
}
};
at[l.default.SHAPE_RAY | l.default.SHAPE_SPHERE] = F,
at[l.default.SHAPE_RAY | l.default.SHAPE_AABB] = V,
at[l.default.SHAPE_RAY | l.default.SHAPE_OBB] = k,
at[l.default.SHAPE_RAY | l.default.SHAPE_PLANE] = B,
at[l.default.SHAPE_RAY | l.default.SHAPE_TRIANGLE] = P,
at[l.default.SHAPE_LINE | l.default.SHAPE_PLANE] = I,
at[l.default.SHAPE_LINE | l.default.SHAPE_TRIANGLE] = O,
at[l.default.SHAPE_SPHERE] = nt,
at[l.default.SHAPE_SPHERE | l.default.SHAPE_AABB] = rt,
at[l.default.SHAPE_SPHERE | l.default.SHAPE_OBB] = st,
at[l.default.SHAPE_SPHERE | l.default.SHAPE_PLANE] = tt,
at[l.default.SHAPE_SPHERE | l.default.SHAPE_FRUSTUM] = et,
at[l.default.SHAPE_SPHERE | l.default.SHAPE_FRUSTUM_ACCURATE] = it,
at[l.default.SHAPE_AABB] = G,
at[l.default.SHAPE_AABB | l.default.SHAPE_OBB] = j,
at[l.default.SHAPE_AABB | l.default.SHAPE_PLANE] = X,
at[l.default.SHAPE_AABB | l.default.SHAPE_FRUSTUM] = Y,
at[l.default.SHAPE_AABB | l.default.SHAPE_FRUSTUM_ACCURATE] = q,
at[l.default.SHAPE_OBB] = $,
at[l.default.SHAPE_OBB | l.default.SHAPE_PLANE] = Z,
at[l.default.SHAPE_OBB | l.default.SHAPE_FRUSTUM] = K,
at[l.default.SHAPE_OBB | l.default.SHAPE_FRUSTUM_ACCURATE] = Q;
var ot = at;
i.default = ot,
e.exports = i.default
}
), {
"../../renderer/gfx": 315,
"../../renderer/memop/recycle-pool": 330,
"../value-types": 282,
"./aabb": 144,
"./distance": 145,
"./enums": 146,
"./ray": 153,
"./triangle": 155
}],
150: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r = t("../value-types"), s = (n = t("./enums")) && n.__esModule ? n : {
default: n
}, a = (function() {
function t(t, e, i, n, a, o) {
void 0 === t && (t = 0),
void 0 === e && (e = 0),
void 0 === i && (i = 0),
void 0 === n && (n = 0),
void 0 === a && (a = 0),
void 0 === o && (o = -1),
this.s = void 0,
this.e = void 0,
this._type = void 0,
this._type = s.default.SHAPE_LINE,
this.s = new r.Vec3(t,e,i),
this.e = new r.Vec3(n,a,o)
}
return t.create = function(e, i, n, r, s, a) {
return new t(e,i,n,r,s,a)
}
,
t.clone = function(e) {
return new t(e.s.x,e.s.y,e.s.z,e.e.x,e.e.y,e.e.z)
}
,
t.copy = function(t, e) {
return r.Vec3.copy(t.s, e.s),
r.Vec3.copy(t.e, e.e),
t
}
,
t.fromPoints = function(t, e, i) {
return r.Vec3.copy(t.s, e),
r.Vec3.copy(t.e, i),
t
}
,
t.set = function(t, e, i, n, r, s, a) {
return t.s.x = e,
t.s.y = i,
t.s.z = n,
t.e.x = r,
t.e.y = s,
t.e.z = a,
t
}
,
t.len = function(t) {
return r.Vec3.distance(t.s, t.e)
}
,
t.prototype.length = function() {
return r.Vec3.distance(this.s, this.e)
}
,
t
}
)();
i.default = a,
e.exports = i.default
}
), {
"../value-types": 282,
"./enums": 146
}],
151: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r = t("../value-types"), s = (n = t("./enums")) && n.__esModule ? n : {
default: n
};
function a(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)
}
}
var o = new r.Vec3
, l = new r.Vec3
, h = new r.Mat3
, c = (function() {
function t(t, e, i, n, a, o, l, h, c, u, _, f, d, p, m) {
void 0 === t && (t = 0),
void 0 === e && (e = 0),
void 0 === i && (i = 0),
void 0 === n && (n = 1),
void 0 === a && (a = 1),
void 0 === o && (o = 1),
void 0 === l && (l = 1),
void 0 === h && (h = 0),
void 0 === c && (c = 0),
void 0 === u && (u = 0),
void 0 === _ && (_ = 1),
void 0 === f && (f = 0),
void 0 === d && (d = 0),
void 0 === p && (p = 0),
void 0 === m && (m = 1),
this.center = void 0,
this.halfExtents = void 0,
this.orientation = void 0,
this._type = void 0,
this._type = s.default.SHAPE_OBB,
this.center = new r.Vec3(t,e,i),
this.halfExtents = new r.Vec3(n,a,o),
this.orientation = new r.Mat3(l,h,c,u,_,f,d,p,m)
}
t.create = function(e, i, n, r, s, a, o, l, h, c, u, _, f, d, p) {
return new t(e,i,n,r,s,a,o,l,h,c,u,_,f,d,p)
}
,
t.clone = function(e) {
var i = e.orientation.m;
return new t(e.center.x,e.center.y,e.center.z,e.halfExtents.x,e.halfExtents.y,e.halfExtents.z,i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7],i[8])
}
,
t.copy = function(t, e) {
return r.Vec3.copy(t.center, e.center),
r.Vec3.copy(t.halfExtents, e.halfExtents),
r.Mat3.copy(t.orientation, e.orientation),
t
}
,
t.fromPoints = function(t, e, i) {
return r.Vec3.multiplyScalar(t.center, r.Vec3.add(o, e, i), .5),
r.Vec3.multiplyScalar(t.halfExtents, r.Vec3.subtract(l, i, e), .5),
r.Mat3.identity(t.orientation),
t
}
,
t.set = function(t, e, i, n, s, a, o, l, h, c, u, _, f, d, p, m) {
return r.Vec3.set(t.center, e, i, n),
r.Vec3.set(t.halfExtents, s, a, o),
r.Mat3.set(t.orientation, l, h, c, u, _, f, d, p, m),
t
}
;
var e, i, n = t.prototype;
return n.getBoundary = function(t, e) {
var i, n, s, a, l;
i = o,
n = this.halfExtents,
s = this.orientation,
a = h.m,
l = s.m,
a[0] = Math.abs(l[0]),
a[1] = Math.abs(l[1]),
a[2] = Math.abs(l[2]),
a[3] = Math.abs(l[3]),
a[4] = Math.abs(l[4]),
a[5] = Math.abs(l[5]),
a[6] = Math.abs(l[6]),
a[7] = Math.abs(l[7]),
a[8] = Math.abs(l[8]),
r.Vec3.transformMat3(i, n, h),
r.Vec3.subtract(t, this.center, o),
r.Vec3.add(e, this.center, o)
}
,
n.transform = function(t, e, i, n, s) {
r.Vec3.transformMat4(s.center, this.center, t),
r.Mat3.fromQuat(s.orientation, i),
r.Vec3.multiply(s.halfExtents, this.halfExtents, n)
}
,
n.translateAndRotate = function(t, e, i) {
r.Vec3.transformMat4(i.center, this.center, t),
r.Mat3.fromQuat(i.orientation, e)
}
,
n.setScale = function(t, e) {
r.Vec3.multiply(e.halfExtents, this.halfExtents, t)
}
,
e = t,
(i = [{
key: "type",
get: function() {
return this._type
}
}]) && a(e.prototype, i),
t
}
)();
i.default = c,
e.exports = i.default
}
), {
"../value-types": 282,
"./enums": 146
}],
152: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r = t("../value-types"), s = (n = t("./enums")) && n.__esModule ? n : {
default: n
}, a = new r.Vec3(0,0,0), o = new r.Vec3(0,0,0), l = cc.mat4(), h = cc.v4(), c = (function() {
function t(t, e, i, n) {
void 0 === t && (t = 0),
void 0 === e && (e = 1),
void 0 === i && (i = 0),
void 0 === n && (n = 0),
this.n = void 0,
this.d = void 0,
this._type = void 0,
this._type = s.default.SHAPE_PLANE,
this.n = new r.Vec3(t,e,i),
this.d = n
}
return t.create = function(e, i, n, r) {
return new t(e,i,n,r)
}
,
t.clone = function(e) {
return new t(e.n.x,e.n.y,e.n.z,e.d)
}
,
t.copy = function(t, e) {
return r.Vec3.copy(t.n, e.n),
t.d = e.d,
t
}
,
t.fromPoints = function(t, e, i, n) {
return r.Vec3.subtract(a, i, e),
r.Vec3.subtract(o, n, e),
r.Vec3.normalize(t.n, r.Vec3.cross(t.n, a, o)),
t.d = r.Vec3.dot(t.n, e),
t
}
,
t.set = function(t, e, i, n, r) {
return t.n.x = e,
t.n.y = i,
t.n.z = n,
t.d = r,
t
}
,
t.fromNormalAndPoint = function(t, e, i) {
return r.Vec3.copy(t.n, e),
t.d = r.Vec3.dot(e, i),
t
}
,
t.normalize = function(t, e) {
var i = e.n.len();
return r.Vec3.normalize(t.n, e.n),
i > 0 && (t.d = e.d / i),
t
}
,
t.prototype.transform = function(t) {
r.Mat4.invert(l, t),
r.Mat4.transpose(l, l),
r.Vec4.set(h, this.n.x, this.n.y, this.n.z, this.d),
r.Vec4.transformMat4(h, h, l),
r.Vec3.set(this.n, h.x, h.y, h.z),
this.d = h.w
}
,
t
}
)();
i.default = c,
e.exports = i.default
}
), {
"../value-types": 282,
"./enums": 146
}],
153: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r = t("../value-types"), s = (n = t("./enums")) && n.__esModule ? n : {
default: n
}, a = (function() {
function t(t, e, i, n, a, o) {
void 0 === t && (t = 0),
void 0 === e && (e = 0),
void 0 === i && (i = 0),
void 0 === n && (n = 0),
void 0 === a && (a = 0),
void 0 === o && (o = -1),
this.o = void 0,
this.d = void 0,
this._type = void 0,
this._type = s.default.SHAPE_RAY,
this.o = new r.Vec3(t,e,i),
this.d = new r.Vec3(n,a,o)
}
return t.create = function(e, i, n, r, s, a) {
return void 0 === e && (e = 0),
void 0 === i && (i = 0),
void 0 === n && (n = 0),
void 0 === r && (r = 0),
void 0 === s && (s = 0),
void 0 === a && (a = 1),
new t(e,i,n,r,s,a)
}
,
t.clone = function(e) {
return new t(e.o.x,e.o.y,e.o.z,e.d.x,e.d.y,e.d.z)
}
,
t.copy = function(t, e) {
return r.Vec3.copy(t.o, e.o),
r.Vec3.copy(t.d, e.d),
t
}
,
t.fromPoints = function(t, e, i) {
return r.Vec3.copy(t.o, e),
r.Vec3.normalize(t.d, r.Vec3.subtract(t.d, i, e)),
t
}
,
t.set = function(t, e, i, n, r, s, a) {
return t.o.x = e,
t.o.y = i,
t.o.z = n,
t.d.x = r,
t.d.y = s,
t.d.z = a,
t
}
,
t.prototype.computeHit = function(t, e) {
r.Vec3.normalize(t, this.d),
r.Vec3.scaleAndAdd(t, this.o, t, e)
}
,
t
}
)();
i.default = a,
e.exports = i.default
}
), {
"../value-types": 282,
"./enums": 146
}],
154: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r = t("../value-types"), s = (n = t("./enums")) && n.__esModule ? n : {
default: n
}, a = new r.Vec3, o = (function() {
function t(t, e, i, n) {
void 0 === t && (t = 0),
void 0 === e && (e = 0),
void 0 === i && (i = 0),
void 0 === n && (n = 1),
this.center = void 0,
this.radius = void 0,
this._type = void 0,
this._type = s.default.SHAPE_SPHERE,
this.center = new r.Vec3(t,e,i),
this.radius = n
}
t.create = function(e, i, n, r) {
return new t(e,i,n,r)
}
,
t.clone = function(e) {
return new t(e.center.x,e.center.y,e.center.z,e.radius)
}
,
t.copy = function(t, e) {
return r.Vec3.copy(t.center, e.center),
t.radius = e.radius,
t
}
,
t.fromPoints = function(t, e, i) {
return r.Vec3.multiplyScalar(t.center, r.Vec3.add(a, e, i), .5),
t.radius = .5 * r.Vec3.subtract(a, i, e).len(),
t
}
,
t.set = function(t, e, i, n, r) {
return t.center.x = e,
t.center.y = i,
t.center.z = n,
t.radius = r,
t
}
;
var e = t.prototype;
return e.clone = function() {
return t.clone(this)
}
,
e.copy = function(e) {
return t.copy(this, e)
}
,
e.getBoundary = function(t, e) {
r.Vec3.set(t, this.center.x - this.radius, this.center.y - this.radius, this.center.z - this.radius),
r.Vec3.set(e, this.center.x + this.radius, this.center.y + this.radius, this.center.z + this.radius)
}
,
e.transform = function(t, e, i, n, s) {
r.Vec3.transformMat4(s.center, this.center, t),
s.radius = this.radius * n.maxAxis()
}
,
e.translateAndRotate = function(t, e, i) {
r.Vec3.transformMat4(i.center, this.center, t)
}
,
e.setScale = function(t, e) {
e.radius = this.radius * t.maxAxis()
}
,
t
}
)();
i.default = o,
e.exports = i.default
}
), {
"../value-types": 282,
"./enums": 146
}],
155: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n = s(t("../value-types/vec3"))
, r = s(t("./enums"));
function s(t) {
return t && t.__esModule ? t : {
default: t
}
}
var a = (function() {
function t(t, e, i, s, a, o, l, h, c) {
this.a = void 0,
this.b = void 0,
this.c = void 0,
this._type = void 0,
this.a = new n.default(t,e,i),
this.b = new n.default(s,a,o),
this.c = new n.default(l,h,c),
this._type = r.default.SHAPE_TRIANGLE
}
return t.create = function(e, i, n, r, s, a, o, l, h) {
return new t(e,i,n,r,s,a,o,l,h)
}
,
t.clone = function(e) {
return new t(e.a.x,e.a.y,e.a.z,e.b.x,e.b.y,e.b.z,e.c.x,e.c.y,e.c.z)
}
,
t.copy = function(t, e) {
return n.default.copy(t.a, e.a),
n.default.copy(t.b, e.b),
n.default.copy(t.c, e.c),
t
}
,
t.fromPoints = function(t, e, i, r) {
return n.default.copy(t.a, e),
n.default.copy(t.b, i),
n.default.copy(t.c, r),
t
}
,
t.set = function(t, e, i, n, r, s, a, o, l, h) {
return t.a.x = e,
t.a.y = i,
t.a.z = n,
t.b.x = r,
t.b.y = s,
t.b.z = a,
t.c.x = o,
t.c.y = l,
t.c.z = h,
t
}
,
t
}
)();
i.default = a,
e.exports = i.default
}
), {
"../value-types/vec3": 292,
"./enums": 146
}],
156: [(function(t, e) {
"use strict";
var i = t("../components/CCRenderComponent")
, n = t("../assets/material/CCMaterial")
, r = t("./types")
, s = r.LineCap
, a = r.LineJoin
, o = cc.Class({
name: "cc.Graphics",
extends: i,
editor: !1,
ctor: function() {
this._impl = new o._Impl(this)
},
properties: {
_lineWidth: 2,
_strokeColor: cc.Color.BLACK,
_lineJoin: a.MITER,
_lineCap: s.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: s
},
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: s
},
onRestore: function() {
this._impl || (this._impl = new o._Impl(this))
},
onDestroy: function() {
this.clear(!0),
this._super(),
this._impl = null
},
_getDefaultMaterial: function() {
return n.getBuiltinMaterial("2d-graphics")
},
_updateMaterial: function() {
var t = this._materials[0];
t && (void 0 !== t.getDefine("CC_USE_MODEL") && t.define("CC_USE_MODEL", !0),
void 0 !== t.getDefine("CC_SUPPORT_standard_derivatives") && cc.sys.glExtension("OES_standard_derivatives") && t.define("CC_SUPPORT_standard_derivatives", !0))
},
moveTo: function(t, e) {
this._impl.moveTo(t, e)
},
lineTo: function(t, e) {
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(t),
this._assembler && this._assembler.clear(t)
},
close: function() {
this._impl.close()
},
stroke: function() {
this._assembler || this._resetAssembler(),
this._assembler.stroke(this)
},
fill: function() {
this._assembler || this._resetAssembler(),
this._assembler.fill(this)
}
});
cc.Graphics = e.exports = o,
cc.Graphics.Types = r,
cc.Graphics.Helper = t("./helper")
}
), {
"../assets/material/CCMaterial": 80,
"../components/CCRenderComponent": 115,
"./helper": 157,
"./types": 159
}],
157: [(function(t, e) {
"use strict";
var i = t("./types").PointFlags
, n = Math.PI
, r = Math.min
, s = Math.max
, a = Math.cos
, o = Math.sin
, l = Math.abs
, h = Math.sign
, c = .5522847493;
e.exports = {
arc: function(t, e, i, h, c, u, _) {
var f, d, p, m = 0, y = 0, v = 0, g = 0, A = 0, x = 0, b = 0, C = 0, T = 0, S = 0, w = 0, E = 0, M = 0;
if (y = u - c,
_ = _ || !1)
if (l(y) >= 2 * n)
y = 2 * n;
else
for (; y < 0; )
y += 2 * n;
else if (l(y) >= 2 * n)
y = 2 * -n;
else
for (; y > 0; )
y -= 2 * n;
for (p = 0 | s(1, r(l(y) / (.5 * n) + .5, 5)),
v = l(4 / 3 * (1 - a(f = y / p / 2)) / o(f)),
_ || (v = -v),
d = 0; d <= p; d++)
x = e + (g = a(m = c + y * (d / p))) * h,
b = i + (A = o(m)) * h,
C = -A * h * v,
T = g * h * v,
0 === d ? t.moveTo(x, b) : t.bezierCurveTo(S + E, w + M, x - C, b - T, x, b),
S = x,
w = b,
E = C,
M = T
},
ellipse: function(t, e, i, n, r) {
t.moveTo(e - n, i),
t.bezierCurveTo(e - n, i + r * c, e - n * c, i + r, e, i + r),
t.bezierCurveTo(e + n * c, i + r, e + n, i + r * c, e + n, i),
t.bezierCurveTo(e + n, i - r * c, e + n * c, i - r, e, i - r),
t.bezierCurveTo(e - n * c, i - r, e - n, i - r * c, e - n, i),
t.close()
},
roundRect: function(t, e, i, n, s, a) {
if (a < .1)
t.rect(e, i, n, s);
else {
var o = r(a, .5 * l(n)) * h(n)
, u = r(a, .5 * l(s)) * h(s);
t.moveTo(e, i + u),
t.lineTo(e, i + s - u),
t.bezierCurveTo(e, i + s - u * (1 - c), e + o * (1 - c), i + s, e + o, i + s),
t.lineTo(e + n - o, i + s),
t.bezierCurveTo(e + n - o * (1 - c), i + s, e + n, i + s - u * (1 - c), e + n, i + s - u),
t.lineTo(e + n, i + u),
t.bezierCurveTo(e + n, i + u * (1 - c), e + n - o * (1 - c), i, e + n - o, i),
t.lineTo(e + o, i),
t.bezierCurveTo(e + o * (1 - c), i, e, i + u * (1 - c), e, i + u),
t.close()
}
},
tesselateBezier: function t(e, n, r, s, a, o, h, c, u, _, f) {
var d, p, m, y, v, g, A, x, b, C, T, S, w, E, M, D;
_ > 10 || (v = .5 * (o + c),
g = .5 * (h + u),
A = .5 * ((d = .5 * (n + s)) + (m = .5 * (s + o))),
x = .5 * ((p = .5 * (r + a)) + (y = .5 * (a + h))),
((M = l((s - c) * (E = u - r) - (a - u) * (w = c - n))) + (D = l((o - c) * E - (h - u) * w))) * (M + D) < e._tessTol * (w * w + E * E) ? e._addPoint(c, u, 0 === f ? f | i.PT_BEVEL : f) : (t(e, n, r, d, p, A, x, T = .5 * (A + (b = .5 * (m + v))), S = .5 * (x + (C = .5 * (y + g))), _ + 1, 0),
t(e, T, S, b, C, v, g, c, u, _ + 1, f)))
}
}
}
), {
"./types": 159
}],
158: [(function(t) {
"use strict";
t("./graphics")
}
), {
"./graphics": 156
}],
159: [(function(t, e) {
"use strict";
var i = cc.Enum({
BUTT: 0,
ROUND: 1,
SQUARE: 2
})
, n = cc.Enum({
BEVEL: 0,
ROUND: 1,
MITER: 2
})
, r = cc.Enum({
PT_CORNER: 1,
PT_LEFT: 2,
PT_BEVEL: 4,
PT_INNERBEVEL: 8
});
e.exports = {
LineCap: i,
LineJoin: n,
PointFlags: r
}
}
), {}],
160: [(function(t) {
"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("./base-ui/CCWidgetManager")
}
), {
"./3d": void 0,
"./CCNode": 29,
"./CCPrivateNode": 30,
"./CCScene": 31,
"./assets": 78,
"./base-ui/CCWidgetManager": 89,
"./camera/CCCamera": 90,
"./collider": 98,
"./collider/CCIntersection": 96,
"./components": 132,
"./geom-utils": 148,
"./graphics": 158,
"./mesh": 163,
"./physics": 178,
"./platform": 211
}],
161: [(function(t, e) {
"use strict";
var i = s(t("../../renderer/core/input-assembler"))
, n = s(t("../../renderer/gfx"))
, r = t("./mesh-data");
function s(t) {
return t && t.__esModule ? t : {
default: t
}
}
var a = t("../renderer")
, o = t("../event/event-target");
function l(t, e, i) {
t[e] = i._val
}
function h(t, e, i) {
t[e] = i.x,
t[e + 1] = i.y
}
function c(t, e, i) {
t[e] = i.x,
t[e + 1] = i.y,
t[e + 2] = i.z
}
var u, _ = {
5120: "getInt8",
5121: "getUint8",
5122: "getInt16",
5123: "getUint16",
5124: "getInt32",
5125: "getUint32",
5126: "getFloat32"
}, f = {
5120: "setInt8",
5121: "setUint8",
5122: "setInt16",
5123: "setUint16",
5124: "setInt32",
5125: "setUint32",
5126: "setFloat32"
}, d = (u = new ArrayBuffer(2),
new DataView(u).setInt16(0, 256, !0),
256 === new Int16Array(u)[0]), p = cc.Class({
name: "cc.Mesh",
extends: cc.Asset,
mixins: [o],
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: r.VertexBundle
},
_primitives: {
default: null,
Primitive: r.Primitive
},
_minPos: cc.v3(),
_maxPos: cc.v3(),
subMeshes: {
get: function() {
return this._subMeshes
},
set: function(t) {
this._subMeshes = t
}
},
subDatas: {
get: function() {
return this._subDatas
}
}
},
ctor: function() {
this._subMeshes = [],
this._subDatas = [],
this.loaded = !1
},
initWithBuffer: function() {
this._subMeshes.length = 0;
for (var t = this._primitives, e = 0; e < t.length; e++) {
var s = t[e]
, o = s.data
, l = new Uint8Array(this._buffer,o.offset,o.length)
, h = this._vertexBundles[s.vertexBundleIndices[0]]
, c = h.data
, u = new n.default.VertexFormat(h.formats)
, _ = new Uint8Array(this._buffer,c.offset,c.length)
, f = this._canVertexFormatBatch(u)
, d = new r.MeshData;
d.vData = _,
d.iData = l,
d.vfm = u,
d.offset = c.offset,
d.canBatch = f,
this._subDatas.push(d);
var p = new n.default.VertexBuffer(a.device,u,n.default.USAGE_STATIC,_)
, m = new n.default.IndexBuffer(a.device,s.indexUnit,n.default.USAGE_STATIC,l);
this._subMeshes.push(new i.default(p,m))
}
this.loaded = !0,
this.emit("load")
},
_canVertexFormatBatch: function(t) {
var e = t._attr2el[n.default.ATTR_POSITION];
return !e || e.type === n.default.ATTR_TYPE_FLOAT32 && t._bytes % 4 == 0
},
init: function(t, e, s, o) {
void 0 === s && (s = !1),
void 0 === o && (o = 0);
var l = new Uint8Array(t._bytes * e)
, h = new r.MeshData;
h.vData = l,
h.vfm = t,
h.vDirty = !0,
h.canBatch = this._canVertexFormatBatch(t);
var c = new n.default.VertexBuffer(a.device,t,s ? n.default.USAGE_DYNAMIC : n.default.USAGE_STATIC,l);
h.vb = c,
this._subMeshes[o] = new i.default(h.vb);
var u = this._subDatas[o];
u && (u.vb && u.vb.destroy(),
u.ib && u.ib.destroy()),
this._subDatas[o] = h,
this.loaded = !0,
this.emit("load"),
this.emit("init-format")
},
setVertices: function(t, e, i) {
i = i || 0;
var r = this._subDatas[i]
, s = r.vfm.element(t);
if (!s)
return cc.warn("Cannot find " + t + " attribute in vertex defines.");
var a, o = "number" == typeof e[0], u = s.num, _ = o ? e.length / u | 0 : e.length;
r.vData.byteLength < _ * s.stride && r.setVData(new Uint8Array(_ * r.vfm._bytes));
var f = 4;
t === n.default.ATTR_COLOR ? o ? (a = r.getVData(),
f = 1) : a = r.getVData(Uint32Array) : a = r.getVData(Float32Array);
var d = s.stride / f
, p = s.offset / f;
if (o)
for (var m = 0, y = e.length / u; m < y; m++)
for (var v = m * u, g = m * d + p, A = 0; A < u; A++)
a[g + A] = e[v + A];
else {
var x;
x = t === n.default.ATTR_COLOR ? l : 2 === u ? h : c;
for (var b = 0, C = e.length; b < C; b++)
x(a, b * d + p, e[b])
}
r.vDirty = !0
},
setIndices: function(t, e, i) {
e = e || 0;
var r = t;
t instanceof Uint16Array ? r = new Uint8Array(t.buffer,t.byteOffset,t.byteLength) : Array.isArray(t) && (r = new Uint16Array(t),
r = new Uint8Array(r.buffer,r.byteOffset,r.byteLength));
var s = i ? n.default.USAGE_DYNAMIC : n.default.USAGE_STATIC
, o = this._subDatas[e];
if (o.ib)
o.iData = r,
o.iDirty = !0;
else {
o.iData = r;
var l = new n.default.IndexBuffer(a.device,n.default.INDEX_FMT_UINT16,s,r,r.byteLength / n.default.IndexBuffer.BYTES_PER_INDEX[n.default.INDEX_FMT_UINT16]);
o.ib = l,
this._subMeshes[e]._indexBuffer = o.ib
}
},
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._subDatas, e = 0, i = t.length; e < i; e++) {
var n = t[e].vb;
n && n.destroy();
var r = t[e].ib;
r && r.destroy()
}
t.length = 0
},
setBoundingBox: function(t, e) {
this._minPos = t,
this._maxPos = e
},
destroy: function() {
this.clear()
},
_uploadData: function() {
for (var t = this._subDatas, e = 0, i = t.length; e < i; e++) {
var n = t[e];
if (n.vDirty) {
var r = n.vb
, s = n.vData;
r.update(0, s),
n.vDirty = !1
}
if (n.iDirty) {
var a = n.ib
, o = n.iData;
a.update(0, o),
n.iDirty = !1
}
}
},
_getAttrMeshData: function(t, e) {
var i = this._subDatas[t];
if (!i)
return [];
var n = i.vfm
, r = n.element(e);
if (!r)
return [];
i.attrDatas || (i.attrDatas = {});
var s = i.attrDatas
, a = s[e];
if (a)
return a;
a = s[e] = [];
for (var o = i.vData, l = new DataView(o.buffer,o.byteOffset,o.byteLength), h = r.stride, c = r.offset, u = r.num, f = r.bytes / u, p = _[r.type], m = o.byteLength / n._bytes, y = 0; y < m; y++)
for (var v = y * h + c, g = 0; g < u; g++) {
var A = l[p](v + g * f, d);
a.push(A)
}
return a
},
copyAttribute: function(t, e, i, n, r) {
var s = !1
, a = this._subDatas[t];
if (!a)
return s;
var o = a.vfm
, l = o.element(e);
if (!l)
return s;
var h = f[l.type];
if (!h)
return s;
var c = this._getAttrMeshData(t, e)
, u = a.vData.byteLength / o._bytes
, _ = l.bytes / l.num;
if (c.length > 0) {
for (var p = new DataView(i,r), m = n, y = l.num, v = 0; v < u; ++v)
for (var g = v * y, A = 0; A < y; ++A) {
var x = g + A
, b = m * v + _ * A;
p[h](b, c[x], d)
}
s = !0
}
return s
},
copyIndices: function(t, e) {
var i = this._subDatas[t];
if (!i)
return !1;
for (var r = i.iData, s = r.length / 2, a = new DataView(r.buffer,r.byteOffset,r.byteLength), o = _[n.default.INDEX_FMT_UINT8], l = 0; l < s; ++l)
e[l] = a[o](2 * l);
return !0
}
});
cc.Mesh = e.exports = p
}
), {
"../../renderer/core/input-assembler": 305,
"../../renderer/gfx": 315,
"../event/event-target": 140,
"../renderer": 224,
"./mesh-data": 164
}],
162: [(function(t, e) {
"use strict";
var i = s(t("../../renderer/gfx"))
, n = (s(t("../../renderer/core/input-assembler")),
s(t("../geom-utils/aabb")))
, r = (s(t("../value-types/vec3")),
s(t("../value-types/mat4")),
s(t("../assets/material/material-variant")));
function s(t) {
return t && t.__esModule ? t : {
default: t
}
}
var a = t("../components/CCRenderComponent")
, o = t("./CCMesh")
, l = t("../renderer/render-flow")
, h = (t("../renderer"),
t("../assets/material/CCMaterial"))
, c = cc.Enum({
OFF: 0,
ON: 1
})
, u = cc.Class({
name: "cc.MeshRenderer",
extends: a,
editor: !1,
properties: {
_mesh: {
default: null,
type: o
},
_receiveShadows: !1,
_shadowCastingMode: c.OFF,
_enableAutoBatch: !1,
mesh: {
get: function() {
return this._mesh
},
set: function(t) {
this._mesh !== t && (this._setMesh(t),
t ? (this.markForRender(!0),
this.node._renderFlag |= l.FLAG_TRANSFORM) : this.disableRender())
},
type: o,
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: c,
animatable: !1
},
enableAutoBatch: {
get: function() {
return this._enableAutoBatch
},
set: function(t) {
this._enableAutoBatch = t
}
}
},
statics: {
ShadowCastingMode: c
},
ctor: function() {
this._boundingBox = cc.geomUtils && new n.default
},
onEnable: function() {
var t = this;
this._super(),
this._mesh && !this._mesh.loaded ? (this.disableRender(),
this._mesh.once("load", (function() {
t.isValid && (t._setMesh(t._mesh),
t.markForRender(!0))
}
)),
cc.assetManager.postLoadNative(this._mesh)) : this._setMesh(this._mesh),
this._updateRenderNode(),
this._updateMaterial()
},
onDestroy: function() {
this._setMesh(null),
cc.pool.assembler.put(this._assembler)
},
_updateRenderNode: function() {
this._assembler.setRenderNode(this.node)
},
_setMesh: function(t) {
cc.geomUtils && t && n.default.fromPoints(this._boundingBox, t._minPos, t._maxPos),
this._mesh && this._mesh.off("init-format", this._updateMeshAttribute, this),
t && t.on("init-format", this._updateMeshAttribute, this),
this._mesh = t,
this._assembler && (this._assembler._worldDatas = {}),
this._updateMeshAttribute()
},
_getDefaultMaterial: function() {
return h.getBuiltinMaterial("unlit")
},
_validateRender: function() {
var t = this._mesh;
t && t._subDatas.length > 0 || this.disableRender()
},
_updateMaterial: function() {
var t = this.textures;
if (t && t.length > 0)
for (var e = this._getDefaultMaterial(), i = 0; i < t.length; i++) {
var n = this._materials[i];
n && n._uuid !== e._uuid || (n || (n = r.default.create(e, this),
this.setMaterial(i, n)),
n.setProperty("diffuseTexture", t[i]))
}
this._updateReceiveShadow(),
this._updateCastShadow(),
this._updateMeshAttribute()
},
_updateReceiveShadow: function() {
for (var t = this.getMaterials(), e = 0; e < t.length; e++)
t[e].define("CC_USE_SHADOW_MAP", this._receiveShadows, void 0, !0)
},
_updateCastShadow: function() {
for (var t = this.getMaterials(), e = 0; e < t.length; e++)
t[e].define("CC_CASTING_SHADOW", this._shadowCastingMode === c.ON, void 0, !0)
},
_updateMeshAttribute: function() {
var t = this._mesh && this._mesh.subDatas;
if (t)
for (var e = this.getMaterials(), n = 0; n < e.length && t[n]; n++) {
var r = t[n].vfm
, s = e[n];
s.define("CC_USE_ATTRIBUTE_COLOR", !!r.element(i.default.ATTR_COLOR), void 0, !0),
s.define("CC_USE_ATTRIBUTE_UV0", !!r.element(i.default.ATTR_UV0), void 0, !0),
s.define("CC_USE_ATTRIBUTE_NORMAL", !!r.element(i.default.ATTR_NORMAL), void 0, !0),
s.define("CC_USE_ATTRIBUTE_TANGENT", !!r.element(i.default.ATTR_TANGENT), void 0, !0)
}
},
_checkBacth: function() {}
});
cc.MeshRenderer = e.exports = u
}
), {
"../../renderer/core/input-assembler": 305,
"../../renderer/gfx": 315,
"../assets/material/CCMaterial": 80,
"../assets/material/material-variant": 87,
"../components/CCRenderComponent": 115,
"../geom-utils/aabb": 144,
"../renderer": 224,
"../renderer/render-flow": 225,
"../value-types/mat4": 284,
"../value-types/vec3": 292,
"./CCMesh": 161
}],
163: [(function(t) {
"use strict";
t("./CCMesh"),
t("./CCMeshRenderer"),
t("./mesh-renderer")
}
), {
"./CCMesh": 161,
"./CCMeshRenderer": 162,
"./mesh-renderer": 165
}],
164: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.MeshData = h,
i.Primitive = i.VertexBundle = i.VertexFormat = i.BufferRange = void 0;
var n, r = (n = t("../../renderer/gfx")) && n.__esModule ? n : {
default: n
}, s = cc.Class({
name: "cc.BufferRange",
properties: {
offset: 0,
length: 0
}
});
i.BufferRange = s;
var a = cc.Class({
name: "cc.mesh.VertexFormat",
properties: {
name: "",
type: -1,
num: -1,
normalize: !1
}
});
i.VertexFormat = a;
var o = cc.Class({
name: "cc.mesh.VertexBundle",
properties: {
data: {
default: null,
type: s
},
formats: {
default: [],
type: a
},
verticesCount: 0
}
});
i.VertexBundle = o;
var l = cc.Class({
name: "cc.mesh.Primitive",
properties: {
vertexBundleIndices: {
default: [],
type: cc.Float
},
data: {
default: null,
type: s
},
indexUnit: r.default.INDEX_FMT_UINT16,
topology: r.default.PT_TRIANGLES
}
});
function h() {
this.vData = null,
this.float32VData = null,
this.uint32VData = null,
this.iData = null,
this.uint16IData = null,
this.vfm = null,
this.offset = 0,
this.vb = null,
this.ib = null,
this.vDirty = !1,
this.iDirty = !1,
this.enable = !0
}
i.Primitive = l,
h.prototype.setVData = function(t) {
this.vData = t,
this.float32VData = null,
this.uint32VData = null
}
,
h.prototype.getVData = function(t) {
return t === Float32Array ? (this.float32VData || (this.float32VData = new Float32Array(this.vData.buffer,this.vData.byteOffset,this.vData.byteLength / 4)),
this.float32VData) : t === Uint32Array ? (this.uint32VData || (this.uint32VData = new Uint32Array(this.vData.buffer,this.vData.byteOffset,this.vData.byteLength / 4)),
this.uint32VData) : this.vData
}
,
h.prototype.getIData = function(t) {
return t === Uint16Array ? (this.uint16IData || (this.uint16IData = new Uint16Array(this.iData.buffer,this.iData.byteOffset,this.iData.byteLength / 2)),
this.uint16IData) : this.iData
}
}
), {
"../../renderer/gfx": 315
}],
165: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n = a(t("../renderer/assembler"))
, r = a(t("../../renderer/gfx"))
, s = a(t("../value-types/vec3"));
function a(t) {
return t && t.__esModule ? t : {
default: t
}
}
function o(t, e) {
return (o = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
var l = t("./CCMeshRenderer")
, h = new s.default
, c = (function(t) {
var e, i;
function n() {
return t.apply(this, arguments) || this
}
i = t,
(e = n).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
o(e, i);
var a = n.prototype;
return a.init = function(e) {
t.prototype.init.call(this, e),
this._worldDatas = {},
this._renderNode = null
}
,
a.setRenderNode = function(t) {
this._renderNode = t
}
,
a.fillBuffers = function(t, e) {
if (t.mesh) {
t.mesh._uploadData();
for (var i = e.cullingMask === t.node._cullingMask, n = t.enableAutoBatch, s = t._materials, a = t.mesh._subMeshes, o = t.mesh.subDatas, l = 0; l < a.length; l++) {
var h = a[l]
, c = o[l]
, u = s[l] || s[0];
n && c.canBatch && h._primitiveType === r.default.PT_TRIANGLES ? (i && u.getHash() === e.material.getHash() || e._flush(),
e.material = u,
e.cullingMask = t.node._cullingMask,
e.node = e._dummyNode,
this._fillBuffer(t, c, e, l)) : (e._flush(),
e.material = u,
e.cullingMask = t.node._cullingMask,
e.node = this._renderNode,
e._flushIA(h))
}
}
}
,
a._fillBuffer = function(t, e, i, n) {
var r = e.getVData(Float32Array)
, s = e.vfm
, a = r.byteLength / s._bytes | 0
, o = e.getIData(Uint16Array)
, l = o.length
, h = i.getBuffer("mesh", s)
, c = h.request(a, l)
, u = c.indiceOffset
, _ = c.byteOffset >> 2
, f = c.vertexOffset
, d = h._vData
, p = h._iData;
!i.worldMatDirty && this._worldDatas[n] || this._updateWorldVertices(n, a, r, s, t.node._worldMatrix),
d.set(this._worldDatas[n], _);
for (var m = 0; m < l; m++)
p[u + m] = f + o[m]
}
,
a._updateWorldVertices = function(t, e, i, n, a) {
var o = this._worldDatas[t];
o || (o = this._worldDatas[t] = new Float32Array(i.length)).set(i);
for (var l = n._bytes / 4, c = n._elements, u = 0, _ = c.length; u < _; u++) {
var f = c[u]
, d = f.offset / 4;
if (f.name === r.default.ATTR_POSITION || f.name === r.default.ATTR_NORMAL)
for (var p = f.name === r.default.ATTR_NORMAL ? s.default.transformMat4Normal : s.default.transformMat4, m = 0; m < e; m++) {
var y = m * l + d;
h.x = i[y],
h.y = i[y + 1],
h.z = i[y + 2],
p(h, h, a),
o[y] = h.x,
o[y + 1] = h.y,
o[y + 2] = h.z
}
}
}
,
a._drawDebugDatas = function(t, e, i) {
var n = t._debugDatas[i];
if (n)
for (var r = 0; r < n.length; r++) {
var s = n[r];
if (s) {
var a = s.material;
e.material = a,
e._flushIA(s.ia)
}
}
}
,
n
}
)(n.default);
i.default = c,
n.default.register(l, c),
e.exports = i.default
}
), {
"../../renderer/gfx": 315,
"../renderer/assembler": 221,
"../value-types/vec3": 292,
"./CCMeshRenderer": 162
}],
166: [(function(t, e) {
"use strict";
var i = t("./component-scheduler")
, n = t("./platform/CCObject").Flags
, r = t("./platform/js")
, s = n.IsPreloadStarted
, a = n.IsOnLoadStarted
, o = n.IsOnLoadCalled
, l = n.Deactivating
, h = cc.Class({
extends: i.LifeCycleInvoker,
add: function(t) {
this._zero.array.push(t)
},
remove: function(t) {
this._zero.fastRemove(t)
},
cancelInactive: function(t) {
i.LifeCycleInvoker.stableRemoveInactive(this._zero, t)
},
invoke: function() {
this._invoke(this._zero),
this._zero.array.length = 0
}
})
, c = i.createInvokeImpl("c.__preload();")
, u = i.createInvokeImpl("c.onLoad();c._objFlags|=" + o, !1, o)
, _ = new r.Pool(4);
function f(t, e, i) {
e ? t._removeComponent(e) : r.array.removeAt(t._components, i)
}
function d() {
this._activatingStack = []
}
_.get = function() {
var t = this._get() || {
preload: new h(c),
onLoad: new i.OneOffInvoker(u),
onEnable: new i.OneOffInvoker(i.invokeOnEnable)
};
t.preload._zero.i = -1;
var e = t.onLoad;
return 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,
t
}
;
var p = cc.Class({
ctor: d,
reset: d,
_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 a = t._components[s];
a instanceof cc.Component ? this.activateComp(a, e, i, n) : (f(t, a, s),
--s,
--r)
}
t._childArrivalOrder = t._children.length;
for (var o = 0, h = t._children.length; o < h; ++o) {
var c = t._children[o];
c._localZOrder = 4294901760 & c._localZOrder | o + 1,
c._active && this._activateNodeRecursively(c, e, i, n)
}
t._onPostActivated(!0)
}
},
_deactivateNodeRecursively: function(t) {
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),
t._activeInHierarchy))
return void (t._objFlags &= ~l)
}
for (var r = 0, s = t._children.length; r < s; ++r) {
var a = t._children[r];
if (a._activeInHierarchy && (this._deactivateNodeRecursively(a),
t._activeInHierarchy))
return void (t._objFlags &= ~l)
}
t._onPostActivated(!1),
t._objFlags &= ~l
},
activateNode: function(t, e) {
if (e) {
var i = _.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(),
_.put(i)
} else {
this._deactivateNodeRecursively(t);
for (var n = this._activatingStack, r = 0; r < n.length; r++) {
var o = n[r];
o.preload.cancelInactive(s),
o.onLoad.cancelInactive(a),
o.onEnable.cancelInactive()
}
}
t.emit("active-in-hierarchy-changed", t)
},
activateComp: function(t, e, i, n) {
if (cc.isValid(t, !0) && (t._objFlags & s || (t._objFlags |= s,
t.__preload && (e ? e.add(t) : t.__preload())),
t._objFlags & a || (t._objFlags |= a,
t.onLoad ? i ? i.add(t) : (t.onLoad(),
t._objFlags |= o) : t._objFlags |= o),
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 & o && t.onDestroy()
},
resetComp: !1
});
e.exports = p
}
), {
"./component-scheduler": 99,
"./platform/CCObject": 199,
"./platform/js": 214,
"./utils/misc": 267
}],
167: [(function(t, e) {
"use strict";
var i = t("./CCPhysicsTypes").PTM_RATIO
, n = t("./CCPhysicsTypes").ContactType
, r = []
, s = [cc.v2(), cc.v2()]
, a = new b2.WorldManifold
, o = {
points: [],
separations: [],
normal: cc.v2()
};
function l() {
this.localPoint = cc.v2(),
this.normalImpulse = 0,
this.tangentImpulse = 0
}
var h = [new l, new l]
, c = (new b2.Manifold,
{
type: 0,
localPoint: cc.v2(),
localNormal: cc.v2(),
points: []
})
, u = {
normalImpulses: [],
tangentImpulses: []
};
function _() {}
_.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
}
,
_.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
}
,
_.prototype.getWorldManifold = function() {
var t = o.points
, e = o.separations
, n = o.normal;
this._b2contact.GetWorldManifold(a);
var r = a.points
, l = a.separations
, h = this._b2contact.GetManifold().pointCount;
t.length = e.length = h;
for (var c = 0; c < h; c++) {
var u = s[c];
u.x = r[c].x * i,
u.y = r[c].y * i,
t[c] = u,
e[c] = l[c] * i
}
return n.x = a.normal.x,
n.y = a.normal.y,
this._inverted && (n.x *= -1,
n.y *= -1),
o
}
,
_.prototype.getManifold = function() {
for (var t = c.points, e = c.localNormal, n = c.localPoint, r = this._b2contact.GetManifold(), s = r.points, a = t.length = r.pointCount, o = 0; o < a; o++) {
var l = h[o]
, u = s[o];
l.localPoint.x = u.localPoint.x * i,
l.localPoint.Y = u.localPoint.Y * i,
l.normalImpulse = u.normalImpulse * i,
l.tangentImpulse = u.tangentImpulse,
t[o] = l
}
return n.x = r.localPoint.x * i,
n.y = r.localPoint.y * i,
e.x = r.localNormal.x,
e.y = r.localNormal.y,
c.type = r.type,
this._inverted && (e.x *= -1,
e.y *= -1),
c
}
,
_.prototype.getImpulse = function() {
var t = this._impulse;
if (!t)
return null;
for (var e = u.normalImpulses, n = u.tangentImpulses, r = t.count, s = 0; s < r; s++)
e[s] = t.normalImpulses[s] * i,
n[s] = t.tangentImpulses[s];
return n.length = e.length = r,
u
}
,
_.prototype.emit = function(t) {
var e;
switch (t) {
case n.BEGIN_CONTACT:
e = "onBeginContact";
break;
case n.END_CONTACT:
e = "onEndContact";
break;
case n.PRE_SOLVE:
e = "onPreSolve";
break;
case n.POST_SOLVE:
e = "onPostSolve"
}
var i, r, s, a, o = this.colliderA, l = this.colliderB, h = o.body, c = l.body;
if (h.enabledContactListener)
for (i = h.node._components,
this._inverted = !1,
r = 0,
s = i.length; r < s; r++)
(a = i[r])[e] && a[e](this, o, l);
if (c.enabledContactListener)
for (i = c.node._components,
this._inverted = !0,
r = 0,
s = i.length; r < s; r++)
(a = i[r])[e] && a[e](this, l, o);
(this.disabled || this.disabledOnce) && (this.setEnabled(!1),
this.disabledOnce = !1)
}
,
_.get = function(t) {
var e;
return (e = 0 === r.length ? new cc.PhysicsContact : r.pop()).init(t),
e
}
,
_.put = function(t) {
var e = t._contact;
e && (r.push(e),
e.reset())
}
;
var f = _.prototype;
f.setEnabled = function(t) {
this._b2contact.SetEnabled(t)
}
,
f.isTouching = function() {
return this._b2contact.IsTouching()
}
,
f.setTangentSpeed = function(t) {
this._b2contact.SetTangentSpeed(t / i)
}
,
f.getTangentSpeed = function() {
return this._b2contact.GetTangentSpeed() * i
}
,
f.setFriction = function(t) {
this._b2contact.SetFriction(t)
}
,
f.getFriction = function() {
return this._b2contact.GetFriction()
}
,
f.resetFriction = function() {
return this._b2contact.ResetFriction()
}
,
f.setRestitution = function(t) {
this._b2contact.SetRestitution(t)
}
,
f.getRestitution = function() {
return this._b2contact.GetRestitution()
}
,
f.resetRestitution = function() {
return this._b2contact.ResetRestitution()
}
,
_.ContactType = n,
cc.PhysicsContact = e.exports = _
}
), {
"./CCPhysicsTypes": 169
}],
168: [(function(t, e) {
"use strict";
var i = t("./CCPhysicsTypes")
, n = i.ContactType
, r = i.BodyType
, s = i.RayCastType
, a = i.DrawBits
, o = i.PTM_RATIO
, l = (i.ANGLE_TO_PHYSICS_ANGLE,
i.PHYSICS_ANGLE_TO_ANGLE)
, h = t("./utils").convertToNodeRotation
, c = t("./platform/CCPhysicsDebugDraw")
, u = new b2.AABB
, _ = new b2.Vec2
, f = new b2.Vec2
, d = cc.v2()
, p = cc.Class({
mixins: [cc.EventTarget],
statics: {
DrawBits: a,
PTM_RATIO: o,
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;
for (this._accumulator > s && (this._accumulator = s); this._accumulator > r; )
e.Step(r, i, n),
this._accumulator -= r
} else {
var a = 1 / cc.game.config.frameRate;
e.Step(a, i, n)
}
this.debugDrawFlags && (this._checkDebugDrawValid(),
this._debugDrawer.clear(),
e.DrawDebugData()),
this._steping = !1;
for (var o = this._delayEvents, l = 0, h = o.length; l < h; l++) {
var c = o[l];
c.target[c.func].apply(c.target, c.args)
}
o.length = 0,
this._syncNode()
}
},
testPoint: function(t) {
var e = _.x = t.x / o
, i = _.y = t.y / o
, n = .2 / o;
u.lowerBound.x = e - n,
u.lowerBound.y = i - n,
u.upperBound.x = e + n,
u.upperBound.y = i + n;
var r = this._aabbQueryCallback;
r.init(_),
this._world.QueryAABB(r, u);
var s = r.getFixture();
return s ? s.collider : null
},
testAABB: function(t) {
u.lowerBound.x = t.xMin / o,
u.lowerBound.y = t.yMin / o,
u.upperBound.x = t.xMax / o,
u.upperBound.y = t.yMax / o;
var e = this._aabbQueryCallback;
return e.init(),
this._world.QueryAABB(e, u),
e.getFixtures().map((function(t) {
return t.collider
}
))
},
rayCast: function(t, e, i) {
if (t.equals(e))
return [];
i = i || s.Closest,
_.x = t.x / o,
_.y = t.y / o,
f.x = e.x / o,
f.y = e.y / o;
var n = this._raycastQueryCallback;
n.init(i),
this._world.RayCast(n, _, f);
var r = n.getFixtures();
if (r.length > 0) {
for (var a = n.getPoints(), l = n.getNormals(), h = n.getFractions(), c = [], u = 0, d = r.length; u < d; u++) {
var p = r[u]
, m = p.collider;
if (i === s.AllClosest) {
var y = c.find((function(t) {
return t.collider === m
}
));
if (y) {
h[u] < y.fraction && (y.fixtureIndex = m._getFixtureIndex(p),
y.point.x = a[u].x * o,
y.point.y = a[u].y * o,
y.normal.x = l[u].x,
y.normal.y = l[u].y,
y.fraction = h[u]);
continue
}
}
c.push({
collider: m,
fixtureIndex: m._getFixtureIndex(p),
point: cc.v2(a[u].x * o, a[u].y * o),
normal: cc.v2(l[u]),
fraction: h[u]
})
}
return c
}
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;
i && n && (t._b2Body = i.CreateBody(e),
t._b2Body.body = t,
this._bodies.push(t))
},
_removeBody: function(t) {
var e = this._world;
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);
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]
, s = n.node
, a = n._b2Body
, c = a.GetPosition();
d.x = c.x * o,
d.y = c.y * o;
var u = a.GetAngle() * l;
null !== s.parent.parent && (d = s.parent.convertToNodeSpaceAR(d),
u = h(s.parent, u));
var _ = s._eventMask;
s._eventMask = 0,
s.position = d,
s.angle = -u,
s._eventMask = _,
n.type === r.Animated && n.resetVelocity()
}
},
_onBeginContact: function(t) {
cc.PhysicsContact.get(t).emit(n.BEGIN_CONTACT)
},
_onEndContact: function(t) {
var e = t._contact;
e && (e.emit(n.END_CONTACT),
cc.PhysicsContact.put(t))
},
_onPreSolve: function(t) {
var e = t._contact;
e && e.emit(n.PRE_SOLVE)
},
_onPostSolve: function(t, e) {
var i = t._contact;
i && (i._impulse = e,
i.emit(n.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 c(this._debugDrawer);
e.SetFlags(this.debugDrawFlags),
this._world.SetDebugDraw(e)
}
}
});
cc.js.getset(p.prototype, "enabled", (function() {
return this._enabled
}
), (function(t) {
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) {
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),
t && (this._checkDebugDrawValid(),
this._world.m_debugDraw.SetFlags(t)),
this._debugDrawFlags = t,
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 * o, t.y * o)
}
return cc.v2()
}
), (function(t) {
this._world && this._world.SetGravity(new b2.Vec2(t.x / o,t.y / o))
}
)),
cc.PhysicsManager = e.exports = p
}
), {
"./CCPhysicsTypes": 169,
"./platform/CCPhysicsDebugDraw": 190,
"./utils": 192
}],
169: [(function(t, e) {
"use strict";
var i = cc.Enum({
Static: 0,
Kinematic: 1,
Dynamic: 2,
Animated: 3
});
cc.RigidBodyType = i;
var n = cc.Enum({
Closest: 0,
Any: 1,
AllClosest: 2,
All: 3
});
cc.RayCastType = n,
e.exports = {
BodyType: i,
ContactType: {
BEGIN_CONTACT: "begin-contact",
END_CONTACT: "end-contact",
PRE_SOLVE: "pre-solve",
POST_SOLVE: "post-solve"
},
RayCastType: n,
DrawBits: b2.DrawFlags,
PTM_RATIO: 32,
ANGLE_TO_PHYSICS_ANGLE: -Math.PI / 180,
PHYSICS_ANGLE_TO_ANGLE: -180 / Math.PI
}
}
), {}],
170: [(function(t, e) {
"use strict";
function i(t, e) {
var i = e.length;
return e[t < 0 ? i - -t % i : t % i]
}
function n(t, e, n) {
for (var r = []; e < t; )
e += n.length;
for (; t <= e; ++t)
r.push(i(t, n));
return r
}
function r(t, e, n) {
if (s(t, n)) {
if (l(i(t, n), i(t - 1, n), i(e, n)) && h(i(t, n), i(t + 1, n), i(e, n)))
return !1
} else if (h(i(t, n), i(t + 1, n), i(e, n)) || l(i(t, n), i(t - 1, n), i(e, n)))
return !1;
if (s(e, n)) {
if (l(i(e, n), i(e - 1, n), i(t, n)) && h(i(e, n), i(e + 1, n), i(t, n)))
return !1
} else if (h(i(e, n), i(e + 1, n), i(t, n)) || l(i(e, n), i(e - 1, n), i(t, n)))
return !1;
for (var r = 0; r < n.length; ++r)
if ((r + 1) % n.length != t && r != t && (r + 1) % n.length != e && r != e) {
var a = cc.v2();
if (p(i(t, n), i(e, n), i(r, n), i(r + 1, n), a))
return !1
}
return !0
}
function s(t, e) {
return a(t, e)
}
function a(t, e, n) {
if (void 0 === n) {
var r = t
, s = e;
t = i(r - 1, s),
e = i(r, s),
n = i(r + 1, s)
}
return m(t, e, n) < 0
}
function o(t, e, i) {
return m(t, e, i) > 0
}
function l(t, e, i) {
return m(t, e, i) >= 0
}
function h(t, e, i) {
return m(t, e, i) <= 0
}
function c(t, e) {
var i = e.x - t.x
, n = e.y - t.y;
return i * i + n * n
}
function u(t) {
_(t) || t.reverse()
}
function _(t) {
return t.length < 3 || f(t) > 0
}
function f(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 d(t, e, i, n) {
var r, s = cc.v2(), a = e.y - t.y, o = t.x - e.x, l = a * t.x + o * t.y, h = n.y - i.y, c = i.x - n.x, u = h * i.x + c * i.y, _ = a * c - h * o;
return r = _,
0,
Math.abs(r - 0) <= 1e-6 || (s.x = (c * l - o * u) / _,
s.y = (a * u - h * l) / _),
s
}
function p(t, e, i, n, r) {
if (t == i || t == n || e == i || e == n)
return !1;
var s = t.x
, a = t.y
, o = e.x
, l = e.y
, h = i.x
, c = i.y
, u = n.x
, _ = n.y;
if (Math.max(s, o) < Math.min(h, u) || Math.max(h, u) < Math.min(s, o))
return !1;
if (Math.max(a, l) < Math.min(c, _) || Math.max(c, _) < Math.min(a, l))
return !1;
var f = (u - h) * (a - c) - (_ - c) * (s - h)
, d = (o - s) * (a - c) - (l - a) * (s - h)
, p = (_ - c) * (o - s) - (u - h) * (l - a);
return !(Math.abs(p) < 1e-6) && (d /= p,
0 < (f /= p) && f < 1 && 0 < d && d < 1 && (r.x = s + f * (o - s),
r.y = a + f * (l - a),
!0))
}
function m(t, e, i) {
return t.x * (e.y - i.y) + e.x * (i.y - t.y) + i.x * (t.y - e.y)
}
e.exports = {
ConvexPartition: function t(e) {
u(e);
for (var _, f, p, m, y, v, g = [], A = cc.v2(), x = cc.v2(), b = 0, C = 0, T = 0; T < e.length; ++T)
if (s(T, e)) {
f = p = 1e8;
for (var S = 0; S < e.length; ++S)
o(i(T - 1, e), i(T, e), i(S, e)) && h(i(T - 1, e), i(T, e), i(S - 1, e)) && (m = d(i(T - 1, e), i(T, e), i(S, e), i(S - 1, e)),
a(i(T + 1, e), i(T, e), m) && (_ = c(i(T, e), m)) < f && (f = _,
A = m,
b = S)),
o(i(T + 1, e), i(T, e), i(S + 1, e)) && h(i(T + 1, e), i(T, e), i(S, e)) && (m = d(i(T + 1, e), i(T, e), i(S, e), i(S + 1, e)),
o(i(T - 1, e), i(T, e), m) && (_ = c(i(T, e), m)) < p && (p = _,
C = S,
x = m));
if (b == (C + 1) % e.length) {
var w = A.add(x).div(2);
(y = n(T, C, e)).push(w),
(v = n(b, T, e)).push(w)
} else {
for (var E = 0, M = b; C < b; )
C += e.length;
for (S = b; S <= C; ++S)
if (r(T, S, e)) {
var D = 1 / (c(i(T, e), i(S, e)) + 1);
s(S, e) ? h(i(S - 1, e), i(S, e), i(T, e)) && l(i(S + 1, e), i(S, e), i(T, e)) ? D += 3 : D += 2 : D += 1,
D > E && (M = S,
E = D)
}
y = n(T, M, e),
v = n(M, T, e)
}
return (g = g.concat(t(y))).concat(t(v))
}
for (g.push(e),
T = g.length - 1; T >= 0; T--)
0 == g[T].length && g.splice(T, 0);
return g
},
ForceCounterClockWise: u,
IsCounterClockWise: _
}
}
), {}],
171: [(function(t, e) {
"use strict";
var i = t("../CCNode").EventType
, n = t("./CCPhysicsTypes").PTM_RATIO
, r = t("./CCPhysicsTypes").ANGLE_TO_PHYSICS_ANGLE
, s = t("./CCPhysicsTypes").PHYSICS_ANGLE_TO_ANGLE
, a = t("./utils").getWorldRotation
, o = t("./CCPhysicsTypes").BodyType
, l = new b2.Vec2
, h = new b2.Vec2
, c = cc.Vec2.ZERO
, u = cc.Class({
name: "cc.RigidBody",
extends: cc.Component,
editor: !1,
properties: {
_type: o.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: o,
tooltip: !1,
get: function() {
return this._type
},
set: function(t) {
this._type = t,
this._b2Body && (t === o.Animated ? this._b2Body.SetType(o.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 * n,
t.y = e.y * n
}
return t
},
set: function(t) {
this._linearVelocity = t;
var e = this._b2Body;
if (e) {
var i = e.m_linearVelocity;
i.Set(t.x / n, t.y / n),
e.SetLinearVelocity(i)
}
}
},
angularVelocity: {
tooltip: !1,
get: function() {
return this._b2Body ? this._b2Body.GetAngularVelocity() * s : this._angularVelocity
},
set: function(t) {
this._angularVelocity = t,
this._b2Body && this._b2Body.SetAngularVelocity(t * r)
}
},
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) {
if (e = e || cc.v2(),
this._b2Body) {
l.Set(t.x / n, t.y / n);
var i = this._b2Body.GetLocalPoint(l, e);
e.x = i.x * n,
e.y = i.y * n
}
return e
},
getWorldPoint: function(t, e) {
if (e = e || cc.v2(),
this._b2Body) {
l.Set(t.x / n, t.y / n);
var i = this._b2Body.GetWorldPoint(l, e);
e.x = i.x * n,
e.y = i.y * n
}
return e
},
getWorldVector: function(t, e) {
if (e = e || cc.v2(),
this._b2Body) {
l.Set(t.x / n, t.y / n);
var i = this._b2Body.GetWorldVector(l, e);
e.x = i.x * n,
e.y = i.y * n
}
return e
},
getLocalVector: function(t, e) {
if (e = e || cc.v2(),
this._b2Body) {
l.Set(t.x / n, t.y / n);
var i = this._b2Body.GetLocalVector(l, e);
e.x = i.x * n,
e.y = i.y * n
}
return e
},
getWorldPosition: function(t) {
if (t = t || cc.v2(),
this._b2Body) {
var e = this._b2Body.GetPosition();
t.x = e.x * n,
t.y = e.y * n
}
return t
},
getWorldRotation: function() {
return this._b2Body ? this._b2Body.GetAngle() * s : 0
},
getLocalCenter: function(t) {
if (t = t || cc.v2(),
this._b2Body) {
var e = this._b2Body.GetLocalCenter();
t.x = e.x * n,
t.y = e.y * n
}
return t
},
getWorldCenter: function(t) {
if (t = t || cc.v2(),
this._b2Body) {
var e = this._b2Body.GetWorldCenter();
t.x = e.x * n,
t.y = e.y * n
}
return t
},
getLinearVelocityFromWorldPoint: function(t, e) {
if (e = e || cc.v2(),
this._b2Body) {
l.Set(t.x / n, t.y / n);
var i = this._b2Body.GetLinearVelocityFromWorldPoint(l, e);
e.x = i.x * n,
e.y = i.y * n
}
return e
},
getMass: function() {
return this._b2Body ? this._b2Body.GetMass() : 0
},
getInertia: function() {
return this._b2Body ? this._b2Body.GetInertia() * n * n : 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) {
this._b2Body && (l.Set(t.x / n, t.y / n),
h.Set(e.x / n, e.y / n),
this._b2Body.ApplyForce(l, h, i))
},
applyForceToCenter: function(t, e) {
this._b2Body && (l.Set(t.x / n, t.y / n),
this._b2Body.ApplyForceToCenter(l, e))
},
applyTorque: function(t, e) {
this._b2Body && this._b2Body.ApplyTorque(t / n, e)
},
applyLinearImpulse: function(t, e, i) {
this._b2Body && (l.Set(t.x / n, t.y / n),
h.Set(e.x / n, e.y / n),
this._b2Body.ApplyLinearImpulse(l, h, i))
},
applyAngularImpulse: function(t, e) {
this._b2Body && this._b2Body.ApplyAngularImpulse(t / n / n, e)
},
syncPosition: function(t) {
var e = this._b2Body;
if (e) {
var i, r = this.node.convertToWorldSpaceAR(c);
if ((i = this.type === o.Animated ? e.GetLinearVelocity() : e.GetPosition()).x = r.x / n,
i.y = r.y / n,
this.type === o.Animated && t) {
var s = e.GetPosition()
, a = cc.game.config.frameRate;
i.x = (i.x - s.x) * a,
i.y = (i.y - s.y) * a,
e.SetAwake(!0),
e.SetLinearVelocity(i)
} else
e.SetTransformVec(i, e.GetAngle())
}
},
syncRotation: function(t) {
var e = this._b2Body;
if (e) {
var i = r * a(this.node);
if (this.type === o.Animated && t) {
var n = e.GetAngle()
, s = cc.game.config.frameRate;
e.SetAwake(!0),
e.SetAngularVelocity((i - n) * s)
} 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(i.POSITION_CHANGED, this._onNodePositionChanged, this),
t.on(i.ROTATION_CHANGED, this._onNodeRotationChanged, this),
t.on(i.SCALE_CHANGED, this._onNodeScaleChanged, this)
},
_unregisterNodeEvents: function() {
var t = this.node;
t.off(i.POSITION_CHANGED, this._onNodePositionChanged, this),
t.off(i.ROTATION_CHANGED, this._onNodeRotationChanged, this),
t.off(i.SCALE_CHANGED, this._onNodeScaleChanged, this)
},
_onNodePositionChanged: function() {
this.syncPosition(!0)
},
_onNodeRotationChanged: function() {
this.syncRotation(!0)
},
_onNodeScaleChanged: function() {
if (this._b2Body)
for (var t = this.getComponents(cc.PhysicsCollider), e = 0; e < t.length; e++)
t[e].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 === o.Animated ? t.type = o.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 / n,e.y / n),
t.angularVelocity = this.angularVelocity * r,
t.fixedRotation = this.fixedRotation,
t.bullet = this.bullet;
var i = this.node
, s = i.convertToWorldSpaceAR(c);
t.position = new b2.Vec2(s.x / n,s.y / n),
t.angle = -Math.PI / 180 * a(i),
t.awake = this.awakeOnLoad,
cc.director.getPhysicsManager()._addBody(this, t),
this._inited = !0
}
},
__destroy: function() {
this._inited && (cc.director.getPhysicsManager()._removeBody(this),
this._unregisterNodeEvents(),
this._inited = !1)
},
_getBody: function() {
return this._b2Body
}
});
cc.RigidBody = e.exports = u
}
), {
"../CCNode": 29,
"./CCPhysicsTypes": 169,
"./utils": 192
}],
172: [(function(t) {
"use strict";
var e = t("../../../external/box2d/box2d");
for (var i in window.b2 = {},
e)
if (-1 === i.indexOf("b2_")) {
var n = i.replace("b2", "");
b2[n] = e[i]
}
b2.maxPolygonVertices = 8
}
), {
"../../../external/box2d/box2d": 377
}],
173: [(function(t, e) {
"use strict";
var i = t("../CCPhysicsTypes").PTM_RATIO
, n = 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)
, n = Math.abs(t.y)
, r = this.size.width / 2 / i * e
, s = this.size.height / 2 / i * n
, a = this.offset.x / i * e
, o = this.offset.y / i * n
, l = new b2.PolygonShape;
return l.SetAsBox(r, s, new b2.Vec2(a,o), 0),
l
}
});
cc.PhysicsBoxCollider = e.exports = n
}
), {
"../CCPhysicsTypes": 169
}],
174: [(function(t, e) {
"use strict";
var i = t("../CCPhysicsTypes").PTM_RATIO
, n = 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, n = this.points, r = [], s = 0; s < n.length; s++) {
var a = n[s];
r.push(new b2.Vec2(a.x / i * t.x,a.y / i * t.y))
}
return this.loop ? e.CreateLoop(r, r.length) : e.CreateChain(r, r.length),
e
},
resetInEditor: !1,
resetPointsByContour: !1
});
cc.PhysicsChainCollider = e.exports = n
}
), {
"../CCPhysicsTypes": 169
}],
175: [(function(t, e) {
"use strict";
var i = t("../CCPhysicsTypes").PTM_RATIO
, n = 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)
, n = Math.abs(t.y)
, r = this.offset.x / i * e
, s = this.offset.y / i * n
, a = new b2.CircleShape;
return a.m_radius = this.radius / i * e,
a.m_p = new b2.Vec2(r,s),
a
}
});
cc.PhysicsCircleCollider = e.exports = n
}
), {
"../CCPhysicsTypes": 169
}],
176: [(function(t, e) {
"use strict";
var i = t("../CCPhysicsTypes").PTM_RATIO
, n = t("../utils").getWorldScale
, r = new b2.AABB
, 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
, r = n(i);
this._scale = r;
var s = 0 === r.x && 0 === r.y ? [] : this._createShape(r);
s instanceof Array || (s = [s]);
for (var a = 1 << i.groupIndex, o = 0, l = cc.game.collisionMatrix[i.groupIndex], h = 0; h < l.length; h++)
l[h] && (o |= 1 << h);
for (var c = {
categoryBits: a,
maskBits: o,
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 = c;
var p = e.CreateFixture(d);
p.collider = this,
t.enabledContactListener && u._registerContactFixture(p),
this._shapes.push(f),
this._fixtures.push(p)
}
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, n = -1e7, s = -1e7, a = this.body._getBody().GetTransform(), o = this._fixtures, l = 0; l < o.length; l++)
for (var h = o[l].GetShape(), c = h.GetChildCount(), u = 0; u < c; u++)
h.ComputeAABB(r, a, u),
r.lowerBound.x < t && (t = r.lowerBound.x),
r.lowerBound.y < e && (e = r.lowerBound.y),
r.upperBound.x > n && (n = r.upperBound.x),
r.upperBound.y > s && (s = r.upperBound.y);
t *= i,
e *= i,
n *= i,
s *= i;
var _ = this._rect;
return _.x = t,
_.y = e,
_.width = n - t,
_.height = s - e,
_
}
});
cc.PhysicsCollider = e.exports = s
}
), {
"../CCPhysicsTypes": 169,
"../utils": 192
}],
177: [(function(t, e) {
"use strict";
var i = t("../CCPhysicsTypes").PTM_RATIO
, n = t("../CCPolygonSeparator")
, r = 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 = []
, r = this.points;
r.length > 0 && r[0].equals(r[r.length - 1]) && (r.length -= 1);
for (var s = n.ConvexPartition(r), a = this.offset, o = 0; o < s.length; o++) {
for (var l = s[o], h = null, c = [], u = null, _ = 0, f = l.length; _ < f; _++) {
h || (h = new b2.PolygonShape);
var d = l[_]
, p = (d.x + a.x) / i * t.x
, m = (d.y + a.y) / i * t.y
, y = new b2.Vec2(p,m);
c.push(y),
u || (u = y),
c.length === b2.maxPolygonVertices && (h.Set(c, c.length),
e.push(h),
h = null,
_ < f - 1 && (c = [u, c[c.length - 1]]))
}
h && (h.Set(c, c.length),
e.push(h))
}
return e
}
});
cc.PhysicsPolygonCollider = e.exports = r
}
), {
"../CCPhysicsTypes": 169,
"../CCPolygonSeparator": 170
}],
178: [(function(t) {
"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": 167,
"./CCPhysicsManager": 168,
"./CCRigidBody": 171,
"./box2d-adapter": 172,
"./collider/CCPhysicsBoxCollider": 173,
"./collider/CCPhysicsChainCollider": 174,
"./collider/CCPhysicsCircleCollider": 175,
"./collider/CCPhysicsCollider": 176,
"./collider/CCPhysicsPolygonCollider": 177,
"./joint/CCDistanceJoint": 179,
"./joint/CCJoint": 180,
"./joint/CCMotorJoint": 181,
"./joint/CCMouseJoint": 182,
"./joint/CCPrismaticJoint": 183,
"./joint/CCRevoluteJoint": 184,
"./joint/CCRopeJoint": 185,
"./joint/CCWeldJoint": 186,
"./joint/CCWheelJoint": 187,
"./platform/CCPhysicsAABBQueryCallback": 188,
"./platform/CCPhysicsContactListner": 189,
"./platform/CCPhysicsRayCastCallback": 191
}],
179: [(function(t, e) {
"use strict";
var i = t("../CCPhysicsTypes").PTM_RATIO
, n = 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;
return t.localAnchorA = new b2.Vec2(this.anchor.x / i,this.anchor.y / i),
t.localAnchorB = new b2.Vec2(this.connectedAnchor.x / i,this.connectedAnchor.y / i),
t.length = this.distance / i,
t.dampingRatio = this.dampingRatio,
t.frequencyHz = this.frequency,
t
}
});
cc.DistanceJoint = e.exports = n
}
), {
"../CCPhysicsTypes": 169
}],
180: [(function(t, e) {
"use strict";
var i = t("../CCPhysicsTypes").PTM_RATIO
, n = 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 * i, t.y * i)
}
return cc.Vec2.ZERO
},
getWorldConnectedAnchor: function() {
if (this._joint) {
var t = this._joint.GetAnchorB();
return cc.v2(t.x * i, t.y * i)
}
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),
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() {
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 = n
}
), {
"../CCPhysicsTypes": 169
}],
181: [(function(t, e) {
"use strict";
var i = t("../CCPhysicsTypes").PTM_RATIO
, n = t("../CCPhysicsTypes").ANGLE_TO_PHYSICS_ANGLE
, r = 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 / i,t.y / i))
}
},
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;
return t.linearOffset = new b2.Vec2(this.linearOffset.x / i,this.linearOffset.y / i),
t.angularOffset = this.angularOffset * n,
t.maxForce = this.maxForce,
t.maxTorque = this.maxTorque,
t.correctionFactor = this.correctionFactor,
t
}
});
cc.MotorJoint = e.exports = r
}
), {
"../CCPhysicsTypes": 169
}],
182: [(function(t, e) {
"use strict";
var i = t("../CCPhysicsTypes").PTM_RATIO
, n = new b2.Vec2
, r = 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,
this._joint && (n.x = t.x / i,
n.y = t.y / i,
this._joint.SetTarget(n))
}
},
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);
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() {
this._destroy(),
this._pressPoint = null
},
_createJointDef: function() {
var t = new b2.MouseJointDef;
return n.x = this.target.x / i,
n.y = this.target.y / i,
t.target = n,
t.maxForce = this.maxForce,
t.dampingRatio = this.dampingRatio,
t.frequencyHz = this.frequency,
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 = r
}
), {
"../CCPhysicsTypes": 169
}],
183: [(function(t, e) {
"use strict";
var i = t("../CCPhysicsTypes").PTM_RATIO
, n = t("../CCPhysicsTypes").ANGLE_TO_PHYSICS_ANGLE
, r = 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;
return t.localAnchorA = new b2.Vec2(this.anchor.x / i,this.anchor.y / i),
t.localAnchorB = new b2.Vec2(this.connectedAnchor.x / i,this.connectedAnchor.y / i),
t.localAxisA = new b2.Vec2(this.localAxisA.x,this.localAxisA.y),
t.referenceAngle = this.referenceAngle * n,
t.enableLimit = this.enableLimit,
t.lowerTranslation = this.lowerLimit / i,
t.upperTranslation = this.upperLimit / i,
t.enableMotor = this.enableMotor,
t.maxMotorForce = this.maxMotorForce,
t.motorSpeed = this.motorSpeed,
t
}
});
cc.PrismaticJoint = e.exports = r
}
), {
"../CCPhysicsTypes": 169
}],
184: [(function(t, e) {
"use strict";
var i = t("../CCPhysicsTypes").PTM_RATIO
, n = t("../CCPhysicsTypes").ANGLE_TO_PHYSICS_ANGLE
, r = t("../CCPhysicsTypes").PHYSICS_ANGLE_TO_ANGLE
, s = 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 * n)
}
},
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() * r : 0
},
setLimits: function(t, e) {
if (this._joint)
return this._joint.SetLimits(t * n, e * n)
},
_createJointDef: function() {
var t = new b2.RevoluteJointDef;
return t.localAnchorA = new b2.Vec2(this.anchor.x / i,this.anchor.y / i),
t.localAnchorB = new b2.Vec2(this.connectedAnchor.x / i,this.connectedAnchor.y / i),
t.lowerAngle = this.upperAngle * n,
t.upperAngle = this.lowerAngle * n,
t.maxMotorTorque = this.maxMotorTorque,
t.motorSpeed = this.motorSpeed * n,
t.enableLimit = this.enableLimit,
t.enableMotor = this.enableMotor,
t.referenceAngle = this.referenceAngle * n,
t
}
});
cc.RevoluteJoint = e.exports = s
}
), {
"../CCPhysicsTypes": 169
}],
185: [(function(t, e) {
"use strict";
var i = t("../CCPhysicsTypes").PTM_RATIO
, n = 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;
return t.localAnchorA = new b2.Vec2(this.anchor.x / i,this.anchor.y / i),
t.localAnchorB = new b2.Vec2(this.connectedAnchor.x / i,this.connectedAnchor.y / i),
t.maxLength = this.maxLength / i,
t
}
});
cc.RopeJoint = e.exports = n
}
), {
"../CCPhysicsTypes": 169
}],
186: [(function(t, e) {
"use strict";
var i = t("../CCPhysicsTypes").PTM_RATIO
, n = t("../CCPhysicsTypes").ANGLE_TO_PHYSICS_ANGLE
, r = 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;
return t.localAnchorA = new b2.Vec2(this.anchor.x / i,this.anchor.y / i),
t.localAnchorB = new b2.Vec2(this.connectedAnchor.x / i,this.connectedAnchor.y / i),
t.referenceAngle = this.referenceAngle * n,
t.frequencyHz = this.frequency,
t.dampingRatio = this.dampingRatio,
t
}
});
cc.WeldJoint = e.exports = r
}
), {
"../CCPhysicsTypes": 169
}],
187: [(function(t, e) {
"use strict";
var i = t("../CCPhysicsTypes").PTM_RATIO
, n = t("../CCPhysicsTypes").ANGLE_TO_PHYSICS_ANGLE
, r = 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 * n)
}
},
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.SetSpringFrequencyHz(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;
return t.localAnchorA = new b2.Vec2(this.anchor.x / i,this.anchor.y / i),
t.localAnchorB = new b2.Vec2(this.connectedAnchor.x / i,this.connectedAnchor.y / i),
t.localAxisA = new b2.Vec2(this.localAxisA.x,this.localAxisA.y),
t.maxMotorTorque = this.maxMotorTorque,
t.motorSpeed = this.motorSpeed * n,
t.enableMotor = this.enableMotor,
t.dampingRatio = this.dampingRatio,
t.frequencyHz = this.frequency,
t
}
});
cc.WheelJoint = e.exports = r
}
), {
"../CCPhysicsTypes": 169
}],
188: [(function(t, e) {
"use strict";
var i = t("../CCPhysicsTypes").BodyType;
function n() {
this._point = new b2.Vec2,
this._isPoint = !1,
this._fixtures = []
}
n.prototype.init = function(t) {
t ? (this._isPoint = !0,
this._point.x = t.x,
this._point.y = t.y) : this._isPoint = !1,
this._fixtures.length = 0
}
,
n.prototype.ReportFixture = function(t) {
if (t.GetBody().GetType() === i.Dynamic)
if (this._isPoint) {
if (t.TestPoint(this._point))
return this._fixtures.push(t),
!1
} else
this._fixtures.push(t);
return !0
}
,
n.prototype.getFixture = function() {
return this._fixtures[0]
}
,
n.prototype.getFixtures = function() {
return this._fixtures
}
,
cc.PhysicsAABBQueryCallback = e.exports = n
}
), {
"../CCPhysicsTypes": 169
}],
189: [(function(t, e) {
"use strict";
function i() {
this._contactFixtures = []
}
i.prototype.setBeginContact = function(t) {
this._BeginContact = t
}
,
i.prototype.setEndContact = function(t) {
this._EndContact = t
}
,
i.prototype.setPreSolve = function(t) {
this._PreSolve = t
}
,
i.prototype.setPostSolve = function(t) {
this._PostSolve = t
}
,
i.prototype.BeginContact = function(t) {
if (this._BeginContact) {
var e = t.GetFixtureA()
, i = t.GetFixtureB()
, n = this._contactFixtures;
t._shouldReport = !1,
-1 === n.indexOf(e) && -1 === n.indexOf(i) || (t._shouldReport = !0,
this._BeginContact(t))
}
}
,
i.prototype.EndContact = function(t) {
this._EndContact && t._shouldReport && (t._shouldReport = !1,
this._EndContact(t))
}
,
i.prototype.PreSolve = function(t, e) {
this._PreSolve && t._shouldReport && this._PreSolve(t, e)
}
,
i.prototype.PostSolve = function(t, e) {
this._PostSolve && t._shouldReport && this._PostSolve(t, e)
}
,
i.prototype.registerContactFixture = function(t) {
this._contactFixtures.push(t)
}
,
i.prototype.unregisterContactFixture = function(t) {
cc.js.array.remove(this._contactFixtures, t)
}
,
cc.PhysicsContactListener = e.exports = i
}
), {}],
190: [(function(t, e) {
"use strict";
var i = t("../CCPhysicsTypes").PTM_RATIO
, n = cc.v2()
, r = cc.Color.GREEN
, s = 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 r = this._drawer, s = 0; s < e; s++) {
b2.Transform.MulXV(this._xf, t[s], n);
var a = n.x * i
, o = n.y * i;
0 === s ? r.moveTo(a, o) : r.lineTo(a, o)
}
r.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 n = this._xf.p;
this._drawer.circle((t.x + n.x) * i, (t.y + n.y) * i, e * i)
},
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, r) {
var s = this._drawer;
if (t.x === e.x && t.y === e.y)
return this._applyFillColor(r),
this._DrawCircle(t, 2 / i),
void s.fill();
this._applyStrokeColor(r),
b2.Transform.MulXV(this._xf, t, n),
s.moveTo(n.x * i, n.y * i),
b2.Transform.MulXV(this._xf, e, n),
s.lineTo(n.x * i, n.y * i),
s.stroke()
},
DrawTransform: function(t) {
var e = this._drawer;
e.strokeColor = s,
n.x = n.y = 0,
b2.Transform.MulXV(t, n, n),
e.moveTo(n.x * i, n.y * i),
n.x = 1,
n.y = 0,
b2.Transform.MulXV(t, n, n),
e.lineTo(n.x * i, n.y * i),
e.stroke(),
e.strokeColor = r,
n.x = n.y = 0,
b2.Transform.MulXV(t, n, n),
e.moveTo(n.x * i, n.y * i),
n.x = 0,
n.y = 1,
b2.Transform.MulXV(t, n, n),
e.lineTo(n.x * i, n.y * i),
e.stroke()
},
DrawPoint: function() {},
_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": 169
}],
191: [(function(t, e) {
"use strict";
function i() {
this._type = 0,
this._fixtures = [],
this._points = [],
this._normals = [],
this._fractions = []
}
i.prototype.init = function(t) {
this._type = t,
this._fixtures.length = 0,
this._points.length = 0,
this._normals.length = 0,
this._fractions.length = 0
}
,
i.prototype.ReportFixture = function(t, e, i, n) {
return 0 === this._type ? (this._fixtures[0] = t,
this._points[0] = e,
this._normals[0] = i,
this._fractions[0] = n,
n) : (this._fixtures.push(t),
this._points.push(cc.v2(e)),
this._normals.push(cc.v2(i)),
this._fractions.push(n),
1 === this._type ? 0 : this._type >= 2 ? 1 : n)
}
,
i.prototype.getFixtures = function() {
return this._fixtures
}
,
i.prototype.getPoints = function() {
return this._points
}
,
i.prototype.getNormals = function() {
return this._normals
}
,
i.prototype.getFractions = function() {
return this._fractions
}
,
cc.PhysicsRayCastCallback = e.exports = i
}
), {}],
192: [(function(t, e) {
"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
}
}
}
), {}],
193: [(function(t, e) {
"use strict";
var i = t("./js")
, n = t("./CCEnum")
, r = t("./utils")
, s = (r.isPlainEmptyObj_DEV,
r.cloneable_DEV,
t("./attribute"))
, a = s.DELIMETER
, o = t("./preprocess-class");
t("./requiring-frame");
var l = ["name", "extends", "mixins", "ctor", "__ctor__", "properties", "statics", "editor", "__ES6__"];
function h(t, e) {
t.indexOf(e) < 0 && t.push(e)
}
var c = {
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 t = this.datas;
if (t) {
for (var e = 0; e < t.length; ++e) {
var n = t[e]
, r = n.cls
, s = n.props;
"function" == typeof s && (s = s());
var a = i.getClassName(r);
s ? E(r, a, s, r.$super, n.mixins) : cc.errorID(3633, a)
}
this.datas = null
}
}
};
function u(t, e) {
h(t.__props__, e)
}
function _(t, e, i, n) {
var r = n.default;
s.setClassAttr(t, i, "default", r),
u(t, i),
B(t, n, 0, i)
}
function f(t, e, n, r, a) {
var o = r.get
, l = r.set
, h = t.prototype
, c = !Object.getOwnPropertyDescriptor(h, n);
o && (B(t, r, 0, n),
s.setClassAttr(t, n, "serializable", !1),
a || i.get(h, n, o, c, c)),
l && (a || i.set(h, n, l, c, c))
}
function d(t) {
return "function" == typeof t ? t() : t
}
function p(t, e, n) {
for (var r in e)
t.hasOwnProperty(r) || n && !n(r) || Object.defineProperty(t, r, i.getPropertyDescriptor(e, r))
}
function m(t, e, n, r) {
var a, o, l = r.__ctor__, h = r.ctor, c = r.__ES6__;
c ? (a = [h],
o = h) : (a = l ? [l] : T(e, n, r),
o = C(a, e, t, r),
i.value(o, "extend", (function(t) {
return t.extends = this,
M(t)
}
), !0)),
i.value(o, "__ctors__", a.length > 0 ? a : null, !0);
var u = o.prototype;
if (e && (c || (i.extend(o, e),
u = o.prototype),
o.$super = e),
n) {
for (var _ = n.length - 1; _ >= 0; _--) {
var f = n[_];
p(u, f.prototype),
p(o, f, (function(t) {
return f.hasOwnProperty(t) && !0
}
)),
M._isCCClass(f) && p(s.getClassAttrs(o), s.getClassAttrs(f))
}
u.constructor = o
}
return c || (u.__initProps__ = b),
i.setClassName(t, o),
o
}
function y(t, e, n, r) {
var s = cc.Component
, a = cc._RF.peek();
if (a && i.isChildClassOf(e, s)) {
if (i.isChildClassOf(a.cls, s))
return cc.errorID(3615),
null;
t = t || a.script
}
var o = m(t, e, n, r);
if (a)
if (i.isChildClassOf(e, s)) {
var l = a.uuid;
l && i._setClassId(l, o),
a.cls = o
} else
i.isChildClassOf(a.cls, s) || (a.cls = o);
return o
}
function v(t) {
for (var e = i.getClassName(t), n = t.constructor, r = "new " + e + "(", s = 0; s < n.__props__.length; s++) {
r += t[n.__props__[s]],
s < n.__props__.length - 1 && (r += ",")
}
return r + ")"
}
function g(t) {
return JSON.stringify(t).replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029")
}
function A(t, e) {
for (var i = [], n = "", r = 0; r < e.length; r++) {
var s = e[r]
, o = s + a + "default";
if (o in t) {
var l, h;
l = x.test(s) ? "this." + s + "=" : "this[" + g(s) + "]=";
var c = t[o];
if ("object" == typeof c && c)
h = c instanceof cc.ValueType ? v(c) : Array.isArray(c) ? "[]" : "{}";
else if ("function" == typeof c) {
var u = i.length;
i.push(c),
h = "F[" + u + "]()"
} else
h = "string" == typeof c ? g(c) : c;
n += l = l + h + ";\n"
}
}
return 0 === i.length ? Function(n) : Function("F", "return (function(){\n" + n + "})")(i)
}
var x = /^[A-Za-z_$][0-9A-Za-z_$]*$/;
function b(t) {
var e = s.getClassAttrs(t)
, i = t.__props__;
null === i && (c.init(),
i = t.__props__);
var n = A(e, i);
t.prototype.__initProps__ = n,
n.call(this)
}
var C = function(t, e, i, n) {
var r = "return function CCClass(){\n";
e && w(e, n) && (r += "this._super=null;\n"),
r += "this.__initProps__(CCClass);\n";
var s = t.length;
if (s > 0) {
var a = "].apply(this,arguments);\n";
if (1 === s)
r += "CCClass.__ctors__[0" + a;
else {
r += "var cs=CCClass.__ctors__;\n";
for (var o = 0; o < s; o++)
r += "cs[" + o + a
}
}
return r += "}",
Function(r)()
};
function T(t, e, i) {
for (var n, r = [], s = [t].concat(e), a = 0; a < s.length; a++) {
var o = s[a];
if (o)
for (var l = (n = o,
M._isCCClass(n) ? n.__ctors__ || [] : [n]), c = 0; c < l.length; c++)
h(r, l[c])
}
var u = i.ctor;
return u && r.push(u),
r
}
var S = /xyz/.test((function() {
xyz
}
)) ? /\b\._super\b/ : /.*/;
function w(t, e) {
var n = !1;
for (var r in e)
if (!(l.indexOf(r) >= 0)) {
var s = e[r];
if ("function" == typeof s) {
var a = i.getPropertyDescriptor(t.prototype, r);
if (a) {
var o = a.value;
if ("function" == typeof o) {
S.test(s) && (n = !0,
e[r] = (function(t, e) {
return function() {
var i = this._super;
this._super = t;
var n = e.apply(this, arguments);
return this._super = i,
n
}
}
)(o, s));
continue
}
}
}
}
return n
}
function E(t, e, i, n, r, l) {
if (t.__props__ = [],
n && n.__props__ && (t.__props__ = n.__props__.slice()),
r)
for (var h = 0; h < r.length; ++h) {
var c = r[h];
c.__props__ && (t.__props__ = t.__props__.concat(c.__props__.filter((function(e) {
return t.__props__.indexOf(e) < 0
}
))))
}
if (i)
for (var u in o.preprocessAttrs(i, e, t, l),
i) {
var d = i[u];
"default"in d ? _(t, 0, u, d) : f(t, 0, u, d, l)
}
var p = s.getClassAttrs(t);
t.__values__ = t.__props__.filter((function(t) {
return !1 !== p[t + a + "serializable"]
}
))
}
function M(t) {
var e = (t = t || {}).name
, n = t.extends
, r = t.mixins
, s = y(e, n, r, t);
e || (e = cc.js.getClassName(s)),
s._sealed = !0,
n && (n._sealed = !1);
var a = t.properties;
"function" == typeof a || n && null === n.__props__ || r && r.some((function(t) {
return null === t.__props__
}
)) ? (c.push({
cls: s,
props: a,
mixins: r
}),
s.__props__ = s.__values__ = null) : E(s, e, a, n, t.mixins, t.__ES6__);
var h, u = t.statics;
if (u)
for (h in u)
s[h] = u[h];
for (var _ in t)
if (!(l.indexOf(_) >= 0)) {
var f = t[_];
o.validateMethodWithProps(f, _, e, s, n) && i.value(s.prototype, _, f, !0, !0)
}
var d = t.editor;
return d && cc.Component._registerEditorProps(s, d),
s
}
/xyz/.test((function() {
xyz
}
)),
M._isCCClass = function(t) {
return t && t.hasOwnProperty("__ctors__")
}
,
M._fastDefine = function(t, e, n) {
i.setClassName(t, e);
for (var r = e.__props__ = e.__values__ = Object.keys(n), o = s.getClassAttrs(e), l = 0; l < r.length; l++) {
var h = r[l];
o[h + a + "visible"] = !1,
o[h + a + "default"] = n[h]
}
}
,
M.Attr = s,
M.attr = s.attr,
M.getInheritanceChain = function(t) {
for (var e = []; t = i.getSuper(t); )
t !== Object && e.push(t);
return e
}
;
var D = {
Integer: "Number",
Float: "Number",
Boolean: "Boolean",
String: "String"
};
function B(t, e, i, r) {
var o = null
, l = "";
function h() {
return l = r + a,
o = s.getClassAttrs(t)
}
var c = e.type;
c && (D[c] ? (o || h())[l + "type"] = c : "Object" === c || (c === s.ScriptUuid ? ((o || h())[l + "type"] = "Script",
o[l + "ctor"] = cc.ScriptAsset) : "object" == typeof c ? n.isEnum(c) && ((o || h())[l + "type"] = "Enum",
o[l + "enumList"] = n.getList(c)) : "function" == typeof c && ((o || h())[l + "type"] = "Object",
o[l + "ctor"] = c)));
function u(t, i) {
if (t in e) {
var n = e[t];
typeof n === i && ((o || h())[l + t] = n)
}
}
e.editorOnly && ((o || h())[l + "editorOnly"] = !0),
!1 === e.serializable && ((o || h())[l + "serializable"] = !1),
u("formerlySerializedAs", "string");
var _ = e.range;
_ && Array.isArray(_) && _.length >= 2 && ((o || h())[l + "min"] = _[0],
o[l + "max"] = _[1],
_.length > 2 && (o[l + "step"] = _[2])),
u("min", "number"),
u("max", "number"),
u("step", "number"),
u("userData", "object")
}
cc.Class = M,
e.exports = {
isArray: function(t) {
return t = d(t),
Array.isArray(t)
},
fastDefine: M._fastDefine,
getNewValueTypeCode: v,
IDENTIFIER_RE: x,
escapeForJS: g,
getDefault: d
}
}
), {
"./CCEnum": 195,
"./attribute": 205,
"./js": 214,
"./preprocess-class": 215,
"./requiring-frame": 216,
"./utils": 217
}],
194: [(function(t, e) {
"use strict";
t("./CCClass");
var i = t("./preprocess-class")
, n = t("./js")
, r = "__ccclassCache__";
function s(t) {
return t
}
function a(t, e) {
return t[e] || (t[e] = {})
}
function o(t) {
return function(e) {
return "function" == typeof e ? t(e) : function(i) {
return t(i, e)
}
}
}
function l(t, e) {
return function(t) {
return function(i) {
return e(i, t)
}
}
}
var h = l.bind(null, !1);
function c() {
return l.bind(null, !1)
}
var u = c()
, _ = c();
function f(t) {
return a(t, r)
}
function d(t) {
var e;
try {
e = t()
} catch (i) {
return t
}
return "object" != typeof e || null === e ? e : t
}
function p(t) {
var e;
try {
e = new t
} catch (i) {
return {}
}
return e
}
function m(t, e, r, s, a, o) {
var l, h = a && (a.get || a.set);
s && (l = i.getFullFormOfProperty(s, h));
var c = e[r]
, u = n.mixin(c || {}, l || s || {});
if (h)
a.get && (u.get = a.get),
a.set && (u.set = a.set);
else {
var _ = void 0;
if (a)
a.initializer && (_ = d(a.initializer));
else {
var f = o.default || (o.default = p(t));
f.hasOwnProperty(r) && (_ = f[r])
}
u.default = _
}
e[r] = u
}
var y = o((function(t, e) {
var i = n.getSuper(t);
i === Object && (i = null);
var s = {
name: e,
extends: i,
ctor: t,
__ES6__: !0
}
, a = t[r];
if (a) {
var o = a.proto;
o && n.mixin(s, o),
t[r] = void 0
}
return cc.Class(s)
}
));
function v(t, e, i) {
return t((function(t, n) {
var r = f(t);
if (r) {
var s = void 0 !== i ? i : n
, o = a(r, "proto");
a(o, "editor")[e] = s
}
}
), e)
}
function g(t) {
return t(s)
}
var A = g(o)
, x = v(h, "requireComponent")
, b = g(u)
, C = v(_, "executionOrder")
, T = g(o)
, S = g(o)
, w = g(u)
, E = g(u)
, M = g(u);
cc._decorator = e.exports = {
ccclass: y,
property: function(t, e, i) {
var n = null;
function r(t, e, i) {
var r = f(t.constructor);
if (r) {
var s = a(r, "proto")
, o = a(s, "properties");
m(t.constructor, o, e, n, i, r)
}
}
if (void 0 === e)
return n = t,
r;
r(t, e, i)
},
executeInEditMode: A,
requireComponent: x,
menu: b,
executionOrder: C,
disallowMultiple: T,
playOnFocus: S,
inspector: w,
icon: E,
help: M,
mixins: function() {
for (var t = [], e = 0; e < arguments.length; e++)
t[e] = arguments[e];
return function(e) {
var i = f(e);
i && (a(i, "proto").mixins = t)
}
}
}
}
), {
"./CCClass": 193,
"./js": 214,
"./preprocess-class": 215,
"./utils": 217
}],
195: [(function(t, e) {
"use strict";
var i = t("./js");
function n(t) {
if ("__enums__"in t)
return t;
i.value(t, "__enums__", null, !0);
for (var e = -1, n = Object.keys(t), r = 0; r < n.length; r++) {
var s = n[r]
, a = t[s];
if (-1 === a)
a = ++e,
t[s] = a;
else if ("number" == typeof a)
e = a;
else if ("string" == typeof a && Number.isInteger(parseFloat(s)))
continue;
var o = "" + a;
s !== o && i.value(t, o, s)
}
return t
}
n.isEnum = function(t) {
return t && t.hasOwnProperty("__enums__")
}
,
n.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
})
}
return e.sort((function(t, e) {
return t.value - e.value
}
)),
e
}
,
e.exports = cc.Enum = n
}
), {
"./js": 214
}],
196: [(function(t) {
"use strict";
var e, i = t("../event-manager"), n = t("./CCInputManager");
cc.Acceleration = function(t, e, i, n) {
this.x = t || 0,
this.y = e || 0,
this.z = i || 0,
this.timestamp = n || 0
}
,
n.setAccelerometerEnabled = function(t) {
var e = this;
if (e._accelEnabled !== t) {
e._accelEnabled = t;
var i = cc.director.getScheduler();
i.enableForTarget(e),
e._accelEnabled ? (e._registerAccelerometerEvent(),
e._accelCurTime = 0,
i.scheduleUpdate(e)) : (e._unregisterAccelerometerEvent(),
e._accelCurTime = 0,
i.unscheduleUpdate(e))
}
}
,
n.setAccelerometerInterval = function(t) {
this._accelInterval !== t && (this._accelInterval = t)
}
,
n._registerKeyboardEvent = function() {
cc.game.canvas.addEventListener("keydown", (function(t) {
i.dispatchEvent(new cc.Event.EventKeyboard(t.keyCode,!0)),
t.stopPropagation(),
t.preventDefault()
}
), !1),
cc.game.canvas.addEventListener("keyup", (function(t) {
i.dispatchEvent(new cc.Event.EventKeyboard(t.keyCode,!1)),
t.stopPropagation(),
t.preventDefault()
}
), !1)
}
,
n._registerAccelerometerEvent = function() {
var t = window
, i = this;
i._acceleration = new cc.Acceleration,
i._accelDeviceEvent = t.DeviceMotionEvent || t.DeviceOrientationEvent,
cc.sys.browserType === cc.sys.BROWSER_TYPE_MOBILE_QQ && (i._accelDeviceEvent = window.DeviceOrientationEvent);
var n = i._accelDeviceEvent === t.DeviceMotionEvent ? "devicemotion" : "deviceorientation"
, r = navigator.userAgent;
(/Android/.test(r) || /Adr/.test(r) && cc.sys.browserType === cc.BROWSER_TYPE_UC) && (i._minus = -1),
e = i.didAccelerate.bind(i),
t.addEventListener(n, e, !1)
}
,
n._unregisterAccelerometerEvent = function() {
var t = window
, i = this._accelDeviceEvent === t.DeviceMotionEvent ? "devicemotion" : "deviceorientation";
e && t.removeEventListener(i, e, !1)
}
,
n.didAccelerate = function(t) {
var e = this
, i = window;
if (e._accelEnabled) {
var n, r, s, a = e._acceleration;
if (e._accelDeviceEvent === window.DeviceMotionEvent) {
var o = t.accelerationIncludingGravity;
n = e._accelMinus * o.x * .1,
r = e._accelMinus * o.y * .1,
s = .1 * o.z
} else
n = t.gamma / 90 * .981,
r = -t.beta / 90 * .981,
s = t.alpha / 90 * .981;
if (cc.view._isRotated) {
var l = n;
n = -r,
r = l
}
a.x = n,
a.y = r,
a.z = s,
a.timestamp = t.timeStamp || Date.now();
var h = a.x;
90 === i.orientation ? (a.x = -a.y,
a.y = h) : -90 === i.orientation ? (a.x = a.y,
a.y = -h) : 180 === i.orientation && (a.x = -a.x,
a.y = -a.y),
cc.sys.os === cc.sys.OS_ANDROID && cc.sys.browserType !== cc.sys.BROWSER_TYPE_MOBILE_QQ && (a.x = -a.x,
a.y = -a.y)
}
}
}
), {
"../event-manager": 138,
"./CCInputManager": 197
}],
197: [(function(t, e) {
"use strict";
var i = t("./CCMacro")
, n = t("./CCSys")
, r = t("../event-manager")
, s = i.TOUCH_TIMEOUT
, a = cc.v2()
, o = {
_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,
_canvasBoundingRect: {
left: 0,
top: 0,
adjustedLeft: 0,
adjustedTop: 0,
width: 0,
height: 0
},
_getUnUsedIndex: function() {
for (var t = this._indexBitsUsed, e = cc.sys.now(), i = 0; i < this._maxTouches; i++) {
if (!(1 & t))
return this._indexBitsUsed |= 1 << i,
i;
var n = this._touches[i];
if (e - n._lastModified > s)
return this._removeUsedIndexBit(i),
delete this._touchesIntegerDict[n.getID()],
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,
_updateCanvasBoundingRect: function() {
var t = cc.game.canvas
, e = this._canvasBoundingRect
, i = document.documentElement
, n = window.pageXOffset - i.clientLeft
, r = window.pageYOffset - i.clientTop;
if (t.getBoundingClientRect) {
var s = t.getBoundingClientRect();
e.left = s.left + n,
e.top = s.top + r,
e.width = s.width,
e.height = s.height
} else
t instanceof HTMLCanvasElement ? (e.left = n,
e.top = r,
e.width = t.width,
e.height = t.height) : (e.left = n,
e.top = r,
e.width = parseInt(t.style.width),
e.height = parseInt(t.style.height))
},
handleTouchesBegin: function(t) {
for (var e, i, s, a = [], o = this._touchesIntegerDict, l = n.now(), h = 0, c = t.length; h < c; h++)
if (null == o[s = (e = t[h]).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 = l,
i._setPrevPoint(e._prevPoint),
o[s] = u,
a.push(i)
}
if (a.length > 0) {
this._glView._convertTouchesWithScale(a);
var _ = new cc.Event.EventTouch(a);
_._eventCode = cc.Event.EventTouch.BEGAN,
r.dispatchEvent(_)
}
},
handleTouchesMove: function(t) {
for (var e, i, s, a = [], o = this._touches, l = n.now(), h = 0, c = t.length; h < c; h++)
s = (e = t[h]).getID(),
null != (i = this._touchesIntegerDict[s]) && o[i] && (o[i]._setPoint(e._point),
o[i]._setPrevPoint(e._prevPoint),
o[i]._lastModified = l,
a.push(o[i]));
if (a.length > 0) {
this._glView._convertTouchesWithScale(a);
var u = new cc.Event.EventTouch(a);
u._eventCode = cc.Event.EventTouch.MOVED,
r.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,
r.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.CANCELED,
r.dispatchEvent(i)
}
this._preTouchPool.length = 0
},
getSetOfTouchesEndOrCancel: function(t) {
for (var e, i, n, r = [], s = this._touches, a = this._touchesIntegerDict, o = 0, l = t.length; o < l; o++)
null != (i = a[n = (e = t[o]).getID()]) && s[i] && (s[i]._setPoint(e._point),
s[i]._setPrevPoint(e._prevPoint),
r.push(s[i]),
this._removeUsedIndexBit(i),
delete a[n]);
return r
},
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
}
return e || (e = t),
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
}
e || (i.length <= 50 ? i.push(t) : (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);
return s._setPrevPoint(n.x, n.y),
n.x = r.x,
n.y = r.y,
s
},
getMouseEvent: function(t, e, i) {
var n = this._prevMousePoint
, r = new cc.Event.EventMouse(i);
return 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),
r
},
getPointByEvent: function(t, e) {
return cc.sys.browserType !== cc.sys.BROWSER_TYPE_QQ && cc.sys.browserType !== cc.sys.BROWSER_TYPE_UC && cc.sys.browserType !== cc.sys.BROWSER_TYPE_SAFARI || this._updateCanvasBoundingRect(),
null != t.pageX ? {
x: t.pageX,
y: t.pageY
} : (e.left -= document.body.scrollLeft,
e.top -= document.body.scrollTop,
{
x: t.clientX,
y: t.clientY
})
},
getTouchesByEvent: function(t, e) {
for (var i, r, s, o = [], l = this._glView, h = this._preTouchPoint, c = t.changedTouches.length, u = 0; u < c; u++)
if (i = t.changedTouches[u]) {
var _;
_ = n.BROWSER_TYPE_FIREFOX === n.browserType ? l.convertToLocationInView(i.pageX, i.pageY, e, a) : l.convertToLocationInView(i.clientX, i.clientY, e, a),
null != i.identifier ? (r = new cc.Touch(_.x,_.y,i.identifier),
s = this.getPreTouch(r).getLocation(),
r._setPrevPoint(s.x, s.y),
this.setPreTouch(r)) : (r = new cc.Touch(_.x,_.y))._setPrevPoint(h.x, h.y),
h.x = _.x,
h.y = _.y,
o.push(r)
}
return o
},
registerSystemEvent: function(t) {
if (!this._isRegisterEvent) {
this._glView = cc.view;
var e = this
, i = this._canvasBoundingRect;
window.addEventListener("resize", this._updateCanvasBoundingRect.bind(this));
var s = n.isMobile
, a = "mouse"in n.capabilities
, o = "touches"in n.capabilities;
if (a) {
s || (window.addEventListener("mousedown", (function() {
e._mousePressed = !0
}
), !1),
window.addEventListener("mouseup", (function(t) {
if (e._mousePressed) {
e._mousePressed = !1;
var n = e.getPointByEvent(t, i);
if (!cc.rect(i.left, i.top, i.width, i.height).contains(n)) {
e.handleTouchesEnd([e.getTouchByXY(n.x, n.y, i)]);
var s = e.getMouseEvent(n, i, cc.Event.EventMouse.UP);
s.setButton(t.button),
r.dispatchEvent(s)
}
}
}
), !1));
for (var l = cc.Event.EventMouse, h = [!s && ["mousedown", l.DOWN, function(i, n, r, s) {
e._mousePressed = !0,
e.handleTouchesBegin([e.getTouchByXY(r.x, r.y, s)]),
t.focus()
}
], !s && ["mouseup", l.UP, function(t, i, n, r) {
e._mousePressed = !1,
e.handleTouchesEnd([e.getTouchByXY(n.x, n.y, r)])
}
], !s && ["mousemove", l.MOVE, function(t, i, n, r) {
e.handleTouchesMove([e.getTouchByXY(n.x, n.y, r)]),
e._mousePressed || i.setButton(null)
}
], ["mousewheel", l.SCROLL, function(t, e) {
e.setScrollData(0, t.wheelDelta)
}
], ["DOMMouseScroll", l.SCROLL, function(t, e) {
e.setScrollData(0, -120 * t.detail)
}
]], c = 0; c < h.length; ++c) {
var u = h[c];
u && (function() {
var n = u[0]
, s = u[1]
, a = u[2];
t.addEventListener(n, (function(t) {
var n = e.getPointByEvent(t, i)
, o = e.getMouseEvent(n, i, s);
o.setButton(t.button),
a(t, o, n, i),
r.dispatchEvent(o),
t.stopPropagation(),
t.preventDefault()
}
), !1)
}
)()
}
}
if (window.navigator.msPointerEnabled) {
var _ = {
MSPointerDown: e.handleTouchesBegin,
MSPointerMove: e.handleTouchesMove,
MSPointerUp: e.handleTouchesEnd,
MSPointerCancel: e.handleTouchesCancel
}
, f = function(n) {
var r = _[n];
t.addEventListener(n, (function(t) {
var n = document.documentElement;
i.adjustedLeft = i.left - n.scrollLeft,
i.adjustedTop = i.top - n.scrollTop,
r.call(e, [e.getTouchByXY(t.clientX, t.clientY, i)]),
t.stopPropagation()
}
), !1)
};
for (var d in _)
f(d)
}
if (o) {
var p = {
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 = function(n) {
var r = p[n];
t.addEventListener(n, (function(t) {
if (t.changedTouches) {
var n = document.body;
i.adjustedLeft = i.left - (n.scrollLeft || window.scrollX || 0),
i.adjustedTop = i.top - (n.scrollTop || window.scrollY || 0),
r(e.getTouchesByEvent(t, i)),
t.stopPropagation(),
t.preventDefault()
}
}
), !1)
};
for (var y in p)
m(y)
}
this._registerKeyboardEvent(),
this._isRegisterEvent = !0
}
},
_registerKeyboardEvent: function() {},
_registerAccelerometerEvent: function() {},
update: function(t) {
this._accelCurTime > this._accelInterval && (this._accelCurTime -= this._accelInterval,
r.dispatchEvent(new cc.Event.EventAcceleration(this._acceleration))),
this._accelCurTime += t
}
};
e.exports = cc.internal.inputManager = o
}
), {
"../event-manager": 138,
"./CCMacro": 198,
"./CCSys": 202
}],
198: [(function(t, e) {
"use strict";
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,
ENABLE_TRANSPARENT_CANVAS: !1,
ENABLE_WEBGL_ANTIALIAS: !1,
ENABLE_CULLING: !1,
CLEANUP_IMAGE_CACHE: !1,
SHOW_MESH_WIREFRAME: !1,
SHOW_MESH_NORMAL: !1,
ENABLE_MULTI_TOUCH: !0,
ALLOW_IMAGE_BITMAP: !cc.sys.isMobile,
ENABLE_NATIVE_TTF_RENDERER: !0
},
Object.defineProperty(cc.macro, "ROTATE_ACTION_CCW", {
set: function(t) {
cc.RotateTo && cc.RotateBy && (cc.RotateTo._reverse = cc.RotateBy._reverse = t)
}
}),
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
}
), {}],
199: [(function(t, e) {
"use strict";
var i = t("./js")
, n = t("./CCClass")
, r = 1;
function s() {
this._name = "",
this._objFlags = 0
}
n.fastDefine("cc.Object", s, {
_name: "",
_objFlags: 0
}),
i.value(s, "Flags", {
Destroyed: r,
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 a = [];
i.value(s, "_deferredDestroy", (function() {
for (var t = a.length, e = 0; e < t; ++e) {
var i = a[e];
i._objFlags & r || i._destroyImmediate()
}
t === a.length ? a.length = 0 : a.splice(0, t)
}
));
var o = s.prototype;
function l(t, e) {
var i, r = t instanceof cc._BaseNode || t instanceof cc.Component, s = r ? "_id" : null, a = {};
for (i in t)
if (t.hasOwnProperty(i)) {
if (i === s)
continue;
switch (typeof t[i]) {
case "string":
a[i] = "";
break;
case "object":
case "function":
a[i] = null
}
}
if (cc.Class._isCCClass(e))
for (var o = cc.Class.Attr.getClassAttrs(e), l = e.__props__, h = 0; h < l.length; h++) {
var c = (i = l[h]) + cc.Class.Attr.DELIMETER + "default";
if (c in o) {
if (r && "_id" === i)
continue;
switch (typeof o[c]) {
case "string":
a[i] = "";
break;
case "object":
case "function":
a[i] = null;
break;
case "undefined":
a[i] = void 0
}
}
}
var u = "";
for (i in a) {
var _;
_ = n.IDENTIFIER_RE.test(i) ? "o." + i + "=" : "o[" + n.escapeForJS(i) + "]=";
var f = a[i];
"" === f && (f = '""'),
u += _ + f + ";\n"
}
return Function("o", u)
}
i.getset(o, "name", (function() {
return this._name
}
), (function(t) {
this._name = t
}
), !0),
i.get(o, "isValid", (function() {
return !(this._objFlags & r)
}
), !0),
o.destroy = function() {
return this._objFlags & r ? (cc.warnID(5e3),
!1) : !(4 & this._objFlags || (this._objFlags |= 4,
a.push(this),
0))
}
,
o._destruct = function() {
var t = this.constructor
, e = t.__destruct__;
e || (e = l(this, t),
i.value(t, "__destruct__", e, !0)),
e(this)
}
,
o._onPreDestroy = null,
o._destroyImmediate = function() {
this._objFlags & r ? cc.errorID(5e3) : (this._onPreDestroy && this._onPreDestroy(),
this._destruct(),
this._objFlags |= r)
}
,
o._deserialize = null,
cc.isValid = function(t, e) {
return "object" == typeof t ? !(!t || t._objFlags & (e ? 4 | r : r)) : void 0 !== t
}
,
cc.Object = e.exports = s
}
), {
"./CCClass": 193,
"./js": 214
}],
200: [(function(t, e) {
"use strict";
var i = t("../platform/js");
cc.SAXParser = function() {
window.DOMParser ? (this._isSupportDOMParser = !0,
this._parser = new DOMParser) : (this._isSupportDOMParser = !1,
this._parser = null)
}
,
cc.SAXParser.prototype = {
constructor: cc.SAXParser,
parse: function(t) {
return this._parseXML(t)
},
_parseXML: function(t) {
var e;
return this._isSupportDOMParser ? e = this._parser.parseFromString(t, "text/xml") : ((e = new ActiveXObject("Microsoft.XMLDOM")).async = "false",
e.loadXML(t)),
e
}
},
cc.PlistParser = function() {
cc.SAXParser.call(this)
}
,
i.extend(cc.PlistParser, cc.SAXParser),
i.mixin(cc.PlistParser.prototype, {
parse: function(t) {
var e = this._parseXML(t)
, i = e.documentElement;
if ("plist" !== i.tagName)
return cc.warnID(5100),
{};
for (var n = null, r = 0, s = i.childNodes.length; r < s && 1 !== (n = i.childNodes[r]).nodeType; r++)
;
return e = null,
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": 214
}],
201: [(function() {
"use strict";
cc.screen = {
_supportsFullScreen: !1,
_onfullscreenchange: null,
_onfullscreenerror: null,
_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 t, e, i, n, r = this._fnMap;
for (t = 0,
e = r.length; t < e; t++)
if ((i = r[t]) && void 0 !== document[i[1]]) {
for (t = 0,
n = i.length; t < n; t++)
this._fn[r[0][t]] = i[t];
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, i) {
if (t && "video" === t.tagName.toLowerCase()) {
if (cc.sys.os === cc.sys.OS_IOS && cc.sys.isBrowser && t.readyState > 0)
return void (t.webkitEnterFullscreen && t.webkitEnterFullscreen());
t.setAttribute("x5-video-player-fullscreen", "true")
}
if (this._supportsFullScreen) {
if (t = t || document.documentElement,
e) {
var n = this._fn.fullscreenchange;
this._onfullscreenchange && document.removeEventListener(n, this._onfullscreenchange),
this._onfullscreenchange = e,
document.addEventListener(n, e, !1)
}
if (i) {
var r = this._fn.fullscreenerror;
this._onfullscreenerror && document.removeEventListener(r, this._onfullscreenerror),
this._onfullscreenerror = i,
document.addEventListener(r, i, {
once: !0
})
}
var s = t[this._fn.requestFullscreen]();
void 0 === document[this._fn.fullscreenerror] && window.Promise && s instanceof Promise && s.catch((function() {}
))
}
},
exitFullScreen: function(t) {
if (t && "video" === t.tagName.toLowerCase()) {
if (cc.sys.os === cc.sys.OS_IOS && cc.sys.isBrowser)
return void (t.webkitExitFullscreen && t.webkitExitFullscreen());
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;
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 a() {
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 = a,
t.addEventListener(r, a, {
once: !0
})
}
},
cc.screen.init()
}
), {}],
202: [(function(t, e) {
"use strict";
window._CCSettings && _CCSettings.platform;
var i = "undefined" == typeof window ? global : window
, n = cc && cc.sys ? cc.sys : (function() {
cc.sys = {};
var t, e, n = cc.sys;
if (n.LANGUAGE_ENGLISH = "en",
n.LANGUAGE_CHINESE = "zh",
n.LANGUAGE_FRENCH = "fr",
n.LANGUAGE_ITALIAN = "it",
n.LANGUAGE_GERMAN = "de",
n.LANGUAGE_SPANISH = "es",
n.LANGUAGE_DUTCH = "du",
n.LANGUAGE_RUSSIAN = "ru",
n.LANGUAGE_KOREAN = "ko",
n.LANGUAGE_JAPANESE = "ja",
n.LANGUAGE_HUNGARIAN = "hu",
n.LANGUAGE_PORTUGUESE = "pt",
n.LANGUAGE_ARABIC = "ar",
n.LANGUAGE_NORWEGIAN = "no",
n.LANGUAGE_POLISH = "pl",
n.LANGUAGE_TURKISH = "tr",
n.LANGUAGE_UKRAINIAN = "uk",
n.LANGUAGE_ROMANIAN = "ro",
n.LANGUAGE_BULGARIAN = "bg",
n.LANGUAGE_UNKNOWN = "unknown",
n.OS_IOS = "iOS",
n.OS_ANDROID = "Android",
n.OS_WINDOWS = "Windows",
n.OS_MARMALADE = "Marmalade",
n.OS_LINUX = "Linux",
n.OS_BADA = "Bada",
n.OS_BLACKBERRY = "Blackberry",
n.OS_OSX = "OS X",
n.OS_WP8 = "WP8",
n.OS_WINRT = "WINRT",
n.OS_UNKNOWN = "Unknown",
n.UNKNOWN = -1,
n.WIN32 = 0,
n.LINUX = 1,
n.MACOS = 2,
n.ANDROID = 3,
n.IPHONE = 4,
n.IPAD = 5,
n.BLACKBERRY = 6,
n.NACL = 7,
n.EMSCRIPTEN = 8,
n.TIZEN = 9,
n.WINRT = 10,
n.WP8 = 11,
n.MOBILE_BROWSER = 100,
n.DESKTOP_BROWSER = 101,
n.EDITOR_PAGE = 102,
n.EDITOR_CORE = 103,
n.WECHAT_GAME = 104,
n.QQ_PLAY = 105,
n.FB_PLAYABLE_ADS = 106,
n.BAIDU_GAME = 107,
n.VIVO_GAME = 108,
n.OPPO_GAME = 109,
n.HUAWEI_GAME = 110,
n.XIAOMI_GAME = 111,
n.JKW_GAME = 112,
n.ALIPAY_GAME = 113,
n.WECHAT_GAME_SUB = 114,
n.BAIDU_GAME_SUB = 115,
n.QTT_GAME = 116,
n.BYTEDANCE_GAME = 117,
n.BYTEDANCE_GAME_SUB = 118,
n.LINKSURE = 119,
n.BROWSER_TYPE_WECHAT = "wechat",
n.BROWSER_TYPE_ANDROID = "androidbrowser",
n.BROWSER_TYPE_IE = "ie",
n.BROWSER_TYPE_EDGE = "edge",
n.BROWSER_TYPE_QQ = "qqbrowser",
n.BROWSER_TYPE_MOBILE_QQ = "mqqbrowser",
n.BROWSER_TYPE_UC = "ucbrowser",
n.BROWSER_TYPE_UCBS = "ucbs",
n.BROWSER_TYPE_360 = "360browser",
n.BROWSER_TYPE_BAIDU_APP = "baiduboxapp",
n.BROWSER_TYPE_BAIDU = "baidubrowser",
n.BROWSER_TYPE_MAXTHON = "maxthon",
n.BROWSER_TYPE_OPERA = "opera",
n.BROWSER_TYPE_OUPENG = "oupeng",
n.BROWSER_TYPE_MIUI = "miuibrowser",
n.BROWSER_TYPE_FIREFOX = "firefox",
n.BROWSER_TYPE_SAFARI = "safari",
n.BROWSER_TYPE_CHROME = "chrome",
n.BROWSER_TYPE_LIEBAO = "liebao",
n.BROWSER_TYPE_QZONE = "qzone",
n.BROWSER_TYPE_SOUGOU = "sogou",
n.BROWSER_TYPE_HUAWEI = "huawei",
n.BROWSER_TYPE_UNKNOWN = "unknown",
n.isNative = !1,
n.isBrowser = "object" == typeof window && "object" == typeof document && !0,
n.glExtension = function(t) {
return !!cc.renderer.device.ext(t)
}
,
n.getMaxJointMatrixSize = function() {
if (!n._maxJointMatrixSize) {
var t = cc.game._renderContext
, e = Math.floor(t.getParameter(t.MAX_VERTEX_UNIFORM_VECTORS) / 4) - 10;
n._maxJointMatrixSize = e < 50 ? 0 : 50
}
return n._maxJointMatrixSize
}
,
n.getSafeAreaRect = function() {
var t = cc.view.getVisibleSize();
return cc.rect(0, 0, t.width, t.height)
}
,
i.__globalAdapter && i.__globalAdapter.adaptSys)
i.__globalAdapter.adaptSys(n);
else {
var r = window
, s = r.navigator
, a = document
, o = a.documentElement
, l = s.userAgent.toLowerCase();
n.isMobile = /mobile|android|iphone|ipad/.test(l),
"undefined" != typeof FbPlayableAd ? n.platform = n.FB_PLAYABLE_ADS : n.platform = n.isMobile ? n.MOBILE_BROWSER : n.DESKTOP_BROWSER;
var h = s.language;
h = h || s.browserLanguage,
n.languageCode = h.toLowerCase(),
h = h ? h.split("-")[0] : n.LANGUAGE_ENGLISH,
n.language = h;
var c = !1
, u = !1
, _ = ""
, f = 0
, d = /android\s*(\d+(?:\.\d+)*)/i.exec(l) || /android\s*(\d+(?:\.\d+)*)/i.exec(s.platform);
d && (c = !0,
_ = d[1] || "",
f = parseInt(_) || 0),
(d = /(iPad|iPhone|iPod).*OS ((\d+_?){2,3})/i.exec(l)) ? (u = !0,
_ = d[2] || "",
f = parseInt(_) || 0) : (/(iPhone|iPad|iPod)/.exec(s.platform) || "MacIntel" === s.platform && s.maxTouchPoints && s.maxTouchPoints > 1) && (u = !0,
_ = "",
f = 0);
var p = n.OS_UNKNOWN;
-1 !== s.appVersion.indexOf("Win") ? p = n.OS_WINDOWS : u ? p = n.OS_IOS : -1 !== s.appVersion.indexOf("Mac") ? p = n.OS_OSX : -1 !== s.appVersion.indexOf("X11") && -1 === s.appVersion.indexOf("Linux") ? p = n.OS_UNIX : c ? p = n.OS_ANDROID : -1 === s.appVersion.indexOf("Linux") && -1 === l.indexOf("ubuntu") || (p = n.OS_LINUX),
n.os = p,
n.osVersion = _,
n.osMainVersion = f,
n.browserType = n.BROWSER_TYPE_UNKNOWN,
(function() {
var t = /mqqbrowser|micromessenger|qqbrowser|sogou|qzone|liebao|maxthon|ucbs|360 aphone|360browser|baiduboxapp|baidubrowser|maxthon|mxbrowser|miuibrowser/i.exec(l) || /qq|ucbrowser|ubrowser|edge|HuaweiBrowser/i.exec(l) || /chrome|safari|firefox|trident|opera|opr\/|oupeng/i.exec(l)
, e = t ? t[0].toLowerCase() : n.BROWSER_TYPE_UNKNOWN;
"safari" === e && c ? e = n.BROWSER_TYPE_ANDROID : "qq" === e && l.match(/android.*applewebkit/i) && (e = n.BROWSER_TYPE_ANDROID);
var i = {
micromessenger: n.BROWSER_TYPE_WECHAT,
trident: n.BROWSER_TYPE_IE,
edge: n.BROWSER_TYPE_EDGE,
"360 aphone": n.BROWSER_TYPE_360,
mxbrowser: n.BROWSER_TYPE_MAXTHON,
"opr/": n.BROWSER_TYPE_OPERA,
ubrowser: n.BROWSER_TYPE_UC,
huaweibrowser: n.BROWSER_TYPE_HUAWEI
};
"qqbrowser" !== e && "mqqbrowser" !== e || l.match(/wechat|micromessenger/i) && (e = n.BROWSER_TYPE_WECHAT),
n.browserType = i[e] || e
}
)(),
n.browserVersion = "",
(e = l.match(/(mqqbrowser|micromessenger|qqbrowser|sogou|qzone|liebao|maxthon|uc|ucbs|360 aphone|360|baiduboxapp|baidu|maxthon|mxbrowser|miui(?:.hybrid)?)(mobile)?(browser)?\/?([\d.]+)/i)) || (e = l.match(/(qq|chrome|safari|firefox|trident|opera|opr\/|oupeng)(mobile)?(browser)?\/?([\d.]+)/i)),
n.browserVersion = e ? e[4] : "";
var m = window.innerWidth || document.documentElement.clientWidth
, y = window.innerHeight || document.documentElement.clientHeight
, v = window.devicePixelRatio || 1;
n.windowPixelResolution = {
width: v * m,
height: v * y
},
n._checkWebGLRenderMode = function() {
if (cc.game.renderType !== cc.game.RENDER_TYPE_WEBGL)
throw new Error("This feature supports WebGL render mode only.")
}
;
var g = document.createElement("canvas");
try {
var A = n.localStorage = r.localStorage;
A.setItem("storage", ""),
A.removeItem("storage"),
A = null
} catch (M) {
var x = function() {
cc.warnID(5200)
};
n.localStorage = {
getItem: x,
setItem: x,
removeItem: x,
clear: x
}
}
var b = g.toDataURL("image/webp").startsWith("data:image/webp")
, C = !!g.getContext("2d")
, T = !1;
r.WebGLRenderingContext && (T = !0);
var S, w = n.capabilities = {
canvas: C,
opengl: T,
webp: b,
imageBitmap: !1
};
"undefined" != typeof createImageBitmap && "undefined" != typeof Blob && (g.width = g.height = 2,
createImageBitmap(g, {}).then((function(t) {
w.imageBitmap = !0,
t.close && t.close()
}
)).catch((function() {}
))),
(void 0 !== o.ontouchstart || void 0 !== a.ontouchstart || s.msPointerEnabled) && (w.touches = !0),
void 0 !== o.onmouseup && (w.mouse = !0),
void 0 !== o.onkeyup && (w.keyboard = !0),
(r.DeviceMotionEvent || r.DeviceOrientationEvent) && (w.accelerometer = !0),
(function() {
n.browserVersion;
var t = !!(window.AudioContext || window.webkitAudioContext || window.mozAudioContext);
S = {
ONLY_ONE: !1,
WEB_AUDIO: t,
DELAY_CREATE_CTX: !1
},
n.os === n.OS_IOS && (S.USE_LOADER_EVENT = "loadedmetadata"),
n.browserType === n.BROWSER_TYPE_FIREFOX && (S.DELAY_CREATE_CTX = !0,
S.USE_LOADER_EVENT = "canplay"),
n.os === n.OS_ANDROID && n.browserType === n.BROWSER_TYPE_UC && (S.ONE_SOURCE = !0)
}
)();
try {
S.WEB_AUDIO && (S.context = new (window.AudioContext || window.webkitAudioContext || window.mozAudioContext),
S.DELAY_CREATE_CTX && setTimeout((function() {
S.context = new (window.AudioContext || window.webkitAudioContext || window.mozAudioContext)
}
), 0))
} catch (D) {
S.WEB_AUDIO = !1,
cc.logID(5201)
}
var E = [];
(t = document.createElement("audio")).canPlayType && (t.canPlayType('audio/ogg; codecs="vorbis"') && E.push(".ogg"),
t.canPlayType("audio/mpeg") && E.push(".mp3"),
t.canPlayType('audio/wav; codecs="1"') && E.push(".wav"),
t.canPlayType("audio/mp4") && E.push(".mp4"),
t.canPlayType("audio/x-m4a") && E.push(".m4a")),
S.format = E,
n.__audioSupport = S
}
return n.NetworkType = {
NONE: 0,
LAN: 1,
WWAN: 2
},
n.getNetworkType = function() {
return n.NetworkType.LAN
}
,
n.getBatteryLevel = function() {
return 1
}
,
n.garbageCollect = function() {}
,
n.restartVM = function() {}
,
n.isObjectValid = function(t) {
return !!t
}
,
n.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)
}
,
n.openURL = function(t) {
window.open(t)
}
,
n.now = function() {
return Date.now ? Date.now() : +new Date
}
,
n
}
)();
e.exports = n
}
), {}],
203: [(function(t, e) {
"use strict";
var i = t("../event/event-target")
, n = t("../platform/js")
, r = t("../renderer");
t("../platform/CCClass");
var s = {
init: function() {
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
};
switch (cc.sys.os === cc.sys.OS_IOS && (s.adaptationType = cc.sys.BROWSER_TYPE_SAFARI),
s.adaptationType) {
case cc.sys.BROWSER_TYPE_SAFARI:
case cc.sys.BROWSER_TYPE_SOUGOU:
case cc.sys.BROWSER_TYPE_UC:
s.meta["minimal-ui"] = "true",
s.availWidth = function(t) {
return t.clientWidth
}
,
s.availHeight = function(t) {
return t.clientHeight
}
}
var a = null
, o = function() {
i.call(this);
var t = this
, e = cc.ContainerStrategy
, n = cc.ContentStrategy;
s.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,n.EXACT_FIT),
t._rpShowAll = new cc.ResolutionPolicy(e.EQUAL_TO_FRAME,n.SHOW_ALL),
t._rpNoBorder = new cc.ResolutionPolicy(e.EQUAL_TO_FRAME,n.NO_BORDER),
t._rpFixedHeight = new cc.ResolutionPolicy(e.EQUAL_TO_FRAME,n.FIXED_HEIGHT),
t._rpFixedWidth = new cc.ResolutionPolicy(e.EQUAL_TO_FRAME,n.FIXED_WIDTH),
cc.game.once(cc.game.EVENT_ENGINE_INITED, this.init, this)
};
cc.js.extend(o, i),
cc.js.mixin(o.prototype, {
init: function() {
this._initFrameSize();
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;
e = this.setDesignResolutionSize ? this : cc.view;
var i = cc.sys;
if (i.browserType !== i.BROWSER_TYPE_UC || i.os !== i.OS_IOS) {
var n = e._frameSize.width
, r = e._frameSize.height
, s = e._isRotated;
if (cc.sys.isMobile) {
var a = cc.game.container.style
, o = a.margin;
a.margin = "0",
a.display = "none",
e._initFrameSize(),
a.margin = o,
a.display = "block"
} else
e._initFrameSize();
if (!0 === t || e._isRotated !== s || e._frameSize.width !== n || e._frameSize.height !== r) {
var l = e._originalDesignResolutionSize.width
, h = e._originalDesignResolutionSize.height;
e._resizing = !0,
l > 0 && e.setDesignResolutionSize(l, h, e._resolutionPolicy),
e._resizing = !1,
e.emit("canvas-resize"),
e._resizeCallback && e._resizeCallback.call()
}
} else
setTimeout((function() {
e._resizeEvent(t)
}
), 0)
},
_orientationChange: function() {
cc.view._orientationChanging = !0,
cc.view._resizeEvent(),
cc.sys.browserType === cc.sys.BROWSER_TYPE_SAFARI && cc.sys.isMobile && setTimeout((function() {
window.innerHeight > window.innerWidth && window.scrollTo(0, 1)
}
), 500)
},
_resize: function() {
cc.view._resizeEvent(!1)
},
resizeWithBrowserSize: function(t) {
t ? this._resizeWithBrowserSize || (this._resizeWithBrowserSize = !0,
window.addEventListener("resize", this._resize),
window.addEventListener("orientationchange", this._orientationChange)) : this._resizeWithBrowserSize && (this._resizeWithBrowserSize = !1,
window.removeEventListener("resize", this._resize),
window.removeEventListener("orientationchange", this._orientationChange))
},
setResizeCallback: function(t) {
"function" != typeof t && null != t || (this._resizeCallback = t)
},
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 = s.availWidth(cc.game.frame)
, i = s.availHeight(cc.game.frame)
, n = e >= i;
!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) : (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)
},
_setViewportMeta: function(t, e) {
var i = document.getElementById("cocosMetaElement");
i && e && document.head.removeChild(i);
var n, r, s, a = document.getElementsByName("viewport"), o = a ? a[0] : null;
for (r in n = o ? o.content : "",
(i = i || document.createElement("meta")).id = "cocosMetaElement",
i.name = "viewport",
i.content = "",
t)
-1 == n.indexOf(r) ? n += "," + r + "=" + t[r] : e && (s = new RegExp(r + "s*=s*[^,]+"),
n = n.replace(s, r + "=" + t[r]));
/^,/.test(n) && (n = n.substr(1)),
i.content = n,
o && (o.content = n),
document.head.appendChild(i)
},
_adjustViewportMeta: function() {
this._isAdjustViewport && (this._setViewportMeta(s.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 (cc.warnID(9200),
this._antiAliasEnabled !== t)
if (this._antiAliasEnabled = t,
cc.game.renderType === cc.game.RENDER_TYPE_WEBGL)
cc.assetManager.assets.forEach((function(e) {
if (e instanceof cc.Texture2D) {
var i = cc.Texture2D.Filter;
t ? e.setFilters(i.LINEAR, i.LINEAR) : e.setFilters(i.NEAREST, i.NEAREST)
}
}
));
else if (cc.game.renderType === cc.game.RENDER_TYPE_CANVAS) {
var e = cc.game.canvas.getContext("2d");
e.imageSmoothingEnabled = t,
e.mozImageSmoothingEnabled = t
}
},
isAntiAliasEnabled: function() {
return this._antiAliasEnabled
},
enableAutoFullScreen: function(t) {
t && t !== this._autoFullScreen && cc.sys.isMobile ? (this._autoFullScreen = !0,
cc.screen.autoFullScreen(cc.game.frame)) : (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;
if (n && n.preApply(this),
cc.sys.isMobile && this._adjustViewportMeta(),
this._orientationChanging = !0,
this._resizing || this._initFrameSize(),
n) {
this._originalDesignResolutionSize.width = this._designResolutionSize.width = t,
this._originalDesignResolutionSize.height = this._designResolutionSize.height = e;
var s = n.apply(this, this._designResolutionSize);
if (s.scale && 2 === s.scale.length && (this._scaleX = s.scale[0],
this._scaleY = s.scale[1]),
s.viewport) {
var a = this._viewportRect
, o = this._visibleRect
, l = s.viewport;
a.x = l.x,
a.y = l.y,
a.width = l.width,
a.height = l.height,
o.x = 0,
o.y = 0,
o.width = l.width / this._scaleX,
o.height = l.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),
r.updateCameraViewport(),
cc.internal.inputManager._updateCanvasBoundingRect(),
this.emit("design-resolution-changed")
} else
cc.logID(2201)
} else
cc.errorID(2200)
},
getDesignResolutionSize: function() {
return cc.size(this._designResolutionSize.width, this._designResolutionSize.height)
},
setRealPixelResolution: function(t, e, i) {
this._setViewportMeta({
width: t
}, !0),
document.documentElement.style.width = t + "px",
document.body.style.width = t + "px",
document.body.style.left = "0px",
document.body.style.top = "0px",
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)
, l = Math.ceil(e * s + this._viewportRect.y)
, h = Math.ceil(i * r)
, c = Math.ceil(n * s)
, u = cc.game._renderContext;
if (!a) {
var _ = u.getParameter(u.SCISSOR_BOX);
a = cc.rect(_[0], _[1], _[2], _[3])
}
a.x === o && a.y === l && a.width === h && a.height === c || (a.x = o,
a.y = l,
a.width = h,
a.height = c,
u.scissor(o, l, h, c))
},
isScissorEnabled: function() {
return cc.game._renderContext.isEnabled(gl.SCISSOR_TEST)
},
getScissorRect: function() {
if (!a) {
var t = gl.getParameter(gl.SCISSOR_BOX);
a = cc.rect(t[0], t[1], t[2], t[3])
}
var e = 1 / this._scaleX
, i = 1 / this._scaleY;
return cc.rect((a.x - this._viewportRect.x) * e, (a.y - this._viewportRect.y) * i, a.width * e, a.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 = i.adjustedLeft ? i.adjustedLeft : i.left
, a = i.adjustedTop ? i.adjustedTop : i.top
, o = this._devicePixelRatio * (t - s)
, l = this._devicePixelRatio * (a + i.height - e);
return this._isRotated ? (r.x = cc.game.canvas.width - l,
r.y = o) : (r.x = o,
r.y = l),
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, a = this._scaleY, o = 0; o < t.length; o++)
i = (e = t[o])._point,
n = e._prevPoint,
i.x = (i.x - r.x) / s,
i.y = (i.y - r.y) / a,
n.x = (n.x - r.x) / s,
n.y = (n.y - r.y) / a
}
}),
cc.ContainerStrategy = cc.Class({
name: "ContainerStrategy",
preApply: function() {},
apply: function() {},
postApply: function() {},
_setupContainer: function(t, e, i) {
var n = cc.game.canvas;
this._setupStyle(t, e, i);
var r = t._devicePixelRatio = 1;
t.isRetinaEnabled() && (r = t._devicePixelRatio = Math.min(t._maxPixelRatio, window.devicePixelRatio || 1)),
n.width = e * r,
n.height = i * r
},
_setupStyle: function(t, e, i) {
var n = cc.game.canvas
, r = cc.game.container;
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"
},
_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 a = cc.rect((t - i) / 2, (e - n) / 2, i, n);
return cc.game.renderType,
cc.game.RENDER_TYPE_CANVAS,
this._result.scale = [r, s],
this._result.viewport = a,
this._result
},
preApply: function() {},
apply: function() {
return {
scale: [1, 1]
}
},
postApply: function() {}
}),
(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, a = cc.game.container.style, o = e.width, l = e.height, h = r / o, c = s / l;
h < c ? (i = r,
n = l * h) : (i = o * c,
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 ? a.margin = "0 0 0 " + s + "px" : a.margin = "0px",
a.paddingLeft = u + "px",
a.paddingRight = u + "px",
a.paddingTop = _ + "px",
a.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)
}
}))
, n = ("undefined" == typeof window ? global : window).__globalAdapter;
n && (n.adaptContainerStrategy && n.adaptContainerStrategy(cc.ContainerStrategy.prototype),
n.adaptView && n.adaptView(o.prototype)),
cc.ContainerStrategy.EQUAL_TO_FRAME = new t,
cc.ContainerStrategy.PROPORTION_TO_FRAME = new e,
cc.ContainerStrategy.ORIGINAL_CONTAINER = new i;
var r = 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)
}
})
, s = cc.Class({
name: "ShowAll",
extends: cc.ContentStrategy,
apply: function(t, e) {
var i, n, r = cc.game.canvas.width, s = cc.game.canvas.height, a = e.width, o = e.height, l = r / a, h = s / o, c = 0;
return l < h ? (i = r,
n = o * (c = l)) : (i = a * (c = h),
n = s),
this._buildResult(r, s, i, n, c, c)
}
})
, a = cc.Class({
name: "NoBorder",
extends: cc.ContentStrategy,
apply: function(t, e) {
var i, n, r, s = cc.game.canvas.width, a = cc.game.canvas.height, o = e.width, l = e.height, h = s / o, c = a / l;
return h < c ? (n = o * (i = c),
r = a) : (n = s,
r = l * (i = h)),
this._buildResult(s, a, n, r, i, i)
}
})
, l = 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
, a = n;
return this._buildResult(i, n, s, a, r, r)
}
})
, h = 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
, a = n;
return this._buildResult(i, n, s, a, r, r)
}
});
cc.ContentStrategy.EXACT_FIT = new r,
cc.ContentStrategy.SHOW_ALL = new s,
cc.ContentStrategy.NO_BORDER = new a,
cc.ContentStrategy.FIXED_HEIGHT = new l,
cc.ContentStrategy.FIXED_WIDTH = new h
}
)(),
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) {
return this._containerStrategy.apply(t, e),
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)
}
}),
n.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 o,
cc.winSize = cc.size(),
e.exports = cc.view
}
), {
"../event/event-target": 140,
"../platform/CCClass": 193,
"../platform/js": 214,
"../renderer": 224
}],
204: [(function() {
"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
, a = n + e;
this.topLeft.x = n,
this.topLeft.y = s,
this.topRight.x = a,
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 = a,
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 = a,
this.right.y = r + i / 2
}
}
}
), {}],
205: [(function(t, e) {
"use strict";
var i = t("./js")
, n = (t("./utils").isPlainEmptyObj_DEV,
"$_$");
function r(t, e) {
var n = e ? Object.create(e) : {};
return i.value(t, "__attrs__", n),
n
}
function s(t) {
if ("function" != typeof t)
return r(t, a(t.constructor));
for (var e, i = cc.Class.getInheritanceChain(t), n = i.length - 1; n >= 0; n--) {
var s = i[n];
s.hasOwnProperty("__attrs__") && s.__attrs__ || r(s, (e = i[n + 1]) && e.__attrs__)
}
return r(t, (e = i[0]) && e.__attrs__),
t.__attrs__
}
function a(t) {
return t.hasOwnProperty("__attrs__") && t.__attrs__ || s(t)
}
function o(t, e) {
this.name = t,
this.default = e
}
o.prototype.toString = function() {
return this.name
}
,
cc.Integer = new o("Integer",0),
cc.Float = new o("Float",0),
cc.Boolean = new o("Boolean",!1),
cc.String = new o("String",""),
e.exports = {
PrimitiveType: o,
attr: function(t, e) {
var i = a(t)
, r = e + n
, s = {};
for (var o in i)
o.startsWith(r) && (s[o.slice(r.length)] = i[o]);
return s
},
getClassAttrs: a,
setClassAttr: function(t, e, i, r) {
a(t)[e + n + i] = r
},
DELIMETER: n,
getTypeChecker_ET: !1,
getObjTypeChecker_ET: !1,
ScriptUuid: {}
}
}
), {
"./CCClass": 193,
"./js": 214,
"./utils": 217
}],
206: [(function(t, e) {
"use strict";
var i = t("./js")
, n = i.array.fastRemoveAt;
function r() {}
function s() {
this.callback = r,
this.target = void 0,
this.once = !1
}
s.prototype.set = function(t, e, i) {
this.callback = t,
this.target = e,
this.once = !!i
}
;
var a = new i.Pool(function(t) {
return t.callback = r,
t.target = void 0,
t.once = !1,
!0
}
,32);
function o() {
this.callbackInfos = [],
this.isInvoking = !1,
this.containCanceled = !1
}
a.get = function() {
return this._get() || new s
}
;
var l = o.prototype;
l.removeByCallback = function(t) {
for (var e = 0; e < this.callbackInfos.length; ++e) {
var i = this.callbackInfos[e];
i && i.callback === t && (a.put(i),
n(this.callbackInfos, e),
--e)
}
}
,
l.removeByTarget = function(t) {
for (var e = 0; e < this.callbackInfos.length; ++e) {
var i = this.callbackInfos[e];
i && i.target === t && (a.put(i),
n(this.callbackInfos, e),
--e)
}
}
,
l.cancel = function(t) {
var e = this.callbackInfos[t];
e && (a.put(e),
this.callbackInfos[t] = null),
this.containCanceled = !0
}
,
l.cancelAll = function() {
for (var t = 0; t < this.callbackInfos.length; t++) {
var e = this.callbackInfos[t];
e && (a.put(e),
this.callbackInfos[t] = null)
}
this.containCanceled = !0
}
,
l.purgeCanceled = function() {
for (var t = this.callbackInfos.length - 1; t >= 0; --t)
this.callbackInfos[t] || n(this.callbackInfos, t);
this.containCanceled = !1
}
,
l.clear = function() {
this.cancelAll(),
this.callbackInfos.length = 0,
this.isInvoking = !1,
this.containCanceled = !1
}
;
var h = new i.Pool(function(t) {
return t.callbackInfos = [],
t.isInvoking = !1,
t.containCanceled = !1,
!0
}
,16);
function c() {
this._callbackTable = i.createMap(!0)
}
h.get = function() {
return this._get() || new o
}
,
(l = c.prototype).on = function(t, e, i, n) {
var r = this._callbackTable[t];
r || (r = this._callbackTable[t] = h.get());
var s = a.get();
s.set(e, i, n),
r.callbackInfos.push(s)
}
,
l.hasEventListener = function(t, e, i) {
var n = this._callbackTable[t];
if (!n)
return !1;
var r = n.callbackInfos;
if (!e) {
if (n.isInvoking) {
for (var s = 0; s < r.length; ++s)
if (r[s])
return !0;
return !1
}
return r.length > 0
}
for (var a = 0; a < r.length; ++a) {
var o = r[a];
if (o && o.callback === e && o.target === i)
return !0
}
return !1
}
,
l.removeAll = function(t) {
if ("string" == typeof t) {
var e = this._callbackTable[t];
e && (e.isInvoking ? e.cancelAll() : (e.clear(),
h.put(e),
delete this._callbackTable[t]))
} else if (t)
for (var i in this._callbackTable) {
var n = this._callbackTable[i];
if (n.isInvoking)
for (var r = n.callbackInfos, s = 0; s < r.length; ++s) {
var a = r[s];
a && a.target === t && n.cancel(s)
}
else
n.removeByTarget(t)
}
}
,
l.off = function(t, e, i) {
var r = this._callbackTable[t];
if (r)
for (var s = r.callbackInfos, o = 0; o < s.length; ++o) {
var l = s[o];
if (l && l.callback === e && l.target === i) {
r.isInvoking ? r.cancel(o) : (n(s, o),
a.put(l));
break
}
}
}
,
l.emit = function(t, e, i, n, r, s) {
var a = this._callbackTable[t];
if (a) {
var o = !a.isInvoking;
a.isInvoking = !0;
for (var l = a.callbackInfos, h = 0, c = l.length; h < c; ++h) {
var u = l[h];
if (u) {
var _ = u.target
, f = u.callback;
u.once && this.off(t, f, _),
_ ? f.call(_, e, i, n, r, s) : f(e, i, n, r, s)
}
}
o && (a.isInvoking = !1,
a.containCanceled && a.purgeCanceled())
}
}
,
e.exports = c
}
), {
"./js": 214
}],
207: [(function(t, e) {
"use strict";
function i(t, e) {
for (var n = 0; n < e.length; n++) {
var r = e[n];
Array.isArray(r) ? i(t, r) : t.push(r)
}
}
e.exports = {
flattenCodeArray: function(t) {
var e = [];
return i(e, t),
e.join("")
}
}
}
), {}],
208: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = O,
i.unpackJSONs = function(t, e) {
if (t[0] < 1)
throw new Error(cc.debug.getError(5304, t[0]));
I(t, !0, e),
P(t);
for (var i = new L(t[0]), n = t[1], r = t[2], s = t[3], a = t[4], o = t[v], l = 0; l < o.length; ++l)
o[l].unshift(i, n, r, s, a);
return o
}
,
i.packCustomObjData = function(t, e, i) {
return [1, f, f, [t], f, i ? [e, -1] : [e], [0], f, [], [], []]
}
,
i.hasNativeDep = function(t) {
var e = t[5]
, i = e[e.length - 1];
return "number" == typeof i && i < 0
}
,
i.getDependUuidList = function(t) {
var e = t[1];
return t[10].map((function(t) {
return e[t]
}
))
}
;
var n = _(t("./js"))
, r = _(t("../value-types/vec2"))
, s = _(t("../value-types/vec3"))
, a = _(t("../value-types/vec4"))
, o = _(t("../value-types/color"))
, l = _(t("../value-types/size"))
, h = _(t("../value-types/rect"))
, c = _(t("../value-types/quat"))
, u = _(t("../value-types/mat4"));
function _(t) {
return t && t.__esModule ? t : {
default: t
}
}
var f = 0
, d = [r.default, s.default, a.default, c.default, o.default, l.default, h.default, u.default];
function p(t, e) {
t.x = e[1],
t.y = e[2],
t.z = e[3],
t.w = e[4]
}
var m = [function(t, e) {
t.x = e[1],
t.y = e[2]
}
, function(t, e) {
t.x = e[1],
t.y = e[2],
t.z = e[3]
}
, p, p, function(t, e) {
t._val = e[1]
}
, function(t, e) {
t.width = e[1],
t.height = e[2]
}
, function(t, e) {
t.x = e[1],
t.y = e[2],
t.width = e[3],
t.height = e[4]
}
, function(t, e) {
u.default.fromArray(t, e, 1)
}
]
, y = 0
, v = 5
, g = (function() {
function t() {
this.uuidObjList = null,
this.uuidPropList = null,
this.uuidList = null
}
var e = t.prototype;
return e.init = function(t) {
this.uuidObjList = t[8],
this.uuidPropList = t[9],
this.uuidList = t[10]
}
,
e.reset = function() {
this.uuidList = null,
this.uuidObjList = null,
this.uuidPropList = null
}
,
e.push = function(t, e, i) {
this.uuidObjList.push(t),
this.uuidPropList.push(e),
this.uuidList.push(i)
}
,
t
}
)();
function A(t, e, i) {
for (var n = t.length - 1, r = 0, s = 3 * t[n]; r < s; r += 3) {
var a = t[r]
, o = e[t[r + 2]]
, l = t[r + 1];
l >= 0 ? a[i[l]] = o : a[~l] = o
}
for (; r < n; r += 3) {
var h = e[t[r]]
, c = e[t[r + 2]]
, u = t[r + 1];
u >= 0 ? h[i[u]] = c : h[~u] = c
}
}
function x(t, e) {
for (var i = t[4][e[0]], n = i[0], r = new (0,
n[0]), s = n[1], a = n[2], o = i[i.length - 1], l = 1; l < o; ++l)
r[s[i[l]]] = e[l];
for (; l < e.length; ++l) {
var h = s[i[l]]
, c = n[i[l] + a];
(0,
E[c])(t, r, h, e[l])
}
return r
}
function b(t, e, i) {
var r = new e;
return r._deserialize ? r._deserialize(i, t[0]) : cc.errorID(5303, n.default.getClassName(e)),
r
}
function C(t, e, i, n) {
n >= 0 ? e[i] = t[5][n] : t[7][3 * ~n] = e
}
function T(t) {
return function(e, i, n, r) {
i[n] = r;
for (var s = 0; s < r.length; ++s)
t(e, r, s, r[s])
}
}
function S(t, e, i, n) {
e[i] = null,
t[8][n] = e
}
function w(t, e, i, n) {
e[i] = x(t, n)
}
g.pool = new n.default.Pool(function(t) {
t.reset()
}
,5),
g.pool.get = function() {
return this._get() || new g
}
;
var E = new Array(13);
function M(t) {
var e = t[5]
, i = t[6]
, n = 0 === i ? 0 : i.length
, r = e[e.length - 1]
, s = e.length - n;
"number" != typeof r ? r = 0 : (r < 0 && (r = ~r),
--s);
for (var a = 0; a < s; ++a)
e[a] = x(t, e[a]);
for (var o = t[3], l = 0; l < n; ++l,
++a) {
var h = i[l]
, c = e[a];
if (h >= 0) {
var u = o[h];
e[a] = b(t, u, c)
} else
(0,
E[h = ~h])(t, e, a, c)
}
return r
}
function D(t, e) {
return t || O.reportMissingClass(e),
Object
}
function B(t, e, i, n, r, s) {
var a = t(e);
if (!a) {
if (r)
return void (i[n] = (function(e, i, n) {
return function() {
var r = t(n) || D(s, n);
return e[i] = r,
new r
}
}
)(i, n, e));
a = D(s, e)
}
i[n] = a
}
function I(t, e, i) {
for (var r = i || n.default._getClassById, s = t[3], a = 0; a < s.length; ++a) {
var o = s[a];
"string" != typeof o ? B(r, o[0], o, y, e, i) : B(r, o, s, a, e, i)
}
}
function P(t) {
var e = t[4];
if (e)
for (var i = t[3], n = 0; n < e.length; ++n) {
var r = e[n];
r[0] = i[r[0]]
}
}
function R(t) {
for (var e = t[5], i = t[2], n = t[1], r = t[8], s = t[9], a = t[10], o = 0; o < r.length; ++o) {
var l = r[o];
"number" == typeof l && (r[o] = e[l]);
var h = s[o];
"number" == typeof h && (h = h >= 0 ? i[h] : ~h,
s[o] = h);
var c = a[o];
"number" == typeof c && (a[o] = n[c])
}
}
function O(t, e, i) {
"string" == typeof t && (t = JSON.parse(t));
var n = !e;
(e = e || g.pool.get()).init(t),
i = i || {};
var r = t[0]
, s = !1;
if ("object" == typeof r && (s = r.preprocessed,
r = r.version),
r < 1)
throw new Error(cc.debug.getError(5304, r));
i._version = r,
i.result = e,
t[0] = i,
s || (I(t, !1, i.classFinder),
P(t)),
cc.game._isCloning = !0;
var a = t[5]
, o = M(t);
return cc.game._isCloning = !1,
t[7] && A(t[7], a, t[2]),
R(t),
n && g.pool.put(e),
a[o]
}
E[0] = function(t, e, i, n) {
e[i] = n
}
,
E[1] = C,
E[2] = T(C),
E[3] = T(S),
E[4] = w,
E[5] = function(t, e, i, n) {
m[n[0]](e[i], n)
}
,
E[6] = S,
E[7] = function(t, e, i, n) {
e[i].set(n)
}
,
E[8] = function(t, e, i, n) {
var r = new d[n[0]];
m[n[0]](r, n),
e[i] = r
}
,
E[9] = T(w),
E[10] = function(t, e, i, n) {
var r = t[3][n[0]];
e[i] = b(t, r, n[1])
}
,
E[11] = function(t, e, i, n) {
var r = n[0];
e[i] = r;
for (var s = 1; s < n.length; s += 3) {
var a = n[s]
, o = n[s + 1]
, l = n[s + 2];
(0,
E[o])(t, r, a, l)
}
}
,
E[12] = function(t, e, i, n) {
var r = n[0];
e[i] = r;
for (var s = 0; s < r.length; ++s) {
var a = r[s]
, o = n[s + 1];
0 !== o && (0,
E[o])(t, r, s, a)
}
}
,
O.Details = g;
var L = function(t) {
this.preprocessed = !0,
this.version = t
}
}
), {
"../value-types/color": 281,
"../value-types/mat4": 284,
"../value-types/quat": 285,
"../value-types/rect": 286,
"../value-types/size": 287,
"../value-types/vec2": 291,
"../value-types/vec3": 292,
"../value-types/vec4": 293,
"./js": 214
}],
209: [(function(t) {
"use strict";
var e, i = (e = t("./deserialize-compiled")) && e.__esModule ? e : {
default: e
};
i.default.reportMissingClass = function(t) {
cc.warnID(5302, t)
}
,
cc.deserialize = i.default
}
), {
"./deserialize-compiled": 208,
"./deserialize-editor": void 0
}],
210: [(function(t, e) {
"use strict";
var i = ".";
function n(t) {
this.id = 0 | 998 * Math.random(),
this.prefix = t ? t + i : ""
}
n.prototype.getNewId = function() {
return this.prefix + ++this.id
}
,
n.global = new n("global"),
e.exports = n
}
), {}],
211: [(function(t) {
"use strict";
t("./js"),
t("./CCClass"),
t("./CCClassDecorator"),
t("./CCEnum"),
t("./CCObject"),
t("./callbacks-invoker"),
t("./deserialize"),
t("./instantiate"),
t("./instantiate-jit"),
t("./requiring-frame"),
t("./CCSys"),
t("./CCMacro"),
t("./CCVisibleRect")
}
), {
"./CCClass": 193,
"./CCClassDecorator": 194,
"./CCEnum": 195,
"./CCMacro": 198,
"./CCObject": 199,
"./CCSys": 202,
"./CCVisibleRect": 204,
"./callbacks-invoker": 206,
"./deserialize": 209,
"./instantiate": 213,
"./instantiate-jit": 212,
"./js": 214,
"./requiring-frame": 216
}],
212: [(function(t, e) {
"use strict";
var i = t("./CCObject")
, n = i.Flags.Destroyed
, r = i.Flags.PersistentMask
, s = t("./attribute")
, a = t("./js")
, o = t("./CCClass")
, l = t("./compiler")
, h = s.DELIMETER + "default"
, c = o.IDENTIFIER_RE
, u = o.escapeForJS
, _ = "var "
, f = "o"
, d = "t"
, p = {
"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
};
try {
!Float32Array.name && (Float32Array.name = "Float32Array"),
!Float64Array.name && (Float64Array.name = "Float64Array"),
!Int8Array.name && (Int8Array.name = "Int8Array"),
!Int16Array.name && (Int16Array.name = "Int16Array"),
!Int32Array.name && (Int32Array.name = "Int32Array"),
!Uint8Array.name && (Uint8Array.name = "Uint8Array"),
!Uint16Array.name && (Uint16Array.name = "Uint16Array"),
!Uint32Array.name && (Uint32Array.name = "Uint32Array"),
!Uint8ClampedArray.name && (Uint8ClampedArray.name = "Uint8ClampedArray")
} catch (S) {}
function m(t) {
if (t === Float32Array)
return "Float32Array";
if (t === Float64Array)
return "Float64Array";
if (t === Int8Array)
return "Int8Array";
if (t === Int16Array)
return "Int16Array";
if (t === Int32Array)
return "Int32Array";
if (t === Uint8Array)
return "Uint8Array";
if (t === Uint16Array)
return "Uint16Array";
if (t === Uint32Array)
return "Uint32Array";
if (t === Uint8ClampedArray)
return "Uint8ClampedArray";
throw new Error("Unknown TypedArray to instantiate: " + t)
}
function y(t, e) {
this.varName = t,
this.expression = e
}
function v(t, e) {
return e instanceof y ? new y(e.varName,t + e.expression) : t + e
}
function g(t, e, i) {
Array.isArray(i) ? (i[0] = v(e, i[0]),
t.push(i)) : t.push(v(e, i) + ";")
}
function A(t) {
this._exps = [],
this._targetExp = t
}
function x(t, e) {
if ("function" == typeof t)
try {
t = t()
} catch (S) {
return !1
}
if (t === e)
return !0;
if (t && e && "object" == typeof t && "object" == typeof e && t.constructor === e.constructor)
if (t instanceof cc.ValueType) {
if (t.equals(e))
return !0
} else {
if (Array.isArray(t))
return 0 === t.length && 0 === e.length;
if (t.constructor === Object)
return a.isEmptyObject(t) && a.isEmptyObject(e)
}
return !1
}
function b(t) {
return c.test(t) ? "." + t : "[" + u(t) + "]"
}
function C(t, e) {
var i;
this.parent = e,
this.objsToClear_iN$t = [],
this.codeArray = [],
this.objs = [],
this.funcs = [],
this.funcModuleCache = a.createMap(),
a.mixin(this.funcModuleCache, p),
this.globalVariables = [],
this.globalVariableId = 0,
this.localVariableId = 0,
this.codeArray.push(_ + f + "," + d + ";", "if(R){", f + "=R;", "}else{", f + "=R=new " + this.getFuncModule(t.constructor, !0) + "();", "}"),
a.value(t, "_iN$t", {
globalVar: "R"
}, !0),
this.objsToClear_iN$t.push(t),
this.enumerateObject(this.codeArray, t),
this.globalVariables.length > 0 && (i = _ + this.globalVariables.join(",") + ";");
var n = l.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
}
y.prototype.toString = function() {
return _ + this.varName + "=" + this.expression + ";"
}
,
A.prototype.append = function(t, e) {
this._exps.push([t, e])
}
,
A.prototype.writeCode = function(t) {
var e;
if (this._exps.length > 1)
t.push(d + "=" + this._targetExp + ";"),
e = d;
else {
if (1 !== this._exps.length)
return;
e = this._targetExp
}
for (var i = 0; i < this._exps.length; i++) {
var n = this._exps[i];
g(t, e + b(n[0]) + "=", n[1])
}
}
,
A.pool = new a.Pool(function(t) {
t._exps.length = 0,
t._targetExp = null
}
,1),
A.pool.get = function(t) {
var e = this._get() || new A;
return e._targetExp = t,
e
}
;
var T = C.prototype;
T.getFuncModule = function(t, e) {
var i = a.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)())
return this.funcModuleCache[i] = i,
i
} catch (S) {}
}
}
var s = this.funcs.indexOf(t);
s < 0 && (s = this.funcs.length,
this.funcs.push(t));
var o = "F[" + s + "]";
return e && (o = "(" + o + ")"),
this.funcModuleCache[i] = o,
o
}
,
T.getObjRef = function(t) {
var e = this.objs.indexOf(t);
return e < 0 && (e = this.objs.length,
this.objs.push(t)),
"O[" + e + "]"
}
,
T.setValueType = function(t, e, i, n) {
var r = A.pool.get(n)
, s = e.constructor.__props__;
s || (s = Object.keys(e));
for (var a = 0; a < s.length; a++) {
var o = s[a]
, l = i[o];
if (e[o] !== l) {
var h = this.enumerateField(i, o, l);
r.append(o, h)
}
}
r.writeCode(t),
A.pool.put(r)
}
,
T.enumerateCCClass = function(t, e, i) {
for (var n = i.__values__, r = s.getClassAttrs(i), a = 0; a < n.length; a++) {
var l = n[a]
, c = e[l]
, u = r[l + h];
if (!x(u, c))
if ("object" == typeof c && c instanceof cc.ValueType && (u = o.getDefault(u)) && u.constructor === c.constructor) {
var _ = f + b(l);
this.setValueType(t, u, c, _)
} else
this.setObjProp(t, e, l, c)
}
}
,
T.instantiateArray = function(t) {
if (0 === t.length)
return "[]";
var e = "a" + ++this.localVariableId
, i = [new y(e,"new Array(" + t.length + ")")];
a.value(t, "_iN$t", {
globalVar: "",
source: i
}, !0),
this.objsToClear_iN$t.push(t);
for (var n = 0; n < t.length; ++n)
g(i, e + "[" + n + "]=", this.enumerateField(t, n, t[n]));
return i
}
,
T.instantiateTypedArray = function(t) {
var e = t.constructor.name || m(t.constructor);
if (0 === t.length)
return "new " + e;
var i = "a" + ++this.localVariableId
, n = [new y(i,"new " + e + "(" + t.length + ")")];
t._iN$t = {
globalVar: "",
source: n
},
this.objsToClear_iN$t.push(t);
for (var r = 0; r < t.length; ++r)
0 !== t[r] && g(n, i + "[" + r + "]=", t[r]);
return n
}
,
T.enumerateField = function(t, e, n) {
if ("object" == typeof n && n) {
var s = n._iN$t;
if (s) {
var a = s.globalVar;
if (!a) {
a = s.globalVar = "v" + ++this.globalVariableId,
this.globalVariables.push(a);
var o = s.source[0];
s.source[0] = v(a + "=", o)
}
return a
}
return ArrayBuffer.isView(n) ? this.instantiateTypedArray(n) : Array.isArray(n) ? this.instantiateArray(n) : this.instantiateObj(n)
}
return "function" == typeof n ? this.getFuncModule(n) : "string" == typeof n ? u(n) : ("_objFlags" === e && t instanceof i && (n &= r),
n)
}
,
T.setObjProp = function(t, e, i, n) {
g(t, f + b(i) + "=", this.enumerateField(e, i, n))
}
,
T.enumerateObject = function(t, e) {
var i = e.constructor;
if (cc.Class._isCCClass(i))
this.enumerateCCClass(t, e, i);
else
for (var n in e)
if (e.hasOwnProperty(n) && (95 !== n.charCodeAt(0) || 95 !== n.charCodeAt(1) || "__type__" === n)) {
var r = e[n];
"object" == typeof r && r && r === e._iN$t || this.setObjProp(t, e, n, r)
}
}
,
T.instantiateObj = function(t) {
if (t instanceof cc.ValueType)
return o.getNewValueTypeCode(t);
if (t instanceof cc.Asset)
return this.getObjRef(t);
if (t._objFlags & n)
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 y(f,"new " + this.getFuncModule(i, !0) + "()")
} else if (i === Object)
e = new y(f,"{}");
else {
if (i)
return this.getObjRef(t);
e = new y(f,"Object.create(null)")
}
var r = [e];
return a.value(t, "_iN$t", {
globalVar: "",
source: r
}, !0),
this.objsToClear_iN$t.push(t),
this.enumerateObject(r, t),
["(function(){", r, "return o;})();"]
}
,
e.exports = {
compile: function(t) {
return new C(t,t instanceof cc._BaseNode && t).result
},
equalsToDefault: x
}
}
), {
"./CCClass": 193,
"./CCObject": 199,
"./attribute": 205,
"./compiler": 207,
"./js": 214
}],
213: [(function(t, e) {
"use strict";
var i = t("./CCObject")
, n = t("../value-types/value-type")
, r = i.Flags.Destroyed
, s = i.Flags.PersistentMask
, a = t("./utils").isDomNode
, o = t("./js");
function l(t, e) {
if (!e) {
if ("object" != typeof t || Array.isArray(t))
return null;
if (!t)
return null;
if (!cc.isValid(t))
return null
}
var n;
if (t instanceof i) {
if (t._instantiate)
return cc.game._isCloning = !0,
n = t._instantiate(null, !0),
cc.game._isCloning = !1,
n;
if (t instanceof cc.Asset)
return null
}
return cc.game._isCloning = !0,
n = c(t),
cc.game._isCloning = !1,
n
}
var h = [];
function c(t, e) {
if (Array.isArray(t))
return null;
if (a && a(t))
return null;
var i;
_(t, i = t._iN$t ? t._iN$t : t.constructor ? new (0,
t.constructor) : Object.create(null), e);
for (var n = 0, r = h.length; n < r; ++n)
h[n]._iN$t = null;
return h.length = 0,
i
}
function u(t, e, i, r) {
for (var s = t.__values__, a = 0; a < s.length; a++) {
var o = s[a]
, l = e[o];
if ("object" == typeof l && l) {
var h = i[o];
h instanceof n && h.constructor === l.constructor ? h.set(l) : i[o] = l._iN$t || f(l, r)
} else
i[o] = l
}
}
function _(t, e, n) {
o.value(t, "_iN$t", e, !0),
h.push(t);
var r = t.constructor;
if (cc.Class._isCCClass(r))
u(r, t, e, n);
else
for (var a in t)
if (t.hasOwnProperty(a) && (95 !== a.charCodeAt(0) || 95 !== a.charCodeAt(1) || "__type__" === a)) {
var l = t[a];
if ("object" == typeof l && l) {
if (l === e)
continue;
e[a] = l._iN$t || f(l, n)
} else
e[a] = l
}
t instanceof i && (e._objFlags &= s)
}
function f(t, e) {
if (t instanceof n)
return t.clone();
if (t instanceof cc.Asset)
return t;
var i;
if (ArrayBuffer.isView(t)) {
var s = t.length;
i = new t.constructor(s),
t._iN$t = i,
h.push(t);
for (var a = 0; a < s; ++a)
i[a] = t[a];
return i
}
if (Array.isArray(t)) {
var l = t.length;
i = new Array(l),
o.value(t, "_iN$t", i, !0),
h.push(t);
for (var c = 0; c < l; ++c) {
var u = t[c];
i[c] = "object" == typeof u && u ? u._iN$t || f(u, e) : u
}
return i
}
if (t._objFlags & r)
return null;
var d = t.constructor;
if (cc.Class._isCCClass(d)) {
if (e)
if (e instanceof cc.Component) {
if (t instanceof cc._BaseNode || t instanceof cc.Component)
return t
} else if (e instanceof cc._BaseNode)
if (t instanceof cc._BaseNode) {
if (!t.isChildOf(e))
return t
} else if (t instanceof cc.Component && !t.node.isChildOf(e))
return t;
i = new d
} else if (d === Object)
i = {};
else {
if (d)
return t;
i = Object.create(null)
}
return _(t, i, e),
i
}
l._clone = c,
cc.instantiate = l,
e.exports = l
}
), {
"../value-types/value-type": 290,
"./CCObject": 199,
"./js": 214,
"./utils": 217
}],
214: [(function(t, e) {
"use strict";
var i = new (t("./id-generater"))("TmpCId.");
function n(t, e) {
for (; t; ) {
var i = Object.getOwnPropertyDescriptor(t, e);
if (i)
return i;
t = Object.getPrototypeOf(t)
}
return null
}
function r(t, e, i) {
var r = n(e, t);
Object.defineProperty(i, t, r)
}
var s = {
isNumber: function(t) {
return "number" == typeof t || t instanceof Number
},
isString: function(t) {
return "string" == typeof t || t instanceof String
},
addon: function(t) {
t = t || {};
for (var e = 1, i = arguments.length; e < i; e++) {
var n = arguments[e];
if (n) {
if ("object" != typeof n) {
cc.errorID(5402, n);
continue
}
for (var s in n)
s in t || r(s, n, t)
}
}
return t
},
mixin: function(t) {
t = t || {};
for (var e = 1, i = arguments.length; e < i; e++) {
var n = arguments[e];
if (n) {
if ("object" != typeof n) {
cc.errorID(5403, n);
continue
}
for (var s in n)
r(s, n, t)
}
}
return t
},
extend: function(t, e) {
for (var i in e)
e.hasOwnProperty(i) && (t[i] = e[i]);
return t.prototype = Object.create(e.prototype, {
constructor: {
value: t,
writable: !0,
configurable: !0
}
}),
t
},
getSuper: function(t) {
var e = t.prototype
, i = e && Object.getPrototypeOf(e);
return i && i.constructor
},
isChildClassOf: function(t, e) {
if (t && e) {
if ("function" != typeof t)
return !1;
if ("function" != typeof e)
return !1;
if (t === e)
return !0;
for (; ; ) {
if (!(t = s.getSuper(t)))
return !1;
if (t === e)
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: n
}
, a = {
value: void 0,
enumerable: !1,
writable: !1,
configurable: !0
};
s.value = function(t, e, i, n, r) {
a.value = i,
a.writable = n,
a.enumerable = r,
Object.defineProperty(t, e, a),
a.value = void 0
}
;
var o = {
get: null,
set: null,
enumerable: !1
};
s.getset = function(t, e, i, n, r, s) {
"function" != typeof n && (r = n,
n = void 0),
o.get = i,
o.set = n,
o.enumerable = r,
o.configurable = s,
Object.defineProperty(t, e, o),
o.get = null,
o.set = null
}
;
var l = {
get: null,
enumerable: !1,
configurable: !1
};
s.get = function(t, e, i, n, r) {
l.get = i,
l.enumerable = n,
l.configurable = r,
Object.defineProperty(t, e, l),
l.get = null
}
;
var h = {
set: null,
enumerable: !1,
configurable: !1
};
s.set = function(t, e, i, n, r) {
h.set = i,
h.enumerable = n,
h.configurable = r,
Object.defineProperty(t, e, h),
h.set = null
}
,
s.getClassName = function(t) {
if ("function" == typeof t) {
var e = t.prototype;
if (e && e.hasOwnProperty("__classname__") && e.__classname__)
return e.__classname__;
var i = "";
if (t.name && (i = t.name),
t.toString) {
var n, r = t.toString();
(n = "[" === r.charAt(0) ? r.match(/\[\w+\s*(\w+)\]/) : r.match(/function\s*(\w+)/)) && 2 === n.length && (i = n[1])
}
return "Object" !== i ? i : ""
}
return t && t.constructor ? s.getClassName(t.constructor) : ""
}
,
(function() {
var t = {}
, e = {};
function n(t, e, i) {
return s.getset(s, e, (function() {
return Object.assign({}, i)
}
), (function(t) {
s.clear(i),
Object.assign(i, t)
}
)),
function(e, n) {
if (n.prototype.hasOwnProperty(t) && delete i[n.prototype[t]],
s.value(n.prototype, t, e),
e) {
var r = i[e];
if (r && r !== n) {
var a = "A Class already exists with the same " + t + ' : "' + e + '".';
cc.error(a)
} else
i[e] = n
}
}
}
s._setClassId = n("__cid__", "_registeredClassIds", t);
var r = n("__classname__", "_registeredClassNames", e);
s.setClassName = function(t, e) {
if (r(t, e),
!e.prototype.hasOwnProperty("__cid__")) {
var n = t || i.getNewId();
n && s._setClassId(n, e)
}
}
,
s.unregisterClass = function() {
for (var i = 0; i < arguments.length; i++) {
var n = arguments[i].prototype
, r = n.__cid__;
r && delete t[r];
var s = n.__classname__;
s && delete e[s]
}
}
,
s._getClassById = function(e) {
return t[e]
}
,
s.getClassByName = function(t) {
return e[t]
}
,
s._getClassId = function(t, e) {
if (e = void 0 === e || e,
"function" == typeof t && t.prototype.hasOwnProperty("__cid__"))
return t.prototype.__cid__;
if (t && t.constructor) {
var i = t.constructor.prototype;
if (i && i.hasOwnProperty("__cid__"))
return t.__cid__
}
return ""
}
}
)(),
s.obsolete = function(t, e, i, n) {
var r = /([^.]+)$/
, a = r.exec(e)[0]
, o = r.exec(i)[0];
function l() {
return this[o]
}
n ? s.getset(t, a, l, (function(t) {
this[o] = t
}
)) : s.get(t, a, l)
}
,
s.obsoletes = function(t, e, i, n) {
for (var r in i) {
var a = i[r];
s.obsolete(t, e + "." + r, a, n)
}
}
;
var c = /(%d)|(%s)/
, u = /%s/;
function _(t, e) {
t.splice(e, 1)
}
function f(t, e) {
var i = t.indexOf(e);
return i >= 0 && (_(t, i),
!0)
}
function d(t, e) {
void 0 === e && (e = t,
t = null),
this.get = null,
this.count = 0,
this._pool = new Array(e),
this._cleanup = t
}
s.formatStr = function() {
var t = arguments.length;
if (0 === t)
return "";
var e = arguments[0];
if (1 === t)
return "" + e;
var i = "string" == typeof e && c.test(e);
if (i)
for (var n = 1; n < t; ++n) {
var r = arguments[n]
, s = "number" == typeof r ? c : u;
if (s.test(e)) {
var a = "" + r;
e = e.replace(s, a)
} else
e += " " + r
}
else
for (var o = 1; o < t; ++o)
e += " " + arguments[o];
return e
}
,
s.shiftArguments = function() {
for (var t = arguments.length - 1, e = new Array(t), i = 0; i < t; ++i)
e[i] = arguments[i + 1];
return e
}
,
s.createMap = function(t) {
var e = Object.create(null);
return t && (e["."] = !0,
e["/"] = !0,
delete e["."],
delete e["/"]),
e
}
,
s.array = {
remove: f,
fastRemove: function(t, e) {
var i = t.indexOf(e);
i >= 0 && (t[i] = t[t.length - 1],
--t.length)
},
removeAt: _,
fastRemoveAt: function(t, e) {
var i = t.length;
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))
return cc.logID(1300),
!1;
return !0
},
removeArray: function(t, e) {
for (var i = 0, n = e.length; i < n; i++)
f(t, e[i])
},
appendObjectsAt: function(t, e, i) {
return t.splice.apply(t, [i, 0].concat(e)),
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
},
MutableForwardIterator: t("../utils/mutable-forward-iterator")
},
d.prototype._get = function() {
if (this.count > 0) {
--this.count;
var t = this._pool[this.count];
return this._pool[this.count] = null,
t
}
return null
}
,
d.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
}
}
,
d.prototype.resize = function(t) {
t >= 0 && (this._pool.length = t,
this.count > t && (this.count = t))
}
,
s.Pool = d,
cc.js = s,
e.exports = s
}
), {
"../utils/mutable-forward-iterator": 268,
"./id-generater": 210
}],
215: [(function(t, e, i) {
"use strict";
var n = t("./js")
, r = t("./attribute")
, s = {
default: {},
serializable: {},
editorOnly: {},
formerlySerializedAs: {}
};
function a(t, e, i, n) {
if (!t.get && !t.set && 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)
}
;
var a = {};
for (var o in n[r] = a,
s) {
var l = s[o];
t.hasOwnProperty(o) && (a[o] = t[o],
l.canUsedInGet || delete t[o])
}
}
}
function o(t, e, i, n) {
if (Array.isArray(e)) {
if (!(e.length > 0))
return cc.errorID(5508, i, n);
t.type = e = e[0]
}
"function" == typeof e && (e === String ? t.type = cc.String : e === Boolean ? t.type = cc.Boolean : e === Number && (t.type = cc.Float))
}
function l(t, e, i) {
var n = t ? {
_short: !0
} : {
_short: !0,
default: e
};
return i && (n.type = i),
n
}
i.getFullFormOfProperty = function(t, e) {
return t && t.constructor === Object ? null : Array.isArray(t) && t.length > 0 ? l(e, [], t) : "function" == typeof t ? l(e, n.isChildClassOf(t, cc.ValueType) ? new t : null, t) : t instanceof r.PrimitiveType ? l(e, t.default) : l(e, t)
}
,
i.preprocessAttrs = function(t, e) {
for (var n in t) {
var r = t[n]
, s = i.getFullFormOfProperty(r, !1);
if (s && (r = t[n] = s),
r) {
var l = r.notify;
l && a(r, n, l, t),
"type"in r && o(r, r.type, e, n)
}
}
}
,
i.validateMethodWithProps = function(t) {
return "function" == typeof t || null === t
}
}
), {
"./CCClass": 193,
"./attribute": 205,
"./js": 214
}],
216: [(function() {
"use strict";
var t = [];
cc._RF = {
push: function(e, i, n) {
void 0 === n && (n = i,
i = ""),
t.push({
uuid: i,
script: n,
module: e,
exports: e.exports,
beh: null
})
},
pop: function() {
var e = t.pop()
, i = e.module
, n = i.exports;
if (n === e.exports) {
for (var r in n)
return;
i.exports = n = e.cls
}
},
peek: function() {
return t[t.length - 1]
}
}
}
), {}],
217: [(function(t, e) {
"use strict";
t("./js"),
e.exports = {
contains: function(t, e) {
if ("function" == typeof t.contains)
return t.contains(e);
if ("function" == typeof t.compareDocumentPosition)
return !!(16 & t.compareDocumentPosition(e));
var i = e.parentNode;
if (i)
do {
if (i === t)
return !0;
i = i.parentNode
} while (null !== i);return !1
},
isDomNode: "object" == typeof window && ("function" == typeof Node ? function(t) {
return t instanceof Node
}
: function(t) {
return t && "object" == typeof t && "number" == typeof t.nodeType && "string" == typeof t.nodeName
}
),
callInNextTick: function(t, e, i) {
t && setTimeout((function() {
t(e, i)
}
), 0)
}
}
}
), {
"./js": 214
}],
218: [(function(t) {
"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("./asset-manager"),
t("./CCDirector"),
t("./renderer"),
t("./platform/CCView"),
t("./platform/CCScreen"),
t("./CCScheduler"),
t("./event-manager")
}
), {
"./CCDirector": 27,
"./CCScheduler": 32,
"./asset-manager": 50,
"./event": 142,
"./event-manager": 138,
"./platform/CCInputExtension": 196,
"./platform/CCInputManager": 197,
"./platform/CCMacro": 198,
"./platform/CCScreen": 201,
"./platform/CCSys": 202,
"./platform/CCView": 203,
"./platform/js": 214,
"./renderer": 224,
"./utils": 266,
"./value-types": 282
}],
219: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n = a(t("./assembler"))
, r = a(t("./utils/dynamic-atlas/manager"))
, s = a(t("./webgl/render-data"));
function a(t) {
return t && t.__esModule ? t : {
default: t
}
}
function o(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)
}
}
function l(t) {
if (void 0 === t)
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return t
}
function h(t, e) {
return (h = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
t("../value-types");
var c = (function(t) {
var e, i;
function n() {
var e;
return (e = t.call(this) || this)._renderData = new s.default,
e._renderData.init(l(e)),
e.initData(),
e.initLocal(),
e
}
i = t,
(e = n).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
h(e, i);
var a, c, u = n.prototype;
return u.initData = function() {
this._renderData.createQuadData(0, this.verticesFloats, this.indicesCount)
}
,
u.initLocal = function() {
this._local = [],
this._local.length = 4
}
,
u.updateColor = function(t, e) {
var i = this._renderData.uintVDatas[0];
if (i) {
e = null != e ? e : t.node.color._val;
for (var n = this.floatsPerVert, r = this.colorOffset, s = i.length; r < s; r += n)
i[r] = e
}
}
,
u.getBuffer = function() {
return cc.renderer._handle._meshBuffer
}
,
u.updateWorldVerts = function(t) {
var e = this._local
, i = this._renderData.vDatas[0]
, n = t.node._worldMatrix.m
, r = n[0]
, s = n[1]
, a = n[4]
, o = n[5]
, l = n[12]
, h = n[13]
, c = e[0]
, u = e[2]
, _ = e[1]
, f = e[3]
, d = this.floatsPerVert
, p = 0;
if (1 === r && 0 === s && 0 === a && 1 === o)
i[p] = c + l,
i[p + 1] = _ + h,
i[p += d] = u + l,
i[p + 1] = _ + h,
i[p += d] = c + l,
i[p + 1] = f + h,
i[p += d] = u + l,
i[p + 1] = f + h;
else {
var m = r * c
, y = r * u
, v = s * c
, g = s * u
, A = a * _
, x = a * f
, b = o * _
, C = o * f;
i[p] = m + A + l,
i[p + 1] = v + b + h,
i[p += d] = y + A + l,
i[p + 1] = g + b + h,
i[p += d] = m + x + l,
i[p + 1] = v + C + h,
i[p += d] = y + x + l,
i[p + 1] = g + C + h
}
}
,
u.fillBuffers = function(t, e) {
e.worldMatDirty && this.updateWorldVerts(t);
var i = this._renderData
, n = i.vDatas[0]
, r = i.iDatas[0]
, s = this.getBuffer(e)
, a = s.request(this.verticesCount, this.indicesCount)
, o = a.byteOffset >> 2
, l = s._vData;
n.length + o > l.length ? l.set(n.subarray(0, l.length - o), o) : l.set(n, o);
for (var h = s._iData, c = a.indiceOffset, u = a.vertexOffset, _ = 0, f = r.length; _ < f; _++)
h[c++] = u + r[_]
}
,
u.packToDynamicAtlas = function(t, e) {
if (!e._original && r.default && e._texture.packable) {
var i = r.default.insertSpriteFrame(e);
i && e._setDynamicAtlasFrame(i)
}
var n = t._materials[0];
n && n.getProperty("texture") !== e._texture && (t._vertsDirty = !0,
t._updateMaterial())
}
,
a = n,
(c = [{
key: "verticesFloats",
get: function() {
return this.verticesCount * this.floatsPerVert
}
}]) && o(a.prototype, c),
n
}
)(n.default);
i.default = c,
cc.js.addon(c.prototype, {
floatsPerVert: 5,
verticesCount: 4,
indicesCount: 6,
uvOffset: 2,
colorOffset: 4
}),
cc.Assembler2D = c,
e.exports = i.default
}
), {
"../value-types": 282,
"./assembler": 221,
"./utils/dynamic-atlas/manager": 227,
"./webgl/render-data": 254
}],
220: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r = (n = t("../utils/pool")) && n.__esModule ? n : {
default: n
};
function s(t, e) {
return (s = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
var a = 0;
function o(t) {
return Object.getOwnPropertyDescriptor(t, "__assemblerId__") || (t.__assemblerId__ = ++a),
t.__assemblerId__
}
var l = new (function(t) {
var e, i;
function n() {
for (var e, i = arguments.length, n = new Array(i), r = 0; r < i; r++)
n[r] = arguments[r];
return (e = t.call.apply(t, [this].concat(n)) || this)._pool = {},
e
}
i = t,
(e = n).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
s(e, i);
var r = n.prototype;
return r.put = function(t) {
if (t && this.enabled) {
var e = o(t.constructor)
, i = this._pool;
i[e] || (i[e] = []),
this.count > this.maxSize || (this._clean(t),
i[e].push(t),
this.count++)
}
}
,
r.get = function(t) {
var e;
if (this.enabled) {
var i = this._pool
, n = o(t);
e = i[n] && i[n].pop()
}
return e ? this.count-- : e = new t,
e
}
,
r.clear = function() {
this._pool = {},
this.count = 0
}
,
r._clean = function(t) {
t._renderComp = null
}
,
n
}(r.default));
r.default.register("assembler", l);
var h = l;
i.default = h,
e.exports = i.default
}
), {
"../utils/pool": 269
}],
221: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r = t("./webgl/vertex-format"), s = (n = t("./assembler-pool")) && n.__esModule ? n : {
default: n
}, a = (function() {
function t() {
this._extendNative && this._extendNative()
}
var e = t.prototype;
return e.init = function(t) {
this._renderComp = t
}
,
e.updateRenderData = function() {}
,
e.fillBuffers = function() {}
,
e.getVfmt = function() {
return r.vfmtPosUvColor
}
,
t
}
)();
i.default = a,
a.register = function(t, e) {
t.__assembler__ = e
}
,
a.init = function(t) {
for (var e = t.constructor, i = e.__assembler__; !i; ) {
if (!(e = e.$super))
return void cc.warn("Can not find assembler for render component : [" + cc.js.getClassName(t) + "]");
i = e.__assembler__
}
if (i.getConstructor && (i = i.getConstructor(t)),
!t._assembler || t._assembler.constructor !== i) {
var n = s.default.get(i);
n.init(t),
t._assembler = n
}
}
,
cc.Assembler = a,
e.exports = i.default
}
), {
"./assembler-pool": 220,
"./webgl/vertex-format": 256
}],
222: [(function(t, e) {
"use strict";
var i = function(t) {
var e;
try {
e = t.getContext("2d")
} catch (i) {
return void console.error(i)
}
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
};
i.prototype._restoreTexture = function() {}
,
i.prototype.setViewport = function(t, e, i, n) {
this._vx === t && this._vy === e && this._vw === i && this._vh === n || (this._vx = t,
this._vy = e,
this._vw = i,
this._vh = n)
}
,
i.prototype.setScissor = function(t, e, i, n) {
this._sx === t && this._sy === e && this._sw === i && this._sh === n || (this._sx = t,
this._sy = e,
this._sw = i,
this._sh = n)
}
,
i.prototype.clear = function(t) {
var e = this._ctx;
e.clearRect(this._vx, this._vy, this._vw, this._vh),
!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))
}
,
i.prototype.resetDrawCalls = function() {
this._stats.drawcalls = 0
}
,
i.prototype.getDrawCalls = function() {
return this._stats.drawcalls
}
,
e.exports = i
}
), {}],
223: [(function(t, e) {
"use strict";
var i = function(t, e) {
this._device = t,
this._width = 4,
this._height = 4,
this._image = null,
e && (void 0 !== e.width && (this._width = e.width),
void 0 !== e.height && (this._height = e.height),
this.updateImage(e))
};
i.prototype.update = function(t) {
this.updateImage(t)
}
,
i.prototype.updateImage = function(t) {
if (t.images && t.images[0]) {
var e = t.images[0];
e && e !== this._image && (this._image = e)
}
}
,
i.prototype.destroy = function() {
this._image = null
}
,
e.exports = i
}
), {}],
224: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n = a(t("../../renderer/gfx"))
, r = a(t("../../renderer/core/input-assembler"))
, s = a(t("../../renderer/core/pass"));
function a(t) {
return t && t.__esModule ? t : {
default: t
}
}
var o = cc.renderer = {
Texture2D: null,
InputAssembler: r.default,
Pass: s.default,
renderEngine: null,
canvas: null,
device: null,
scene: null,
drawCalls: 0,
_handle: null,
_cameraNode: null,
_camera: null,
_forward: null,
_flow: null,
initWebGL: function(e, i) {
t("./webgl/assemblers");
var r = t("./webgl/model-batcher");
this.Texture2D = n.default.Texture2D,
this.canvas = e,
this._flow = cc.RenderFlow;
var s = t("../../renderer/scene/scene")
, a = t("../../renderer/renderers/forward-renderer");
this.device = new n.default.Device(e,i),
this.scene = new s;
var o, l = (o = this.device,
{
defaultTexture: new n.default.Texture2D(o,{
images: [],
width: 128,
height: 128,
wrapS: n.default.WRAP_REPEAT,
wrapT: n.default.WRAP_REPEAT,
format: n.default.TEXTURE_FMT_RGB8,
genMipmaps: !1
}),
programTemplates: [],
programChunks: {}
});
this._forward = new a(this.device,l),
this._handle = new r(this.device,this.scene),
this._flow.init(this._handle, this._forward)
},
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),
this._forward = new i.ForwardRenderer,
this._flow = cc.RenderFlow,
this._flow.init(this._handle, this._forward)
},
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, e) {
this.device.resetDrawCalls(),
t && (this._flow.render(t, e),
this.drawCalls = this.device.getDrawCalls())
},
clear: function() {
this._handle.reset(),
this._forward.clear()
}
};
i.default = o,
e.exports = i.default
}
), {
"../../renderer/core/input-assembler": 305,
"../../renderer/core/pass": 306,
"../../renderer/gfx": 315,
"../../renderer/renderers/forward-renderer": 334,
"../../renderer/scene/scene": 337,
"./canvas": void 0,
"./canvas/Device": 222,
"./canvas/Texture2D": 223,
"./webgl/assemblers": 236,
"./webgl/model-batcher": 252
}],
225: [(function(t, e) {
"use strict";
var i, n, r = 0, s = 1 << r++, a = 1 << r++, o = 1 << r++, l = 1 << r++, h = o | l, c = 1 << r++, u = 1 << r++, _ = 1 << r++, f = u | _, d = 1 << r++, p = 1 << r++, m = 1 << r++, y = 1 << r++, v = 0;
function g() {
this._func = S,
this._next = null
}
var A = g.prototype;
A._doNothing = function() {}
,
A._localTransform = function(t) {
t._updateLocalMatrix(),
t._renderFlag &= ~o,
this._next._func(t)
}
,
A._worldTransform = function(t) {
i.worldMatDirty++;
var e = t._matrix
, n = t._trs
, r = e.m;
r[12] = n[0],
r[13] = n[1],
r[14] = n[2],
t._mulMat(t._worldMatrix, t._parent._worldMatrix, e),
t._renderFlag &= ~l,
this._next._func(t),
i.worldMatDirty--
}
,
A._opacity = function(t) {
i.parentOpacityDirty++,
this._next._func(t),
t._renderFlag &= ~u,
i.parentOpacityDirty--
}
,
A._color = function(t) {
var e = t._renderComponent;
e && e._updateColor(),
t._renderFlag &= ~_,
this._next._func(t)
}
,
A._updateRenderData = function(t) {
var e = t._renderComponent;
e._assembler.updateRenderData(e),
t._renderFlag &= ~c,
this._next._func(t)
}
,
A._render = function(t) {
var e = t._renderComponent;
e._checkBacth(i, t._cullingMask),
e._assembler.fillBuffers(e, i),
this._next._func(t)
}
,
A._children = function(t) {
for (var e = v, n = i, r = n.parentOpacity, s = n.parentOpacity *= t._opacity / 255, a = (n.worldMatDirty ? l : 0) | (n.parentOpacityDirty ? f : 0), o = t._children, h = 0, c = o.length; h < c; h++) {
var u = o[h];
if (u._renderFlag |= a,
u._activeInHierarchy && 0 !== u._opacity) {
v = u._cullingMask = 0 === u.groupIndex ? e : 1 << u.groupIndex;
var _ = u._color._val;
u._color._fastSetA(u._opacity * s),
b[u._renderFlag]._func(u),
u._color._val = _
}
}
n.parentOpacity = r,
this._next._func(t)
}
,
A._postRender = function(t) {
var e = t._renderComponent;
e._checkBacth(i, t._cullingMask),
e._assembler.postFillBuffers(e, i),
this._next._func(t)
}
;
var x = new g;
x._func = x._doNothing,
x._next = x;
var b = {};
function C(t, e) {
var i = new g;
switch (i._next = e || x,
t) {
case s:
case a:
i._func = i._doNothing;
break;
case o:
i._func = i._localTransform;
break;
case l:
i._func = i._worldTransform;
break;
case u:
i._func = i._opacity;
break;
case _:
i._func = i._color;
break;
case c:
i._func = i._updateRenderData;
break;
case d:
i._func = i._render;
break;
case p:
i._func = i._children;
break;
case m:
i._func = i._postRender
}
return i
}
function T(t) {
for (var e = null, i = y; i > 0; )
i & t && (e = C(i, e)),
i >>= 1;
return e
}
function S(t) {
var e = t._renderFlag;
(b[e] = T(e))._func(t)
}
g.flows = b,
g.createFlow = C;
var w = [];
g.registerValidate = function(t) {
t._inValidateList || (w.push(t),
t._inValidateList = !0)
}
,
g.validateRenderers = function() {
for (var t = 0, e = w.length; t < e; t++) {
var i = w[t];
i.isValid && (i.enabledInHierarchy ? i._validateRender() : i.disableRender(),
i._inValidateList = !1)
}
w.length = 0
}
,
g.visitRootNode = function(t) {
g.validateRenderers();
var e = v;
v = t._cullingMask,
t._renderFlag & l ? (i.worldMatDirty++,
t._calculWorldMatrix(),
t._renderFlag &= ~l,
b[t._renderFlag]._func(t),
i.worldMatDirty--) : b[t._renderFlag]._func(t),
v = e
}
,
g.render = function(t, e) {
i.reset(),
i.walking = !0,
g.visitRootNode(t),
i.terminate(),
i.walking = !1,
n.render(i._renderScene, e)
}
,
g.renderCamera = function(t, e) {
i.reset(),
i.walking = !0,
g.visitRootNode(e),
i.terminate(),
i.walking = !1,
n.renderCamera(t, i._renderScene)
}
,
g.init = function(t, e) {
i = t,
n = e,
b[0] = x;
for (var r = 1; r < y; r++)
b[r] = new g
}
,
g.getBachther = function() {
return i
}
,
g.FLAG_DONOTHING = s,
g.FLAG_BREAK_FLOW = a,
g.FLAG_LOCAL_TRANSFORM = o,
g.FLAG_WORLD_TRANSFORM = l,
g.FLAG_TRANSFORM = h,
g.FLAG_OPACITY = u,
g.FLAG_COLOR = _,
g.FLAG_OPACITY_COLOR = f,
g.FLAG_UPDATE_RENDER_DATA = c,
g.FLAG_RENDER = d,
g.FLAG_CHILDREN = p,
g.FLAG_POST_RENDER = m,
g.FLAG_FINAL = y,
e.exports = cc.RenderFlow = g
}
), {}],
226: [(function(t, e) {
"use strict";
var i = t("../../../assets/CCRenderTexture")
, n = 2;
function r(t, e) {
var r = new i;
r.initWithSize(t, e),
r.update(),
this._texture = r,
this._x = n,
this._y = n,
this._nexty = n,
this._width = t,
this._height = e,
this._innerTextureInfos = {},
this._innerSpriteFrames = [],
this._count = 0
}
r.DEFAULT_HASH = (new i)._getHash(),
cc.js.mixin(r.prototype, {
insertSpriteFrame: function(t) {
var e = t._rect
, i = t._texture
, r = this._innerTextureInfos[i._id]
, s = e.x
, a = e.y;
if (r)
s += r.x,
a += r.y;
else {
var o = i.width
, l = i.height;
if (this._x + o + n > this._width && (this._x = n,
this._y = this._nexty),
this._y + l + n > this._nexty && (this._nexty = this._y + l + n),
this._nexty > this._height)
return null;
cc.dynamicAtlasManager.textureBleeding && ((o <= 8 || l <= 8) && (this._texture.drawTextureAt(i, this._x - 1, this._y - 1),
this._texture.drawTextureAt(i, this._x - 1, this._y + 1),
this._texture.drawTextureAt(i, this._x + 1, this._y - 1),
this._texture.drawTextureAt(i, this._x + 1, this._y + 1)),
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
},
this._count++,
s += this._x,
a += this._y,
this._x += o + n,
this._dirty = !0
}
var h = {
x: s,
y: a,
texture: this._texture
};
return this._innerSpriteFrames.push(t),
h
},
update: function() {
this._dirty && (this._texture.update(),
this._dirty = !1)
},
deleteInnerTexture: function(t) {
t && this._innerTextureInfos[t._id] && (delete this._innerTextureInfos[t._id],
this._count--)
},
isEmpty: function() {
return this._count <= 0
},
reset: function() {
this._x = n,
this._y = n,
this._nexty = n;
for (var t = this._innerSpriteFrames, e = 0, i = t.length; e < i; e++) {
var r = t[e];
r.isValid && r._resetDynamicAtlasFrame()
}
this._innerSpriteFrames.length = 0,
this._innerTextureInfos = {}
},
destroy: function() {
this.reset(),
this._texture.destroy()
}
}),
e.exports = r
}
), {
"../../../assets/CCRenderTexture": 70
}],
227: [(function(t, e) {
"use strict";
var i = t("./atlas")
, n = []
, r = -1
, s = 5
, a = 2048
, o = 512
, l = !0;
function h() {
var t = n[++r];
return t || (t = new i(a,a),
n.push(t)),
t
}
function c() {
_.reset()
}
var u = !1
, _ = {
Atlas: i,
get enabled() {
return u
},
set enabled(t) {
u !== t && (t ? (this.reset(),
cc.director.on(cc.Director.EVENT_BEFORE_SCENE_LAUNCH, c)) : cc.director.off(cc.Director.EVENT_BEFORE_SCENE_LAUNCH, c),
u = t)
},
get maxAtlasCount() {
return s
},
set maxAtlasCount(t) {
s = t
},
get atlasCount() {
return n.length
},
get textureBleeding() {
return l
},
set textureBleeding(t) {
l = t
},
get textureSize() {
return a
},
set textureSize(t) {
a = t
},
get maxFrameSize() {
return o
},
set maxFrameSize(t) {
o = t
},
insertSpriteFrame: function(t) {
if (!u || r === s || !t || t._original)
return null;
if (!t._texture.packable)
return null;
var e = n[r];
e || (e = h());
var i = e.insertSpriteFrame(t);
return i || r === s ? i : (e = h()).insertSpriteFrame(t)
},
reset: function() {
for (var t = 0, e = n.length; t < e; t++)
n[t].destroy();
n.length = 0,
r = -1
},
deleteAtlasSpriteFrame: function(t) {
if (t._original) {
var e = t._original._texture;
this.deleteAtlasTexture(e)
}
},
deleteAtlasTexture: function(t) {
if (t)
for (var e = n.length - 1; e >= 0; e--)
n[e].deleteInnerTexture(t),
n[e].isEmpty() && (n[e].destroy(),
n.splice(e, 1),
r--)
},
showDebug: !1,
update: function() {
if (this.enabled)
for (var t = 0; t <= r; t++)
n[t].update()
}
};
e.exports = cc.dynamicAtlasManager = _
}
), {
"./atlas": 226
}],
228: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r = (n = t("../../assembler-2d")) && n.__esModule ? n : {
default: n
};
function s(t, e) {
return (s = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
var a = t("../../../utils/text-utils")
, o = t("../../../platform/CCMacro")
, l = t("../../../components/CCLabel").Overflow
, h = t("../utils").shareLabelInfo
, c = function() {
this.char = "",
this.valid = !0,
this.x = 0,
this.y = 0,
this.line = 0,
this.hash = ""
}
, u = cc.rect()
, _ = null
, f = []
, d = []
, p = []
, m = []
, y = null
, v = 0
, g = 0
, A = 0
, x = 0
, b = 0
, C = 1
, T = null
, S = cc.size()
, w = ""
, E = 0
, M = 0
, D = 0
, B = 0
, I = 0
, P = 0
, R = 0
, O = !1
, L = 0
, F = 0
, V = 0
, N = (function(t) {
var e, i;
function n() {
return t.apply(this, arguments) || this
}
i = t,
(e = n).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
s(e, i);
var r = n.prototype;
return r.updateRenderData = function(t) {
t._vertsDirty && _ !== t && (_ = t,
this._reserveQuads(t, t.string.toString().length),
this._updateFontFamily(t),
this._updateProperties(t),
this._updateLabelInfo(t),
this._updateContent(),
this.updateWorldVerts(t),
_._actualFontSize = E,
_.node.setContentSize(S),
_._vertsDirty = !1,
_ = null,
this._resetProperties())
}
,
r._updateFontScale = function() {
C = E / M
}
,
r._updateFontFamily = function(t) {
var e = t.font;
T = e.spriteFrame,
y = e._fntConfig,
h.fontAtlas = e._fontDefDictionary,
this.packToDynamicAtlas(t, T)
}
,
r._updateLabelInfo = function() {
h.hash = "",
h.margin = 0
}
,
r._updateProperties = function(t) {
w = t.string.toString(),
E = t.fontSize,
M = y ? y.fontSize : t.fontSize,
D = t.horizontalAlign,
B = t.verticalAlign,
I = t.spacingX,
R = t.overflow,
P = t._lineHeight,
S.width = t.node.width,
S.height = t.node.height,
R === l.NONE ? (O = !1,
S.width += 2 * h.margin,
S.height += 2 * h.margin) : R === l.RESIZE_HEIGHT ? (O = !0,
S.height += 2 * h.margin) : O = t.enableWrapText,
h.lineHeight = P,
h.fontSize = E,
this._setupBMFontOverflowMetrics()
}
,
r._resetProperties = function() {
y = null,
T = null,
h.hash = "",
h.margin = 0
}
,
r._updateContent = function() {
this._updateFontScale(),
this._computeHorizontalKerningForText(),
this._alignText()
}
,
r._computeHorizontalKerningForText = function() {
var t, e = w, i = e.length, n = f;
if (y && (t = y.kerningDict),
t && !cc.js.isEmptyObject(t))
for (var r = -1, s = 0; s < i; ++s) {
var a = e.charCodeAt(s)
, o = t[r << 16 | 65535 & a] || 0;
n[s] = s < i - 1 ? o : 0,
r = a
}
else
n.length = 0
}
,
r._multilineTextWrap = function(t) {
for (var e = w.length, i = 0, n = 0, r = 0, s = 0, o = 0, c = 0, u = 0, _ = null, d = cc.v2(0, 0), m = 0; m < e; ) {
var A = w.charAt(m);
if ("\n" !== A) {
for (var T = t(w, m, e), E = c, M = u, D = o, B = n, N = !1, k = 0; k < T; ++k) {
var G = m + k;
if ("\r" !== (A = w.charAt(G)))
if (_ = h.fontAtlas.getLetterDefinitionForChar(A, h)) {
var U = B + _.offsetX * C - h.margin;
if (O && V > 0 && n > 0 && U + _.w * C > V && !a.isUnicodeSpace(A)) {
p.push(o),
o = 0,
i++,
n = 0,
r -= P * this._getFontScale() + 0,
N = !0;
break
}
d.x = U,
d.y = r - _.offsetY * C + h.margin,
this._recordLetterInfo(d, A, G, i),
G + 1 < f.length && G < e - 1 && (B += f[G + 1]),
B += _.xAdvance * C + I - 2 * h.margin,
D = d.x + _.w * C - h.margin,
E < d.y && (E = d.y),
M > d.y - _.h * C && (M = d.y - _.h * C)
} else {
this._recordPlaceholderInfo(G, A);
var z = "";
y && (z = y.atlasName),
console.log("Can't find letter definition in texture atlas " + z + " for letter:" + A)
}
else
this._recordPlaceholderInfo(G, A)
}
N || (n = B,
c < E && (c = E),
u > M && (u = M),
s < (o = D) && (s = o),
m += T)
} else
p.push(o),
o = 0,
i++,
n = 0,
r -= P * this._getFontScale() + 0,
this._recordPlaceholderInfo(m, A),
m++
}
return p.push(o),
g = (v = i + 1) * P * this._getFontScale(),
v > 1 && (g += 0 * (v - 1)),
S.width = L,
S.height = F,
L <= 0 && (S.width = parseFloat(s.toFixed(2)) + 2 * h.margin),
F <= 0 && (S.height = parseFloat(g.toFixed(2)) + 2 * h.margin),
x = S.height,
b = 0,
R !== l.CLAMP && (c > 0 && (x = S.height + c),
u < -g && (b = g + u)),
!0
}
,
r._getFirstCharLen = function() {
return 1
}
,
r._getFontScale = function() {
return R === l.SHRINK ? C : 1
}
,
r._getFirstWordLen = function(t, e, i) {
var n = t.charAt(e);
if (a.isUnicodeCJK(n) || "\n" === n || a.isUnicodeSpace(n))
return 1;
var r = 1
, s = h.fontAtlas.getLetterDefinitionForChar(n, h);
if (!s)
return r;
for (var o = s.xAdvance * C + I, l = e + 1; l < i && (n = t.charAt(l),
s = h.fontAtlas.getLetterDefinitionForChar(n, h)); ++l) {
if (o + s.offsetX * C + s.w * C > V && !a.isUnicodeSpace(n) && V > 0)
return r;
if (o += s.xAdvance * C + I,
"\n" === n || a.isUnicodeSpace(n) || a.isUnicodeCJK(n))
break;
r++
}
return r
}
,
r._multilineTextWrapByWord = function() {
return this._multilineTextWrap(this._getFirstWordLen)
}
,
r._multilineTextWrapByChar = function() {
return this._multilineTextWrap(this._getFirstCharLen)
}
,
r._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) + h.hash,
d[t].valid = !1
}
,
r._recordLetterInfo = function(t, e, i, n) {
if (i >= d.length) {
var r = new c;
d.push(r)
}
var s = e.charCodeAt(0) + h.hash;
d[i].line = n,
d[i].char = e,
d[i].hash = s,
d[i].valid = h.fontAtlas.getLetter(s).valid,
d[i].x = t.x,
d[i].y = t.y
}
,
r._alignText = function() {
g = 0,
p.length = 0,
this._multilineTextWrapByWord(),
this._computeAlignmentOffset(),
R === l.SHRINK && E > 0 && this._isVerticalClamp() && this._shrinkLabelToContentSize(this._isVerticalClamp),
this._updateQuads() || R === l.SHRINK && this._shrinkLabelToContentSize(this._isHorizontalClamp)
}
,
r._scaleFontSizeDown = function(t) {
var e = !0;
t || (t = .1,
e = !1),
E = t,
e && this._updateContent()
}
,
r._shrinkLabelToContentSize = function(t) {
for (var e = 0, i = 0 | E, n = 0; e < i; ) {
var r = n = e + i + 1 >> 1;
if (r <= 0)
break;
C = r / M,
this._multilineTextWrapByWord(),
this._computeAlignmentOffset(),
t() ? i = n - 1 : e = n
}
var s = e;
s >= 0 && this._scaleFontSizeDown(s)
}
,
r._isVerticalClamp = function() {
return g > S.height
}
,
r._isHorizontalClamp = function() {
for (var t = !1, e = 0, i = w.length; e < i; ++e) {
var n = d[e];
if (n.valid) {
var r = h.fontAtlas.getLetter(n.hash)
, s = n.x + r.w * C
, a = n.line;
if (L > 0)
if (O) {
if (p[a] > S.width && (s > S.width || s < 0)) {
t = !0;
break
}
} else if (s > S.width) {
t = !0;
break
}
}
}
return t
}
,
r._isHorizontalClamped = function(t, e) {
var i = p[e]
, n = t > S.width || t < 0;
return O ? i > S.width && n : n
}
,
r._updateQuads = function() {
var t = T ? T._texture : h.fontAtlas.getTexture()
, e = _.node;
this.verticesCount = this.indicesCount = 0,
this._renderData && (this._renderData.dataLength = 0);
for (var i = S, n = e._anchorPoint.x * i.width, r = e._anchorPoint.y * i.height, s = !0, a = 0, o = w.length; a < o; ++a) {
var c = d[a];
if (c.valid) {
var f = h.fontAtlas.getLetter(c.hash);
u.height = f.h,
u.width = f.w,
u.x = f.u,
u.y = f.v;
var p = c.y + A;
if (F > 0) {
if (p > x) {
var y = p - x;
u.y += y,
u.height -= y,
p -= y
}
p - f.h * C < b && R === l.CLAMP && (u.height = p < b ? 0 : (p - b) / C)
}
var v = c.line
, g = c.x + f.w / 2 * C + m[v];
if (L > 0 && this._isHorizontalClamped(g, v))
if (R === l.CLAMP)
u.width = 0;
else if (R === l.SHRINK) {
if (S.width > f.w) {
s = !1;
break
}
u.width = 0
}
if (u.height > 0 && u.width > 0) {
var E = this._determineRect(u)
, M = c.x + m[c.line];
this.appendQuad(_, t, u, E, M - n, p - r, C)
}
}
}
return this._quadsUpdated(_),
s
}
,
r._determineRect = function(t) {
var e = T.isRotated()
, i = T._originalSize
, n = T._rect
, r = T._offset
, s = r.x + (i.width - n.width) / 2
, a = r.y - (i.height - n.height) / 2;
if (e) {
var o = t.x;
t.x = n.x + n.height - t.y - t.height - a,
t.y = o + n.y - s,
t.y < 0 && (t.height = t.height + a)
} else
t.x += n.x - s,
t.y += n.y + a;
return e
}
,
r._computeAlignmentOffset = function() {
switch (m.length = 0,
D) {
case o.TextAlignment.LEFT:
for (var t = 0; t < v; ++t)
m.push(0);
break;
case o.TextAlignment.CENTER:
for (var e = 0, i = p.length; e < i; e++)
m.push((S.width - p[e]) / 2);
break;
case o.TextAlignment.RIGHT:
for (var n = 0, r = p.length; n < r; n++)
m.push(S.width - p[n])
}
if (A = S.height,
B !== o.VerticalTextAlignment.TOP) {
var s = S.height - g + P * this._getFontScale() - M * C;
B === o.VerticalTextAlignment.BOTTOM ? A -= s : A -= s / 2
}
}
,
r._setupBMFontOverflowMetrics = function() {
var t = S.width
, e = S.height;
R === l.RESIZE_HEIGHT && (e = 0),
R === l.NONE && (t = 0,
e = 0),
L = t,
F = e,
V = t
}
,
r.updateWorldVerts = function() {}
,
r.appendQuad = function() {}
,
r._quadsUpdated = function() {}
,
r._reserveQuads = function() {}
,
n
}
)(r.default);
i.default = N,
e.exports = i.default
}
), {
"../../../components/CCLabel": 107,
"../../../platform/CCMacro": 198,
"../../../utils/text-utils": 274,
"../../assembler-2d": 219,
"../utils": 232
}],
229: [(function(t, e) {
"use strict";
function i() {
this._rect = null,
this.uv = [],
this._texture = null,
this._original = null
}
i.prototype = {
constructor: i,
getRect: function() {
return cc.rect(this._rect)
},
setRect: function(t) {
this._rect = t,
this._texture && this._calculateUV()
},
_setDynamicAtlasFrame: function(t) {
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() {
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
, a = 0 === n ? 0 : (t.x + t.width) / n
, o = 0 === r ? 0 : (t.y + t.height) / r
, l = 0 === r ? 0 : t.y / r;
i[0] = s,
i[1] = o,
i[2] = a,
i[3] = o,
i[4] = s,
i[5] = l,
i[6] = a,
i[7] = l
}
},
e.exports = i
}
), {}],
230: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r = (n = t("../../webgl/assemblers/label/2d/bmfont")) && n.__esModule ? n : {
default: n
};
function s(t, e) {
return (s = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
var a = t("../../../components/CCLabel")
, o = t("../../../components/CCLabelOutline")
, l = t("../../../utils/text-utils")
, h = t("../../../components/CCComponent")
, c = t("../../../assets/CCRenderTexture")
, u = cc.js.isChildClassOf(o, h)
, _ = t("../utils").getFontFamily
, f = t("../utils").shareLabelInfo
, d = cc.BitmapFont.FontLetterDefinition
, p = cc.BitmapFont.FontAtlas
, m = cc.Color.WHITE
, y = 0
, v = (1 / 255).toFixed(3);
function g(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
}
function A(t, e) {
var i = new c;
i.initWithSize(t, e),
i.update(),
this._fontDefDictionary = new p(i),
this._x = y,
this._y = y,
this._nexty = y,
this._width = t,
this._height = e,
cc.director.on(cc.Director.EVENT_BEFORE_SCENE_LAUNCH, this.beforeSceneLoad, this)
}
g.prototype = {
constructor: g,
updateRenderData: function() {
this._updateProperties(),
this._updateTexture()
},
_updateProperties: function() {
this._texture = new cc.Texture2D,
this._data = a._canvasPool.get(),
this._canvas = this._data.canvas,
this._context = this._data.context,
this._context.font = this._labelInfo.fontDesc;
var t = l.safeMeasureText(this._context, this._char, this._labelInfo.fontDesc)
, e = 2 * this._labelInfo.margin + 2;
this._width = parseFloat(t.toFixed(2)) + e,
this._height = (1 + l.BASELINE_RATIO) * this._labelInfo.fontSize + e,
this._offsetY = -this._labelInfo.fontSize * l.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 = this._labelInfo.fontSize
, s = i / 2
, a = n / 2 + r * l.MIDDLE_RATIO + r * l.BASELINE_OFFSET
, o = e.color;
if (t.lineJoin = "round",
t.textAlign = "center",
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.fillStyle = "rgba(" + o.r + ", " + o.g + ", " + o.b + ", 1)",
e.isOutlined && e.margin > 0) {
var h = e.out || m;
t.strokeStyle = "rgba(" + h.r + ", " + h.g + ", " + h.b + ", " + h.a / 255 + ")",
t.lineWidth = 2 * e.margin,
t.strokeText(this._char, s, a)
}
t.fillText(this._char, s, a),
this._texture.handleLoadedTexture()
},
destroy: function() {
this._texture.destroy(),
this._texture = null,
a._canvasPool.put(this._data)
}
},
cc.js.mixin(A.prototype, {
insertLetterTexture: function(t) {
var e = t._texture
, i = e.width
, n = e.height;
if (this._x + i + y > this._width && (this._x = y,
this._y = this._nexty),
this._y + n > this._nexty && (this._nexty = this._y + n + y),
this._nexty > this._height)
return null;
this._fontDefDictionary._texture.drawTextureAt(e, this._x, this._y),
this._dirty = !0;
var r = new d;
return r.u = this._x + 1,
r.v = this._y + 1,
r.texture = this._fontDefDictionary._texture,
r.valid = !0,
r.w = t._width - 2,
r.h = t._height - 2,
r.xAdvance = r.w,
r.offsetY = t._offsetY,
this._x += i + y,
this._fontDefDictionary.addLetterDefinitions(t._hash, r),
r
},
update: function() {
this._dirty && (this._fontDefDictionary._texture.update(),
this._dirty = !1)
},
reset: function() {
this._x = y,
this._y = y,
this._nexty = y;
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(),
this._fontDefDictionary._texture = null
},
beforeSceneLoad: function() {
this.clearAllCache()
},
clearAllCache: function() {
this.destroy();
var t = new c;
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 g(t,e);
r.updateRenderData(),
n = this.insertLetterTexture(r),
r.destroy()
}
return n
}
});
var x = null
, b = (function(t) {
var e, i;
function n() {
return t.apply(this, arguments) || this
}
i = t,
(e = n).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
s(e, i);
var r = n.prototype;
return r._getAssemblerData = function() {
return x || (x = new A(2048,2048),
cc.Label._shareAtlas = x),
x.getTexture()
}
,
r._updateFontFamily = function(t) {
f.fontAtlas = x,
f.fontFamily = _(t);
var e = u && t.getComponent(o);
e && e.enabled ? (f.isOutlined = !0,
f.margin = e.width,
f.out = e.color.clone(),
f.out.a = e.color.a * t.node.color.a / 255) : (f.isOutlined = !1,
f.margin = 0)
}
,
r._updateLabelInfo = function(t) {
var e, i, n;
f.fontDesc = this._getFontDesc(),
f.color = t.node.color,
f.hash = (i = (e = f).color.toHEX(),
n = "",
e.isOutlined && e.margin > 0 && (n = n + e.margin + e.out.toHEX()),
"" + e.fontSize + e.fontFamily + i + n)
}
,
r._getFontDesc = function() {
return f.fontSize.toString() + "px " + f.fontFamily
}
,
r._computeHorizontalKerningForText = function() {}
,
r._determineRect = function() {
return !1
}
,
n
}
)(r.default);
i.default = b,
e.exports = i.default
}
), {
"../../../assets/CCRenderTexture": 70,
"../../../components/CCComponent": 105,
"../../../components/CCLabel": 107,
"../../../components/CCLabelOutline": 108,
"../../../utils/text-utils": 274,
"../../webgl/assemblers/label/2d/bmfont": 237,
"../utils": 232
}],
231: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r = (n = t("../../assembler-2d")) && n.__esModule ? n : {
default: n
};
function s(t, e) {
return (s = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
var a, o = t("../../../utils/text-utils"), l = t("../../../platform/CCMacro"), h = t("../../../components/CCLabel"), c = t("../../../components/CCLabelOutline"), u = t("../../../components/CCLabelShadow"), _ = h.Overflow, f = t("../utils").deleteFromDynamicAtlas, d = t("../utils").getFontFamily, p = (1 / 255).toFixed(3), m = null, y = null, v = null, g = "", A = "", x = 0, b = 0, C = [], T = cc.Size.ZERO, S = 0, w = 0, E = 0, M = null, D = "", B = _.NONE, I = !1, P = !1, R = null, O = cc.Color.WHITE, L = null, F = cc.Color.BLACK, V = cc.rect(), N = cc.Size.ZERO, k = cc.Size.ZERO, G = !1, U = !1, z = !1, H = 0, W = cc.Vec2.ZERO, j = 0, X = ["left", "center", "right"], Y = (function(t) {
var e, i;
function n() {
return t.apply(this, arguments) || this
}
i = t,
(e = n).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
s(e, i);
var r = n.prototype;
return r._getAssemblerData = function() {
return (a = h._canvasPool.get()).canvas.width = a.canvas.height = 1,
a
}
,
r._resetAssemblerData = function(t) {
t && h._canvasPool.put(t)
}
,
r.updateRenderData = function(e) {
t.prototype.updateRenderData.call(this, e),
e._vertsDirty && (this._updateProperties(e),
this._calculateLabelFont(),
this._updateLabelDimensions(),
this._updateTexture(e),
this._calDynamicAtlas(e),
e._actualFontSize = x,
e.node.setContentSize(k),
this.updateVerts(e),
e._vertsDirty = !1,
m = null,
y = null,
v = null)
}
,
r.updateVerts = function() {}
,
r._updatePaddingRect = function() {
var t = 0
, e = 0
, i = 0
, n = 0
, r = 0;
if (N.width = N.height = 0,
R && (t = e = i = n = r = R.width,
N.width = N.height = 2 * r),
L) {
var s = L.blur + r;
i = Math.max(i, -L._offset.x + s),
n = Math.max(n, L._offset.x + s),
t = Math.max(t, L._offset.y + s),
e = Math.max(e, -L._offset.y + s)
}
if (U) {
var a = b * Math.tan(.20943951);
n += a,
N.width += a
}
V.x = i,
V.y = t,
V.width = i + n,
V.height = t + e
}
,
r._updateProperties = function(t) {
var e = t._assemblerData;
m = e.context,
y = e.canvas,
v = t._frame._original ? t._frame._original._texture : t._frame._texture,
A = t.string.toString(),
x = t._fontSize,
b = x,
H = t.underlineHeight || b / 8,
B = t.overflow,
T.width = t.node.width,
T.height = t.node.height,
k = t.node.getContentSize(),
S = t._lineHeight,
w = t.horizontalAlign,
E = t.verticalAlign,
M = t.node.color,
G = t.enableBold,
U = t.enableItalic,
z = t.enableUnderline,
D = d(t),
P = t.srcBlendFactor === cc.macro.BlendFactor.ONE,
I = B !== _.NONE && (B === _.RESIZE_HEIGHT || t.enableWrapText),
(R = (R = c && t.getComponent(c)) && R.enabled && R.width > 0 ? R : null) && O.set(R.color),
(L = (L = u && t.getComponent(u)) && L.enabled ? L : null) && (F.set(L.color),
F.a = F.a * t.node.color.a / 255),
this._updatePaddingRect()
}
,
r._calculateFillTextStartPosition = function() {
var t = 0;
w === l.TextAlignment.RIGHT ? t = T.width - V.width : w === l.TextAlignment.CENTER && (t = (T.width - V.width) / 2);
var e = this._getLineHeight() * (C.length - 1)
, i = x * (1 - o.BASELINE_RATIO / 2);
if (E !== l.VerticalTextAlignment.TOP) {
var n = e + V.height + x - T.height;
E === l.VerticalTextAlignment.BOTTOM ? i -= n += o.BASELINE_RATIO / 2 * x : i -= n / 2
}
return i += o.BASELINE_OFFSET * x,
cc.v2(t + V.x, i + V.y)
}
,
r._setupOutline = function() {
m.strokeStyle = "rgba(" + O.r + ", " + O.g + ", " + O.b + ", " + O.a / 255 + ")",
m.lineWidth = 2 * R.width
}
,
r._setupShadow = function() {
m.shadowColor = "rgba(" + F.r + ", " + F.g + ", " + F.b + ", " + F.a / 255 + ")",
m.shadowBlur = L.blur,
m.shadowOffsetX = L.offset.x,
m.shadowOffsetY = -L.offset.y
}
,
r._drawTextEffect = function(t, e) {
if (L || R || z) {
var i = C.length > 1 && L
, n = this._measureText(m, g)
, r = 0
, s = 0;
L && this._setupShadow(),
R && this._setupOutline();
for (var a = 0; a < C.length; ++a)
r = t.x,
s = t.y + a * e,
i && (R && m.strokeText(C[a], r, s),
m.fillText(C[a], r, s)),
z && (j = n(C[a]),
w === l.TextAlignment.RIGHT ? W.x = t.x - j : w === l.TextAlignment.CENTER ? W.x = t.x - j / 2 : W.x = t.x,
W.y = s + b / 8,
m.fillRect(W.x, W.y, j, H));
i && (m.shadowColor = "transparent")
}
}
,
r._updateTexture = function() {
if (m.clearRect(0, 0, y.width, y.height),
m.lineJoin = "round",
P)
m.fillStyle = "rgba(" + M.r + ", " + M.g + ", " + M.b + ", " + M.a / 255 + ")";
else {
var t = R ? O : M;
m.fillStyle = "rgba(" + t.r + ", " + t.g + ", " + t.b + ", " + p + ")",
m.fillRect(0, 0, y.width, y.height),
m.fillStyle = "rgba(" + M.r + ", " + M.g + ", " + M.b + ", 1)"
}
var e = this._calculateFillTextStartPosition()
, i = this._getLineHeight()
, n = e.x
, r = 0;
this._drawTextEffect(e, i);
for (var s = 0; s < C.length; ++s)
r = e.y + s * i,
R && m.strokeText(C[s], n, r),
m.fillText(C[s], n, r);
L && (m.shadowColor = "transparent"),
v.handleLoadedTexture()
}
,
r._calDynamicAtlas = function(t) {
if (t.cacheMode === h.CacheMode.BITMAP) {
var e = t._frame;
f(t, e),
e._original || e.setRect(cc.rect(0, 0, y.width, y.height)),
this.packToDynamicAtlas(t, e)
}
}
,
r._updateLabelDimensions = function() {
T.width = Math.min(T.width, 2048),
T.height = Math.min(T.height, 2048);
var t = !1;
y.width !== T.width && (y.width = T.width,
t = !0),
y.height !== T.height && (y.height = T.height,
t = !0),
t && (m.font = g),
m.textAlign = X[w]
}
,
r._getFontDesc = function() {
var t = x.toString() + "px ";
return t += D,
G && (t = "bold " + t),
U && (t = "italic " + t),
t
}
,
r._getLineHeight = function() {
return 0 | (0 === S ? x : S * x / b)
}
,
r._calculateParagraphLength = function(t, e) {
for (var i = [], n = 0; n < t.length; ++n) {
var r = o.safeMeasureText(e, t[n], g);
i.push(r)
}
return i
}
,
r._measureText = function(t, e) {
return function(i) {
return o.safeMeasureText(t, i, e)
}
}
,
r._calculateShrinkFont = function(t) {
var e = this._calculateParagraphLength(t, m)
, i = 0
, n = 0
, r = 0;
if (I) {
var s = k.width
, a = k.height;
if (s < 0 || a < 0)
return;
n = a + 1;
for (var l = 0, h = 0 | x + 1, c = 0; l < h; ) {
if ((c = l + h + 1 >> 1) <= 0) {
cc.logID(4003);
break
}
x = c,
g = this._getFontDesc(),
m.font = g;
var u = this._getLineHeight();
for (n = 0,
i = 0; i < t.length; ++i) {
var _ = o.safeMeasureText(m, t[i], g);
n += o.fragmentText(t[i], _, s, this._measureText(m, g)).length * u
}
n > a ? h = c - 1 : l = c
}
0 === l ? cc.logID(4003) : (x = l,
g = this._getFontDesc(),
m.font = g)
} else {
for (n = t.length * this._getLineHeight(),
i = 0; i < t.length; ++i)
r < e[i] && (r = e[i]);
var f = (T.width - V.width) / r
, d = T.height / n;
x = b * Math.min(1, f, d) | 0,
g = this._getFontDesc(),
m.font = g
}
}
,
r._calculateWrapText = function(t) {
if (I) {
C = [];
for (var e = k.width, i = 0; i < t.length; ++i) {
var n = o.safeMeasureText(m, t[i], g)
, r = o.fragmentText(t[i], n, e, this._measureText(m, g));
C = C.concat(r)
}
}
}
,
r._calculateLabelFont = function() {
var t = A.split("\n");
switch (C = t,
g = this._getFontDesc(),
m.font = g,
B) {
case _.NONE:
for (var e = 0, i = 0, n = 0; n < t.length; ++n) {
var r = o.safeMeasureText(m, t[n], g);
e = e > r ? e : r
}
i = (C.length + o.BASELINE_RATIO) * this._getLineHeight();
var s = parseFloat(e.toFixed(2))
, a = parseFloat(i.toFixed(2));
T.width = s + V.width,
T.height = a + V.height,
k.width = s + N.width,
k.height = a + N.height;
break;
case _.SHRINK:
this._calculateShrinkFont(t),
this._calculateWrapText(t);
break;
case _.CLAMP:
this._calculateWrapText(t);
break;
case _.RESIZE_HEIGHT:
this._calculateWrapText(t);
var l = (C.length + o.BASELINE_RATIO) * this._getLineHeight();
T.height = l + V.height,
k.height = l + N.height
}
}
,
n
}
)(r.default);
i.default = Y,
e.exports = i.default
}
), {
"../../../components/CCLabel": 107,
"../../../components/CCLabelOutline": 108,
"../../../components/CCLabelShadow": 109,
"../../../platform/CCMacro": 198,
"../../../utils/text-utils": 274,
"../../assembler-2d": 219,
"../utils": 232
}],
232: [(function(t, e) {
"use strict";
var i = t("./dynamic-atlas/manager")
, n = cc.Color.WHITE
, r = {
fontAtlas: null,
fontSize: 0,
lineHeight: 0,
hAlign: 0,
vAlign: 0,
hash: "",
fontFamily: "",
fontDesc: "Arial",
color: n,
isOutlined: !1,
out: n,
margin: 0
};
e.exports = {
deleteFromDynamicAtlas: function(t, e) {
e && e._original && i && (i.deleteAtlasSpriteFrame(e),
e._resetDynamicAtlasFrame())
},
getFontFamily: function(t) {
return t.useSystemFont ? t.fontFamily || "Arial" : t.font ? t.font._nativeAsset ? t.font._nativeAsset : (cc.assetManager.postLoadNative(t.font, (function() {
t.isValid && t.setVertsDirty()
}
)),
"Arial") : "Arial"
},
shareLabelInfo: r
}
}
), {
"./dynamic-atlas/manager": 227
}],
233: [(function(t, e) {
"use strict";
function i(t, e, i) {
i = i || 2;
var r, a, o, l, h, u, _, f = e && e.length, d = f ? e[0] * i : t.length, p = n(t, 0, d, i, !0), m = [];
if (!p)
return m;
if (f && (p = c(t, e, p, i)),
t.length > 80 * i) {
r = o = t[0],
a = l = t[1];
for (var y = i; y < d; y += i)
(h = t[y]) < r && (r = h),
(u = t[y + 1]) < a && (a = u),
h > o && (o = h),
u > l && (l = u);
_ = Math.max(o - r, l - a)
}
return s(p, m, i, r, a, _),
m
}
function n(t, e, i, n, r) {
var s, a;
if (r === B(t, e, i, n) > 0)
for (s = e; s < i; s += n)
a = E(s, t[s], t[s + 1], a);
else
for (s = i - n; s >= e; s -= n)
a = E(s, t[s], t[s + 1], a);
return a && x(a, a.next) && (M(a),
a = a.next),
a
}
function r(t, e) {
if (!t)
return t;
e || (e = t);
var i, n = t;
do {
if (i = !1,
n.steiner || !x(n, n.next) && 0 !== A(n.prev, n, n.next))
n = n.next;
else {
if (M(n),
(n = e = n.prev) === n.next)
return null;
i = !0
}
} while (i || n !== e);return e
}
function s(t, e, i, n, c, u, _) {
if (t) {
!_ && u && d(t, n, c, u);
for (var f, p, m = t; t.prev !== t.next; )
if (f = t.prev,
p = t.next,
u ? o(t, n, c, u) : a(t))
e.push(f.i / i),
e.push(t.i / i),
e.push(p.i / i),
M(t),
t = p.next,
m = p.next;
else if ((t = p) === m) {
_ ? 1 === _ ? s(t = l(t, e, i), e, i, n, c, u, 2) : 2 === _ && h(t, e, i, n, c, u) : s(r(t), e, i, n, c, u, 1);
break
}
}
}
function a(t) {
var e = t.prev
, i = t
, n = t.next;
if (A(e, i, n) >= 0)
return !1;
for (var r = t.next.next; r !== t.prev; ) {
if (v(e.x, e.y, i.x, i.y, n.x, n.y, r.x, r.y) && A(r.prev, r, r.next) >= 0)
return !1;
r = r.next
}
return !0
}
function o(t, e, i, n) {
var r = t.prev
, s = t
, a = t.next;
if (A(r, s, a) >= 0)
return !1;
for (var o = r.x < s.x ? r.x < a.x ? r.x : a.x : s.x < a.x ? s.x : a.x, l = r.y < s.y ? r.y < a.y ? r.y : a.y : s.y < a.y ? s.y : a.y, h = r.x > s.x ? r.x > a.x ? r.x : a.x : s.x > a.x ? s.x : a.x, c = r.y > s.y ? r.y > a.y ? r.y : a.y : s.y > a.y ? s.y : a.y, u = m(o, l, e, i, n), _ = m(h, c, e, i, n), f = t.nextZ; f && f.z <= _; ) {
if (f !== t.prev && f !== t.next && v(r.x, r.y, s.x, s.y, a.x, a.y, f.x, f.y) && A(f.prev, f, f.next) >= 0)
return !1;
f = f.nextZ
}
for (f = t.prevZ; f && f.z >= u; ) {
if (f !== t.prev && f !== t.next && v(r.x, r.y, s.x, s.y, a.x, a.y, f.x, f.y) && A(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;
!x(r, s) && b(r, n, n.next, s) && T(r, s) && T(s, r) && (e.push(r.i / i),
e.push(n.i / i),
e.push(s.i / i),
M(n),
M(n.next),
n = t = s),
n = n.next
} while (n !== t);return n
}
function h(t, e, i, n, a, o) {
var l = t;
do {
for (var h = l.next.next; h !== l.prev; ) {
if (l.i !== h.i && g(l, h)) {
var c = w(l, h);
return l = r(l, l.next),
c = r(c, c.next),
s(l, e, i, n, a, o),
void s(c, e, i, n, a, o)
}
h = h.next
}
l = l.next
} while (l !== t)
}
function c(t, e, i, s) {
var a, o, l, h = [];
for (a = 0,
o = e.length; a < o; a++)
(l = n(t, e[a] * s, a < o - 1 ? e[a + 1] * s : t.length, s, !1)) === l.next && (l.steiner = !0),
h.push(y(l));
for (h.sort(u),
a = 0; a < h.length; a++)
_(h[a], i),
i = r(i, i.next);
return i
}
function u(t, e) {
return t.x - e.x
}
function _(t, e) {
if (e = f(t, e)) {
var i = w(e, t);
r(i, i.next)
}
}
function f(t, e) {
var i, n = e, r = t.x, s = t.y, a = -1 / 0;
do {
if (s <= n.y && s >= n.next.y) {
var o = n.x + (s - n.y) * (n.next.x - n.x) / (n.next.y - n.y);
if (o <= r && o > a) {
if (a = o,
o === 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 === a)
return i.prev;
var l, h = i, c = i.x, u = i.y, _ = 1 / 0;
for (n = i.next; n !== h; )
r >= n.x && n.x >= c && v(s < u ? r : a, s, c, u, s < u ? a : r, s, n.x, n.y) && ((l = Math.abs(s - n.y) / (r - n.x)) < _ || l === _ && n.x > i.x) && T(n, t) && (i = n,
_ = l),
n = n.next;
return i
}
function d(t, e, i, n) {
var r = t;
do {
null === r.z && (r.z = m(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, a, o, l, h = 1;
do {
for (i = t,
t = null,
s = null,
a = 0; i; ) {
for (a++,
n = i,
o = 0,
e = 0; e < h && (o++,
n = n.nextZ); e++)
;
for (l = h; o > 0 || l > 0 && n; )
0 === o ? (r = n,
n = n.nextZ,
l--) : 0 !== l && n ? i.z <= n.z ? (r = i,
i = i.nextZ,
o--) : (r = n,
n = n.nextZ,
l--) : (r = i,
i = i.nextZ,
o--),
s ? s.nextZ = r : t = r,
r.prevZ = s,
s = r;
i = n
}
s.nextZ = null,
h *= 2
} while (a > 1);return t
}
function m(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 v(t, e, i, n, r, s, a, o) {
return (r - a) * (e - o) - (t - a) * (s - o) >= 0 && (t - a) * (n - o) - (i - a) * (e - o) >= 0 && (i - a) * (s - o) - (r - a) * (n - o) >= 0
}
function g(t, e) {
return t.next.i !== e.i && t.prev.i !== e.i && !C(t, e) && T(t, e) && T(e, t) && S(t, e)
}
function A(t, e, i) {
return (e.y - t.y) * (i.x - e.x) - (e.x - t.x) * (i.y - e.y)
}
function x(t, e) {
return t.x === e.x && t.y === e.y
}
function b(t, e, i, n) {
return !!(x(t, e) && x(i, n) || x(t, n) && x(i, e)) || A(t, e, i) > 0 != A(t, e, n) > 0 && A(i, n, t) > 0 != A(i, n, e) > 0
}
function C(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 && b(i, i.next, t, e))
return !0;
i = i.next
} while (i !== t);return !1
}
function T(t, e) {
return A(t.prev, t, t.next) < 0 ? A(t, e, t.next) >= 0 && A(t, t.prev, e) >= 0 : A(t, e, t.prev) < 0 || A(t, t.next, e) < 0
}
function S(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 w(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;
return t.next = e,
e.prev = t,
i.next = r,
r.prev = i,
n.next = i,
i.prev = n,
s.next = n,
n.prev = s,
n
}
function E(t, e, i, n) {
var r = new D(t,e,i);
return n ? (r.next = n.next,
r.prev = n,
n.next.prev = r,
n.next = r) : (r.prev = r,
r.next = r),
r
}
function M(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
}
function B(t, e, i, n) {
for (var r = 0, s = e, a = i - n; s < i; s += n)
r += (t[a] - t[s]) * (t[s + 1] + t[a + 1]),
a = s;
return r
}
cc.Graphics.earcut = e.exports = i,
i.deviation = function(t, e, i, n) {
var r = e && e.length
, s = r ? e[0] * i : t.length
, a = Math.abs(B(t, 0, s, i));
if (r)
for (var o = 0, l = e.length; o < l; o++) {
var h = e[o] * i
, c = o < l - 1 ? e[o + 1] * i : t.length;
a -= Math.abs(B(t, h, c, i))
}
var u = 0;
for (o = 0; o < n.length; o += 3) {
var _ = n[o] * i
, f = n[o + 1] * i
, d = n[o + 2] * i;
u += Math.abs((t[_] - t[d]) * (t[f + 1] - t[_ + 1]) - (t[_] - t[f]) * (t[d + 1] - t[_ + 1]))
}
return 0 === a && 0 === u ? 0 : Math.abs((u - a) / a)
}
,
i.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 a = 0; a < e; a++)
i.vertices.push(t[r][s][a]);
r > 0 && (n += t[r - 1].length,
i.holes.push(n))
}
return i
}
}
), {}],
234: [(function(t, e) {
"use strict";
var i = t("../../../../graphics/helper")
, n = t("../../../../graphics/types").PointFlags
, r = cc.Graphics.Point = cc.Class({
name: "cc.GraphicsPoint",
extends: cc.Vec2,
ctor: function() {
this.reset()
},
reset: function() {
this.dx = 0,
this.dy = 0,
this.dmx = 0,
this.dmy = 0,
this.flags = 0,
this.len = 0
}
});
function s() {
this.reset()
}
function a() {
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 = []
}
cc.js.mixin(s.prototype, {
reset: function() {
this.closed = !1,
this.nbevel = 0,
this.complex = !0,
this.points ? this.points.length = 0 : this.points = []
}
}),
cc.js.mixin(a.prototype, {
moveTo: function(t, e) {
this._updatePathOffset && (this._pathOffset = this._pathLength,
this._updatePathOffset = !1),
this._addPath(),
this._addPoint(t, e, n.PT_CORNER),
this._commandx = t,
this._commandy = e
},
lineTo: function(t, e) {
this._addPoint(t, e, n.PT_CORNER),
this._commandx = t,
this._commandy = e
},
bezierCurveTo: function(t, e, r, s, a, o) {
var l = this._curPath
, h = l.points[l.points.length - 1];
h.x !== t || h.y !== e || r !== a || s !== o ? (i.tesselateBezier(this, h.x, h.y, t, e, r, s, a, o, 0, n.PT_CORNER),
this._commandx = a,
this._commandy = o) : this.lineTo(a, o)
},
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, n, r, s, a) {
i.arc(this, t, e, n, r, s, a)
},
ellipse: function(t, e, n, r) {
i.ellipse(this, t, e, n, r),
this._curPath.complex = !1
},
circle: function(t, e, n) {
i.ellipse(this, t, e, n, n),
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, n, r, s) {
i.roundRect(this, t, e, n, r, s),
this._curPath.complex = !1
},
clear: function(t) {
this._pathLength = 0,
this._pathOffset = 0,
this._pointsOffset = 0,
this._curPath = null,
t && (this._paths.length = 0,
this._points.length = 0)
},
close: function() {
this._curPath.closed = !0
},
_addPath: function() {
var t = this._pathLength
, e = this._paths[t];
return e ? e.reset() : (e = new s,
this._paths.push(e)),
this._pathLength++,
this._curPath = e,
e
},
_addPoint: function(t, e, i) {
var n = this._curPath;
if (n) {
var s, a = this._points, o = n.points;
(s = a[this._pointsOffset++]) ? (s.x = t,
s.y = e) : (s = new r(t,e),
a.push(s)),
s.flags = i,
o.push(s)
}
}
}),
cc.Graphics._Impl = a,
e.exports = a
}
), {
"../../../../graphics/helper": 157,
"../../../../graphics/types": 159
}],
235: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n = s(t("../../../assembler"))
, r = s(t("../../../../../renderer/core/input-assembler"));
function s(t) {
return t && t.__esModule ? t : {
default: t
}
}
function a(t, e) {
return (a = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
var o = t("../../mesh-buffer")
, l = t("../../../index")
, h = t("../../../../graphics/graphics")
, c = t("../../../../graphics/types").PointFlags
, u = h.LineJoin
, _ = h.LineCap
, f = t("./earcut");
t("./impl");
var d = Math.PI
, p = Math.min
, m = Math.max
, y = Math.ceil
, v = Math.acos
, g = Math.cos
, A = Math.sin
, x = Math.atan2;
function b(t, e, i) {
return t < e ? e : t > i ? i : t
}
var C = cc.gfx
, T = new C.VertexFormat([{
name: C.ATTR_POSITION,
type: C.ATTR_TYPE_FLOAT32,
num: 2
}, {
name: C.ATTR_COLOR,
type: C.ATTR_TYPE_UINT8,
num: 4,
normalize: !0
}, {
name: "a_dist",
type: C.ATTR_TYPE_FLOAT32,
num: 1
}]);
T.name = "vfmtPosColorSdf";
var S = (function(t) {
var e, i;
function n(e) {
var i;
return (i = t.call(this, e) || this)._buffer = null,
i._buffers = [],
i._bufferOffset = 0,
i
}
i = t,
(e = n).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
a(e, i);
var s = n.prototype;
return s.getVfmt = function() {
return T
}
,
s.getVfmtFloatCount = function() {
return 4
}
,
s.requestBuffer = function() {
var t = {
indiceStart: 0,
vertexStart: 0
}
, e = new o(l._handle,this.getVfmt());
t.meshbuffer = e;
var i = new r.default(e._vb,e._ib);
return t.ia = i,
this._buffers.push(t),
t
}
,
s.getBuffers = function() {
return 0 === this._buffers.length && this.requestBuffer(),
this._buffers
}
,
s.clear = function(t) {
this._bufferOffset = 0;
var e = this._buffers;
if (t) {
for (var i = 0, n = e.length; i < n; i++) {
var r = e[i];
r.meshbuffer.destroy(),
r.meshbuffer = null
}
e.length = 0
} else
for (var s = 0, a = e.length; s < a; s++) {
var o = e[s];
o.indiceStart = 0,
o.vertexStart = 0,
o.meshbuffer.reset()
}
}
,
s.fillBuffers = function(t, e) {
e._flush(),
e.node = t.node,
e.material = t._materials[0];
for (var i = this.getBuffers(), n = 0, r = i.length; n < r; n++) {
var s = i[n]
, a = s.meshbuffer;
s.ia._count = s.indiceStart,
e._flushIA(s.ia),
a.uploadData()
}
}
,
s.genBuffer = function(t, e) {
var i = this.getBuffers()
, n = i[this._bufferOffset]
, r = n.meshbuffer
, s = n.vertexStart + e;
return (s > 65535 || 3 * s > 131070) && (++this._bufferOffset,
s = e,
this._bufferOffset < i.length ? n = i[this._bufferOffset] : (n = this.requestBuffer(t),
i[this._bufferOffset] = n),
r = n.meshbuffer),
s > r.vertexOffset && r.requestStatic(e, 3 * e),
this._buffer = n,
n
}
,
s.stroke = function(t) {
this._curColor = t._strokeColor._val,
this._flattenPaths(t._impl),
this._expandStroke(t),
t._impl._updatePathOffset = !0
}
,
s.fill = function(t) {
this._curColor = t._fillColor._val,
this._expandFill(t),
t._impl._updatePathOffset = !0
}
,
s._expandStroke = function(t) {
var e, i, n, r, s = .5 * t.lineWidth, a = t.lineCap, o = t.lineJoin, l = t.miterLimit, h = t._impl, f = (e = s,
i = d,
n = h._tessTol,
r = 2 * v(e / (e + n)),
m(2, y(i / r)));
this._calculateJoins(h, s, o, l);
for (var p = h._paths, g = 0, A = h._pathOffset, x = h._pathLength; A < x; A++) {
var b = p[A]
, C = b.points.length;
o === u.ROUND ? g += 2 * (C + b.nbevel * (f + 2) + 1) : g += 2 * (C + 5 * b.nbevel + 1),
b.closed || (a === _.ROUND ? g += 2 * (2 * f + 2) : g += 12)
}
for (var T = this.genBuffer(t, g), S = T.meshbuffer, w = S._vData, E = S._iData, M = h._pathOffset, D = h._pathLength; M < D; M++) {
var B, I = p[M], P = I.points, R = P.length, O = T.vertexStart, L = void 0, F = void 0, V = void 0, N = void 0;
if ((B = I.closed) ? (L = P[R - 1],
F = P[0],
V = 0,
N = R) : (L = P[0],
F = P[1],
V = 1,
N = R - 1),
F = F || L,
!B) {
var k = F.sub(L);
k.normalizeSelf();
var G = k.x
, U = k.y;
a === _.BUTT ? this._buttCapStart(L, G, U, s, 0) : a === _.SQUARE ? this._buttCapStart(L, G, U, s, s) : a === _.ROUND && this._roundCapStart(L, G, U, s, f)
}
for (var z = V; z < N; ++z)
o === u.ROUND ? this._roundJoin(L, F, s, s, f) : 0 != (F.flags & (c.PT_BEVEL | c.PT_INNERBEVEL)) ? this._bevelJoin(L, F, s, s) : (this._vset(F.x + F.dmx * s, F.y + F.dmy * s, 1),
this._vset(F.x - F.dmx * s, F.y - F.dmy * s, -1)),
L = F,
F = P[z + 1];
if (B) {
var H = this.getVfmtFloatCount()
, W = O * H;
this._vset(w[W], w[W + 1], 1),
this._vset(w[W + H], w[W + H + 1], -1)
} else {
var j = F.sub(L);
j.normalizeSelf();
var X = j.x
, Y = j.y;
a === _.BUTT ? this._buttCapEnd(F, X, Y, s, 0) : a === _.SQUARE ? this._buttCapEnd(F, X, Y, s, s) : a === _.ROUND && this._roundCapEnd(F, X, Y, s, f)
}
for (var q = T.indiceStart, J = O + 2, Z = T.vertexStart; J < Z; J++)
E[q++] = J - 2,
E[q++] = J - 1,
E[q++] = J;
T.indiceStart = q
}
}
,
s._expandFill = function(t) {
for (var e = t._impl, i = e._paths, n = 0, r = e._pathOffset, s = e._pathLength; r < s; r++)
n += i[r].points.length;
for (var a = this.genBuffer(t, n), o = a.meshbuffer, l = o._vData, h = o._iData, c = e._pathOffset, u = e._pathLength; c < u; c++) {
var _ = i[c]
, d = _.points
, p = d.length;
if (0 !== p) {
for (var m = a.vertexStart, y = 0; y < p; ++y)
this._vset(d[y].x, d[y].y);
var v = a.indiceStart;
if (_.complex) {
for (var g = [], A = this.getVfmtFloatCount(), x = m, b = a.vertexStart; x < b; x++) {
var C = x * A;
g.push(l[C]),
g.push(l[C + 1])
}
var T = f(g, null, 2);
if (!T || 0 === T.length)
continue;
for (var S = 0, w = T.length; S < w; S++)
h[v++] = T[S] + m
} else
for (var E = m, M = m + 2, D = a.vertexStart; M < D; M++)
h[v++] = E,
h[v++] = M - 1,
h[v++] = M;
a.indiceStart = v
}
}
}
,
s._calculateJoins = function(t, e, i, n) {
var r = 0;
e > 0 && (r = 1 / e);
for (var s = t._paths, a = t._pathOffset, o = t._pathLength; a < o; a++) {
var l = s[a]
, h = l.points
, _ = h.length
, f = h[_ - 1]
, d = h[0];
l.nbevel = 0;
for (var y = 0; y < _; y++) {
var v, g, A = f.dy, x = -f.dx, b = d.dy, C = -d.dx;
if (d.dmx = .5 * (A + b),
d.dmy = .5 * (x + C),
(v = d.dmx * d.dmx + d.dmy * d.dmy) > 1e-6) {
var T = 1 / v;
T > 600 && (T = 600),
d.dmx *= T,
d.dmy *= T
}
d.dx * f.dy - f.dx * d.dy > 0 && (d.flags |= c.PT_LEFT),
v * (g = m(11, p(f.len, d.len) * r)) * g < 1 && (d.flags |= c.PT_INNERBEVEL);
var S = d.dmx * e
, w = d.dmy * e
, E = S * S + w * w;
(E > d.len * d.len || E > f.len * f.len) && (d.flags |= c.PT_INNERBEVEL),
d.flags & c.PT_CORNER && (v * n * n < 1 || i === u.BEVEL || i === u.ROUND) && (d.flags |= c.PT_BEVEL),
0 != (d.flags & (c.PT_BEVEL | c.PT_INNERBEVEL)) && l.nbevel++,
f = d,
d = h[y + 1]
}
}
}
,
s._flattenPaths = function(t) {
for (var e = t._paths, i = t._pathOffset, n = t._pathLength; i < n; i++) {
var r = e[i]
, s = r.points
, a = s[s.length - 1]
, o = s[0];
s.length > 2 && a.equals(o) && (r.closed = !0,
s.pop(),
a = s[s.length - 1]);
for (var l = 0, h = s.length; l < h; l++) {
var c = o.sub(a);
a.len = c.mag(),
(c.x || c.y) && c.normalizeSelf(),
a.dx = c.x,
a.dy = c.y,
a = o,
o = s[l + 1]
}
}
}
,
s._chooseBevel = function(t, e, i, n) {
var r, s, a, o, l = i.x, h = i.y;
return 0 !== t ? (r = l + e.dy * n,
s = h - e.dx * n,
a = l + i.dy * n,
o = h - i.dx * n) : (r = a = l + i.dmx * n,
s = o = h + i.dmy * n),
[r, s, a, o]
}
,
s._buttCapStart = function(t, e, i, n, r) {
var s = t.x - e * r
, a = t.y - i * r
, o = i
, l = -e;
this._vset(s + o * n, a + l * n, 1),
this._vset(s - o * n, a - l * n, -1)
}
,
s._buttCapEnd = function(t, e, i, n, r) {
var s = t.x + e * r
, a = t.y + i * r
, o = i
, l = -e;
this._vset(s + o * n, a + l * n, 1),
this._vset(s - o * n, a - l * n, -1)
}
,
s._roundCapStart = function(t, e, i, n, r) {
for (var s = t.x, a = t.y, o = i, l = -e, h = 0; h < r; h++) {
var c = h / (r - 1) * d
, u = g(c) * n
, _ = A(c) * n;
this._vset(s - o * u - e * _, a - l * u - i * _, 1),
this._vset(s, a, 0)
}
this._vset(s + o * n, a + l * n, 1),
this._vset(s - o * n, a - l * n, -1)
}
,
s._roundCapEnd = function(t, e, i, n, r) {
var s = t.x
, a = t.y
, o = i
, l = -e;
this._vset(s + o * n, a + l * n, 1),
this._vset(s - o * n, a - l * n, -1);
for (var h = 0; h < r; h++) {
var c = h / (r - 1) * d
, u = g(c) * n
, _ = A(c) * n;
this._vset(s, a, 0),
this._vset(s - o * u + e * _, a - l * u + i * _, 1)
}
}
,
s._roundJoin = function(t, e, i, n, r) {
var s = t.dy
, a = -t.dx
, o = e.dy
, l = -e.dx
, h = e.x
, u = e.y;
if (0 != (e.flags & c.PT_LEFT)) {
var _ = this._chooseBevel(e.flags & c.PT_INNERBEVEL, t, e, i)
, f = _[0]
, p = _[1]
, m = _[2]
, v = _[3]
, C = x(-a, -s)
, T = x(-l, -o);
T > C && (T -= 2 * d),
this._vset(f, p, 1),
this._vset(h - s * n, e.y - a * n, -1);
for (var S = b(y((C - T) / d) * r, 2, r), w = 0; w < S; w++) {
var E = C + w / (S - 1) * (T - C)
, M = h + g(E) * n
, D = u + A(E) * n;
this._vset(h, u, 0),
this._vset(M, D, -1)
}
this._vset(m, v, 1),
this._vset(h - o * n, u - l * n, -1)
} else {
var B = this._chooseBevel(e.flags & c.PT_INNERBEVEL, t, e, -n)
, I = B[0]
, P = B[1]
, R = B[2]
, O = B[3]
, L = x(a, s)
, F = x(l, o);
F < L && (F += 2 * d),
this._vset(h + s * n, u + a * n, 1),
this._vset(I, P, -1);
for (var V = b(y((F - L) / d) * r, 2, r), N = 0; N < V; N++) {
var k = L + N / (V - 1) * (F - L)
, G = h + g(k) * i
, U = u + A(k) * i;
this._vset(G, U, 1),
this._vset(h, u, 0)
}
this._vset(h + o * n, u + l * n, 1),
this._vset(R, O, -1)
}
}
,
s._bevelJoin = function(t, e, i, n) {
var r, s, a, o, l, h, u, _, f = t.dy, d = -t.dx, p = e.dy, m = -e.dx;
if (e.flags & c.PT_LEFT) {
var y = this._chooseBevel(e.flags & c.PT_INNERBEVEL, t, e, i);
l = y[0],
h = y[1],
u = y[2],
_ = y[3],
this._vset(l, h, 1),
this._vset(e.x - f * n, e.y - d * n, -1),
this._vset(u, _, 1),
this._vset(e.x - p * n, e.y - m * n, -1)
} else {
var v = this._chooseBevel(e.flags & c.PT_INNERBEVEL, t, e, -n);
r = v[0],
s = v[1],
a = v[2],
o = v[3],
this._vset(e.x + f * i, e.y + d * i, 1),
this._vset(r, s, -1),
this._vset(e.x + p * i, e.y + m * i, 1),
this._vset(a, o, -1)
}
}
,
s._vset = function(t, e, i) {
void 0 === i && (i = 0);
var n = this._buffer
, r = n.meshbuffer
, s = n.vertexStart * this.getVfmtFloatCount()
, a = r._vData
, o = r._uintVData;
a[s] = t,
a[s + 1] = e,
o[s + 2] = this._curColor,
a[s + 3] = i,
n.vertexStart++,
r._dirty = !0
}
,
n
}
)(n.default);
i.default = S,
n.default.register(cc.Graphics, S),
e.exports = i.default
}
), {
"../../../../../renderer/core/input-assembler": 305,
"../../../../graphics/graphics": 156,
"../../../../graphics/types": 159,
"../../../assembler": 221,
"../../../index": 224,
"../../mesh-buffer": 251,
"./earcut": 233,
"./impl": 234
}],
236: [(function(t) {
"use strict";
cc.assemblers = {},
t("./sprite"),
t("./mask-assembler"),
t("./graphics"),
t("./label"),
t("./motion-streak")
}
), {
"./graphics": 235,
"./label": 241,
"./mask-assembler": 242,
"./motion-streak": void 0,
"./sprite": 249
}],
237: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r = (n = t("../../../../utils/label/bmfont")) && n.__esModule ? n : {
default: n
};
function s(t, e) {
return (s = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
var a = 0
, o = (function(t) {
var e, i;
function n() {
return t.apply(this, arguments) || this
}
i = t,
(e = n).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
s(e, i);
var r = n.prototype;
return r.initData = function() {
this._renderData.createFlexData(0, 4, 6, this.getVfmt())
}
,
r._reserveQuads = function(t, e) {
var i = 4 * e
, n = 6 * e
, r = this._renderData._flexBuffer;
r.reserve(i, n),
r.used(i, n);
for (var s = this._renderData.iDatas[0], o = 0, l = 0, h = n; o < h; o += 6,
l += 4)
s[o] = l,
s[o + 1] = l + 1,
s[o + 2] = l + 2,
s[o + 3] = l + 1,
s[o + 4] = l + 3,
s[o + 5] = l + 2;
a = 0
}
,
r._quadsUpdated = function() {
a = 0,
this._renderData._flexBuffer.used(this.verticesCount, this.indicesCount)
}
,
r._getColor = function(t) {
return t.node._color._val
}
,
r.appendQuad = function(t, e, i, n, r, s, o) {
var l = this._renderData
, h = l.vDatas[0]
, c = l.uintVDatas[0];
this.verticesCount += 4,
this.indicesCount = this.verticesCount / 2 * 3;
var u, _, f, d, p = e.width, m = e.height, y = i.width, v = i.height, g = this._getColor(t), A = this.floatsPerVert, x = a + this.uvOffset;
n ? (u = i.x / p,
f = (i.x + v) / p,
_ = (i.y + y) / m,
d = i.y / m,
h[x] = u,
h[x + 1] = d,
h[x += A] = u,
h[x + 1] = _,
h[x += A] = f,
h[x + 1] = d,
h[x += A] = f,
h[x + 1] = _) : (u = i.x / p,
f = (i.x + y) / p,
_ = (i.y + v) / m,
d = i.y / m,
h[x] = u,
h[x + 1] = _,
h[x += A] = f,
h[x + 1] = _,
h[x += A] = u,
h[x + 1] = d,
h[x += A] = f,
h[x + 1] = d),
u = r,
f = r + y * o,
_ = s - v * o,
d = s,
this.appendVerts(t, a, u, f, _, d);
for (var b = a + this.colorOffset, C = 0; C < 4; C++)
c[b] = g,
b += A;
a += 4 * this.floatsPerVert
}
,
r.appendVerts = function(t, e, i, n, r, s) {
var a = this._local
, o = this.floatsPerVert;
a[e] = i,
a[e + 1] = r,
a[e += o] = n,
a[e + 1] = r,
a[e += o] = i,
a[e + 1] = s,
a[e += o] = n,
a[e + 1] = s
}
,
r.updateWorldVerts = function(t) {
for (var e = t.node._worldMatrix.m, i = e[0], n = e[1], r = e[4], s = e[5], a = e[12], o = e[13], l = this._local, h = this._renderData.vDatas[0], c = this.floatsPerVert, u = 0; u < l.length; u += c) {
var _ = l[u]
, f = l[u + 1];
h[u] = _ * i + f * r + a,
h[u + 1] = _ * n + f * s + o
}
}
,
n
}
)(r.default);
i.default = o,
e.exports = i.default
}
), {
"../../../../utils/label/bmfont": 228
}],
238: [(function(t, e, i) {
"use strict";
function n(t, e) {
return (n = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
i.__esModule = !0,
i.default = void 0,
t("../../../../../platform/js"),
t("./bmfont");
var r = t("../../../../utils/label/letter-font")
, s = cc.color(255, 255, 255, 255)
, a = (function(t) {
var e, i;
function r() {
return t.apply(this, arguments) || this
}
i = t,
(e = r).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
n(e, i);
var a = r.prototype;
return a.createData = function(t) {
return t.requestRenderData()
}
,
a._getColor = function(t) {
return s._fastSetA(t.node._color.a),
s._val
}
,
a.updateColor = function(e) {
var i = this._getColor(e);
t.prototype.updateColor.call(this, e, i)
}
,
r
}
)(r);
i.default = a,
e.exports = i.default
}
), {
"../../../../../platform/js": 214,
"../../../../utils/label/letter-font": 230,
"./bmfont": 237
}],
239: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r = (n = t("../../../../../assets/material/material-variant")) && n.__esModule ? n : {
default: n
};
t("../../../../../components/CCLabel"),
t("../../../../../components/CCLabelShadow"),
t("../../../../../components/CCLabelOutline"),
t("../../../../../assets/material/CCMaterial");
var s = (function() {
function t() {}
var e = t.prototype;
return e.init = function(t) {
this.labelMaterial = null,
this._label = this._renderComp = t,
renderer.CustomAssembler.prototype.ctor.call(this),
t.node._proxy.setAssembler(this),
this._layout = new jsb.LabelRenderer,
this._layout.init(t),
this._cfg = new DataView(this._layout._cfg),
this._layoutInfo = new DataView(this._layout._layout),
this._cfgFields = jsb.LabelRenderer._cfgFields,
this._layoutFields = jsb.LabelRenderer._layoutFields,
this._layout.bindNodeProxy(t.node._proxy),
this._bindMaterial(t)
}
,
e._setBufferFlag = function(t, e, i, n, r) {
if ("int8" == n && 1 == i) {
var s = t.getInt8(e);
t.setInt8(e, r | s)
} else if ("int32" == n && 4 == i) {
var a = t.getInt32(e, jsb.__isLittleEndian__);
t.setInt32(e, r | a, jsb.__isLittleEndian__)
} else
cc.warn("flag storage type should be int8/int32 only, type/size -> " + n + "/" + i + ".")
}
,
e._updateCfgFlag = function(t) {
var e = this._cfgFields.updateFlags;
this._setBufferFlag(this._cfg, e.offset, e.size, e.type, t)
}
,
e._setBufferValue = function(t, e, i, n, r) {
"float" == n && 4 == i ? t.setFloat32(e, r, jsb.__isLittleEndian__) : "int32" == n && 4 == i ? t.setInt32(e, r, jsb.__isLittleEndian__) : "bool" == n && 1 == i ? t.setInt8(e, r ? 1 : 0, jsb.__isLittleEndian__) : "Color4B" == n && 4 == i ? (t.setUint8(e, r.r),
t.setUint8(e + 1, r.g),
t.setUint8(e + 2, r.b),
t.setUint8(e + 3, r.a)) : "int8" == n && 1 == i ? t.setUint8(e, r) : cc.warn("dont know how to set value to buffer, type/size -> " + n + "/" + i + ".")
}
,
e._setFieldValue = function(t, e, i, n) {
var r = e[i];
this._setBufferValue(t, r.offset, r.size, r.type, n)
}
,
e._getBufferValue = function(t, e, i, n) {
return "float" == n && 4 == i ? t.getFloat32(e, jsb.__isLittleEndian__) : "int32" == n && 4 == i ? t.getInt32(e, jsb.__isLittleEndian__) : "bool" == n && 1 == i ? 0 != t.getInt8(e, jsb.__isLittleEndian__) : "Color4B" == n && 4 == i ? {
r: t.getUint8(e),
g: t.getUint8(e + 1),
b: t.getUint8(e + 2),
a: t.getUint8(e + 3)
} : "int8" == n && 1 == i ? t.getUint8(e) : void cc.warn("dont know how to get value from buffer, type/size -> " + n + "/" + i + ".")
}
,
e._getFieldValue = function(t, e, i) {
var n = e[i];
return this._getBufferValue(t, n.offset, n.size, n.type)
}
,
e._getLayoutValue = function(t) {
return this._getFieldValue(this._layoutInfo, this._layoutFields, t)
}
,
e._setLayoutValue = function(t, e) {
return this._setFieldValue(this._layoutInfo, this._layoutFields, t, e)
}
,
e._updateCfgFlag_Content = function() {
this._updateCfgFlag(1)
}
,
e._updateCfgFlag_Font = function() {
this._updateCfgFlag(2)
}
,
e._colorEqual = function(t, e) {
return t.r == e.r && t.g == e.g && t.b == e.b && t.a == e.a
}
,
e._colorToObj = function(t, e, i, n) {
return {
r: t,
g: e,
b: i,
a: n
}
}
,
e.setString = function(t) {
t != this._layout.string && (this._layout.string = t,
this._updateCfgFlag_Content())
}
,
e.setFontPath = function(t) {
t != this._layout.fontPath && (this._layout.fontPath = t,
this._updateCfgFlag_Font())
}
,
e.setFontSize = function(t, e) {
this._getFieldValue(this._cfg, this._cfgFields, "fontSize") != t && (this._setFieldValue(this._cfg, this._cfgFields, "fontSize", t),
this._setFieldValue(this._cfg, this._cfgFields, "fontSizeRetina", e),
this._updateCfgFlag_Font())
}
,
e.setOutline = function(t) {
var e = this._getLayoutValue("outlineSize");
e > 0 != t > 0 && this._updateCfgFlag_Font(),
e != t && (this._updateCfgFlag_Content(),
this._setLayoutValue("outlineSize", t))
}
,
e.setOutlineColor = function(t) {
var e = this._getLayoutValue("outlineColor");
this._colorEqual(e, t) || (this._setLayoutValue("outlineColor", t),
this._updateCfgFlag_Content())
}
,
e.setLineHeight = function(t) {
this._getLayoutValue("lineHeight") != t && (this._setLayoutValue("lineHeight", t),
this._updateCfgFlag_Content())
}
,
e.setOverFlow = function(t) {
this._getLayoutValue("overflow") != t && (this._setLayoutValue("overflow", t),
this._updateCfgFlag_Content())
}
,
e.setEnableWrap = function(t) {
this._getLayoutValue("wrap") != t && (this._setLayoutValue("wrap", t),
this._updateCfgFlag_Content())
}
,
e.setVerticalAlign = function(t) {
this._getLayoutValue("valign") != t && (this._setLayoutValue("valign", t),
this._updateCfgFlag_Content())
}
,
e.setHorizontalAlign = function(t) {
this._getLayoutValue("halign") != t && (this._setLayoutValue("halign", t),
this._updateCfgFlag_Content())
}
,
e.setContentSize = function(t, e) {
var i = this._getLayoutValue("width")
, n = this._getLayoutValue("height");
i == t && n == e || (this._setLayoutValue("height", e),
this._setLayoutValue("width", t),
this._updateCfgFlag_Content())
}
,
e.setAnchorPoint = function(t, e) {
var i = this._getLayoutValue("anchorX")
, n = this._getLayoutValue("anchorY");
i == t && n == e || (this._setLayoutValue("anchorX", t),
this._setLayoutValue("anchorY", e),
this._updateCfgFlag_Content())
}
,
e.setColor = function(t) {
var e = this._getLayoutValue("color");
this._colorEqual(e, t) || (this._setLayoutValue("color", t),
this._updateCfgFlag_Content())
}
,
e.setShadow = function(t, e, i) {
var n = this._getLayoutValue("shadowBlur")
, r = this._getLayoutValue("shadowX")
, s = this._getLayoutValue("shadowY");
n > 0 != i > 0 && this._updateCfgFlag_Font();
var a = !1;
n != i && (this._setLayoutValue("shadowBlur", i),
a = !0),
r != t && (this._setLayoutValue("shadowX", t),
a = !0),
s != e && (this._setLayoutValue("shadowY", e),
a = !0),
a && this._updateCfgFlag_Content()
}
,
e.setShadowColor = function(t) {
var e = this._getLayoutValue("shadowColor");
this._colorEqual(e, t) || (this._setLayoutValue("shadowColor", t),
this._updateCfgFlag_Content())
}
,
e.setItalic = function(t) {
this._getLayoutValue("italic") != t && (this._setLayoutValue("italic", t),
this._updateCfgFlag_Content())
}
,
e.setBold = function(t) {
this._getLayoutValue("bold") != t && (this._setLayoutValue("bold", t),
this._updateCfgFlag_Content(),
this._updateCfgFlag_Font())
}
,
e.setUnderline = function(t) {
this._getLayoutValue("underline") != t && (this._setLayoutValue("underline", t),
this._updateCfgFlag_Content())
}
,
e.setSpacingX = function(t) {
this._getLayoutValue("spaceX") == t || "number" != typeof t || isNaN(t) || (this._setLayoutValue("spaceX", t),
this._updateCfgFlag_Content())
}
,
e.updateRenderData = function(t) {
if (t._vertsDirty) {
t.font && t.font.nativeUrl && this.setFontPath(cc.assetManager.cacheManager.getCache(t.font.nativeUrl) || t.font.nativeUrl);
var e = this._layout
, i = t.node.color
, n = t.node
, r = t.fontSize;
this.setString(t.string),
this.setFontSize(t.fontSize, r / 72 * t.fontSize),
this.setLineHeight(t.lineHeight),
this.setEnableWrap(t.enableWrapText),
this.setItalic(t.enableItalic),
this.setUnderline(t.enableUnderline),
this.setBold(t.enableBold),
this.setOverFlow(t.overflow),
this.setVerticalAlign(t.verticalAlign),
this.setHorizontalAlign(t.horizontalAlign),
this.setSpacingX(t.spacingX),
this.setContentSize(n.getContentSize().width, n.getContentSize().height),
this.setAnchorPoint(n.anchorX, n.anchorY),
this.setColor(this._colorToObj(i.getR(), i.getG(), i.getB(), Math.ceil(i.getA() * n.opacity / 255)));
var s = n.getComponent(cc.LabelShadow);
if (s && s.enabled) {
var a = s.color;
this.setShadow(s.offset.x, s.offset.y, s.blur),
this.setShadowColor(this._colorToObj(a.getR(), a.getG(), a.getB(), Math.ceil(a.getA() * n.opacity / 255)))
} else
this.setShadow(0, 0, -1);
this._updateTTFMaterial(t),
e.render()
}
}
,
e._bindMaterial = function(t) {
var e = this.labelMaterial;
return e || (e = r.default.createWithBuiltin("2d-label", t),
this.labelMaterial = e),
e
}
,
e._updateTTFMaterial = function(t) {
var e = this._bindMaterial(t)
, i = this._label.node
, n = this._layout
, r = i.getComponent(cc.LabelOutline)
, s = 0;
if (r && r.enabled && r.width > 0) {
s = Math.max(Math.min(r.width / 10, .4), .1);
var a = r.color;
this.setOutlineColor(this._colorToObj(a.getR(), a.getG(), a.getB(), Math.ceil(a.getA() * i.opacity / 255)))
}
this.setOutline(s),
e.define("CC_USE_MODEL", !0),
e.define("USE_TEXTURE_ALPHAONLY", !0),
e.define("USE_SDF", s > 0 || t.enableBold),
e.define("USE_SDF_EXTEND", t.enableBold ? 1 : 0),
void 0 !== e.getDefine("CC_SUPPORT_standard_derivatives") && cc.sys.glExtension("OES_standard_derivatives") && e.define("CC_SUPPORT_standard_derivatives", !0),
n.setEffect(e.effect._nativeObj)
}
,
e.fillBuffers = function() {
this._layout.render()
}
,
e.getVfmt = function() {}
,
t
}
)();
i.default = s,
e.exports = i.default
}
), {
"../../../../../assets/material/CCMaterial": 80,
"../../../../../assets/material/material-variant": 87,
"../../../../../components/CCLabel": 107,
"../../../../../components/CCLabelOutline": 108,
"../../../../../components/CCLabelShadow": 109
}],
240: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r = (n = t("../../../../utils/label/ttf")) && n.__esModule ? n : {
default: n
};
function s(t, e) {
return (s = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
var a = t("../../../../../components/CCLabelShadow")
, o = cc.color(255, 255, 255, 255)
, l = (function(t) {
var e, i;
function n() {
return t.apply(this, arguments) || this
}
i = t,
(e = n).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
s(e, i);
var r = n.prototype;
return r.updateUVs = function(t) {
for (var e = this._renderData.vDatas[0], i = t._frame.uv, n = this.uvOffset, r = this.floatsPerVert, s = 0; s < 4; s++) {
var a = 2 * s
, o = r * s + n;
e[o] = i[a],
e[o + 1] = i[a + 1]
}
}
,
r.updateColor = function(e) {
o._fastSetA(e.node._color.a);
var i = o._val;
t.prototype.updateColor.call(this, e, i)
}
,
r.updateVerts = function(t) {
var e = t.node
, i = t._ttfTexture.width
, n = t._ttfTexture.height
, r = e.anchorX * e.width
, s = e.anchorY * e.height
, o = a && t.getComponent(a);
if (o && o._enabled) {
var l = (i - e.width) / 2
, h = (n - e.height) / 2
, c = o.offset;
-c.x > l ? r += i - e.width : l > c.x && (r += l - c.x),
-c.y > h ? s += n - e.height : h > c.y && (s += h - c.y)
}
var u = this._local;
u[0] = -r,
u[1] = -s,
u[2] = i - r,
u[3] = n - s,
this.updateUVs(t),
this.updateWorldVerts(t)
}
,
n
}
)(r.default);
i.default = l,
e.exports = i.default
}
), {
"../../../../../components/CCLabelShadow": 109,
"../../../../utils/label/ttf": 231
}],
241: [(function(t) {
"use strict";
var e = h(t("../../../assembler"))
, i = h(t("../../../../components/CCLabel"))
, n = h(t("./2d/ttf"))
, r = h(t("./2d/bmfont"))
, s = h(t("./2d/letter"))
, a = h(t("./3d/ttf"))
, o = h(t("./3d/bmfont"))
, l = h(t("./3d/letter"));
function h(t) {
return t && t.__esModule ? t : {
default: t
}
}
i.default._canvasPool = {
pool: [],
get: function() {
var t = this.pool.pop();
if (!t) {
var e = document.createElement("canvas")
, i = e.getContext("2d");
t = {
canvas: e,
context: i
},
i.textBaseline = "alphabetic"
}
return t
},
put: function(t) {
this.pool.length >= 32 || this.pool.push(t)
}
},
e.default.register(cc.Label, {
getConstructor: function(t) {
var e = t.node.is3DNode
, h = e ? a.default : n.default;
return t.font instanceof cc.BitmapFont ? h = e ? o.default : r.default : t.cacheMode === i.default.CacheMode.CHAR && (cc.sys.platform === cc.sys.WECHAT_GAME_SUB ? cc.warn("sorry, subdomain does not support CHAR mode currently!") : h = e ? l.default : s.default),
h
},
TTF: n.default,
Bmfont: r.default,
Letter: s.default,
TTF3D: a.default,
Bmfont3D: o.default,
Letter3D: l.default,
NativeTTF: void 0
})
}
), {
"../../../../components/CCLabel": 107,
"../../../assembler": 221,
"./2d/bmfont": 237,
"./2d/letter": 238,
"./2d/nativeTTF": 239,
"./2d/ttf": 240,
"./3d/bmfont": void 0,
"./3d/letter": void 0,
"./3d/ttf": void 0
}],
242: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.MaskAssembler = void 0;
var n, r = (n = t("../../assembler")) && n.__esModule ? n : {
default: n
};
function s(t, e) {
return (s = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
var a = t("../../../components/CCMask")
, o = t("../../render-flow")
, l = t("./sprite/2d/simple")
, h = t("./graphics")
, c = t("../../../../renderer/gfx")
, u = t("../vertex-format").vfmtPos
, _ = 8
, f = [];
function d() {
return 1 << f.length - 1
}
function p() {
for (var t = 0, e = 0; e < f.length; ++e)
t += 1 << e;
return t
}
function m(t, e, i, n, r, s) {
var a = t.effect
, o = c.STENCIL_OP_KEEP
, l = c.STENCIL_OP_KEEP;
a.setStencil(c.STENCIL_ENABLE, e, n, r, i, o, l, s)
}
function y(t) {
f.length + 1 > _ && cc.errorID(9e3, _),
f.push(t)
}
function v(t, e) {
0 === f.length && cc.errorID(9001),
f.pop(),
0 === f.length ? e._flushMaterial(t._exitMaterial) : x(e)
}
function g(t, e) {
var i = c.DS_FUNC_NEVER
, n = d()
, r = n
, s = n
, a = t.inverted ? c.STENCIL_OP_REPLACE : c.STENCIL_OP_ZERO;
m(t._clearMaterial, i, a, n, r, s);
var o = e.getBuffer("mesh", u)
, l = o.request(4, 6)
, h = l.indiceOffset
, _ = l.byteOffset >> 2
, f = l.vertexOffset
, p = o._vData
, y = o._iData;
p[_++] = -1,
p[_++] = -1,
p[_++] = -1,
p[_++] = 1,
p[_++] = 1,
p[_++] = 1,
p[_++] = 1,
p[_++] = -1,
y[h++] = f,
y[h++] = f + 3,
y[h++] = f + 1,
y[h++] = f + 1,
y[h++] = f + 3,
y[h++] = f + 2,
e.node = e._dummyNode,
e.material = t._clearMaterial,
e._flush()
}
function A(t, e) {
var i = c.DS_FUNC_NEVER
, n = d()
, r = n
, s = n
, o = t.inverted ? c.STENCIL_OP_ZERO : c.STENCIL_OP_REPLACE;
m(t._materials[0], i, o, n, r, s),
e.material = t._materials[0],
t._type === a.Type.IMAGE_STENCIL ? (e.node = e._dummyNode,
l.prototype.fillBuffers.call(t._assembler, t, e),
e._flush()) : (e.node = t.node,
h.prototype.fillBuffers.call(t._graphics._assembler, t._graphics, e))
}
function x(t) {
var e = c.DS_FUNC_EQUAL
, i = c.STENCIL_OP_KEEP
, n = p()
, r = n
, s = d()
, a = f[f.length - 1];
m(a._enableMaterial, e, i, n, r, s),
t._flushMaterial(a._enableMaterial)
}
var b = (function(t) {
var e, i;
function n() {
return t.apply(this, arguments) || this
}
i = t,
(e = n).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
s(e, i);
var r = n.prototype;
return r.updateRenderData = function(t) {
t._type === a.Type.IMAGE_STENCIL ? t.spriteFrame ? l.prototype.updateRenderData.call(this, t) : t.setMaterial(0, null) : (t._graphics.setMaterial(0, t._materials[0]),
h.prototype.updateRenderData.call(t._graphics._assembler, t._graphics, t._graphics))
}
,
r.fillBuffers = function(t, e) {
(t._type !== a.Type.IMAGE_STENCIL || t.spriteFrame) && (y(t),
g(t, e),
A(t, e),
x(e)),
t.node._renderFlag |= o.FLAG_UPDATE_RENDER_DATA
}
,
r.postFillBuffers = function(t, e) {
(t._type !== a.Type.IMAGE_STENCIL || t.spriteFrame) && v(t, e),
t.node._renderFlag |= o.FLAG_UPDATE_RENDER_DATA
}
,
n
}
)(l);
i.MaskAssembler = b,
r.default.register(a, b)
}
), {
"../../../../renderer/gfx": 315,
"../../../components/CCMask": 111,
"../../assembler": 221,
"../../render-flow": 225,
"../vertex-format": 256,
"./graphics": 235,
"./sprite/2d/simple": 246
}],
243: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r = (n = t("../../../../assembler-2d")) && n.__esModule ? n : {
default: n
};
function s(t, e) {
return (s = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
var a = t("../../../../../components/CCSprite").FillType
, o = (function(t) {
var e, i;
function n() {
return t.apply(this, arguments) || this
}
i = t,
(e = n).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
s(e, i);
var r = n.prototype;
return r.updateRenderData = function(t) {
var e = t._spriteFrame;
if (this.packToDynamicAtlas(t, e),
t._vertsDirty) {
var i = t._fillStart
, n = t._fillRange;
n < 0 && (i += n,
n = -n),
n = (n = (n = i + n) > 1 ? 1 : n) < 0 ? 0 : n;
var r = (i = (i = i > 1 ? 1 : i) < 0 ? 0 : i) + (n = (n -= i) < 0 ? 0 : n);
r = r > 1 ? 1 : r,
this.updateUVs(t, i, r),
this.updateVerts(t, i, r),
t._vertsDirty = !1
}
}
,
r.updateUVs = function(t, e, i) {
var n, r, s, o, l, h, c, u, _, f, d = t._spriteFrame, p = d._texture.width, m = d._texture.height, y = d._rect;
d._rotated ? (n = y.x / p,
r = (y.y + y.width) / m,
s = l = n,
c = _ = (y.x + y.height) / p,
h = f = r,
o = u = y.y / m) : (n = y.x / p,
r = (y.y + y.height) / m,
s = c = n,
l = _ = (y.x + y.width) / p,
o = h = r,
u = f = y.y / m);
var v = this._renderData.vDatas[0]
, g = this.uvOffset
, A = this.floatsPerVert;
switch (t._fillType) {
case a.HORIZONTAL:
v[g] = s + (l - s) * e,
v[g + 1] = o + (h - o) * e,
v[g + A] = s + (l - s) * i,
v[g + A + 1] = o + (h - o) * i,
v[g + 2 * A] = c + (_ - c) * e,
v[g + 2 * A + 1] = u + (f - u) * e,
v[g + 3 * A] = c + (_ - c) * i,
v[g + 3 * A + 1] = u + (f - u) * i;
break;
case a.VERTICAL:
v[g] = s + (c - s) * e,
v[g + 1] = o + (u - o) * e,
v[g + A] = l + (_ - l) * e,
v[g + A + 1] = h + (f - h) * e,
v[g + 2 * A] = s + (c - s) * i,
v[g + 2 * A + 1] = o + (u - o) * i,
v[g + 3 * A] = l + (_ - l) * i,
v[g + 3 * A + 1] = h + (f - h) * i;
break;
default:
cc.errorID(2626)
}
}
,
r.updateVerts = function(t, e, i) {
var n, r = t.node, s = r.width, o = r.height, l = r.anchorX * s, h = r.anchorY * o, c = -l, u = -h, _ = s - l, f = o - h;
switch (t._fillType) {
case a.HORIZONTAL:
n = c + (_ - c) * i,
c += (_ - c) * e,
_ = n;
break;
case a.VERTICAL:
n = u + (f - u) * i,
u += (f - u) * e,
f = n;
break;
default:
cc.errorID(2626)
}
var d = this._local;
d[0] = c,
d[1] = u,
d[2] = _,
d[3] = f,
this.updateWorldVerts(t)
}
,
n
}
)(r.default);
i.default = o,
e.exports = i.default
}
), {
"../../../../../components/CCSprite": 120,
"../../../../assembler-2d": 219
}],
244: [(function(t, e, i) {
"use strict";
var n;
function r(t, e) {
return (r = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
i.__esModule = !0,
i.default = void 0;
var s = (function(t) {
var e, i;
function n() {
return t.apply(this, arguments) || this
}
i = t,
(e = n).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
r(e, i);
var s = n.prototype;
return s.initData = function() {
this._renderData.createFlexData(0, 4, 6, this.getVfmt())
}
,
s.updateRenderData = function(t) {
this.packToDynamicAtlas(t, t._spriteFrame);
var e = t.spriteFrame;
if (e) {
var i = e.vertices;
if (i) {
this.verticesCount = i.x.length,
this.indicesCount = i.triangles.length;
var n = this._renderData._flexBuffer;
n.reserve(this.verticesCount, this.indicesCount) && (this.updateColor(t),
t._vertsDirty = !0),
n.used(this.verticesCount, this.indicesCount),
this.updateIndices(i.triangles),
t._vertsDirty && (this.updateUVs(t),
this.updateVerts(t),
this.updateWorldVerts(t),
t._vertsDirty = !1)
}
}
}
,
s.updateIndices = function(t) {
this._renderData.iDatas[0].set(t)
}
,
s.updateUVs = function(t) {
for (var e = t.spriteFrame.vertices, i = e.nu, n = e.nv, r = this.uvOffset, s = this.floatsPerVert, a = this._renderData.vDatas[0], o = 0; o < i.length; o++) {
var l = s * o + r;
a[l] = i[o],
a[l + 1] = n[o]
}
}
,
s.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
, a = t.spriteFrame
, o = a.vertices
, l = o.x
, h = o.y
, c = a._originalSize.width
, u = a._originalSize.height
, _ = a._rect.width
, f = a._rect.height
, d = a._offset.x + (c - _) / 2
, p = a._offset.y + (u - f) / 2
, m = i / (t.trim ? _ : c)
, y = n / (t.trim ? f : u)
, v = this._local;
if (t.trim)
for (var g = 0, A = l.length; g < A; g++) {
var x = 2 * g;
v[x] = (l[g] - d) * m - r,
v[x + 1] = (u - h[g] - p) * y - s
}
else
for (var b = 0, C = l.length; b < C; b++) {
var T = 2 * b;
v[T] = l[b] * m - r,
v[T + 1] = (u - h[b]) * y - s
}
if (a._flipX)
for (var S = 0, w = this.verticesCount; S < w; S++)
v[2 * S] = i - v[2 * S] - 2 * r;
if (a._flipY)
for (var E = 0, M = this.verticesCount; E < M; E++)
v[2 * E + 1] = n - v[2 * E + 1] - 2 * s
}
,
s.updateWorldVerts = function(t) {
for (var e = t.node._worldMatrix.m, i = e[0], n = e[1], r = e[4], s = e[5], a = e[12], o = e[13], l = this._local, h = this._renderData.vDatas[0], c = this.floatsPerVert, u = 0, _ = this.verticesCount; u < _; u++) {
var f = l[2 * u]
, d = l[2 * u + 1];
h[c * u] = f * i + d * r + a,
h[c * u + 1] = f * n + d * s + o
}
}
,
n
}
)(((n = t("../../../../assembler-2d")) && n.__esModule ? n : {
default: n
}).default);
i.default = s,
e.exports = i.default
}
), {
"../../../../assembler-2d": 219
}],
245: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r = (n = t("../../../../assembler-2d")) && n.__esModule ? n : {
default: n
};
function s(t, e) {
return (s = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
var a = 2 * Math.PI
, o = [cc.v2(0, 0), cc.v2(0, 0), cc.v2(0, 0), cc.v2(0, 0)]
, l = [0, 0, 0, 0]
, h = [0, 0, 0, 0, 0, 0, 0, 0]
, c = [cc.v2(0, 0), cc.v2(0, 0), cc.v2(0, 0), cc.v2(0, 0)]
, u = [cc.v2(0, 0), cc.v2(0, 0), cc.v2(0, 0), cc.v2(0, 0)]
, _ = cc.v2(0, 0)
, f = [];
function d(t, e, i, n, r, s, a) {
var o, l, h = Math.sin(s), c = Math.cos(s);
if (0 !== Math.cos(s)) {
if (o = h / c,
(t - r.x) * c > 0) {
var u = r.y + o * (t - r.x);
a[0].x = t,
a[0].y = u
}
if ((e - r.x) * c > 0) {
var _ = r.y + o * (e - r.x);
a[2].x = e,
a[2].y = _
}
}
if (0 !== Math.sin(s)) {
if (l = c / h,
(n - r.y) * h > 0) {
var f = r.x + l * (n - r.y);
a[3].x = f,
a[3].y = n
}
if ((i - r.y) * h > 0) {
var d = r.x + l * (i - r.y);
a[1].x = d,
a[1].y = i
}
}
}
function p(t) {
var e = t.node
, i = e.width
, n = e.height
, r = e.anchorX * i
, s = e.anchorY * n
, a = -r
, h = -s
, c = i - r
, u = n - s
, d = l;
d[0] = a,
d[1] = h,
d[2] = c,
d[3] = u;
var p = t._fillCenter
, m = _.x = Math.min(Math.max(0, p.x), 1) * (c - a) + a
, y = _.y = Math.min(Math.max(0, p.y), 1) * (u - h) + h;
o[0].x = o[3].x = a,
o[1].x = o[2].x = c,
o[0].y = o[1].y = h,
o[2].y = o[3].y = u,
f.length = 0,
m !== d[0] && (f[0] = [3, 0]),
m !== d[2] && (f[2] = [1, 2]),
y !== d[1] && (f[1] = [0, 1]),
y !== d[3] && (f[3] = [2, 3])
}
function m(t, e) {
var i, n;
if (i = e.x - t.x,
n = e.y - t.y,
0 !== i || 0 !== n) {
if (0 === i)
return n > 0 ? .5 * Math.PI : 1.5 * Math.PI;
var r = Math.atan(n / i);
return i < 0 && (r += Math.PI),
r
}
}
var y = (function(t) {
var e, i;
function n() {
return t.apply(this, arguments) || this
}
i = t,
(e = n).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
s(e, i);
var r = n.prototype;
return r.initData = function() {
this._renderData.createFlexData(0, 4, 6, this.getVfmt()),
this.updateIndices()
}
,
r.updateRenderData = function(e) {
t.prototype.updateRenderData.call(this, e);
var i, n, r, s, o, f, m, y, v, g = e.spriteFrame;
if (this.packToDynamicAtlas(e, g),
e._vertsDirty) {
var A = e._fillStart
, x = e._fillRange;
for (x < 0 && (A += x,
x = -x); A >= 1; )
A -= 1;
for (; A < 0; )
A += 1;
A *= a,
x *= a,
p(e),
f = (i = g)._texture.width,
m = i._texture.height,
y = i._rect,
v = h,
i._rotated ? (n = y.x / f,
r = (y.x + y.height) / f,
s = y.y / m,
o = (y.y + y.width) / m,
v[0] = v[2] = n,
v[4] = v[6] = r,
v[3] = v[7] = o,
v[1] = v[5] = s) : (n = y.x / f,
r = (y.x + y.width) / f,
s = y.y / m,
o = (y.y + y.height) / m,
v[0] = v[4] = n,
v[2] = v[6] = r,
v[1] = v[3] = o,
v[5] = v[7] = s),
d(l[0], l[2], l[1], l[3], _, A, c),
d(l[0], l[2], l[1], l[3], _, A + x, u),
this.updateVerts(e, A, x),
e._vertsDirty = !1
}
}
,
r.updateVerts = function(t, e, i) {
var n = e + i
, r = this._local;
r.length = 0;
for (var s = 0, l = 3 * this.floatsPerVert, h = 0; h < 4; ++h) {
var d = f[h];
if (d)
if (i >= a)
r.length = s + l,
this._generateTriangle(r, s, _, o[d[0]], o[d[1]]),
s += l;
else {
var p = m(_, o[d[0]])
, y = m(_, o[d[1]]);
y < p && (y += a),
p -= a,
y -= a;
for (var v = 0; v < 3; ++v)
p >= n || (p >= e ? (r.length = s + l,
y >= n ? this._generateTriangle(r, s, _, o[d[0]], u[h]) : this._generateTriangle(r, s, _, o[d[0]], o[d[1]]),
s += l) : y <= e || (y <= n ? (r.length = s + l,
this._generateTriangle(r, s, _, c[h], o[d[1]]),
s += l) : (r.length = s + l,
this._generateTriangle(r, s, _, c[h], u[h]),
s += l))),
p += a,
y += a
}
}
this.allocWorldVerts(t),
this.updateWorldVerts(t)
}
,
r.allocWorldVerts = function(t) {
var e = t.node._color._val
, i = this._renderData
, n = this.floatsPerVert
, r = this._local
, s = r.length / n;
this.verticesCount = this.indicesCount = s;
var a = i._flexBuffer;
a.reserve(s, s) && this.updateIndices(),
a.used(this.verticesCount, this.indicesCount);
for (var o = i.vDatas[0], l = i.uintVDatas[0], h = this.uvOffset, c = 0; c < r.length; c += n) {
var u = c + h;
o[u] = r[u],
o[u + 1] = r[u + 1],
l[u + 2] = e
}
}
,
r.updateIndices = function() {
for (var t = this._renderData.iDatas[0], e = 0; e < t.length; e++)
t[e] = e
}
,
r.updateWorldVerts = function(t) {
for (var e = t.node._worldMatrix.m, i = e[0], n = e[1], r = e[4], s = e[5], a = e[12], o = e[13], l = this._local, h = this._renderData.vDatas[0], c = this.floatsPerVert, u = 0; u < l.length; u += c) {
var _ = l[u]
, f = l[u + 1];
h[u] = _ * i + f * r + a,
h[u + 1] = _ * n + f * s + o
}
}
,
r._generateTriangle = function(t, e, i, n, r) {
var s = l
, a = s[0]
, o = s[1]
, h = s[2]
, c = s[3]
, u = this.floatsPerVert;
t[e] = i.x,
t[e + 1] = i.y,
t[e + u] = n.x,
t[e + u + 1] = n.y,
t[e + 2 * u] = r.x,
t[e + 2 * u + 1] = r.y;
var _, f, d = this.uvOffset;
_ = (i.x - a) / (h - a),
f = (i.y - o) / (c - o),
this._generateUV(_, f, t, e + d),
_ = (n.x - a) / (h - a),
f = (n.y - o) / (c - o),
this._generateUV(_, f, t, e + u + d),
_ = (r.x - a) / (h - a),
f = (r.y - o) / (c - o),
this._generateUV(_, f, t, e + 2 * u + d)
}
,
r._generateUV = function(t, e, i, n) {
var r = h[0] + (h[2] - h[0]) * t
, s = h[4] + (h[6] - h[4]) * t
, a = h[1] + (h[3] - h[1]) * t
, o = h[5] + (h[7] - h[5]) * t;
i[n] = r + (s - r) * e,
i[n + 1] = a + (o - a) * e
}
,
n
}
)(r.default);
i.default = y,
e.exports = i.default
}
), {
"../../../../assembler-2d": 219
}],
246: [(function(t, e, i) {
"use strict";
var n;
function r(t, e) {
return (r = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
i.__esModule = !0,
i.default = void 0;
var s = (function(t) {
var e, i;
function n() {
return t.apply(this, arguments) || this
}
i = t,
(e = n).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
r(e, i);
var s = n.prototype;
return s.updateRenderData = function(t) {
this.packToDynamicAtlas(t, t._spriteFrame),
t._vertsDirty && (this.updateUVs(t),
this.updateVerts(t),
t._vertsDirty = !1)
}
,
s.updateUVs = function(t) {
for (var e = t._spriteFrame.uv, i = this.uvOffset, n = this.floatsPerVert, r = this._renderData.vDatas[0], s = 0; s < 4; s++) {
var a = 2 * s
, o = n * s + i;
r[o] = e[a],
r[o + 1] = e[a + 1]
}
}
,
s.updateVerts = function(t) {
var e, i, n, r, s = t.node, a = s.width, o = s.height, l = s.anchorX * a, h = s.anchorY * o;
if (t.trim)
e = -l,
i = -h,
n = a - l,
r = o - h;
else {
var c = t.spriteFrame
, u = c._originalSize.width
, _ = c._originalSize.height
, f = c._rect.width
, d = c._rect.height
, p = c._offset
, m = a / u
, y = o / _
, v = p.x + (u - f) / 2
, g = p.x - (u - f) / 2;
e = v * m - l,
i = (p.y + (_ - d) / 2) * y - h,
n = a + g * m - l,
r = o + (p.y - (_ - d) / 2) * y - h
}
var A = this._local;
A[0] = e,
A[1] = i,
A[2] = n,
A[3] = r,
this.updateWorldVerts(t)
}
,
n
}
)(((n = t("../../../../assembler-2d")) && n.__esModule ? n : {
default: n
}).default);
i.default = s,
e.exports = i.default
}
), {
"../../../../assembler-2d": 219
}],
247: [(function(t, e, i) {
"use strict";
var n;
function r(t, e) {
return (r = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
i.__esModule = !0,
i.default = void 0;
var s = (function(t) {
var e, i;
function n() {
return t.apply(this, arguments) || this
}
i = t,
(e = n).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
r(e, i);
var s = n.prototype;
return s.initData = function() {
if (!(this._renderData.meshCount > 0)) {
this._renderData.createData(0, this.verticesFloats, this.indicesCount);
for (var t = this._renderData.iDatas[0], e = 0, i = 0; i < 3; ++i)
for (var n = 0; n < 3; ++n) {
var r = 4 * i + n;
t[e++] = r,
t[e++] = r + 1,
t[e++] = r + 4,
t[e++] = r + 1,
t[e++] = r + 5,
t[e++] = r + 4
}
}
}
,
s.initLocal = function() {
this._local = [],
this._local.length = 8
}
,
s.updateRenderData = function(t) {
var e = t._spriteFrame;
this.packToDynamicAtlas(t, e),
t._vertsDirty && (this.updateUVs(t),
this.updateVerts(t),
t._vertsDirty = !1)
}
,
s.updateVerts = function(t) {
var e = t.node
, i = e.width
, n = e.height
, r = e.anchorX * i
, s = e.anchorY * n
, a = t.spriteFrame
, o = a.insetLeft
, l = a.insetRight
, h = a.insetTop
, c = a.insetBottom
, u = i - o - l
, _ = n - h - c
, f = i / (o + l)
, d = n / (h + c);
f = isNaN(f) || f > 1 ? 1 : f,
d = isNaN(d) || d > 1 ? 1 : d,
u = u < 0 ? 0 : u,
_ = _ < 0 ? 0 : _;
var p = this._local;
p[0] = -r,
p[1] = -s,
p[2] = o * f - r,
p[3] = c * d - s,
p[4] = p[2] + u,
p[5] = p[3] + _,
p[6] = i - r,
p[7] = n - s,
this.updateWorldVerts(t)
}
,
s.updateUVs = function(t) {
for (var e = this._renderData.vDatas[0], i = t.spriteFrame.uvSliced, n = this.uvOffset, r = this.floatsPerVert, s = 0; s < 4; ++s)
for (var a = 0; a < 4; ++a) {
var o = 4 * s + a
, l = i[o]
, h = o * r;
e[h + n] = l.u,
e[h + n + 1] = l.v
}
}
,
s.updateWorldVerts = function(t) {
for (var e = t.node._worldMatrix.m, i = e[0], n = e[1], r = e[4], s = e[5], a = e[12], o = e[13], l = this._local, h = this._renderData.vDatas[0], c = this.floatsPerVert, u = 0; u < 4; ++u)
for (var _ = l[2 * u + 1], f = 0; f < 4; ++f) {
var d = l[2 * f]
, p = (4 * u + f) * c;
h[p] = d * i + _ * r + a,
h[p + 1] = d * n + _ * s + o
}
}
,
n
}
)(((n = t("../../../../assembler-2d")) && n.__esModule ? n : {
default: n
}).default);
i.default = s,
Object.assign(s.prototype, {
verticesCount: 16,
indicesCount: 54
}),
e.exports = i.default
}
), {
"../../../../assembler-2d": 219
}],
248: [(function(t, e, i) {
"use strict";
var n;
function r(t, e) {
return (r = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
i.__esModule = !0,
i.default = void 0;
var s = (function(t) {
var e, i;
function n() {
return t.apply(this, arguments) || this
}
i = t,
(e = n).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
r(e, i);
var s = n.prototype;
return s.initData = function() {
this.verticesCount = 0,
this.contentWidth = 0,
this.contentHeight = 0,
this.rectWidth = 0,
this.rectHeight = 0,
this.hRepeat = 0,
this.vRepeat = 0,
this.row = 0,
this.col = 0,
this._renderData.createFlexData(0, 4, 6, this.getVfmt()),
this._updateIndices()
}
,
s.initLocal = function() {
this._local = {
x: [],
y: []
}
}
,
s._updateIndices = function() {
for (var t = this._renderData.iDatas[0], e = 0, i = 0, n = t.length; e < n; e += 6,
i += 4)
t[e] = i,
t[e + 1] = i + 1,
t[e + 2] = i + 2,
t[e + 3] = i + 1,
t[e + 4] = i + 3,
t[e + 5] = i + 2
}
,
s.updateRenderData = function(t) {
var e = t._spriteFrame;
this.packToDynamicAtlas(t, e);
var i = t.node
, n = this.contentWidth = Math.abs(i.width)
, r = this.contentHeight = Math.abs(i.height)
, s = e._rect
, a = e.insetLeft
, o = e.insetRight
, l = s.width - a - o
, h = e.insetTop
, c = e.insetBottom
, u = s.height - h - c;
this.sizableWidth = n - a - o,
this.sizableHeight = r - h - c,
this.sizableWidth = this.sizableWidth > 0 ? this.sizableWidth : 0,
this.sizableHeight = this.sizableHeight > 0 ? this.sizableHeight : 0;
var _ = this.hRepeat = 0 === l ? this.sizableWidth : this.sizableWidth / l
, f = this.vRepeat = 0 === u ? this.sizableHeight : this.sizableHeight / u
, d = (this.row = Math.ceil(f + 2)) * (this.col = Math.ceil(_ + 2));
this.verticesCount = 4 * d,
this.indicesCount = 6 * d;
var p = this._renderData._flexBuffer;
p.reserve(this.verticesCount, this.indicesCount) && (this._updateIndices(),
this.updateColor(t)),
p.used(this.verticesCount, this.indicesCount),
t._vertsDirty && (this.updateUVs(t),
this.updateVerts(t),
t._vertsDirty = !1)
}
,
s.updateVerts = function(t) {
var e = t._spriteFrame
, i = e._rect
, n = t.node
, r = n.anchorX * n.width
, s = n.anchorY * n.height
, a = this.row
, o = this.col
, l = this.contentWidth
, h = this.contentHeight
, c = this._local
, u = c.x
, _ = c.y;
u.length = _.length = 0;
var f, d, p = e.insetLeft, m = e.insetRight, y = i.width - p - m, v = e.insetTop, g = e.insetBottom, A = i.height - v - g, x = n.width / (p + m) > 1 ? 1 : n.width / (p + m), b = n.height / (v + g) > 1 ? 1 : n.height / (v + g);
f = y > 0 ? Math.floor(1e3 * this.sizableWidth) / 1e3 % y == 0 ? y : this.sizableWidth % y : this.sizableWidth,
d = A > 0 ? Math.floor(1e3 * this.sizableHeight) / 1e3 % A == 0 ? A : this.sizableHeight % A : this.sizableHeight;
for (var C = 0; C <= o; C++)
0 === C ? u[C] = -r : C > 0 && C < o ? u[C] = 1 === C ? p * x + Math.min(y, this.sizableWidth) - r : y > 0 ? C === o - 1 ? p + f + y * (C - 2) - r : p + Math.min(y, this.sizableWidth) + y * (C - 2) - r : p + this.sizableWidth - r : C === o && (u[C] = Math.min(p + this.sizableWidth + m, l) - r);
for (var T = 0; T <= a; T++)
0 === T ? _[T] = -s : T > 0 && T < a ? _[T] = 1 === T ? g * b + Math.min(A, this.sizableHeight) - s : A > 0 ? T === a - 1 ? g + d + (T - 2) * A - s : g + Math.min(A, this.sizableHeight) + (T - 2) * A - s : g + this.sizableHeight - s : T === a && (_[T] = Math.min(g + this.sizableHeight + v, h) - s);
this.updateWorldVerts(t)
}
,
s.updateWorldVerts = function(t) {
for (var e, i, n, r, s = this._renderData, a = this._local, o = a.x, l = a.y, h = s.vDatas[0], c = this.row, u = this.col, _ = t.node._worldMatrix.m, f = _[0], d = _[1], p = _[4], m = _[5], y = _[12], v = _[13], g = this.floatsPerVert, A = 0, x = 0, b = c; x < b; ++x) {
n = l[x],
r = l[x + 1];
for (var C = 0, T = u; C < T; ++C)
e = o[C],
i = o[C + 1],
h[A] = e * f + n * p + y,
h[A + 1] = e * d + n * m + v,
h[A += g] = i * f + n * p + y,
h[A + 1] = i * d + n * m + v,
h[A += g] = e * f + r * p + y,
h[A + 1] = e * d + r * m + v,
h[A += g] = i * f + r * p + y,
h[A + 1] = i * d + r * m + v,
A += g
}
}
,
s.updateUVs = function(t) {
var e = this._renderData.vDatas[0];
if (e)
for (var i = t._spriteFrame, n = i._rect, r = i.insetLeft, s = i.insetRight, a = n.width - r - s, o = i.insetTop, l = i.insetBottom, h = n.height - o - l, c = this.row, u = this.col, _ = this.hRepeat, f = this.vRepeat, d = 0, p = 0, m = t.spriteFrame.uv, y = t.spriteFrame.uvSliced, v = t.spriteFrame._rotated, g = this.floatsPerVert, A = this.uvOffset, x = [], b = [], C = 0, T = c; C < T; ++C) {
p = this.sizableHeight > h ? this.sizableHeight >= C * h ? 1 : f % 1 : f;
for (var S = 0, w = u; S < w; ++S)
d = this.sizableWidth > a ? this.sizableWidth >= S * a ? 1 : _ % 1 : _,
v ? (0 === C ? (x[0] = y[0].u,
x[1] = y[0].u,
x[2] = y[4].u + (y[8].u - y[4].u) * p) : C < c - 1 ? (x[0] = y[4].u,
x[1] = y[4].u,
x[2] = y[4].u + (y[8].u - y[4].u) * p) : C === c - 1 && (x[0] = y[8].u,
x[1] = y[8].u,
x[2] = y[12].u),
0 === S ? (b[0] = y[0].v,
b[1] = y[1].v + (y[2].v - y[1].v) * d,
b[2] = y[0].v) : S < u - 1 ? (b[0] = y[1].v,
b[1] = y[1].v + (y[2].v - y[1].v) * d,
b[2] = y[1].v) : S === u - 1 && (b[0] = y[2].v,
b[1] = y[3].v,
b[2] = y[2].v),
x[3] = x[2],
b[3] = b[1]) : (0 === S ? (x[0] = y[0].u,
x[1] = y[1].u + (y[2].u - y[1].u) * d,
x[2] = m[0]) : S < u - 1 ? (x[0] = y[1].u,
x[1] = y[1].u + (y[2].u - y[1].u) * d,
x[2] = y[1].u) : S === u - 1 && (x[0] = y[2].u,
x[1] = y[3].u,
x[2] = y[2].u),
0 === C ? (b[0] = y[0].v,
b[1] = y[0].v,
b[2] = y[4].v + (y[8].v - y[4].v) * p) : C < c - 1 ? (b[0] = y[4].v,
b[1] = y[4].v,
b[2] = y[4].v + (y[8].v - y[4].v) * p) : C === c - 1 && (b[0] = y[8].v,
b[1] = y[8].v,
b[2] = y[12].v),
x[3] = x[1],
b[3] = b[2]),
e[A] = x[0],
e[A + 1] = b[0],
e[A += g] = x[1],
e[A + 1] = b[1],
e[A += g] = x[2],
e[A + 1] = b[2],
e[A += g] = x[3],
e[A + 1] = b[3],
A += g
}
}
,
n
}
)(((n = t("../../../../assembler-2d")) && n.__esModule ? n : {
default: n
}).default);
i.default = s,
e.exports = i.default
}
), {
"../../../../assembler-2d": 219
}],
249: [(function(t) {
"use strict";
var e = p(t("../../../assembler"))
, i = t("../../../../components/CCSprite")
, n = p(t("./2d/simple"))
, r = p(t("./2d/sliced"))
, s = p(t("./2d/tiled"))
, a = p(t("./2d/radial-filled"))
, o = p(t("./2d/bar-filled"))
, l = p(t("./2d/mesh"))
, h = p(t("./3d/simple"))
, c = p(t("./3d/sliced"))
, u = p(t("./3d/tiled"))
, _ = p(t("./3d/radial-filled"))
, f = p(t("./3d/bar-filled"))
, d = p(t("./3d/mesh"));
function p(t) {
return t && t.__esModule ? t : {
default: t
}
}
var m = {
getConstructor: function(t) {
var e = t.node.is3DNode
, p = e ? h.default : n.default;
switch (t.type) {
case i.Type.SLICED:
p = e ? c.default : r.default;
break;
case i.Type.TILED:
p = e ? u.default : s.default;
break;
case i.Type.FILLED:
p = t._fillType === i.FillType.RADIAL ? e ? _.default : a.default : e ? f.default : o.default;
break;
case i.Type.MESH:
p = e ? d.default : l.default
}
return p
},
Simple: n.default,
Sliced: r.default,
Tiled: s.default,
RadialFilled: a.default,
BarFilled: o.default,
Mesh: l.default,
Simple3D: h.default,
Sliced3D: c.default,
Tiled3D: u.default,
RadialFilled3D: _.default,
BarFilled3D: f.default,
Mesh3D: d.default
};
e.default.register(cc.Sprite, m)
}
), {
"../../../../components/CCSprite": 120,
"../../../assembler": 221,
"./2d/bar-filled": 243,
"./2d/mesh": 244,
"./2d/radial-filled": 245,
"./2d/simple": 246,
"./2d/sliced": 247,
"./2d/tiled": 248,
"./3d/bar-filled": void 0,
"./3d/mesh": void 0,
"./3d/radial-filled": void 0,
"./3d/simple": void 0,
"./3d/sliced": void 0,
"./3d/tiled": void 0
}],
250: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n = (function() {
function t(t, e, i, n, r) {
this._handler = t,
this._index = e,
this._vfmt = r,
this._verticesBytes = r._bytes,
this._initVerticesCount = i,
this._initIndicesCount = n,
this.reset()
}
var e = t.prototype;
return e._reallocVData = function(t, e) {
this.vData = new Float32Array(t),
this.uintVData = new Uint32Array(this.vData.buffer),
e && this.vData.set(e),
this._handler.updateMesh(this._index, this.vData, this.iData)
}
,
e._reallocIData = function(t, e) {
this.iData = new Uint16Array(t),
e && this.iData.set(e),
this._handler.updateMesh(this._index, this.vData, this.iData)
}
,
e.reserve = function(t, e) {
var i = t * this._verticesBytes >> 2
, n = this.vData.length
, r = !1;
if (i > n) {
for (; n < i; )
n *= 2;
this._reallocVData(n, this.vData),
r = !0
}
var s = this.iData.length;
if (e > s) {
for (; s < e; )
s *= 2;
this._reallocIData(e, this.iData),
r = !0
}
return r
}
,
e.used = function(t, e) {
this.usedVertices = t,
this.usedIndices = e,
this.usedVerticesFloats = t * this._verticesBytes >> 2,
this._handler.updateMeshRange(t, e)
}
,
e.reset = function() {
var t = this._initVerticesCount * this._verticesBytes >> 2;
this._reallocVData(t),
this._reallocIData(this._initIndicesCount),
this.usedVertices = 0,
this.usedVerticesFloats = 0,
this.usedIndices = 0
}
,
t
}
)();
i.default = n,
cc.FlexBuffer = n,
e.exports = i.default
}
), {}],
251: [(function(t, e) {
"use strict";
var i, n = (i = t("../../../renderer/gfx")) && i.__esModule ? i : {
default: i
}, r = (cc.sys.os === cc.sys.OS_IOS || cc.sys.os === cc.sys.OS_OSX) && cc.sys.isBrowser && /(OS 1[4-9])|(Version\/1[4-9])/.test(window.navigator.userAgent), s = cc.Class({
name: "cc.MeshBuffer",
ctor: function(t, e) {
this.init(t, e)
},
init: function(t, e) {
this.byteOffset = 0,
this.indiceOffset = 0,
this.vertexOffset = 0,
this.indiceStart = 0,
this._dirty = !1,
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,
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.byteOffset = 0,
this.vertexOffset = 0,
this.indiceOffset = 0,
this.indiceStart = 0,
t < this._vbArr.length ? (this._vb = this._vbArr[t],
this._ib = this._ibArr[t]) : (this._vb = new n.default.VertexBuffer(this._batcher._device,this._vertexFormat,n.default.USAGE_DYNAMIC,new ArrayBuffer,0),
this._vbArr[t] = this._vb,
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)
},
checkAndSwitchBuffer: function(t) {
this.vertexOffset + t > 65535 && (this.uploadData(),
this._batcher._flush(),
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()
}
this._updateOffset(t, e, i)
},
_updateOffset: function(t, e, i) {
var n = this._offsetInfo;
n.vertexOffset = this.vertexOffset,
this.vertexOffset += t,
n.indiceOffset = this.indiceOffset,
this.indiceOffset += e,
n.byteOffset = this.byteOffset,
this.byteOffset = i,
this._dirty = !0
},
request: function(t, e) {
return this._batcher._buffer !== this && (this._batcher._flush(),
this._batcher._buffer = this),
this.requestStatic(t, e),
this._offsetInfo
},
_reallocBuffer: function() {
this._reallocVData(!0),
this._reallocIData(!0)
},
_reallocVData: function(t) {
var e;
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]
},
_reallocIData: function(t) {
var e = this._iData;
if (this._iData = new Uint16Array(this._initIDataCount),
e && t)
for (var i = this._iData, n = 0, r = e.length; n < r; n++)
i[n] = e[n]
},
reset: function() {
this._arrOffset = 0,
this._vb = this._vbArr[0],
this._ib = this._ibArr[0],
this.byteOffset = 0,
this.indiceOffset = 0,
this.vertexOffset = 0,
this.indiceStart = 0,
this._dirty = !1
},
destroy: function() {
this.reset();
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
},
forwardIndiceStartToOffset: function() {
this.indiceStart = this.indiceOffset
}
});
r && (s.prototype.checkAndSwitchBuffer = function(t) {
this.vertexOffset + t > 65535 && (this.uploadData(),
this._batcher._flush())
}
,
s.prototype.forwardIndiceStartToOffset = function() {
this.uploadData(),
this.switchBuffer()
}
),
cc.MeshBuffer = e.exports = s
}
), {
"../../../renderer/gfx": 315
}],
252: [(function(t, e) {
"use strict";
var i = s(t("../../../renderer/core/input-assembler"))
, n = s(t("../../../renderer/memop/recycle-pool"))
, r = s(t("../../../renderer/scene/model"));
function s(t) {
return t && t.__esModule ? t : {
default: t
}
}
var a = t("./vertex-format")
, o = a.vfmtPosUvColor
, l = a.vfmt3D
, h = t("./quad-buffer")
, c = t("./mesh-buffer")
, u = t("./spine-buffer")
, _ = t("../../assets/material/CCMaterial")
, f = (new (t("../../platform/id-generater"))("VertextFormat"),
{})
, d = new _
, p = new i.default;
p._count = 0;
var m = function(t, e) {
this._renderScene = e,
this._device = t,
this.walking = !1,
this.material = d,
this.cullingMask = 1,
this._iaPool = new n.default(function() {
return new i.default
}
,16),
this._modelPool = new n.default(function() {
return new r.default
}
,16),
this._quadBuffer = this.getBuffer("quad", o),
this._meshBuffer = this.getBuffer("mesh", o),
this._quadBuffer3D = this.getBuffer("quad", l),
this._meshBuffer3D = this.getBuffer("mesh", l),
this._buffer = this._meshBuffer,
this._batchedModels = [],
this._dummyNode = new cc.Node,
this._sortKey = 0,
this.node = this._dummyNode,
this.parentOpacity = 1,
this.parentOpacityDirty = 0,
this.worldMatDirty = 0
};
m.prototype = {
constructor: m,
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]);
for (var n in this._modelPool.reset(),
e.length = 0,
this._sortKey = 0,
f)
f[n].reset();
this._buffer = this._meshBuffer,
this.node = this._dummyNode,
this.material = d,
this.cullingMask = 1,
this.parentOpacity = 1,
this.parentOpacityDirty = 0,
this.worldMatDirty = 0
},
_flushMaterial: function(t) {
if (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(p),
this._renderScene.addModel(i)
}
}
},
_flush: function() {
var t = this.material
, e = this._buffer
, i = e.indiceOffset - e.indiceStart;
if (this.walking && t && !(i <= 0)) {
var n = t.effect;
if (n) {
var r = this._iaPool.add();
r._vertexBuffer = e._vb,
r._indexBuffer = e._ib,
r._start = e.indiceStart,
r._count = i;
var s = this._modelPool.add();
this._batchedModels.push(s),
s.sortKey = this._sortKey++,
s._cullingMask = this.cullingMask,
s.setNode(this.node),
s.setEffect(n),
s.setInputAssembler(r),
this._renderScene.addModel(s),
e.forwardIndiceStartToOffset()
}
}
},
_flushIA: function(t) {
if (t) {
var e = this.material.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),
i.setInputAssembler(t),
this._renderScene.addModel(i)
}
}
},
terminate: function() {
for (var t in cc.dynamicAtlasManager && cc.dynamicAtlasManager.enabled && cc.dynamicAtlasManager.update(),
this._flush(),
f)
f[t].uploadData();
this.walking = !1
},
getBuffer: function(t, e) {
var i = t + e.getHash()
, n = f[i];
if (!n) {
if ("mesh" === t)
n = new c(this,e);
else if ("quad" === t)
n = new h(this,e);
else {
if ("spine" !== t)
return cc.error("Not support buffer type [" + t + "]"),
null;
n = new u(this,e)
}
f[i] = n
}
return n
}
},
e.exports = m
}
), {
"../../../renderer/core/input-assembler": 305,
"../../../renderer/memop/recycle-pool": 330,
"../../../renderer/scene/model": 336,
"../../assets/material/CCMaterial": 80,
"../../platform/id-generater": 210,
"./mesh-buffer": 251,
"./quad-buffer": 253,
"./spine-buffer": 255,
"./vertex-format": 256
}],
253: [(function(t, e) {
"use strict";
var i = t("./mesh-buffer")
, n = cc.Class({
name: "cc.QuadBuffer",
extends: i,
_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();
var t = new Uint16Array(this._iData.buffer,0,this._initIDataCount);
this._ib.update(0, t)
},
_reallocBuffer: function() {
this._reallocVData(!0),
this._reallocIData(),
this._fillQuadBuffer()
}
});
cc.QuadBuffer = e.exports = n
}
), {
"./mesh-buffer": 251
}],
254: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = a;
var n, r = (n = t("./flex-buffer")) && n.__esModule ? n : {
default: n
}, s = t("./vertex-format");
function a() {
this.vDatas = [],
this.uintVDatas = [],
this.iDatas = [],
this.meshCount = 0,
this._infos = null,
this._flexBuffer = null
}
cc.js.mixin(a.prototype, {
init: function() {},
clear: function() {
this.vDatas.length = 0,
this.iDatas.length = 0,
this.uintVDatas.length = 0,
this.meshCount = 0,
this._infos = null,
this._flexBuffer && this._flexBuffer.reset()
},
updateMesh: function(t, e, i) {
this.vDatas[t] = e,
this.uintVDatas[t] = new Uint32Array(e.buffer,0,e.length),
this.iDatas[t] = i,
this.meshCount = this.vDatas.length
},
updateMeshRange: function() {},
createData: function(t, e, i) {
var n = new Float32Array(e)
, r = new Uint16Array(i);
this.updateMesh(t, n, r)
},
createQuadData: function(t, e, i) {
this.createData(t, e, i),
this.initQuadIndices(this.iDatas[t])
},
createFlexData: function(t, e, i, n) {
n = n || s.vfmtPosUvColor,
this._flexBuffer = new r.default(this,t,e,i,n)
},
initQuadIndices: function(t) {
for (var e = t.length / 6, i = 0, n = 0; i < e; i++) {
var r = 4 * i;
t[n++] = r,
t[n++] = r + 1,
t[n++] = r + 2,
t[n++] = r + 1,
t[n++] = r + 3,
t[n++] = r + 2
}
}
}),
cc.RenderData = a,
e.exports = i.default
}
), {
"./flex-buffer": 250,
"./vertex-format": 256
}],
255: [(function(t, e) {
"use strict";
var i = 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 a = this._offsetInfo;
a.vertexOffset = this.vertexOffset,
a.indiceOffset = this.indiceOffset,
a.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 = i
}
), {
"./mesh-buffer": 251
}],
256: [(function(t, e) {
"use strict";
var i, n = (i = t("../../../renderer/gfx")) && i.__esModule ? i : {
default: i
}, 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 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
}, {
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
}]);
a.name = "vfmtPosUvTwoColor",
n.default.VertexFormat.XY_UV_Two_Color = a;
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
}]);
o.name = "vfmtPosUv",
n.default.VertexFormat.XY_UV = o;
var l = 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
}]);
l.name = "vfmtPosColor",
n.default.VertexFormat.XY_Color = l;
var h = new n.default.VertexFormat([{
name: n.default.ATTR_POSITION,
type: n.default.ATTR_TYPE_FLOAT32,
num: 2
}]);
h.name = "vfmtPos",
n.default.VertexFormat.XY = h,
e.exports = {
vfmt3D: r,
vfmtPosUvColor: s,
vfmtPosUvTwoColor: a,
vfmtPosUv: o,
vfmtPosColor: l,
vfmtPos: h
}
}
), {
"../../../renderer/gfx": 315
}],
257: [(function(t, e) {
"use strict";
t("../platform/CCSys");
var i = /(\.[^\.\/\?\\]*)(\?.*)?$/
, n = /((.*)(\/|\\|\\\\))?(.*?\..*$)?/
, r = /[^\.\/]+\/\.\.\//;
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 = i.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 t;
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 = n.exec(t);
return e ? e[2] : ""
},
changeExtname: function(t, e) {
e = e || "";
var i = t.indexOf("?")
, n = "";
return i > 0 && (n = t.substring(i),
t = t.substring(0, i)),
(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) : "";
return n > 0 && (r = t.substring(n),
t = t.substring(0, n)),
n = (n = t.lastIndexOf("/")) <= 0 ? 0 : n + 1,
t.substring(0, n) + e + s + r
},
_normalize: function(t) {
var e = t = String(t);
do {
e = t,
t = t.replace(r, "")
} 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": 202
}],
258: [(function(t, e) {
"use strict";
var i = 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
};
i.create = function(t, e, i, n, r, s) {
return {
a: t,
b: e,
c: i,
d: n,
tx: r,
ty: s
}
}
,
i.identity = function() {
return {
a: 1,
b: 0,
c: 0,
d: 1,
tx: 0,
ty: 0
}
}
,
i.clone = function(t) {
return {
a: t.a,
b: t.b,
c: t.c,
d: t.d,
tx: t.tx,
ty: t.ty
}
}
,
i.concat = function(t, e, i) {
var n = e.a
, r = e.b
, s = e.c
, a = e.d
, o = e.tx
, l = e.ty;
return t.a = n * i.a + r * i.c,
t.b = n * i.b + r * i.d,
t.c = s * i.a + a * i.c,
t.d = s * i.b + a * i.d,
t.tx = o * i.a + l * i.c + i.tx,
t.ty = o * i.b + l * i.d + i.ty,
t
}
,
i.invert = function(t, e) {
var i = e.a
, n = e.b
, r = e.c
, s = e.d
, a = 1 / (i * s - n * r)
, o = e.tx
, l = e.ty;
return t.a = a * s,
t.b = -a * n,
t.c = -a * r,
t.d = a * i,
t.tx = a * (r * l - s * o),
t.ty = a * (n * o - i * l),
t
}
,
i.fromMat4 = function(t, e) {
var i = e.m;
return t.a = i[0],
t.b = i[1],
t.c = i[4],
t.d = i[5],
t.tx = i[12],
t.ty = i[13],
t
}
,
i.transformVec2 = function(t, e, i, n) {
var r, s;
return void 0 === n ? (n = i,
r = e.x,
s = e.y) : (r = e,
s = i),
t.x = n.a * r + n.c * s + n.tx,
t.y = n.b * r + n.d * s + n.ty,
t
}
,
i.transformSize = function(t, e, i) {
return t.width = i.a * e.width + i.c * e.height,
t.height = i.b * e.width + i.d * e.height,
t
}
,
i.transformRect = function(t, e, i) {
var n = e.x
, r = e.y
, s = n + e.width
, a = r + e.height
, o = i.a * n + i.c * r + i.tx
, l = i.b * n + i.d * r + i.ty
, h = i.a * s + i.c * r + i.tx
, c = i.b * s + i.d * r + i.ty
, u = i.a * n + i.c * a + i.tx
, _ = i.b * n + i.d * a + i.ty
, f = i.a * s + i.c * a + i.tx
, d = i.b * s + i.d * a + i.ty
, p = Math.min(o, h, u, f)
, m = Math.max(o, h, u, f)
, y = Math.min(l, c, _, d)
, v = Math.max(l, c, _, d);
return t.x = p,
t.y = y,
t.width = m - p,
t.height = v - y,
t
}
,
i.transformObb = function(t, e, i, n, r, s) {
var a = r.x
, o = r.y
, l = r.width
, h = r.height
, c = s.a * a + s.c * o + s.tx
, u = s.b * a + s.d * o + s.ty
, _ = s.a * l
, f = s.b * l
, d = s.c * h
, p = s.d * h;
e.x = c,
e.y = u,
i.x = _ + c,
i.y = f + u,
t.x = d + c,
t.y = p + u,
n.x = _ + d + c,
n.y = f + p + u
}
,
cc.AffineTransform = e.exports = i
}
), {}],
259: [(function(t, e) {
"use strict";
var i = t("../platform/CCObject").Flags
, n = t("./misc")
, r = t("../platform/js")
, s = t("../platform/id-generater")
, a = t("../event-manager")
, o = t("../renderer/render-flow")
, l = i.Destroying
, h = i.DontDestroy
, c = i.Deactivating
, u = new s("Node");
function _(t) {
return t ? "string" == typeof t ? r.getClassByName(t) : t : (cc.errorID(3804),
null)
}
function f(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 d(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 a = t._components[s];
a instanceof e && i.push(a)
}
}
function p(t, e) {
for (var i = 0; i < t.length; ++i) {
var n = t[i]
, r = f(n, e);
if (r)
return r;
if (n._children.length > 0 && (r = p(n._children, e)))
return r
}
return null
}
function m(t, e, i) {
for (var n = 0; n < t.length; ++n) {
var r = t[n];
d(r, e, i),
r._children.length > 0 && m(r._children, e, i)
}
}
var y = cc.Class({
name: "cc._BaseNode",
extends: cc.Object,
properties: {
_parent: null,
_children: [],
_active: !0,
_components: [],
_prefab: null,
_persistNode: {
get: function() {
return (this._objFlags & h) > 0
},
set: function(t) {
t ? this._objFlags |= h : this._objFlags &= ~h
}
},
name: {
get: function() {
return this._name
},
set: function(t) {
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) {
if (t = !!t,
this._active !== t) {
this._active = t;
var e = this._parent;
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 = u.getNewId(),
cc.director._scheduler && cc.director._scheduler.enableForTarget(this),
this.__eventTargets = []
},
getParent: function() {
return this._parent
},
setParent: function(t) {
if (this._parent !== t) {
var e = this._parent;
if (this._parent = t || null,
this._onSetParent(t),
t && (a._setDirtyForNode(this),
t._children.push(this),
t.emit && t.emit("child-added", this),
t._renderFlag |= o.FLAG_CHILDREN),
e) {
if (!(e._objFlags & l)) {
var i = e._children.indexOf(this);
e._children.splice(i, 1),
e.emit && e.emit("child-removed", this),
this._onHierarchyChanged(e),
0 === e._children.length && (e._renderFlag &= ~o.FLAG_CHILDREN)
}
} else
t && this._onHierarchyChanged(null)
}
},
attr: function(t) {
r.mixin(this, t)
},
getChildByUuid: function(t) {
if (!t)
return cc.log("Invalid uuid"),
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)
return cc.log("Invalid name"),
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) {
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 & c)
cc.errorID(3821);
else {
var e = this._parent._children;
t = -1 !== t ? t : e.length - 1;
var i = e.indexOf(this);
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, a = cc._BaseNode, o = 1, l = a._stacks[a._stackId];
l || (l = [],
a._stacks.push(l)),
a._stackId++,
l.length = 0,
l[0] = this;
var h = null;
for (s = !1; o; )
if (n = l[--o])
if (!s && t ? t(n) : s && e && e(n),
l[o] = null,
s) {
if (h === this._parent)
break;
if (s = !1,
i)
if (i[++r])
l[o] = i[r],
o++;
else if (h && (l[o] = h,
o++,
s = !0,
h._parent ? (r = (i = h._parent._children).indexOf(h),
h = h._parent) : (h = null,
i = null),
r < 0))
break
} else
n._children.length > 0 ? (h = n,
i = n._children,
r = 0,
l[o] = i[r],
o++) : (l[o] = n,
o++,
s = !0);
l.length = 0,
a._stackId--
},
cleanup: function() {},
removeFromParent: function(t) {
this._parent && (void 0 === t && (t = !0),
this._parent.removeChild(this, t))
},
removeChild: function(t, e) {
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];
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 = _(t);
return e ? f(this, e) : null
},
getComponents: function(t) {
var e = _(t)
, i = [];
return e && d(this, e, i),
i
},
getComponentInChildren: function(t) {
var e = _(t);
return e ? p(this._children, e) : null
},
getComponentsInChildren: function(t) {
var e = _(t)
, i = [];
return e && (d(this, e, i),
m(this._children, e, i)),
i
},
_checkMultipleComp: !1,
addComponent: function(t) {
var e;
if ("string" == typeof t) {
if (!(e = r.getClassByName(t)))
return cc.errorID(3807, t),
cc._RFpeek() && cc.errorID(3808, t),
null
} else {
if (!t)
return cc.errorID(3804),
null;
e = t
}
if ("function" != typeof e)
return cc.errorID(3809),
null;
if (!r.isChildClassOf(e, cc.Component))
return cc.errorID(3810),
null;
var i = e._requireComponent;
if (i && !this.getComponent(i) && !this.addComponent(i))
return null;
var n = new e;
return n.node = this,
this._components.push(n),
this._activeInHierarchy && cc.director._nodeActivator.activateComp(n),
n
},
_addComponentAt: !1,
removeComponent: function(t) {
t ? (t instanceof cc.Component || (t = this.getComponent(t)),
t && t.destroy()) : cc.errorID(3813)
},
_getDependComponent: !1,
_removeComponent: function(t) {
if (t) {
if (!(this._objFlags & l)) {
var e = this._components.indexOf(t);
-1 !== e ? this._components.splice(e, 1) : 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() {},
_onPostActivated: function() {},
_onBatchCreated: function() {},
_onHierarchyChanged: function() {
var t = this._parent;
!this._persistNode || t instanceof cc.Scene || cc.game.removePersistRootNode(this);
var e = this._active && !(!t || !t._activeInHierarchy);
this._activeInHierarchy !== e && cc.director._nodeActivator.activateNode(this, e)
},
_instantiate: function(t, e) {
return t || (t = cc.instantiate._clone(this, this)),
t._prefab,
t._parent = null,
t._onBatchCreated(e),
t
},
_registerIfAttached: !1,
_onPreDestroy: function() {
var t, e;
this._objFlags |= l;
var i = this._parent
, n = i && i._objFlags & l
, 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 a = s[t];
a && a.targetOff(this)
}
if (s.length = 0,
this._persistNode && cc.game.removePersistRootNode(this),
!n && i) {
var o = i._children.indexOf(this);
i._children.splice(o, 1),
i.emit && i.emit("child-removed", this)
}
return n
},
onRestore: !1
});
y.idGenerater = u,
y._stacks = [[]],
y._stackId = 0,
y.prototype._onPreDestroyBase = y.prototype._onPreDestroy,
y.prototype._onHierarchyChangedBase = y.prototype._onHierarchyChanged,
n.propertyDefine(y, ["parent", "name", "children", "childrenCount"], {}),
cc._BaseNode = e.exports = y
}
), {
"../event-manager": 138,
"../platform/CCObject": 199,
"../platform/id-generater": 210,
"../platform/js": 214,
"../renderer/render-flow": 225,
"./misc": 267
}],
260: [(function(t, e) {
"use strict";
e.exports = {
binarySearchEpsilon: function(t, e) {
for (var i = 0, n = t.length - 1, r = n >>> 1; i <= n; r = i + n >>> 1) {
var s = t[r];
if (s > e + 1e-6)
n = r - 1;
else {
if (!(s < e - 1e-6))
return r;
i = r + 1
}
}
return ~i
}
}
}
), {}],
261: [(function(t, e) {
"use strict";
var i = t("../components/CCRenderComponent")
, n = t("../platform/CCMacro").BlendFactor
, r = t("../../renderer/gfx")
, s = cc.Class({
properties: {
_srcBlendFactor: n.SRC_ALPHA,
_dstBlendFactor: n.ONE_MINUS_SRC_ALPHA,
srcBlendFactor: {
get: function() {
return this._srcBlendFactor
},
set: function(t) {
this._srcBlendFactor !== t && (this._srcBlendFactor = t,
this._updateBlendFunc(!0),
this._onBlendChanged && this._onBlendChanged())
},
animatable: !1,
type: n,
tooltip: !1,
visible: !0
},
dstBlendFactor: {
get: function() {
return this._dstBlendFactor
},
set: function(t) {
this._dstBlendFactor !== t && (this._dstBlendFactor = t,
this._updateBlendFunc(!0))
},
animatable: !1,
type: n,
tooltip: !1,
visible: !0
}
},
setMaterial: function(t, e) {
var r = i.prototype.setMaterial.call(this, t, e);
return this._srcBlendFactor === n.SRC_ALPHA && this._dstBlendFactor === n.ONE_MINUS_SRC_ALPHA || this._updateMaterialBlendFunc(r),
r
},
_updateMaterial: function() {
this._updateBlendFunc()
},
_updateBlendFunc: function(t) {
if (t || this._srcBlendFactor !== n.SRC_ALPHA || this._dstBlendFactor !== n.ONE_MINUS_SRC_ALPHA)
for (var e = this.getMaterials(), i = 0; i < e.length; i++) {
var r = e[i];
this._updateMaterialBlendFunc(r)
}
},
_updateMaterialBlendFunc: function(t) {
t.setBlend(!0, r.BLEND_FUNC_ADD, this._srcBlendFactor, this._dstBlendFactor, r.BLEND_FUNC_ADD, this._srcBlendFactor, this._dstBlendFactor)
}
});
e.exports = cc.BlendFunc = s
}
), {
"../../renderer/gfx": 315,
"../components/CCRenderComponent": 115,
"../platform/CCMacro": 198
}],
262: [(function(t, e) {
"use strict";
var i = t("./misc").BASE64_VALUES
, n = "0123456789abcdef".split("")
, r = ["", "", "", ""]
, s = r.concat(r, "-", r, "-", r, "-", r, "-", r, r, r)
, a = s.map((function(t, e) {
return "-" === t ? NaN : e
}
)).filter(isFinite);
e.exports = function(t) {
if (22 !== t.length)
return t;
s[0] = t[0],
s[1] = t[1];
for (var e = 2, r = 2; e < 22; e += 2) {
var o = i[t.charCodeAt(e)]
, l = i[t.charCodeAt(e + 1)];
s[a[r++]] = n[o >> 2],
s[a[r++]] = n[(3 & o) << 2 | l >> 4],
s[a[r++]] = n[15 & l]
}
return s.join("")
}
}
), {
"./misc": 267
}],
263: [(function(t, e) {
"use strict";
cc.find = e.exports = function(t, e) {
if (null == t)
return cc.errorID(3814),
null;
if (e)
;
else {
var i = cc.director.getScene();
if (!i)
return null;
e = i
}
for (var n = e, r = "/" !== t[0] ? 0 : 1, s = t.split("/"), a = r; a < s.length; a++) {
var o = s[a]
, l = n._children;
n = null;
for (var h = 0, c = l.length; h < c; ++h) {
var u = l[h];
if (u.name === o) {
n = u;
break
}
}
if (!n)
return null
}
return n
}
}
), {}],
264: [(function(t, e) {
"use strict";
var i, n = (i = t("../assets/material/material-variant")) && i.__esModule ? i : {
default: i
}, r = t("../assets/material/CCMaterial"), s = cc.Class({
properties: {
_normalMaterial: null,
normalMaterial: {
get: function() {
return this._normalMaterial
},
set: function(t) {
this._normalMaterial = t,
this._updateDisabledState && this._updateDisabledState()
},
type: r,
tooltip: !1,
animatable: !1
},
_grayMaterial: null,
grayMaterial: {
get: function() {
return this._grayMaterial
},
set: function(t) {
this._grayMaterial = t,
this._updateDisabledState && this._updateDisabledState()
},
type: r,
tooltip: !1,
animatable: !1
}
},
_switchGrayMaterial: function(t, e) {
var i;
t ? ((i = this._grayMaterial) || (i = r.getBuiltinMaterial("2d-gray-sprite")),
i = this._grayMaterial = n.default.create(i, e)) : ((i = this._normalMaterial) || (i = r.getBuiltinMaterial("2d-sprite", e)),
i = this._normalMaterial = n.default.create(i, e)),
e.setMaterial(0, i)
}
});
e.exports = s
}
), {
"../assets/material/CCMaterial": 80,
"../assets/material/material-variant": 87
}],
265: [(function(t, e) {
"use strict";
var i = /^(click)(\s)*=|(param)(\s)*=/
, n = /(\s)*src(\s)*=|(\s)*height(\s)*=|(\s)*width(\s)*=|(\s)*align(\s)*=|(\s)*offset(\s)*=|(\s)*click(\s)*=|(\s)*param(\s)*=/
, r = function() {
this._parsedObject = {},
this._specialSymbolArray = [],
this._specialSymbolArray.push([/&lt;/g, "<"]),
this._specialSymbolArray.push([/&gt;/g, ">"]),
this._specialSymbolArray.push([/&amp;/g, "&"]),
this._specialSymbolArray.push([/&quot;/g, '"']),
this._specialSymbolArray.push([/&apos;/g, "'"]),
this._specialSymbolArray.push([/&nbsp;/g, " "])
};
r.prototype = {
constructor: r,
parse: function(t) {
this._resultObjectArray = [],
this._stack = [];
for (var e = 0, i = t.length; e < i; ) {
var n = t.indexOf(">", e)
, r = -1;
if (n >= 0 && (r = t.lastIndexOf("<", n)) < e - 1 && (r = t.indexOf("<", n + 1),
n = t.indexOf(">", r + 1)),
r < 0)
this._stack.pop(),
this._processResult(t.substring(e)),
e = i;
else {
var s = t.substring(e, r)
, a = t.substring(r + 1, n);
"" === a && (s = t.substring(e, n + 1)),
this._processResult(s),
-1 === n ? n = r : "/" === t.charAt(r + 1) ? this._stack.pop() : this._addToStack(a),
e = n + 1
}
}
return this._resultObjectArray
},
_attributeToObject: function(t) {
var e, i, r, s, a = {}, o = (t = t.trim()).match(/^(color|size)(\s)*=/);
if (o) {
if (e = o[0],
"" === (t = t.substring(e.length).trim()))
return a;
switch (i = t.indexOf(" "),
e[0]) {
case "c":
a.color = i > -1 ? t.substring(0, i).trim() : t;
break;
case "s":
a.size = parseInt(t)
}
return i > -1 && (s = t.substring(i + 1).trim(),
r = this._processEventHandler(s),
a.event = r),
a
}
if ((o = t.match(/^(br(\s)*\/)/)) && o[0].length > 0 && (e = o[0].trim()).startsWith("br") && "/" === e[e.length - 1])
return a.isNewLine = !0,
this._resultObjectArray.push({
text: "",
style: {
newline: !0
}
}),
a;
if ((o = t.match(/^(img(\s)*src(\s)*=[^>]+\/)/)) && o[0].length > 0 && (e = o[0].trim()).startsWith("img") && "/" === e[e.length - 1]) {
var l;
o = t.match(n);
for (var h = !1; o; ) {
if (e = (t = t.substring(t.indexOf(o[0]))).substr(0, o[0].length),
u = (i = (l = t.substring(e.length).trim()).indexOf(" ")) > -1 ? l.substr(0, i) : l,
e = (e = e.replace(/[^a-zA-Z]/g, "").trim()).toLocaleLowerCase(),
t = l.substring(i).trim(),
u.endsWith("/") && (u = u.slice(0, -1)),
"src" === e) {
switch (u.charCodeAt(0)) {
case 34:
case 39:
h = !0,
u = u.slice(1, -1)
}
a.isImage = !0,
a.src = u
} else if ("height" === e)
a.imageHeight = parseInt(u);
else if ("width" === e)
a.imageWidth = parseInt(u);
else if ("align" === e) {
switch (u.charCodeAt(0)) {
case 34:
case 39:
u = u.slice(1, -1)
}
a.imageAlign = u.toLocaleLowerCase()
} else
"offset" === e ? a.imageOffset = u : "click" === e && (a.event = this._processEventHandler(e + "=" + u));
a.event && "param" === e && (a.event.param = u.replace(/^\"|\"$/g, "")),
o = t.match(n)
}
return h && a.isImage && this._resultObjectArray.push({
text: "",
style: a
}),
{}
}
if (o = t.match(/^(outline(\s)*[^>]*)/)) {
var c = {
color: "#ffffff",
width: 1
};
if (t = o[0].substring("outline".length).trim()) {
var u, _ = /(\s)*color(\s)*=|(\s)*width(\s)*=|(\s)*click(\s)*=|(\s)*param(\s)*=/;
for (o = t.match(_); o; )
e = (t = t.substring(t.indexOf(o[0]))).substr(0, o[0].length),
u = (i = (l = t.substring(e.length).trim()).indexOf(" ")) > -1 ? l.substr(0, i) : l,
e = (e = e.replace(/[^a-zA-Z]/g, "").trim()).toLocaleLowerCase(),
t = l.substring(i).trim(),
"click" === e ? a.event = this._processEventHandler(e + "=" + u) : "color" === e ? c.color = u : "width" === e && (c.width = parseInt(u)),
a.event && "param" === e && (a.event.param = u.replace(/^\"|\"$/g, "")),
o = t.match(_)
}
a.outline = c
}
if ((o = t.match(/^(on|u|b|i)(\s)*/)) && o[0].length > 0) {
switch (e = o[0],
t = t.substring(e.length).trim(),
e[0]) {
case "u":
a.underline = !0;
break;
case "i":
a.italic = !0;
break;
case "b":
a.bold = !0
}
if ("" === t)
return a;
r = this._processEventHandler(t),
a.event = r
}
return a
},
_processEventHandler: function(t) {
for (var e = 0, n = {}, r = t.match(i), s = !1; r; ) {
var a = r[0]
, o = "";
if (s = !1,
'"' === (t = t.substring(a.length).trim()).charAt(0))
(e = t.indexOf('"', 1)) > -1 && (o = t.substring(1, e).trim(),
s = !0),
e++;
else if ("'" === t.charAt(0))
(e = t.indexOf("'", 1)) > -1 && (o = t.substring(1, e).trim(),
s = !0),
e++;
else {
var l = t.match(/(\S)+/);
e = (o = l ? l[0] : "").length
}
s && (n[a = a.substring(0, a.length - 1).trim()] = o),
r = (t = t.substring(e).trim()).match(i)
}
return n
},
_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) {
"" !== 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
}
},
e.exports = r
}
), {}],
266: [(function(t) {
"use strict";
t("./CCPath"),
t("./profiler/CCProfiler"),
t("./find"),
t("./mutable-forward-iterator")
}
), {
"./CCPath": 257,
"./find": 263,
"./mutable-forward-iterator": 268,
"./profiler/CCProfiler": 271
}],
267: [(function(t, e) {
"use strict";
for (var i = t("../platform/js"), n = {
propertyDefine: function(t, e, n) {
function r(t, e, n, r) {
var s = Object.getOwnPropertyDescriptor(t, e);
if (s)
s.get && (t[n] = s.get),
s.set && r && (t[r] = s.set);
else {
var a = t[n];
i.getset(t, e, a, t[r])
}
}
for (var s, a = t.prototype, o = 0; o < e.length; o++) {
var l = (s = e[o])[0].toUpperCase() + s.slice(1);
r(a, s, "get" + l, "set" + l)
}
for (s in n) {
var h = n[s];
r(a, s, h[0], h[1])
}
},
NextPOT: function(t) {
return t -= 1,
t |= t >> 1,
t |= t >> 2,
t |= t >> 4,
t |= t >> 8,
1 + (t |= t >> 16)
},
BUILTIN_CLASSID_RE: /^(?:cc|dragonBones|sp|ccsg)\..+/
}, r = new Array(123), s = 0; s < 123; ++s)
r[s] = 64;
for (var a = 0; a < 64; ++a)
r["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charCodeAt(a)] = a;
n.BASE64_VALUES = r,
n.pushToMap = function(t, e, i, n) {
var r = t[e];
r ? Array.isArray(r) ? n ? (r.push(r[0]),
r[0] = i) : r.push(i) : t[e] = n ? [i, r] : [r, i] : t[e] = i
}
,
n.clampf = function(t, e, i) {
if (e > i) {
var n = e;
e = i,
i = n
}
return t < e ? e : t < i ? t : i
}
,
n.clamp01 = function(t) {
return t < 0 ? 0 : t < 1 ? t : 1
}
,
n.lerp = function(t, e, i) {
return t + (e - t) * i
}
,
n.degreesToRadians = function(t) {
return t * cc.macro.RAD
}
,
n.radiansToDegrees = function(t) {
return t * cc.macro.DEG
}
,
cc.misc = e.exports = n
}
), {
"../platform/js": 214
}],
268: [(function(t, e) {
"use strict";
function i(t) {
this.i = 0,
this.array = t
}
var n = i.prototype;
n.remove = function(t) {
var e = this.array.indexOf(t);
e >= 0 && this.removeAt(e)
}
,
n.removeAt = function(t) {
this.array.splice(t, 1),
t <= this.i && --this.i
}
,
n.fastRemove = function(t) {
var e = this.array.indexOf(t);
e >= 0 && this.fastRemoveAt(e)
}
,
n.fastRemoveAt = function(t) {
var e = this.array;
e[t] = e[e.length - 1],
--e.length,
t <= this.i && --this.i
}
,
n.push = function(t) {
this.array.push(t)
}
,
e.exports = i
}
), {}],
269: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n = (function() {
function t() {
this.enabled = !1,
this.count = 0,
this.maxSize = 1024
}
var e = t.prototype;
return e.get = function() {}
,
e.put = function() {}
,
e.clear = function() {}
,
t
}
)();
i.default = n,
cc.pool = {},
n.register = function(t, e) {
cc.pool[t] = e
}
,
e.exports = i.default
}
), {}],
270: [(function(t, e) {
"use strict";
cc._PrefabInfo = cc.Class({
name: "cc.PrefabInfo",
properties: {
root: null,
asset: null,
fileId: "",
sync: !1
}
}),
e.exports = {
syncWithPrefab: function(t) {
var e = t._prefab;
if (!e.asset)
return cc.errorID(3701, t.name),
void (t._prefab = null);
var i = t._objFlags
, n = t._parent
, r = t._id
, s = t._name
, a = t._active
, o = t._eulerAngles.x
, l = t._eulerAngles.y
, h = t._eulerAngles.z
, c = t._localZOrder
, u = t._trs
, _ = u[0]
, f = u[1]
, d = u[2];
cc.game._isCloning = !0,
e.asset._doInstantiate(t),
cc.game._isCloning = !1,
t._objFlags = i,
t._parent = n,
t._id = r,
t._prefab = e,
t._name = s,
t._active = a,
t._localZOrder = c,
(u = t._trs)[0] = _,
u[1] = f,
u[2] = d,
t._eulerAngles.x = o,
t._eulerAngles.y = l,
t._eulerAngles.z = h
}
}
}
), {}],
271: [(function(t, e) {
"use strict";
var i = t("../../platform/CCMacro")
, n = t("./perf-counter")
, r = !1
, s = 15
, a = null
, o = null
, l = null;
function h() {
if (!a) {
a = {
fps: {
desc: "Framerate (FPS)",
below: 30,
average: 500
},
draws: {
desc: "Draw Call"
},
frame: {
desc: "Frame time (ms)",
min: 0,
max: 50,
average: 500
},
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 n(e,a[e],t)
}
}
function c() {
if (!o || !o.isValid) {
(o = new cc.Node("PROFILER-NODE")).x = o.y = 10,
o.groupIndex = cc.Node.BuiltinGroupIndex.DEBUG,
cc.Camera._setupDebugCamera(),
o.zIndex = i.MAX_ZINDEX,
cc.game.addPersistRootNode(o);
var t = new cc.Node("LEFT-PANEL");
t.anchorX = t.anchorY = 0;
var e = t.addComponent(cc.Label);
e.fontSize = s,
e.lineHeight = s,
t.parent = o;
var n = new cc.Node("RIGHT-PANEL");
n.anchorX = 1,
n.anchorY = 0,
n.x = 200;
var r = n.addComponent(cc.Label);
r.horizontalAlign = cc.Label.HorizontalAlign.RIGHT,
r.fontSize = s,
r.lineHeight = s,
n.parent = o,
cc.sys.platform !== cc.sys.BAIDU_GAME_SUB && cc.sys.platform !== cc.sys.WECHAT_GAME_SUB && (e.cacheMode = cc.Label.CacheMode.CHAR,
r.cacheMode = cc.Label.CacheMode.CHAR),
l = {
left: e,
right: r
}
}
}
function u() {
c();
var t = cc.director._lastUpdate;
a.frame._counter.start(t),
a.logic._counter.start(t)
}
function _() {
var t = performance.now();
cc.director.isPaused() ? a.frame._counter.start(t) : a.logic._counter.end(t),
a.render._counter.start(t)
}
function f() {
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"
}
l && (l.left.string = e,
l.right.string = i)
}
cc.profiler = e.exports = {
isShowingStats: function() {
return r
},
hideStats: function() {
r && (o && (o.active = !1),
cc.director.off(cc.Director.EVENT_BEFORE_UPDATE, u),
cc.director.off(cc.Director.EVENT_AFTER_UPDATE, _),
cc.director.off(cc.Director.EVENT_AFTER_DRAW, f),
r = !1)
},
showStats: function() {
r || (h(),
o && (o.active = !0),
cc.director.on(cc.Director.EVENT_BEFORE_UPDATE, u),
cc.director.on(cc.Director.EVENT_AFTER_UPDATE, _),
cc.director.on(cc.Director.EVENT_AFTER_DRAW, f),
r = !0)
}
}
}
), {
"../../platform/CCMacro": 198,
"./perf-counter": 273
}],
272: [(function(t, e) {
"use strict";
var i = 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;
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 = i
}
), {}],
273: [(function(t, e) {
"use strict";
var i = t("./counter")
, n = cc.Class({
name: "cc.PerfCounter",
extends: i,
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++,
i > (this._opts.average || 1e3) && (this._value = 1e3 * this._total / i,
this._total = 0,
this._time = e,
this._average(this._value))
}
});
e.exports = n
}
), {
"./counter": 272
}],
274: [(function(t, e) {
"use strict";
var i, n = new (((i = t("../platform/js")) && i.__esModule ? i : {
default: i
}).default.Pool)(2);
function r(t) {
this.count = 0,
this.limit = t,
this.datas = {},
this.head = null,
this.tail = null
}
n.get = function() {
return this._get() || {
key: null,
value: null,
prev: null,
next: null
}
}
,
r.prototype.moveToHead = function(t) {
t.next = this.head,
t.prev = null,
null !== this.head && (this.head.prev = t),
this.head = t,
null === this.tail && (this.tail = t),
this.count++,
this.datas[t.key] = t
}
,
r.prototype.put = function(t, e) {
var i = n.get();
if (i.key = t,
i.value = e,
this.count >= this.limit) {
var r = this.tail;
delete this.datas[r.key],
this.count--,
this.tail = r.prev,
this.tail.next = null,
r.prev = null,
r.next = null,
n.put(r)
}
this.moveToHead(i)
}
,
r.prototype.remove = function(t) {
null !== t.prev ? t.prev.next = t.next : this.head = t.next,
null !== t.next ? t.next.prev = t.prev : this.tail = t.prev,
delete this.datas[t.key],
this.count--
}
,
r.prototype.get = function(t) {
var e = this.datas[t];
return e ? (this.remove(e),
this.moveToHead(e),
e.value) : null
}
,
r.prototype.clear = function() {
this.count = 0,
this.datas = {},
this.head = null,
this.tail = null
}
,
r.prototype.has = function(t) {
return !!this.datas[t]
}
,
r.prototype.delete = function(t) {
var e = this.datas[t];
this.remove(e)
}
;
var s = new r(100)
, a = {
BASELINE_RATIO: .26,
MIDDLE_RATIO: .37,
BASELINE_OFFSET: 0,
label_wordRex: /([a-zA-Z0-9\xc4\xd6\xdc\xe4\xf6\xfc\xdf\xe9\xe8\xe7\xe0\xf9\xea\xe2\xee\xf4\xfb\u0430-\u044f\u0410-\u042f\u0401\u0451]+|\S)/,
label_symbolRex: /^[!,.:;'}\]%\?>\u3001\u2018\u201c\u300b\uff1f\u3002\uff0c\uff01]/,
label_lastWordRex: /([a-zA-Z0-9\xc4\xd6\xdc\xe4\xf6\xfc\xdf\xe9\xe8\xe7\xe0\xf9\xea\xe2\xee\xf4\xfb\u0430\xed\xec\xcd\xcc\xef\xc1\xc0\xe1\xe0\xc9\xc8\xd2\xd3\xf2\xf3\u0150\u0151\xd9\xda\u0170\xfa\u0171\xf1\xd1\xe6\xc6\u0153\u0152\xc3\xc2\xe3\xd4\xf5\u011b\u0161\u010d\u0159\u017e\xfd\xe1\xed\xe9\xf3\xfa\u016f\u0165\u010f\u0148\u011a\u0160\u010c\u0158\u017d\xc1\xcd\xc9\xd3\xda\u0164\u017c\u017a\u015b\xf3\u0144\u0142\u0119\u0107\u0105\u017b\u0179\u015a\xd3\u0143\u0141\u0118\u0106\u0104-\u044f\u0410-\u042f\u0401\u0451]+|\S)$/,
label_lastEnglish: /[a-zA-Z0-9\xc4\xd6\xdc\xe4\xf6\xfc\xdf\xe9\xe8\xe7\xe0\xf9\xea\xe2\xee\xf4\xfb\u0430\xed\xec\xcd\xcc\xef\xc1\xc0\xe1\xe0\xc9\xc8\xd2\xd3\xf2\xf3\u0150\u0151\xd9\xda\u0170\xfa\u0171\xf1\xd1\xe6\xc6\u0153\u0152\xc3\xc2\xe3\xd4\xf5\u011b\u0161\u010d\u0159\u017e\xfd\xe1\xed\xe9\xf3\xfa\u016f\u0165\u010f\u0148\u011a\u0160\u010c\u0158\u017d\xc1\xcd\xc9\xd3\xda\u0164\u017c\u017a\u015b\xf3\u0144\u0142\u0119\u0107\u0105\u017b\u0179\u015a\xd3\u0143\u0141\u0118\u0106\u0104-\u044f\u0410-\u042f\u0401\u0451]+$/,
label_firstEnglish: /^[a-zA-Z0-9\xc4\xd6\xdc\xe4\xf6\xfc\xdf\xe9\xe8\xe7\xe0\xf9\xea\xe2\xee\xf4\xfb\u0430\xed\xec\xcd\xcc\xef\xc1\xc0\xe1\xe0\xc9\xc8\xd2\xd3\xf2\xf3\u0150\u0151\xd9\xda\u0170\xfa\u0171\xf1\xd1\xe6\xc6\u0153\u0152\xc3\xc2\xe3\xd4\xf5\u011b\u0161\u010d\u0159\u017e\xfd\xe1\xed\xe9\xf3\xfa\u016f\u0165\u010f\u0148\u011a\u0160\u010c\u0158\u017d\xc1\xcd\xc9\xd3\xda\u0164\u017c\u017a\u015b\xf3\u0144\u0142\u0119\u0107\u0105\u017b\u0179\u015a\xd3\u0143\u0141\u0118\u0106\u0104-\u044f\u0410-\u042f\u0401\u0451]/,
highSurrogateRex: /[\uD800-\uDBFF]/,
lowSurrogateRex: /[\uDC00-\uDFFF]/,
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, i) {
var n = (i || t.font) + "\ud83c\udfae" + e
, r = s.get(n);
if (null !== r)
return r;
var a = t.measureText(e)
, o = a && a.width || 0;
return s.put(n, o),
o
},
_safeSubstring: function(t, e, i) {
var n = e
, r = i
, s = t[e];
if (this.lowSurrogateRex.test(s) && n--,
void 0 !== i)
if (i - 1 !== e) {
var a = t[i - 1];
this.highSurrogateRex.test(a) && r--
} else
this.highSurrogateRex.test(s) && r++;
return t.substring(n, r)
},
fragmentText: function(t, e, i, n) {
var r = [];
if (0 === t.length || i < 0)
return r.push(""),
r;
for (var s = t; e > i && s.length > 1; ) {
for (var a = s.length * (i / e) | 0, o = this._safeSubstring(s, a), l = e - n(o), h = o, c = 0, u = 0; l > i && u++ < 10; )
a *= i / l,
a |= 0,
l = e - n(o = this._safeSubstring(s, a));
for (u = 0; l <= i && u++ < 10; ) {
if (o) {
var _ = this.label_wordRex.exec(o);
c = _ ? _[0].length : 1,
h = o
}
a += c,
l = e - n(o = this._safeSubstring(s, a))
}
0 == (a -= c) ? (a = 1,
h = this._safeSubstring(s, 1)) : 1 === a && this.highSurrogateRex.test(s[0]) && (a = 2,
h = this._safeSubstring(s, 2));
var f, d = this._safeSubstring(s, 0, a);
this.label_wrapinspection && this.label_symbolRex.test(h || o) && (0 == (a -= (f = this.label_lastWordRex.exec(d)) ? f[0].length : 0) && (a = 1),
h = this._safeSubstring(s, a),
d = this._safeSubstring(s, 0, a)),
this.label_firstEnglish.test(h) && (f = this.label_lastEnglish.exec(d)) && d !== f[0] && (a -= f[0].length,
h = this._safeSubstring(s, a),
d = this._safeSubstring(s, 0, a)),
0 === r.length ? r.push(d) : (d = d.trimLeft()).length > 0 && r.push(d),
e = n(s = h || o)
}
return 0 === r.length ? r.push(s) : (s = s.trimLeft()).length > 0 && r.push(s),
r
}
};
cc.textUtils = e.exports = a
}
), {
"../platform/js": 214
}],
275: [(function(t, e) {
"use strict";
var i = t("../assets/CCTexture2D")
, n = {
loadImage: function(t, e, i) {
cc.assertID(t, 3103);
var n = cc.assetManager.assets.get(t);
if (n)
return n.loaded ? (e && e.call(i, null, n),
n) : (n.once("load", (function() {
e && e.call(i, null, n)
}
), i),
n);
cc.assetManager.loadRemote(t, (function(t, n) {
e && e.call(i, t, n)
}
))
},
cacheImage: function(t, e) {
if (t && e) {
var n = new i;
return n.initWithElement(e),
cc.assetManager.assets.add(t, n),
n
}
},
postLoadTexture: function(t, e) {
t.loaded ? e && e() : t.nativeUrl ? cc.assetManager.postLoadNative(t, e) : e && e()
}
};
e.exports = n
}
), {
"../assets/CCTexture2D": 77
}],
276: [(function(t, e) {
"use strict";
var i = t("./node-unit")
, n = t("./node-mem-pool");
e.exports = {
NodeMemPool: new n(i)
}
}
), {
"./node-mem-pool": 278,
"./node-unit": 279
}],
277: [(function(t, e) {
"use strict";
var i = function(t) {
this._unitClass = t,
this._pool = [],
this._findOrder = []
}
, n = i.prototype;
n._initNative = function() {
this._nativeMemPool = new renderer.MemPool
}
,
n._buildUnit = function(t) {
return new this._unitClass(t,this)
}
,
n._destroyUnit = function(t) {
this._pool[t] = null;
for (var e = 0, i = this._findOrder.length; e < i; e++) {
var n = this._findOrder[e];
if (n && n.unitID == t) {
this._findOrder.splice(e, 1);
break
}
}
}
,
n._findUnitID = function() {
for (var t = 0, e = this._pool; e[t]; )
t++;
return t
}
,
n.pop = function() {
for (var t = null, e = 0, i = this._findOrder, n = this._pool, r = i.length; e < r; e++) {
var s = i[e];
if (s && s.hasSpace()) {
t = s;
break
}
}
if (!t) {
var a = this._findUnitID();
t = this._buildUnit(a),
n[a] = t,
i.push(t),
e = i.length - 1
}
var o = i[0];
return o !== t && (i[0] = t,
i[e] = o),
t.pop()
}
,
n.push = function(t) {
var e = this._pool[t.unitID];
return e.push(t.index),
this._findOrder.length > 1 && e.isAllFree() && this._destroyUnit(t.unitID),
e
}
,
e.exports = i
}
), {}],
278: [(function(t, e) {
"use strict";
var i, n = t("./mem-pool"), r = function(t) {
n.call(this, t)
};
(i = function() {}
).prototype = n.prototype;
var s = r.prototype = new i;
s._initNative = function() {
this._nativeMemPool = new renderer.NodeMemPool
}
,
s._destroyUnit = function(t) {
n.prototype._destroyUnit.call(this, t)
}
,
e.exports = r
}
), {
"./mem-pool": 277
}],
279: [(function(t, e) {
"use strict";
var i, n = t("../../value-types/utils"), r = (Uint32Array,
10 * n.FLOAT_BYTES), s = 16 * n.FLOAT_BYTES, a = 16 * n.FLOAT_BYTES, o = (Uint32Array,
Uint32Array,
Int32Array,
Uint8Array,
Uint8Array,
Uint32Array,
n.FLOAT_BYTES,
t("./unit-base")), l = function(t, e) {
o.call(this, t, e);
var i = this._contentNum;
this.trsList = new n.FLOAT_ARRAY_TYPE(10 * i),
this.localMatList = new n.FLOAT_ARRAY_TYPE(16 * i),
this.worldMatList = new n.FLOAT_ARRAY_TYPE(16 * i);
for (var l = 0; l < i; l++) {
var h = this._spacesData[l];
h.trs = new n.FLOAT_ARRAY_TYPE(this.trsList.buffer,l * r,10),
h.localMat = new n.FLOAT_ARRAY_TYPE(this.localMatList.buffer,l * s,16),
h.worldMat = new n.FLOAT_ARRAY_TYPE(this.worldMatList.buffer,l * a,16)
}
};
(i = function() {}
).prototype = o.prototype,
l.prototype = new i,
e.exports = l
}
), {
"../../value-types/utils": 289,
"./unit-base": 280
}],
280: [(function(t, e) {
"use strict";
var i = function(t, e, i) {
i = i || 128,
this.unitID = t,
this._memPool = e,
this._data = new Uint16Array(2),
this._data[0] = 0,
this._data[1] = 0,
this._contentNum = i,
this._signData = new Uint16Array(2 * this._contentNum),
this._spacesData = [];
for (var n = 0; n < i; n++) {
var r = 2 * n;
this._signData[r + 0] = n + 1,
this._signData[r + 1] = 0,
this._spacesData[n] = {
index: n,
unitID: t
}
}
this._signData[2 * (i - 1)] = 65535
}
, n = i.prototype;
n.hasSpace = function() {
return 65535 !== this._data[0]
}
,
n.isAllFree = function() {
return 0 == this._data[1]
}
,
n.pop = function() {
var t = this._data[0];
if (65535 === t)
return null;
var e = t
, i = 2 * e
, n = this._spacesData[e];
return this._signData[i + 1] = 1,
this._data[0] = this._signData[i + 0],
this._data[1]++,
n
}
,
n.push = function(t) {
var e = 2 * t;
this._signData[e + 1] = 0,
this._signData[e + 0] = this._data[0],
this._data[0] = t,
this._data[1]--
}
,
n.dump = function() {
for (var t = 0, e = this._data[0], i = ""; 65535 != e; )
t++,
i += e + "->",
e = this._signData[2 * e + 0];
for (var n = 0, r = "", s = this._contentNum, a = 0; a < s; a++)
1 == this._signData[2 * a + 1] && (n++,
r += a + "->");
var o = t + n;
console.log("unitID:", this.unitID, "spaceNum:", t, "calc using num:", n, "store using num:", this._data[1], "calc total num:", o, "actually total num:", this._contentNum),
console.log("free info:", i),
console.log("using info:", r),
n != this._data[1] && cc.error("using num error", "calc using num:", n, "store using num:", this._data[1]),
t + n != this._contentNum && cc.error("total num error", "calc total num:", o, "actually total num:", this._contentNum)
}
,
e.exports = i
}
), {}],
281: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n = a(t("./value-type"))
, r = a(t("../platform/CCClass"))
, s = a(t("../utils/misc"));
function a(t) {
return t && t.__esModule ? t : {
default: t
}
}
function o(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)
}
}
function l(t, e) {
return (l = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
var h = (function(t) {
var e, i;
function n(e, i, n, r) {
var s;
return void 0 === e && (e = 0),
void 0 === i && (i = 0),
void 0 === n && (n = 0),
void 0 === r && (r = 255),
(s = t.call(this) || this)._val = 0,
"object" == typeof e && (i = e.g,
n = e.b,
r = e.a,
e = e.r),
s._val = (r << 24 >>> 0) + (n << 16) + (i << 8) + (0 | e),
s
}
i = t,
(e = n).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
l(e, i),
n.copy = function(t, e) {
return t.r = e.r,
t.g = e.g,
t.b = e.b,
t.a = e.a,
t
}
,
n.clone = function(t) {
return new n(t.r,t.g,t.b,t.a)
}
,
n.set = function(t, e, i, n, r) {
return void 0 === e && (e = 255),
void 0 === i && (i = 255),
void 0 === n && (n = 255),
void 0 === r && (r = 255),
t.r = e,
t.g = i,
t.b = n,
t.a = r,
t
}
,
n.fromHex = function(t, e) {
var i = (e >> 24) / 255
, n = (e >> 16 & 255) / 255
, r = (e >> 8 & 255) / 255
, s = (255 & e) / 255;
return t.r = i,
t.g = n,
t.b = r,
t.a = s,
t
}
,
n.fromHEX = function(t, e) {
return e = 0 === e.indexOf("#") ? e.substring(1) : e,
t.r = parseInt(e.substr(0, 2), 16) || 0,
t.g = parseInt(e.substr(2, 2), 16) || 0,
t.b = parseInt(e.substr(4, 2), 16) || 0,
t.a = parseInt(e.substr(6, 2), 16) || 255,
t._val = (t.a << 24 >>> 0) + (t.b << 16) + (t.g << 8) + t.r,
t
}
,
n.add = function(t, e, i) {
return t.r = e.r + i.r,
t.g = e.g + i.g,
t.b = e.b + i.b,
t.a = e.a + i.a,
t
}
,
n.subtract = function(t, e, i) {
return t.r = e.r - i.r,
t.g = e.g - i.g,
t.b = e.b - i.b,
t.a = e.a - i.a,
t
}
,
n.multiply = function(t, e, i) {
return t.r = e.r * i.r,
t.g = e.g * i.g,
t.b = e.b * i.b,
t.a = e.a * i.a,
t
}
,
n.divide = function(t, e, i) {
return t.r = e.r / i.r,
t.g = e.g / i.g,
t.b = e.b / i.b,
t.a = e.a / i.a,
t
}
,
n.scale = function(t, e, i) {
return t.r = e.r * i,
t.g = e.g * i,
t.b = e.b * i,
t.a = e.a * i,
t
}
,
n.lerp = function(t, e, i, n) {
var r = e.r
, s = e.g
, a = e.b
, o = e.a;
return t.r = r + n * (i.r - r),
t.g = s + n * (i.g - s),
t.b = a + n * (i.b - a),
t.a = o + n * (i.a - o),
t
}
,
n.toArray = function(t, e, i) {
void 0 === i && (i = 0);
var r = e instanceof n || e.a > 1 ? 1 / 255 : 1;
return t[i + 0] = e.r * r,
t[i + 1] = e.g * r,
t[i + 2] = e.b * r,
t[i + 3] = e.a * r,
t
}
,
n.fromArray = function(t, e, i) {
return void 0 === i && (i = 0),
e.r = 255 * t[i + 0],
e.g = 255 * t[i + 1],
e.b = 255 * t[i + 2],
e.a = 255 * t[i + 3],
e
}
,
n.premultiplyAlpha = function(t, e) {
var i = e.a / 255;
return t.r = e.r * i,
t.g = e.g * i,
t.b = e.b * i,
t._fastSetA(e.a),
t
}
;
var r, a, h, c = n.prototype;
return c.clone = function() {
var t = new n;
return t._val = this._val,
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
, a = this.b
, o = this.a;
return i.r = r + (t.r - r) * e,
i.g = s + (t.g - s) * e,
i.b = a + (t.b - a) * e,
i.a = o + (t.a - o) * e,
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) {
return t = ~~s.default.clampf(t, 0, 255),
this._val = (4294967040 & this._val | t) >>> 0,
this
}
,
c.getG = function() {
return (65280 & this._val) >> 8
}
,
c.setG = function(t) {
return t = ~~s.default.clampf(t, 0, 255),
this._val = (4294902015 & this._val | t << 8) >>> 0,
this
}
,
c.getB = function() {
return (16711680 & this._val) >> 16
}
,
c.setB = function(t) {
return t = ~~s.default.clampf(t, 0, 255),
this._val = (4278255615 & this._val | t << 16) >>> 0,
this
}
,
c.getA = function() {
return (4278190080 & this._val) >>> 24
}
,
c.setA = function(t) {
return t = ~~s.default.clampf(t, 0, 255),
this._val = (16777215 & this._val | t << 24) >>> 0,
this
}
,
c.toCSS = function(t) {
return t && "rgba" !== t ? "rgb" === t ? "rgb(" + this.r + "," + this.g + "," + this.b + ")" : "#" + this.toHEX(t) : "rgba(" + this.r + "," + this.g + "," + this.b + "," + (this.a / 255).toFixed(2) + ")"
}
,
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;
return this._val = (r << 24 >>> 0) + (n << 16) + (i << 8) + e,
this
}
,
c.toHEX = function(t) {
var e = [(this.r < 16 ? "0" : "") + this.r.toString(16), (this.g < 16 ? "0" : "") + this.g.toString(16), (this.b < 16 ? "0" : "") + this.b.toString(16)];
return "#rgb" === t ? (e[0] = e[0][0],
e[1] = e[1][0],
e[2] = e[2][0]) : "#rrggbbaa" === t && e.push((this.a < 16 ? "0" : "") + this.a.toString(16)),
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;
var a = Math.floor(t)
, o = t - a
, l = i * (1 - e)
, h = i * (1 - e * o)
, c = i * (1 - e * (1 - o));
switch (a) {
case 0:
n = i,
r = c,
s = l;
break;
case 1:
n = h,
r = i,
s = l;
break;
case 2:
n = l,
r = i,
s = c;
break;
case 3:
n = l,
r = h,
s = i;
break;
case 4:
n = c,
r = l,
s = i;
break;
case 5:
n = i,
r = l,
s = h
}
}
return n *= 255,
r *= 255,
s *= 255,
this._val = (this.a << 24 >>> 0) + (s << 16) + (r << 8) + (0 | n),
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)
, a = 0;
return n.v = r,
n.s = r ? (r - s) / r : 0,
n.s ? (a = r - s,
n.h = t === r ? (e - i) / a : e === r ? 2 + (i - t) / a : 4 + (t - e) / a,
n.h /= 6,
n.h < 0 && (n.h += 1)) : n.h = 0,
n
}
,
c.set = function(t) {
return t._val ? this._val = t._val : (this.r = t.r,
this.g = t.g,
this.b = t.b,
this.a = t.a),
this
}
,
c._fastSetA = function(t) {
this._val = (16777215 & this._val | t << 24) >>> 0
}
,
c.multiply = function(t) {
var e = (255 & this._val) * t.r >> 8
, i = (65280 & this._val) * t.g >> 8
, n = (16711680 & this._val) * t.b >> 8
, r = ((4278190080 & this._val) >>> 8) * t.a;
return this._val = 4278190080 & r | 16711680 & n | 65280 & i | 255 & e,
this
}
,
r = n,
h = [{
key: "WHITE",
get: function() {
return new n(255,255,255,255)
}
}, {
key: "BLACK",
get: function() {
return new n(0,0,0,255)
}
}, {
key: "TRANSPARENT",
get: function() {
return new n(0,0,0,0)
}
}, {
key: "GRAY",
get: function() {
return new n(127.5,127.5,127.5)
}
}, {
key: "RED",
get: function() {
return new n(255,0,0)
}
}, {
key: "GREEN",
get: function() {
return new n(0,255,0)
}
}, {
key: "BLUE",
get: function() {
return new n(0,0,255)
}
}, {
key: "YELLOW",
get: function() {
return new n(255,235,4)
}
}, {
key: "ORANGE",
get: function() {
return new n(255,127,0)
}
}, {
key: "CYAN",
get: function() {
return new n(0,255,255)
}
}, {
key: "MAGENTA",
get: function() {
return new n(255,0,255)
}
}],
(a = [{
key: "r",
get: function() {
return this.getR()
},
set: function(t) {
this.setR(t)
}
}, {
key: "g",
get: function() {
return this.getG()
},
set: function(t) {
this.setG(t)
}
}, {
key: "b",
get: function() {
return this.getB()
},
set: function(t) {
this.setB(t)
}
}, {
key: "a",
get: function() {
return this.getA()
},
set: function(t) {
this.setA(t)
}
}]) && o(r.prototype, a),
h && o(r, h),
n
}
)(n.default);
i.default = h,
h.div = h.divide,
h.sub = h.subtract,
h.mul = h.multiply,
h.WHITE_R = h.WHITE,
h.BLACK_R = h.BLACK,
h.TRANSPARENT_R = h.TRANSPARENT,
h.GRAY_R = h.GRAY,
h.RED_R = h.RED,
h.GREEN_R = h.GREEN,
h.BLUE_R = h.BLUE,
h.YELLOW_R = h.YELLOW,
h.ORANGE_R = h.ORANGE,
h.CYAN_R = h.CYAN,
h.MAGENTA_R = h.MAGENTA,
r.default.fastDefine("cc.Color", h, {
r: 0,
g: 0,
b: 0,
a: 255
}),
cc.Color = h,
cc.color = function(t, e, i, n) {
return "string" == typeof t ? (new h).fromHEX(t) : "object" == typeof t ? new h(t.r,t.g,t.b,t.a) : new h(t,e,i,n)
}
,
e.exports = i.default
}
), {
"../platform/CCClass": 193,
"../utils/misc": 267,
"./value-type": 290
}],
282: [(function(t, e, i) {
"use strict";
i.__esModule = !0;
var n = {
Vec2: !0,
Vec3: !0,
Vec4: !0,
Mat4: !0,
Mat3: !0,
Rect: !0,
Size: !0,
Color: !0,
Quat: !0,
Trs: !0
};
i.Trs = i.Quat = i.Color = i.Size = i.Rect = i.Mat3 = i.Mat4 = i.Vec4 = i.Vec3 = i.Vec2 = void 0;
var r = p(t("./vec2"));
i.Vec2 = r.default;
var s = p(t("./vec3"));
i.Vec3 = s.default;
var a = p(t("./vec4"));
i.Vec4 = a.default;
var o = p(t("./mat4"));
i.Mat4 = o.default;
var l = p(t("./mat3"));
i.Mat3 = l.default;
var h = p(t("./rect"));
i.Rect = h.default;
var c = p(t("./size"));
i.Size = c.default;
var u = p(t("./color"));
i.Color = u.default;
var _ = p(t("./quat"));
i.Quat = _.default;
var f = p(t("./trs"));
i.Trs = f.default;
var d = t("./utils");
function p(t) {
return t && t.__esModule ? t : {
default: t
}
}
Object.keys(d).forEach((function(t) {
"default" !== t && "__esModule" !== t && (Object.prototype.hasOwnProperty.call(n, t) || t in i && i[t] === d[t] || (i[t] = d[t]))
}
)),
cc.math = e.exports
}
), {
"./color": 281,
"./mat3": 283,
"./mat4": 284,
"./quat": 285,
"./rect": 286,
"./size": 287,
"./trs": 288,
"./utils": 289,
"./vec2": 291,
"./vec3": 292,
"./vec4": 293
}],
283: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r = t("../value-types/utils"), s = (n = t("./vec3")) && n.__esModule ? n : {
default: n
}, a = (function() {
function t(t, e, i, n, s, a, o, l, h) {
if (void 0 === t && (t = 1),
void 0 === e && (e = 0),
void 0 === i && (i = 0),
void 0 === n && (n = 0),
void 0 === s && (s = 1),
void 0 === a && (a = 0),
void 0 === o && (o = 0),
void 0 === l && (l = 0),
void 0 === h && (h = 1),
this.m = void 0,
t instanceof r.FLOAT_ARRAY_TYPE)
this.m = t;
else {
this.m = new r.FLOAT_ARRAY_TYPE(9);
var c = this.m;
c[0] = t,
c[1] = e,
c[2] = i,
c[3] = n,
c[4] = s,
c[5] = a,
c[6] = o,
c[7] = l,
c[8] = h
}
}
return t.create = function(e, i, n, r, s, a, o, l, h) {
return void 0 === e && (e = 1),
void 0 === i && (i = 0),
void 0 === n && (n = 0),
void 0 === r && (r = 0),
void 0 === s && (s = 1),
void 0 === a && (a = 0),
void 0 === o && (o = 0),
void 0 === l && (l = 0),
void 0 === h && (h = 1),
new t(e,i,n,r,s,a,o,l,h)
}
,
t.clone = function(e) {
var i = e.m;
return new t(i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7],i[8])
}
,
t.copy = function(t, e) {
return t.m.set(e.m),
t
}
,
t.set = function(t, e, i, n, r, s, a, o, l, h) {
var c = t.m;
return c[0] = e,
c[1] = i,
c[2] = n,
c[3] = r,
c[4] = s,
c[5] = a,
c[6] = o,
c[7] = l,
c[8] = h,
t
}
,
t.identity = function(t) {
var e = t.m;
return e[0] = 1,
e[1] = 0,
e[2] = 0,
e[3] = 0,
e[4] = 1,
e[5] = 0,
e[6] = 0,
e[7] = 0,
e[8] = 1,
t
}
,
t.transpose = function(t, e) {
var i = e.m
, n = t.m;
if (t === e) {
var r = i[1]
, s = i[2]
, a = i[5];
n[1] = i[3],
n[2] = i[6],
n[3] = r,
n[5] = i[7],
n[6] = s,
n[7] = a
} else
n[0] = i[0],
n[1] = i[3],
n[2] = i[6],
n[3] = i[1],
n[4] = i[4],
n[5] = i[7],
n[6] = i[2],
n[7] = i[5],
n[8] = i[8];
return t
}
,
t.invert = function(t, e) {
var i = e.m
, n = t.m
, r = i[0]
, s = i[1]
, a = i[2]
, o = i[3]
, l = i[4]
, h = i[5]
, c = i[6]
, u = i[7]
, _ = i[8]
, f = _ * l - h * u
, d = -_ * o + h * c
, p = u * o - l * c
, m = r * f + s * d + a * p;
return m ? (m = 1 / m,
n[0] = f * m,
n[1] = (-_ * s + a * u) * m,
n[2] = (h * s - a * l) * m,
n[3] = d * m,
n[4] = (_ * r - a * c) * m,
n[5] = (-h * r + a * o) * m,
n[6] = p * m,
n[7] = (-u * r + s * c) * m,
n[8] = (l * r - s * o) * m,
t) : t
}
,
t.adjoint = function(t, e) {
var i = e.m
, n = t.m
, r = i[0]
, s = i[1]
, a = i[2]
, o = i[3]
, l = i[4]
, h = i[5]
, c = i[6]
, u = i[7]
, _ = i[8];
return n[0] = l * _ - h * u,
n[1] = a * u - s * _,
n[2] = s * h - a * l,
n[3] = h * c - o * _,
n[4] = r * _ - a * c,
n[5] = a * o - r * h,
n[6] = o * u - l * c,
n[7] = s * c - r * u,
n[8] = r * l - s * o,
t
}
,
t.determinant = function(t) {
var e = t.m
, i = e[0]
, n = e[1]
, r = e[2]
, s = e[3]
, a = e[4]
, o = e[5]
, l = e[6]
, h = e[7]
, c = e[8];
return i * (c * a - o * h) + n * (-c * s + o * l) + r * (h * s - a * l)
}
,
t.multiply = function(t, e, i) {
var n = e.m
, r = i.m
, s = t.m
, a = n[0]
, o = n[1]
, l = n[2]
, h = n[3]
, c = n[4]
, u = n[5]
, _ = n[6]
, f = n[7]
, d = n[8]
, p = r[0]
, m = r[1]
, y = r[2]
, v = r[3]
, g = r[4]
, A = r[5]
, x = r[6]
, b = r[7]
, C = r[8];
return s[0] = p * a + m * h + y * _,
s[1] = p * o + m * c + y * f,
s[2] = p * l + m * u + y * d,
s[3] = v * a + g * h + A * _,
s[4] = v * o + g * c + A * f,
s[5] = v * l + g * u + A * d,
s[6] = x * a + b * h + C * _,
s[7] = x * o + b * c + C * f,
s[8] = x * l + b * u + C * d,
t
}
,
t.multiplyMat4 = function(t, e, i) {
var n = e.m
, r = i.m
, s = t.m
, a = n[0]
, o = n[1]
, l = n[2]
, h = n[3]
, c = n[4]
, u = n[5]
, _ = n[6]
, f = n[7]
, d = n[8]
, p = r[0]
, m = r[1]
, y = r[2]
, v = r[4]
, g = r[5]
, A = r[6]
, x = r[8]
, b = r[9]
, C = r[10];
return s[0] = p * a + m * h + y * _,
s[1] = p * o + m * c + y * f,
s[2] = p * l + m * u + y * d,
s[3] = v * a + g * h + A * _,
s[4] = v * o + g * c + A * f,
s[5] = v * l + g * u + A * d,
s[6] = x * a + b * h + C * _,
s[7] = x * o + b * c + C * f,
s[8] = x * l + b * u + C * d,
t
}
,
t.translate = function(t, e, i) {
var n = e.m
, r = t.m
, s = n[0]
, a = n[1]
, o = n[2]
, l = n[3]
, h = n[4]
, c = n[5]
, u = n[6]
, _ = n[7]
, f = n[8]
, d = i.x
, p = i.y;
return r[0] = s,
r[1] = a,
r[2] = o,
r[3] = l,
r[4] = h,
r[5] = c,
r[6] = d * s + p * l + u,
r[7] = d * a + p * h + _,
r[8] = d * o + p * c + f,
t
}
,
t.rotate = function(t, e, i) {
var n = e.m
, r = t.m
, s = n[0]
, a = n[1]
, o = n[2]
, l = n[3]
, h = n[4]
, c = n[5]
, u = n[6]
, _ = n[7]
, f = n[8]
, d = Math.sin(i)
, p = Math.cos(i);
return r[0] = p * s + d * l,
r[1] = p * a + d * h,
r[2] = p * o + d * c,
r[3] = p * l - d * s,
r[4] = p * h - d * a,
r[5] = p * c - d * o,
r[6] = u,
r[7] = _,
r[8] = f,
t
}
,
t.scale = function(t, e, i) {
var n = i.x
, r = i.y
, s = e.m
, a = t.m;
return a[0] = n * s[0],
a[1] = n * s[1],
a[2] = n * s[2],
a[3] = r * s[3],
a[4] = r * s[4],
a[5] = r * s[5],
a[6] = s[6],
a[7] = s[7],
a[8] = s[8],
t
}
,
t.fromMat4 = function(t, e) {
var i = e.m
, n = t.m;
return n[0] = i[0],
n[1] = i[1],
n[2] = i[2],
n[3] = i[4],
n[4] = i[5],
n[5] = i[6],
n[6] = i[8],
n[7] = i[9],
n[8] = i[10],
t
}
,
t.fromTranslation = function(t, e) {
var i = t.m;
return i[0] = 1,
i[1] = 0,
i[2] = 0,
i[3] = 0,
i[4] = 1,
i[5] = 0,
i[6] = e.x,
i[7] = e.y,
i[8] = 1,
t
}
,
t.fromRotation = function(t, e) {
var i = Math.sin(e)
, n = Math.cos(e)
, r = t.m;
return r[0] = n,
r[1] = i,
r[2] = 0,
r[3] = -i,
r[4] = n,
r[5] = 0,
r[6] = 0,
r[7] = 0,
r[8] = 1,
t
}
,
t.fromScaling = function(t, e) {
var i = t.m;
return i[0] = e.x,
i[1] = 0,
i[2] = 0,
i[3] = 0,
i[4] = e.y,
i[5] = 0,
i[6] = 0,
i[7] = 0,
i[8] = 1,
t
}
,
t.fromQuat = function(t, e) {
var i = t.m
, n = e.x
, r = e.y
, s = e.z
, a = e.w
, o = n + n
, l = r + r
, h = s + s
, c = n * o
, u = r * o
, _ = r * l
, f = s * o
, d = s * l
, p = s * h
, m = a * o
, y = a * l
, v = a * h;
return i[0] = 1 - _ - p,
i[3] = u - v,
i[6] = f + y,
i[1] = u + v,
i[4] = 1 - c - p,
i[7] = d - m,
i[2] = f - y,
i[5] = d + m,
i[8] = 1 - c - _,
t
}
,
t.fromViewUp = function(e, i, n) {
var a, o, l;
return (a = new s.default(0,1,0),
o = new s.default,
l = new s.default,
function(e, i, n) {
return s.default.lengthSqr(i) < r.EPSILON * r.EPSILON ? (t.identity(e),
e) : (n = n || a,
s.default.normalize(o, s.default.cross(o, n, i)),
s.default.lengthSqr(o) < r.EPSILON * r.EPSILON ? (t.identity(e),
e) : (s.default.cross(l, i, o),
t.set(e, o.x, o.y, o.z, l.x, l.y, l.z, i.x, i.y, i.z),
e))
}
)(e, i, n)
}
,
t.normalFromMat4 = function(t, e) {
var i = e.m
, n = t.m
, r = i[0]
, s = i[1]
, a = i[2]
, o = i[3]
, l = i[4]
, h = i[5]
, c = i[6]
, u = i[7]
, _ = i[8]
, f = i[9]
, d = i[10]
, p = i[11]
, m = i[12]
, y = i[13]
, v = i[14]
, g = i[15]
, A = r * h - s * l
, x = r * c - a * l
, b = r * u - o * l
, C = s * c - a * h
, T = s * u - o * h
, S = a * u - o * c
, w = _ * y - f * m
, E = _ * v - d * m
, M = _ * g - p * m
, D = f * v - d * y
, B = f * g - p * y
, I = d * g - p * v
, P = A * I - x * B + b * D + C * M - T * E + S * w;
return P ? (P = 1 / P,
n[0] = (h * I - c * B + u * D) * P,
n[1] = (c * M - l * I - u * E) * P,
n[2] = (l * B - h * M + u * w) * P,
n[3] = (a * B - s * I - o * D) * P,
n[4] = (r * I - a * M + o * E) * P,
n[5] = (s * M - r * B - o * w) * P,
n[6] = (y * S - v * T + g * C) * P,
n[7] = (v * b - m * S - g * x) * P,
n[8] = (m * T - y * b + g * A) * P,
t) : t
}
,
t.frob = function(t) {
var e = t.m;
return Math.sqrt(Math.pow(e[0], 2) + Math.pow(e[1], 2) + Math.pow(e[2], 2) + Math.pow(e[3], 2) + Math.pow(e[4], 2) + Math.pow(e[5], 2) + Math.pow(e[6], 2) + Math.pow(e[7], 2) + Math.pow(e[8], 2))
}
,
t.add = function(t, e, i) {
var n = e.m
, r = i.m
, s = t.m;
return s[0] = n[0] + r[0],
s[1] = n[1] + r[1],
s[2] = n[2] + r[2],
s[3] = n[3] + r[3],
s[4] = n[4] + r[4],
s[5] = n[5] + r[5],
s[6] = n[6] + r[6],
s[7] = n[7] + r[7],
s[8] = n[8] + r[8],
t
}
,
t.subtract = function(t, e, i) {
var n = e.m
, r = i.m
, s = t.m;
return s[0] = n[0] - r[0],
s[1] = n[1] - r[1],
s[2] = n[2] - r[2],
s[3] = n[3] - r[3],
s[4] = n[4] - r[4],
s[5] = n[5] - r[5],
s[6] = n[6] - r[6],
s[7] = n[7] - r[7],
s[8] = n[8] - r[8],
t
}
,
t.multiplyScalar = function(t, e, i) {
var n = e.m
, r = t.m;
return r[0] = n[0] * i,
r[1] = n[1] * i,
r[2] = n[2] * i,
r[3] = n[3] * i,
r[4] = n[4] * i,
r[5] = n[5] * i,
r[6] = n[6] * i,
r[7] = n[7] * i,
r[8] = n[8] * i,
t
}
,
t.multiplyScalarAndAdd = function(t, e, i, n) {
var r = e.m
, s = i.m
, a = t.m;
return a[0] = r[0] + s[0] * n,
a[1] = r[1] + s[1] * n,
a[2] = r[2] + s[2] * n,
a[3] = r[3] + s[3] * n,
a[4] = r[4] + s[4] * n,
a[5] = r[5] + s[5] * n,
a[6] = r[6] + s[6] * n,
a[7] = r[7] + s[7] * n,
a[8] = r[8] + s[8] * n,
t
}
,
t.exactEquals = function(t, e) {
var i = t.m
, n = e.m;
return i[0] === n[0] && i[1] === n[1] && i[2] === n[2] && i[3] === n[3] && i[4] === n[4] && i[5] === n[5] && i[6] === n[6] && i[7] === n[7] && i[8] === n[8]
}
,
t.equals = function(t, e) {
var i = t.m
, n = e.m
, s = i[0]
, a = i[1]
, o = i[2]
, l = i[3]
, h = i[4]
, c = i[5]
, u = i[6]
, _ = i[7]
, f = i[8]
, d = n[0]
, p = n[1]
, m = n[2]
, y = n[3]
, v = n[4]
, g = n[5]
, A = n[6]
, x = n[7]
, b = n[8];
return Math.abs(s - d) <= r.EPSILON * Math.max(1, Math.abs(s), Math.abs(d)) && Math.abs(a - p) <= r.EPSILON * Math.max(1, Math.abs(a), Math.abs(p)) && Math.abs(o - m) <= r.EPSILON * Math.max(1, Math.abs(o), Math.abs(m)) && Math.abs(l - y) <= r.EPSILON * Math.max(1, Math.abs(l), Math.abs(y)) && Math.abs(h - v) <= r.EPSILON * Math.max(1, Math.abs(h), Math.abs(v)) && Math.abs(c - g) <= r.EPSILON * Math.max(1, Math.abs(c), Math.abs(g)) && Math.abs(u - A) <= r.EPSILON * Math.max(1, Math.abs(u), Math.abs(A)) && Math.abs(_ - x) <= r.EPSILON * Math.max(1, Math.abs(_), Math.abs(x)) && Math.abs(f - b) <= r.EPSILON * Math.max(1, Math.abs(f), Math.abs(b))
}
,
t.toArray = function(t, e, i) {
void 0 === i && (i = 0);
for (var n = e.m, r = 0; r < 9; r++)
t[i + r] = n[r];
return t
}
,
t.fromArray = function(t, e, i) {
void 0 === i && (i = 0);
for (var n = t.m, r = 0; r < 9; r++)
n[r] = e[i + r];
return t
}
,
t.prototype.toString = function() {
var t = this.m;
return "mat3(" + t[0] + ", " + t[1] + ", " + t[2] + ", " + t[3] + ", " + t[4] + ", " + t[5] + ", " + t[6] + ", " + t[7] + ", " + t[8] + ")"
}
,
t
}
)();
i.default = a,
a.sub = a.subtract,
a.mul = a.multiply,
a.IDENTITY = Object.freeze(new a),
cc.Mat3 = a,
e.exports = i.default
}
), {
"../value-types/utils": 289,
"./vec3": 292
}],
284: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n = h(t("./value-type"))
, r = h(t("../platform/CCClass"))
, s = h(t("./vec3"))
, a = h(t("./quat"))
, o = t("./utils")
, l = h(t("./mat3"));
function h(t) {
return t && t.__esModule ? t : {
default: t
}
}
function c(t, e) {
return (c = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
var u = 0
, _ = 0
, f = 0
, d = 0
, p = 0
, m = 0
, y = 0
, v = 0
, g = 0
, A = 0
, x = 0
, b = 0
, C = 0
, T = 0
, S = 0
, w = 0
, E = (function(t) {
var e, i;
i = t,
(e = r).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
c(e, i);
var n = r.prototype;
function r(e, i, n, r, s, a, l, h, c, u, _, f, d, p, m, y) {
var v;
if (void 0 === e && (e = 1),
void 0 === i && (i = 0),
void 0 === n && (n = 0),
void 0 === r && (r = 0),
void 0 === s && (s = 0),
void 0 === a && (a = 1),
void 0 === l && (l = 0),
void 0 === h && (h = 0),
void 0 === c && (c = 0),
void 0 === u && (u = 0),
void 0 === _ && (_ = 1),
void 0 === f && (f = 0),
void 0 === d && (d = 0),
void 0 === p && (p = 0),
void 0 === m && (m = 0),
void 0 === y && (y = 1),
(v = t.call(this) || this).m = void 0,
e instanceof o.FLOAT_ARRAY_TYPE)
v.m = e;
else {
v.m = new o.FLOAT_ARRAY_TYPE(16);
var g = v.m;
g[0] = e,
g[1] = i,
g[2] = n,
g[3] = r,
g[4] = s,
g[5] = a,
g[6] = l,
g[7] = h,
g[8] = c,
g[9] = u,
g[10] = _,
g[11] = f,
g[12] = d,
g[13] = p,
g[14] = m,
g[15] = y
}
return v
}
return n.mul = function(t, e) {
return r.multiply(e || new r, this, t)
}
,
n.mulScalar = function(t, e) {
r.multiplyScalar(e || new r, this, t)
}
,
n.sub = function(t, e) {
r.subtract(e || new r, this, t)
}
,
r.clone = function(t) {
var e = t.m;
return new r(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])
}
,
r.copy = function(t, e) {
var i = t.m
, n = e.m;
return i[0] = n[0],
i[1] = n[1],
i[2] = n[2],
i[3] = n[3],
i[4] = n[4],
i[5] = n[5],
i[6] = n[6],
i[7] = n[7],
i[8] = n[8],
i[9] = n[9],
i[10] = n[10],
i[11] = n[11],
i[12] = n[12],
i[13] = n[13],
i[14] = n[14],
i[15] = n[15],
t
}
,
r.set = function(t, e, i, n, r, s, a, o, l, h, c, u, _, f, d, p, m) {
var y = t.m;
return y[0] = e,
y[1] = i,
y[2] = n,
y[3] = r,
y[4] = s,
y[5] = a,
y[6] = o,
y[7] = l,
y[8] = h,
y[9] = c,
y[10] = u,
y[11] = _,
y[12] = f,
y[13] = d,
y[14] = p,
y[15] = m,
t
}
,
r.identity = function(t) {
var e = t.m;
return e[0] = 1,
e[1] = 0,
e[2] = 0,
e[3] = 0,
e[4] = 0,
e[5] = 1,
e[6] = 0,
e[7] = 0,
e[8] = 0,
e[9] = 0,
e[10] = 1,
e[11] = 0,
e[12] = 0,
e[13] = 0,
e[14] = 0,
e[15] = 1,
t
}
,
r.transpose = function(t, e) {
var i = t.m
, n = e.m;
if (t === e) {
var r = n[1]
, s = n[2]
, a = n[3]
, o = n[6]
, l = n[7]
, h = n[11];
i[1] = n[4],
i[2] = n[8],
i[3] = n[12],
i[4] = r,
i[6] = n[9],
i[7] = n[13],
i[8] = s,
i[9] = o,
i[11] = n[14],
i[12] = a,
i[13] = l,
i[14] = h
} else
i[0] = n[0],
i[1] = n[4],
i[2] = n[8],
i[3] = n[12],
i[4] = n[1],
i[5] = n[5],
i[6] = n[9],
i[7] = n[13],
i[8] = n[2],
i[9] = n[6],
i[10] = n[10],
i[11] = n[14],
i[12] = n[3],
i[13] = n[7],
i[14] = n[11],
i[15] = n[15];
return t
}
,
r.invert = function(t, e) {
var i = e.m;
u = i[0],
_ = i[1],
f = i[2],
d = i[3],
p = i[4],
m = i[5],
y = i[6],
v = i[7],
g = i[8],
A = i[9],
x = i[10],
b = i[11],
C = i[12],
T = i[13],
S = i[14],
w = i[15];
var n = u * m - _ * p
, r = u * y - f * p
, s = u * v - d * p
, a = _ * y - f * m
, o = _ * v - d * m
, l = f * v - d * y
, h = g * T - A * C
, c = g * S - x * C
, E = g * w - b * C
, M = A * S - x * T
, D = A * w - b * T
, B = x * w - b * S
, I = n * B - r * D + s * M + a * E - o * c + l * h;
if (0 === I)
return null;
I = 1 / I;
var P = t.m;
return P[0] = (m * B - y * D + v * M) * I,
P[1] = (f * D - _ * B - d * M) * I,
P[2] = (T * l - S * o + w * a) * I,
P[3] = (x * o - A * l - b * a) * I,
P[4] = (y * E - p * B - v * c) * I,
P[5] = (u * B - f * E + d * c) * I,
P[6] = (S * s - C * l - w * r) * I,
P[7] = (g * l - x * s + b * r) * I,
P[8] = (p * D - m * E + v * h) * I,
P[9] = (_ * E - u * D - d * h) * I,
P[10] = (C * o - T * s + w * n) * I,
P[11] = (A * s - g * o - b * n) * I,
P[12] = (m * c - p * M - y * h) * I,
P[13] = (u * M - _ * c + f * h) * I,
P[14] = (T * r - C * a - S * n) * I,
P[15] = (g * a - A * r + x * n) * I,
t
}
,
r.determinant = function(t) {
var e = t.m;
return u = e[0],
_ = e[1],
f = e[2],
d = e[3],
p = e[4],
m = e[5],
y = e[6],
v = e[7],
g = e[8],
A = e[9],
x = e[10],
b = e[11],
C = e[12],
T = e[13],
S = e[14],
w = e[15],
(u * m - _ * p) * (x * w - b * S) - (u * y - f * p) * (A * w - b * T) + (u * v - d * p) * (A * S - x * T) + (_ * y - f * m) * (g * w - b * C) - (_ * v - d * m) * (g * S - x * C) + (f * v - d * y) * (g * T - A * C)
}
,
r.multiply = function(t, e, i) {
var n = t.m
, r = e.m
, s = i.m;
u = r[0],
_ = r[1],
f = r[2],
d = r[3],
p = r[4],
m = r[5],
y = r[6],
v = r[7],
g = r[8],
A = r[9],
x = r[10],
b = r[11],
C = r[12],
T = r[13],
S = r[14],
w = r[15];
var a = s[0]
, o = s[1]
, l = s[2]
, h = s[3];
return n[0] = a * u + o * p + l * g + h * C,
n[1] = a * _ + o * m + l * A + h * T,
n[2] = a * f + o * y + l * x + h * S,
n[3] = a * d + o * v + l * b + h * w,
a = s[4],
o = s[5],
l = s[6],
h = s[7],
n[4] = a * u + o * p + l * g + h * C,
n[5] = a * _ + o * m + l * A + h * T,
n[6] = a * f + o * y + l * x + h * S,
n[7] = a * d + o * v + l * b + h * w,
a = s[8],
o = s[9],
l = s[10],
h = s[11],
n[8] = a * u + o * p + l * g + h * C,
n[9] = a * _ + o * m + l * A + h * T,
n[10] = a * f + o * y + l * x + h * S,
n[11] = a * d + o * v + l * b + h * w,
a = s[12],
o = s[13],
l = s[14],
h = s[15],
n[12] = a * u + o * p + l * g + h * C,
n[13] = a * _ + o * m + l * A + h * T,
n[14] = a * f + o * y + l * x + h * S,
n[15] = a * d + o * v + l * b + h * w,
t
}
,
r.transform = function(t, e, i) {
var n = i.x
, r = i.y
, s = i.z
, a = t.m
, o = e.m;
return e === t ? (a[12] = o[0] * n + o[4] * r + o[8] * s + o[12],
a[13] = o[1] * n + o[5] * r + o[9] * s + o[13],
a[14] = o[2] * n + o[6] * r + o[10] * s + o[14],
a[15] = o[3] * n + o[7] * r + o[11] * s + o[15]) : (u = o[0],
_ = o[1],
f = o[2],
d = o[3],
p = o[4],
m = o[5],
y = o[6],
v = o[7],
g = o[8],
A = o[9],
x = o[10],
b = o[11],
C = o[12],
T = o[13],
S = o[14],
w = o[15],
a[0] = u,
a[1] = _,
a[2] = f,
a[3] = d,
a[4] = p,
a[5] = m,
a[6] = y,
a[7] = v,
a[8] = g,
a[9] = A,
a[10] = x,
a[11] = b,
a[12] = u * n + p * r + g * s + o[12],
a[13] = _ * n + m * r + A * s + o[13],
a[14] = f * n + y * r + x * s + o[14],
a[15] = d * n + v * r + b * s + o[15]),
t
}
,
r.translate = function(t, e, i) {
var n = t.m
, r = e.m;
return e === t ? (n[12] += i.x,
n[13] += i.y,
n[14] += i.z) : (n[0] = r[0],
n[1] = r[1],
n[2] = r[2],
n[3] = r[3],
n[4] = r[4],
n[5] = r[5],
n[6] = r[6],
n[7] = r[7],
n[8] = r[8],
n[9] = r[9],
n[10] = r[10],
n[11] = r[11],
n[12] += i.x,
n[13] += i.y,
n[14] += i.z,
n[15] = r[15]),
t
}
,
r.scale = function(t, e, i) {
var n = i.x
, r = i.y
, s = i.z
, a = t.m
, o = e.m;
return a[0] = o[0] * n,
a[1] = o[1] * n,
a[2] = o[2] * n,
a[3] = o[3] * n,
a[4] = o[4] * r,
a[5] = o[5] * r,
a[6] = o[6] * r,
a[7] = o[7] * r,
a[8] = o[8] * s,
a[9] = o[9] * s,
a[10] = o[10] * s,
a[11] = o[11] * s,
a[12] = o[12],
a[13] = o[13],
a[14] = o[14],
a[15] = o[15],
t
}
,
r.rotate = function(t, e, i, n) {
var r = n.x
, s = n.y
, a = n.z
, l = Math.sqrt(r * r + s * s + a * a);
if (Math.abs(l) < o.EPSILON)
return null;
r *= l = 1 / l,
s *= l,
a *= l;
var h = Math.sin(i)
, c = Math.cos(i)
, C = 1 - c
, T = e.m;
u = T[0],
_ = T[1],
f = T[2],
d = T[3],
p = T[4],
m = T[5],
y = T[6],
v = T[7],
g = T[8],
A = T[9],
x = T[10],
b = T[11];
var S = r * r * C + c
, w = s * r * C + a * h
, E = a * r * C - s * h
, M = r * s * C - a * h
, D = s * s * C + c
, B = a * s * C + r * h
, I = r * a * C + s * h
, P = s * a * C - r * h
, R = a * a * C + c
, O = t.m;
return O[0] = u * S + p * w + g * E,
O[1] = _ * S + m * w + A * E,
O[2] = f * S + y * w + x * E,
O[3] = d * S + v * w + b * E,
O[4] = u * M + p * D + g * B,
O[5] = _ * M + m * D + A * B,
O[6] = f * M + y * D + x * B,
O[7] = d * M + v * D + b * B,
O[8] = u * I + p * P + g * R,
O[9] = _ * I + m * P + A * R,
O[10] = f * I + y * P + x * R,
O[11] = d * I + v * P + b * R,
e !== t && (O[12] = T[12],
O[13] = T[13],
O[14] = T[14],
O[15] = T[15]),
t
}
,
r.rotateX = function(t, e, i) {
var n = t.m
, r = e.m
, s = Math.sin(i)
, a = Math.cos(i)
, o = r[4]
, l = r[5]
, h = r[6]
, c = r[7]
, u = r[8]
, _ = r[9]
, f = r[10]
, d = r[11];
return e !== t && (n[0] = r[0],
n[1] = r[1],
n[2] = r[2],
n[3] = r[3],
n[12] = r[12],
n[13] = r[13],
n[14] = r[14],
n[15] = r[15]),
n[4] = o * a + u * s,
n[5] = l * a + _ * s,
n[6] = h * a + f * s,
n[7] = c * a + d * s,
n[8] = u * a - o * s,
n[9] = _ * a - l * s,
n[10] = f * a - h * s,
n[11] = d * a - c * s,
t
}
,
r.rotateY = function(t, e, i) {
var n = t.m
, r = e.m
, s = Math.sin(i)
, a = Math.cos(i)
, o = r[0]
, l = r[1]
, h = r[2]
, c = r[3]
, u = r[8]
, _ = r[9]
, f = r[10]
, d = r[11];
return e !== t && (n[4] = r[4],
n[5] = r[5],
n[6] = r[6],
n[7] = r[7],
n[12] = r[12],
n[13] = r[13],
n[14] = r[14],
n[15] = r[15]),
n[0] = o * a - u * s,
n[1] = l * a - _ * s,
n[2] = h * a - f * s,
n[3] = c * a - d * s,
n[8] = o * s + u * a,
n[9] = l * s + _ * a,
n[10] = h * s + f * a,
n[11] = c * s + d * a,
t
}
,
r.rotateZ = function(t, e, i) {
var n = e.m
, r = t.m
, s = Math.sin(i)
, a = Math.cos(i)
, o = e.m[0]
, l = e.m[1]
, h = e.m[2]
, c = e.m[3]
, u = e.m[4]
, _ = e.m[5]
, f = e.m[6]
, d = e.m[7];
return e !== t && (r[8] = n[8],
r[9] = n[9],
r[10] = n[10],
r[11] = n[11],
r[12] = n[12],
r[13] = n[13],
r[14] = n[14],
r[15] = n[15]),
r[0] = o * a + u * s,
r[1] = l * a + _ * s,
r[2] = h * a + f * s,
r[3] = c * a + d * s,
r[4] = u * a - o * s,
r[5] = _ * a - l * s,
r[6] = f * a - h * s,
r[7] = d * a - c * s,
t
}
,
r.fromTranslation = function(t, e) {
var i = t.m;
return i[0] = 1,
i[1] = 0,
i[2] = 0,
i[3] = 0,
i[4] = 0,
i[5] = 1,
i[6] = 0,
i[7] = 0,
i[8] = 0,
i[9] = 0,
i[10] = 1,
i[11] = 0,
i[12] = e.x,
i[13] = e.y,
i[14] = e.z,
i[15] = 1,
t
}
,
r.fromScaling = function(t, e) {
var i = t.m;
return i[0] = e.x,
i[1] = 0,
i[2] = 0,
i[3] = 0,
i[4] = 0,
i[5] = e.y,
i[6] = 0,
i[7] = 0,
i[8] = 0,
i[9] = 0,
i[10] = e.z,
i[11] = 0,
i[12] = 0,
i[13] = 0,
i[14] = 0,
i[15] = 1,
t
}
,
r.fromRotation = function(t, e, i) {
var n = i.x
, r = i.y
, s = i.z
, a = Math.sqrt(n * n + r * r + s * s);
if (Math.abs(a) < o.EPSILON)
return null;
n *= a = 1 / a,
r *= a,
s *= a;
var l = Math.sin(e)
, h = Math.cos(e)
, c = 1 - h
, u = t.m;
return u[0] = n * n * c + h,
u[1] = r * n * c + s * l,
u[2] = s * n * c - r * l,
u[3] = 0,
u[4] = n * r * c - s * l,
u[5] = r * r * c + h,
u[6] = s * r * c + n * l,
u[7] = 0,
u[8] = n * s * c + r * l,
u[9] = r * s * c - n * l,
u[10] = s * s * c + h,
u[11] = 0,
u[12] = 0,
u[13] = 0,
u[14] = 0,
u[15] = 1,
t
}
,
r.fromXRotation = function(t, e) {
var i = Math.sin(e)
, n = Math.cos(e)
, r = t.m;
return r[0] = 1,
r[1] = 0,
r[2] = 0,
r[3] = 0,
r[4] = 0,
r[5] = n,
r[6] = i,
r[7] = 0,
r[8] = 0,
r[9] = -i,
r[10] = n,
r[11] = 0,
r[12] = 0,
r[13] = 0,
r[14] = 0,
r[15] = 1,
t
}
,
r.fromYRotation = function(t, e) {
var i = Math.sin(e)
, n = Math.cos(e)
, r = t.m;
return r[0] = n,
r[1] = 0,
r[2] = -i,
r[3] = 0,
r[4] = 0,
r[5] = 1,
r[6] = 0,
r[7] = 0,
r[8] = i,
r[9] = 0,
r[10] = n,
r[11] = 0,
r[12] = 0,
r[13] = 0,
r[14] = 0,
r[15] = 1,
t
}
,
r.fromZRotation = function(t, e) {
var i = Math.sin(e)
, n = Math.cos(e)
, r = t.m;
return r[0] = n,
r[1] = i,
r[2] = 0,
r[3] = 0,
r[4] = -i,
r[5] = n,
r[6] = 0,
r[7] = 0,
r[8] = 0,
r[9] = 0,
r[10] = 1,
r[11] = 0,
r[12] = 0,
r[13] = 0,
r[14] = 0,
r[15] = 1,
t
}
,
r.fromRT = function(t, e, i) {
var n = e.x
, r = e.y
, s = e.z
, a = e.w
, o = n + n
, l = r + r
, h = s + s
, c = n * o
, u = n * l
, _ = n * h
, f = r * l
, d = r * h
, p = s * h
, m = a * o
, y = a * l
, v = a * h
, g = t.m;
return g[0] = 1 - (f + p),
g[1] = u + v,
g[2] = _ - y,
g[3] = 0,
g[4] = u - v,
g[5] = 1 - (c + p),
g[6] = d + m,
g[7] = 0,
g[8] = _ + y,
g[9] = d - m,
g[10] = 1 - (c + f),
g[11] = 0,
g[12] = i.x,
g[13] = i.y,
g[14] = i.z,
g[15] = 1,
t
}
,
r.getTranslation = function(t, e) {
var i = e.m;
return t.x = i[12],
t.y = i[13],
t.z = i[14],
t
}
,
r.getScaling = function(t, e) {
var i = e.m
, n = D.m
, r = n[0] = i[0]
, s = n[1] = i[1]
, a = n[2] = i[2]
, o = n[3] = i[4]
, h = n[4] = i[5]
, c = n[5] = i[6]
, u = n[6] = i[8]
, _ = n[7] = i[9]
, f = n[8] = i[10];
return t.x = Math.sqrt(r * r + s * s + a * a),
t.y = Math.sqrt(o * o + h * h + c * c),
t.z = Math.sqrt(u * u + _ * _ + f * f),
l.default.determinant(D) < 0 && (t.x *= -1),
t
}
,
r.getRotation = function(t, e) {
var i = e.m
, n = i[0] + i[5] + i[10]
, r = 0;
return n > 0 ? (r = 2 * Math.sqrt(n + 1),
t.w = .25 * r,
t.x = (i[6] - i[9]) / r,
t.y = (i[8] - i[2]) / r,
t.z = (i[1] - i[4]) / r) : i[0] > i[5] && i[0] > i[10] ? (r = 2 * Math.sqrt(1 + i[0] - i[5] - i[10]),
t.w = (i[6] - i[9]) / r,
t.x = .25 * r,
t.y = (i[1] + i[4]) / r,
t.z = (i[8] + i[2]) / r) : i[5] > i[10] ? (r = 2 * Math.sqrt(1 + i[5] - i[0] - i[10]),
t.w = (i[8] - i[2]) / r,
t.x = (i[1] + i[4]) / r,
t.y = .25 * r,
t.z = (i[6] + i[9]) / r) : (r = 2 * Math.sqrt(1 + i[10] - i[0] - i[5]),
t.w = (i[1] - i[4]) / r,
t.x = (i[8] + i[2]) / r,
t.y = (i[6] + i[9]) / r,
t.z = .25 * r),
t
}
,
r.toRTS = function(t, e, i, n) {
var r = t.m
, o = D.m;
n.x = s.default.set(M, r[0], r[1], r[2]).mag(),
o[0] = r[0] / n.x,
o[1] = r[1] / n.x,
o[2] = r[2] / n.x,
n.y = s.default.set(M, r[4], r[5], r[6]).mag(),
o[3] = r[4] / n.y,
o[4] = r[5] / n.y,
o[5] = r[6] / n.y,
n.z = s.default.set(M, r[8], r[9], r[10]).mag(),
o[6] = r[8] / n.z,
o[7] = r[9] / n.z,
o[8] = r[10] / n.z,
l.default.determinant(D) < 0 && (n.x *= -1,
o[0] *= -1,
o[1] *= -1,
o[2] *= -1),
a.default.fromMat3(e, D),
s.default.set(i, r[12], r[13], r[14])
}
,
r.fromRTS = function(t, e, i, n) {
var r = e.x
, s = e.y
, a = e.z
, o = e.w
, l = r + r
, h = s + s
, c = a + a
, u = r * l
, _ = r * h
, f = r * c
, d = s * h
, p = s * c
, m = a * c
, y = o * l
, v = o * h
, g = o * c
, A = n.x
, x = n.y
, b = n.z
, C = t.m;
return C[0] = (1 - (d + m)) * A,
C[1] = (_ + g) * A,
C[2] = (f - v) * A,
C[3] = 0,
C[4] = (_ - g) * x,
C[5] = (1 - (u + m)) * x,
C[6] = (p + y) * x,
C[7] = 0,
C[8] = (f + v) * b,
C[9] = (p - y) * b,
C[10] = (1 - (u + d)) * b,
C[11] = 0,
C[12] = i.x,
C[13] = i.y,
C[14] = i.z,
C[15] = 1,
t
}
,
r.fromRTSOrigin = function(t, e, i, n, r) {
var s = e.x
, a = e.y
, o = e.z
, l = e.w
, h = s + s
, c = a + a
, u = o + o
, _ = s * h
, f = s * c
, d = s * u
, p = a * c
, m = a * u
, y = o * u
, v = l * h
, g = l * c
, A = l * u
, x = n.x
, b = n.y
, C = n.z
, T = r.x
, S = r.y
, w = r.z
, E = t.m;
return E[0] = (1 - (p + y)) * x,
E[1] = (f + A) * x,
E[2] = (d - g) * x,
E[3] = 0,
E[4] = (f - A) * b,
E[5] = (1 - (_ + y)) * b,
E[6] = (m + v) * b,
E[7] = 0,
E[8] = (d + g) * C,
E[9] = (m - v) * C,
E[10] = (1 - (_ + p)) * C,
E[11] = 0,
E[12] = i.x + T - (E[0] * T + E[4] * S + E[8] * w),
E[13] = i.y + S - (E[1] * T + E[5] * S + E[9] * w),
E[14] = i.z + w - (E[2] * T + E[6] * S + E[10] * w),
E[15] = 1,
t
}
,
r.fromQuat = function(t, e) {
var i = e.x
, n = e.y
, r = e.z
, s = e.w
, a = i + i
, o = n + n
, l = r + r
, h = i * a
, c = n * a
, u = n * o
, _ = r * a
, f = r * o
, d = r * l
, p = s * a
, m = s * o
, y = s * l
, v = t.m;
return v[0] = 1 - u - d,
v[1] = c + y,
v[2] = _ - m,
v[3] = 0,
v[4] = c - y,
v[5] = 1 - h - d,
v[6] = f + p,
v[7] = 0,
v[8] = _ + m,
v[9] = f - p,
v[10] = 1 - h - u,
v[11] = 0,
v[12] = 0,
v[13] = 0,
v[14] = 0,
v[15] = 1,
t
}
,
r.frustum = function(t, e, i, n, r, s, a) {
var o = 1 / (i - e)
, l = 1 / (r - n)
, h = 1 / (s - a)
, c = t.m;
return c[0] = 2 * s * o,
c[1] = 0,
c[2] = 0,
c[3] = 0,
c[4] = 0,
c[5] = 2 * s * l,
c[6] = 0,
c[7] = 0,
c[8] = (i + e) * o,
c[9] = (r + n) * l,
c[10] = (a + s) * h,
c[11] = -1,
c[12] = 0,
c[13] = 0,
c[14] = a * s * 2 * h,
c[15] = 0,
t
}
,
r.perspective = function(t, e, i, n, r) {
var s = 1 / Math.tan(e / 2)
, a = 1 / (n - r)
, o = t.m;
return o[0] = s / i,
o[1] = 0,
o[2] = 0,
o[3] = 0,
o[4] = 0,
o[5] = s,
o[6] = 0,
o[7] = 0,
o[8] = 0,
o[9] = 0,
o[10] = (r + n) * a,
o[11] = -1,
o[12] = 0,
o[13] = 0,
o[14] = 2 * r * n * a,
o[15] = 0,
t
}
,
r.ortho = function(t, e, i, n, r, s, a) {
var o = 1 / (e - i)
, l = 1 / (n - r)
, h = 1 / (s - a)
, c = t.m;
return c[0] = -2 * o,
c[1] = 0,
c[2] = 0,
c[3] = 0,
c[4] = 0,
c[5] = -2 * l,
c[6] = 0,
c[7] = 0,
c[8] = 0,
c[9] = 0,
c[10] = 2 * h,
c[11] = 0,
c[12] = (e + i) * o,
c[13] = (r + n) * l,
c[14] = (a + s) * h,
c[15] = 1,
t
}
,
r.lookAt = function(t, e, i, n) {
var r = e.x
, s = e.y
, a = e.z
, o = n.x
, l = n.y
, h = n.z
, c = r - i.x
, u = s - i.y
, _ = a - i.z
, f = 1 / Math.sqrt(c * c + u * u + _ * _)
, d = l * (_ *= f) - h * (u *= f)
, p = h * (c *= f) - o * _
, m = o * u - l * c
, y = u * (m *= f = 1 / Math.sqrt(d * d + p * p + m * m)) - _ * (p *= f)
, v = _ * (d *= f) - c * m
, g = c * p - u * d
, A = t.m;
return A[0] = d,
A[1] = y,
A[2] = c,
A[3] = 0,
A[4] = p,
A[5] = v,
A[6] = u,
A[7] = 0,
A[8] = m,
A[9] = g,
A[10] = _,
A[11] = 0,
A[12] = -(d * r + p * s + m * a),
A[13] = -(y * r + v * s + g * a),
A[14] = -(c * r + u * s + _ * a),
A[15] = 1,
t
}
,
r.inverseTranspose = function(t, e) {
var i = e.m;
u = i[0],
_ = i[1],
f = i[2],
d = i[3],
p = i[4],
m = i[5],
y = i[6],
v = i[7],
g = i[8],
A = i[9],
x = i[10],
b = i[11],
C = i[12],
T = i[13],
S = i[14],
w = i[15];
var n = u * m - _ * p
, r = u * y - f * p
, s = u * v - d * p
, a = _ * y - f * m
, o = _ * v - d * m
, l = f * v - d * y
, h = g * T - A * C
, c = g * S - x * C
, E = g * w - b * C
, M = A * S - x * T
, D = A * w - b * T
, B = x * w - b * S
, I = n * B - r * D + s * M + a * E - o * c + l * h;
return I ? (I = 1 / I,
(i = t.m)[0] = (m * B - y * D + v * M) * I,
i[1] = (y * E - p * B - v * c) * I,
i[2] = (p * D - m * E + v * h) * I,
i[3] = 0,
i[4] = (f * D - _ * B - d * M) * I,
i[5] = (u * B - f * E + d * c) * I,
i[6] = (_ * E - u * D - d * h) * I,
i[7] = 0,
i[8] = (T * l - S * o + w * a) * I,
i[9] = (S * s - C * l - w * r) * I,
i[10] = (C * o - T * s + w * n) * I,
i[11] = 0,
i[12] = 0,
i[13] = 0,
i[14] = 0,
i[15] = 1,
t) : null
}
,
r.add = function(t, e, i) {
var n = t.m
, r = e.m
, s = i.m;
return n[0] = r[0] + s[0],
n[1] = r[1] + s[1],
n[2] = r[2] + s[2],
n[3] = r[3] + s[3],
n[4] = r[4] + s[4],
n[5] = r[5] + s[5],
n[6] = r[6] + s[6],
n[7] = r[7] + s[7],
n[8] = r[8] + s[8],
n[9] = r[9] + s[9],
n[10] = r[10] + s[10],
n[11] = r[11] + s[11],
n[12] = r[12] + s[12],
n[13] = r[13] + s[13],
n[14] = r[14] + s[14],
n[15] = r[15] + s[15],
t
}
,
r.subtract = function(t, e, i) {
var n = t.m
, r = e.m
, s = i.m;
return n[0] = r[0] - s[0],
n[1] = r[1] - s[1],
n[2] = r[2] - s[2],
n[3] = r[3] - s[3],
n[4] = r[4] - s[4],
n[5] = r[5] - s[5],
n[6] = r[6] - s[6],
n[7] = r[7] - s[7],
n[8] = r[8] - s[8],
n[9] = r[9] - s[9],
n[10] = r[10] - s[10],
n[11] = r[11] - s[11],
n[12] = r[12] - s[12],
n[13] = r[13] - s[13],
n[14] = r[14] - s[14],
n[15] = r[15] - s[15],
t
}
,
r.multiplyScalar = function(t, e, i) {
var n = t.m
, r = e.m;
return n[0] = r[0] * i,
n[1] = r[1] * i,
n[2] = r[2] * i,
n[3] = r[3] * i,
n[4] = r[4] * i,
n[5] = r[5] * i,
n[6] = r[6] * i,
n[7] = r[7] * i,
n[8] = r[8] * i,
n[9] = r[9] * i,
n[10] = r[10] * i,
n[11] = r[11] * i,
n[12] = r[12] * i,
n[13] = r[13] * i,
n[14] = r[14] * i,
n[15] = r[15] * i,
t
}
,
r.multiplyScalarAndAdd = function(t, e, i, n) {
var r = t.m
, s = e.m
, a = i.m;
return r[0] = s[0] + a[0] * n,
r[1] = s[1] + a[1] * n,
r[2] = s[2] + a[2] * n,
r[3] = s[3] + a[3] * n,
r[4] = s[4] + a[4] * n,
r[5] = s[5] + a[5] * n,
r[6] = s[6] + a[6] * n,
r[7] = s[7] + a[7] * n,
r[8] = s[8] + a[8] * n,
r[9] = s[9] + a[9] * n,
r[10] = s[10] + a[10] * n,
r[11] = s[11] + a[11] * n,
r[12] = s[12] + a[12] * n,
r[13] = s[13] + a[13] * n,
r[14] = s[14] + a[14] * n,
r[15] = s[15] + a[15] * n,
t
}
,
r.strictEquals = function(t, e) {
var i = t.m
, n = e.m;
return i[0] === n[0] && i[1] === n[1] && i[2] === n[2] && i[3] === n[3] && i[4] === n[4] && i[5] === n[5] && i[6] === n[6] && i[7] === n[7] && i[8] === n[8] && i[9] === n[9] && i[10] === n[10] && i[11] === n[11] && i[12] === n[12] && i[13] === n[13] && i[14] === n[14] && i[15] === n[15]
}
,
r.equals = function(t, e, i) {
void 0 === i && (i = o.EPSILON);
var n = t.m
, r = e.m;
return Math.abs(n[0] - r[0]) <= i * Math.max(1, Math.abs(n[0]), Math.abs(r[0])) && Math.abs(n[1] - r[1]) <= i * Math.max(1, Math.abs(n[1]), Math.abs(r[1])) && Math.abs(n[2] - r[2]) <= i * Math.max(1, Math.abs(n[2]), Math.abs(r[2])) && Math.abs(n[3] - r[3]) <= i * Math.max(1, Math.abs(n[3]), Math.abs(r[3])) && Math.abs(n[4] - r[4]) <= i * Math.max(1, Math.abs(n[4]), Math.abs(r[4])) && Math.abs(n[5] - r[5]) <= i * Math.max(1, Math.abs(n[5]), Math.abs(r[5])) && Math.abs(n[6] - r[6]) <= i * Math.max(1, Math.abs(n[6]), Math.abs(r[6])) && Math.abs(n[7] - r[7]) <= i * Math.max(1, Math.abs(n[7]), Math.abs(r[7])) && Math.abs(n[8] - r[8]) <= i * Math.max(1, Math.abs(n[8]), Math.abs(r[8])) && Math.abs(n[9] - r[9]) <= i * Math.max(1, Math.abs(n[9]), Math.abs(r[9])) && Math.abs(n[10] - r[10]) <= i * Math.max(1, Math.abs(n[10]), Math.abs(r[10])) && Math.abs(n[11] - r[11]) <= i * Math.max(1, Math.abs(n[11]), Math.abs(r[11])) && Math.abs(n[12] - r[12]) <= i * Math.max(1, Math.abs(n[12]), Math.abs(r[12])) && Math.abs(n[13] - r[13]) <= i * Math.max(1, Math.abs(n[13]), Math.abs(r[13])) && Math.abs(n[14] - r[14]) <= i * Math.max(1, Math.abs(n[14]), Math.abs(r[14])) && Math.abs(n[15] - r[15]) <= i * Math.max(1, Math.abs(n[15]), Math.abs(r[15]))
}
,
r.adjoint = function(t, e) {
var i = e.m
, n = t.m
, r = i[0]
, s = i[1]
, a = i[2]
, o = i[3]
, l = i[4]
, h = i[5]
, c = i[6]
, u = i[7]
, _ = i[8]
, f = i[9]
, d = i[10]
, p = i[11]
, m = i[12]
, y = i[13]
, v = i[14]
, g = i[15];
return n[0] = h * (d * g - p * v) - f * (c * g - u * v) + y * (c * p - u * d),
n[1] = -(s * (d * g - p * v) - f * (a * g - o * v) + y * (a * p - o * d)),
n[2] = s * (c * g - u * v) - h * (a * g - o * v) + y * (a * u - o * c),
n[3] = -(s * (c * p - u * d) - h * (a * p - o * d) + f * (a * u - o * c)),
n[4] = -(l * (d * g - p * v) - _ * (c * g - u * v) + m * (c * p - u * d)),
n[5] = r * (d * g - p * v) - _ * (a * g - o * v) + m * (a * p - o * d),
n[6] = -(r * (c * g - u * v) - l * (a * g - o * v) + m * (a * u - o * c)),
n[7] = r * (c * p - u * d) - l * (a * p - o * d) + _ * (a * u - o * c),
n[8] = l * (f * g - p * y) - _ * (h * g - u * y) + m * (h * p - u * f),
n[9] = -(r * (f * g - p * y) - _ * (s * g - o * y) + m * (s * p - o * f)),
n[10] = r * (h * g - u * y) - l * (s * g - o * y) + m * (s * u - o * h),
n[11] = -(r * (h * p - u * f) - l * (s * p - o * f) + _ * (s * u - o * h)),
n[12] = -(l * (f * v - d * y) - _ * (h * v - c * y) + m * (h * d - c * f)),
n[13] = r * (f * v - d * y) - _ * (s * v - a * y) + m * (s * d - a * f),
n[14] = -(r * (h * v - c * y) - l * (s * v - a * y) + m * (s * c - a * h)),
n[15] = r * (h * d - c * f) - l * (s * d - a * f) + _ * (s * c - a * h),
t
}
,
r.toArray = function(t, e, i) {
void 0 === i && (i = 0);
for (var n = e.m, r = 0; r < 16; r++)
t[i + r] = n[r];
return t
}
,
r.fromArray = function(t, e, i) {
void 0 === i && (i = 0);
for (var n = t.m, r = 0; r < 16; r++)
n[r] = e[i + r];
return t
}
,
n.clone = function() {
var t = this.m;
return new r(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])
}
,
n.set = function(t) {
var e = this.m
, i = t.m;
return e[0] = i[0],
e[1] = i[1],
e[2] = i[2],
e[3] = i[3],
e[4] = i[4],
e[5] = i[5],
e[6] = i[6],
e[7] = i[7],
e[8] = i[8],
e[9] = i[9],
e[10] = i[10],
e[11] = i[11],
e[12] = i[12],
e[13] = i[13],
e[14] = i[14],
e[15] = i[15],
this
}
,
n.equals = function(t) {
return r.strictEquals(this, t)
}
,
n.fuzzyEquals = function(t) {
return r.equals(this, t)
}
,
n.toString = function() {
var t = this.m;
return t ? "[\n" + t[0] + ", " + t[1] + ", " + t[2] + ", " + t[3] + ",\n" + t[4] + ", " + t[5] + ", " + t[6] + ", " + t[7] + ",\n" + t[8] + ", " + t[9] + ", " + t[10] + ", " + t[11] + ",\n" + t[12] + ", " + t[13] + ", " + t[14] + ", " + t[15] + "\n]" : "[\n1, 0, 0, 0\n0, 1, 0, 0\n0, 0, 1, 0\n0, 0, 0, 1\n]"
}
,
n.identity = function() {
return r.identity(this)
}
,
n.transpose = function(t) {
return t = t || new r,
r.transpose(t, this)
}
,
n.invert = function(t) {
return t = t || new r,
r.invert(t, this)
}
,
n.adjoint = function(t) {
return t = t || new r,
r.adjoint(t, this)
}
,
n.determinant = function() {
return r.determinant(this)
}
,
n.add = function(t, e) {
return e = e || new r,
r.add(e, this, t)
}
,
n.subtract = function(t) {
return r.subtract(this, this, t)
}
,
n.multiply = function(t) {
return r.multiply(this, this, t)
}
,
n.multiplyScalar = function(t) {
return r.multiplyScalar(this, this, t)
}
,
n.translate = function(t, e) {
return e = e || new r,
r.translate(e, this, t)
}
,
n.scale = function(t, e) {
return e = e || new r,
r.scale(e, this, t)
}
,
n.rotate = function(t, e, i) {
return i = i || new r,
r.rotate(i, this, t, e)
}
,
n.getTranslation = function(t) {
return t = t || new s.default,
r.getTranslation(t, this)
}
,
n.getScale = function(t) {
return t = t || new s.default,
r.getScaling(t, this)
}
,
n.getRotation = function(t) {
return t = t || new a.default,
r.getRotation(t, this)
}
,
n.fromRTS = function(t, e, i) {
return r.fromRTS(this, t, e, i)
}
,
n.fromQuat = function(t) {
return r.fromQuat(this, t)
}
,
r
}
)(n.default);
i.default = E,
E.mul = E.multiply,
E.sub = E.subtract,
E.IDENTITY = Object.freeze(new E);
var M = new s.default
, D = new l.default;
r.default.fastDefine("cc.Mat4", E, {
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
});
for (var B = function(t) {
Object.defineProperty(E.prototype, "m" + t, {
get: function() {
return this.m[t]
},
set: function(e) {
this.m[t] = e
}
})
}, I = 0; I < 16; I++)
B(I);
cc.mat4 = function(t, e, i, n, r, s, a, o, l, h, c, u, _, f, d, p) {
var m = new E(t,e,i,n,r,s,a,o,l,h,c,u,_,f,d,p);
return void 0 === t && E.identity(m),
m
}
,
cc.Mat4 = E,
e.exports = i.default
}
), {
"../platform/CCClass": 193,
"./mat3": 283,
"./quat": 285,
"./utils": 289,
"./value-type": 290,
"./vec3": 292
}],
285: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n = l(t("./value-type"))
, r = l(t("../platform/CCClass"))
, s = l(t("./vec3"))
, a = l(t("./mat3"))
, o = t("./utils");
function l(t) {
return t && t.__esModule ? t : {
default: t
}
}
function h(t, e) {
return (h = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
var c = 0
, u = 0
, _ = 0
, f = 0
, d = (function(t) {
var e, i;
i = t,
(e = r).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
h(e, i);
var n = r.prototype;
function r(e, i, n, r) {
var s;
return void 0 === e && (e = 0),
void 0 === i && (i = 0),
void 0 === n && (n = 0),
void 0 === r && (r = 1),
(s = t.call(this) || this).x = void 0,
s.y = void 0,
s.z = void 0,
s.w = void 0,
e && "object" == typeof e ? (s.x = e.x,
s.y = e.y,
s.z = e.z,
s.w = e.w) : (s.x = e,
s.y = i,
s.z = n,
s.w = r),
s
}
return n.mul = function(t, e) {
return r.multiply(e || new r, this, t)
}
,
r.clone = function(t) {
return new r(t.x,t.y,t.z,t.w)
}
,
r.copy = function(t, e) {
return t.x = e.x,
t.y = e.y,
t.z = e.z,
t.w = e.w,
t
}
,
r.set = function(t, e, i, n, r) {
return t.x = e,
t.y = i,
t.z = n,
t.w = r,
t
}
,
r.identity = function(t) {
return t.x = 0,
t.y = 0,
t.z = 0,
t.w = 1,
t
}
,
r.rotationTo = function(t, e, i) {
var n = s.default.dot(e, i);
return n < -.999999 ? (s.default.cross(y, s.default.RIGHT, e),
y.mag() < 1e-6 && s.default.cross(y, s.default.UP, e),
s.default.normalize(y, y),
r.fromAxisAngle(t, y, Math.PI),
t) : n > .999999 ? (t.x = 0,
t.y = 0,
t.z = 0,
t.w = 1,
t) : (s.default.cross(y, e, i),
t.x = y.x,
t.y = y.y,
t.z = y.z,
t.w = 1 + n,
r.normalize(t, t))
}
,
r.getAxisAngle = function(t, e) {
var i = 2 * Math.acos(e.w)
, n = Math.sin(i / 2);
return 0 !== n ? (t.x = e.x / n,
t.y = e.y / n,
t.z = e.z / n) : (t.x = 1,
t.y = 0,
t.z = 0),
i
}
,
r.multiply = function(t, e, i) {
return c = e.x * i.w + e.w * i.x + e.y * i.z - e.z * i.y,
u = e.y * i.w + e.w * i.y + e.z * i.x - e.x * i.z,
_ = e.z * i.w + e.w * i.z + e.x * i.y - e.y * i.x,
f = e.w * i.w - e.x * i.x - e.y * i.y - e.z * i.z,
t.x = c,
t.y = u,
t.z = _,
t.w = f,
t
}
,
r.multiplyScalar = function(t, e, i) {
return t.x = e.x * i,
t.y = e.y * i,
t.z = e.z * i,
t.w = e.w * i,
t
}
,
r.scaleAndAdd = function(t, e, i, n) {
return 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,
t
}
,
r.rotateX = function(t, e, i) {
i *= .5;
var n = Math.sin(i)
, r = Math.cos(i);
return c = e.x * r + e.w * n,
u = e.y * r + e.z * n,
_ = e.z * r - e.y * n,
f = e.w * r - e.x * n,
t.x = c,
t.y = u,
t.z = _,
t.w = f,
t
}
,
r.rotateY = function(t, e, i) {
i *= .5;
var n = Math.sin(i)
, r = Math.cos(i);
return c = e.x * r - e.z * n,
u = e.y * r + e.w * n,
_ = e.z * r + e.x * n,
f = e.w * r - e.y * n,
t.x = c,
t.y = u,
t.z = _,
t.w = f,
t
}
,
r.rotateZ = function(t, e, i) {
i *= .5;
var n = Math.sin(i)
, r = Math.cos(i);
return c = e.x * r + e.y * n,
u = e.y * r - e.x * n,
_ = e.z * r + e.w * n,
f = e.w * r - e.z * n,
t.x = c,
t.y = u,
t.z = _,
t.w = f,
t
}
,
r.rotateAround = function(t, e, i, n) {
return r.invert(p, e),
s.default.transformQuat(y, i, p),
r.fromAxisAngle(p, y, n),
r.multiply(t, e, p),
t
}
,
r.rotateAroundLocal = function(t, e, i, n) {
return r.fromAxisAngle(p, i, n),
r.multiply(t, e, p),
t
}
,
r.calculateW = function(t, e) {
return t.x = e.x,
t.y = e.y,
t.z = e.z,
t.w = Math.sqrt(Math.abs(1 - e.x * e.x - e.y * e.y - e.z * e.z)),
t
}
,
r.dot = function(t, e) {
return t.x * e.x + t.y * e.y + t.z * e.z + t.w * e.w
}
,
r.lerp = function(t, e, i, n) {
return t.x = e.x + n * (i.x - e.x),
t.y = e.y + n * (i.y - e.y),
t.z = e.z + n * (i.z - e.z),
t.w = e.w + n * (i.w - e.w),
t
}
,
r.slerp = function(t, e, i, n) {
var r = 0
, s = 0
, a = e.x * i.x + e.y * i.y + e.z * i.z + e.w * i.w;
if (a < 0 && (a = -a,
i.x = -i.x,
i.y = -i.y,
i.z = -i.z,
i.w = -i.w),
1 - a > 1e-6) {
var o = Math.acos(a)
, l = Math.sin(o);
r = Math.sin((1 - n) * o) / l,
s = Math.sin(n * o) / l
} else
r = 1 - n,
s = n;
return t.x = r * e.x + s * i.x,
t.y = r * e.y + s * i.y,
t.z = r * e.z + s * i.z,
t.w = r * e.w + s * i.w,
t
}
,
r.sqlerp = function(t, e, i, n, s, a) {
return r.slerp(p, e, s, a),
r.slerp(m, i, n, a),
r.slerp(t, p, m, 2 * a * (1 - a)),
t
}
,
r.invert = function(t, e) {
var i = e.x * e.x + e.y * e.y + e.z * e.z + e.w * e.w
, n = i ? 1 / i : 0;
return t.x = -e.x * n,
t.y = -e.y * n,
t.z = -e.z * n,
t.w = e.w * n,
t
}
,
r.conjugate = function(t, e) {
return t.x = -e.x,
t.y = -e.y,
t.z = -e.z,
t.w = e.w,
t
}
,
r.len = function(t) {
return Math.sqrt(t.x * t.x + t.y * t.y + t.z * t.z + t.w * t.w)
}
,
r.lengthSqr = function(t) {
return t.x * t.x + t.y * t.y + t.z * t.z + t.w * t.w
}
,
r.normalize = function(t, e) {
var i = e.x * e.x + e.y * e.y + e.z * e.z + e.w * e.w;
return i > 0 && (i = 1 / Math.sqrt(i),
t.x = e.x * i,
t.y = e.y * i,
t.z = e.z * i,
t.w = e.w * i),
t
}
,
r.fromAxes = function(t, e, i, n) {
return a.default.set(v, e.x, e.y, e.z, i.x, i.y, i.z, n.x, n.y, n.z),
r.normalize(t, r.fromMat3(t, v))
}
,
r.fromViewUp = function(t, e, i) {
return a.default.fromViewUp(v, e, i),
r.normalize(t, r.fromMat3(t, v))
}
,
r.fromAxisAngle = function(t, e, i) {
i *= .5;
var n = Math.sin(i);
return t.x = n * e.x,
t.y = n * e.y,
t.z = n * e.z,
t.w = Math.cos(i),
t
}
,
r.fromAngleZ = function(t, e) {
return e *= g,
t.x = t.y = 0,
t.z = Math.sin(e),
t.w = Math.cos(e),
t
}
,
r.fromMat3 = function(t, e) {
var i = e.m
, n = i[0]
, r = i[1]
, s = i[2]
, a = i[3]
, o = i[4]
, l = i[5]
, h = i[6]
, c = i[7]
, u = i[8]
, _ = n + o + u;
if (_ > 0) {
var f = .5 / Math.sqrt(_ + 1);
t.w = .25 / f,
t.x = (l - c) * f,
t.y = (h - s) * f,
t.z = (r - a) * f
} else if (n > o && n > u) {
var d = 2 * Math.sqrt(1 + n - o - u);
t.w = (l - c) / d,
t.x = .25 * d,
t.y = (a + r) / d,
t.z = (h + s) / d
} else if (o > u) {
var p = 2 * Math.sqrt(1 + o - n - u);
t.w = (h - s) / p,
t.x = (a + r) / p,
t.y = .25 * p,
t.z = (c + l) / p
} else {
var m = 2 * Math.sqrt(1 + u - n - o);
t.w = (r - a) / m,
t.x = (h + s) / m,
t.y = (c + l) / m,
t.z = .25 * m
}
return t
}
,
r.fromEuler = function(t, e, i, n) {
e *= g,
i *= g,
n *= g;
var r = Math.sin(e)
, s = Math.cos(e)
, a = Math.sin(i)
, o = Math.cos(i)
, l = Math.sin(n)
, h = Math.cos(n);
return t.x = r * o * h + s * a * l,
t.y = s * a * h + r * o * l,
t.z = s * o * l - r * a * h,
t.w = s * o * h - r * a * l,
t
}
,
r.toAxisX = function(t, e) {
var i = 2 * e.y
, n = 2 * e.z;
return t.x = 1 - i * e.y - n * e.z,
t.y = i * e.x + n * e.w,
t.z = n * e.x + i * e.w,
t
}
,
r.toAxisY = function(t, e) {
var i = 2 * e.x
, n = 2 * e.y
, r = 2 * e.z;
return t.x = n * e.x - r * e.w,
t.y = 1 - i * e.x - r * e.z,
t.z = r * e.y + i * e.w,
t
}
,
r.toAxisZ = function(t, e) {
var i = 2 * e.x
, n = 2 * e.y
, r = 2 * e.z;
return t.x = r * e.x - n * e.w,
t.y = r * e.y - i * e.w,
t.z = 1 - i * e.x - n * e.y,
t
}
,
r.toEuler = function(t, e, i) {
var n = e.x
, r = e.y
, s = e.z
, a = e.w
, l = 0
, h = 0
, c = 0
, u = n * r + s * a;
if (u > .499999)
l = 0,
h = (0,
o.toDegree)(2 * Math.atan2(n, a)),
c = 90;
else if (u < -.499999)
l = 0,
h = -(0,
o.toDegree)(2 * Math.atan2(n, a)),
c = -90;
else {
var _ = n * n
, f = r * r
, d = s * s;
l = (0,
o.toDegree)(Math.atan2(2 * n * a - 2 * r * s, 1 - 2 * _ - 2 * d)),
h = (0,
o.toDegree)(Math.atan2(2 * r * a - 2 * n * s, 1 - 2 * f - 2 * d)),
c = (0,
o.toDegree)(Math.asin(2 * u)),
i && (l = -180 * Math.sign(l + 1e-6) + l,
h = -180 * Math.sign(h + 1e-6) + h,
c = 180 * Math.sign(c + 1e-6) - c)
}
return t.x = l,
t.y = h,
t.z = c,
t
}
,
r.strictEquals = function(t, e) {
return t.x === e.x && t.y === e.y && t.z === e.z && t.w === e.w
}
,
r.equals = function(t, e, i) {
return void 0 === i && (i = o.EPSILON),
Math.abs(t.x - e.x) <= i * Math.max(1, Math.abs(t.x), Math.abs(e.x)) && Math.abs(t.y - e.y) <= i * Math.max(1, Math.abs(t.y), Math.abs(e.y)) && Math.abs(t.z - e.z) <= i * Math.max(1, Math.abs(t.z), Math.abs(e.z)) && Math.abs(t.w - e.w) <= i * Math.max(1, Math.abs(t.w), Math.abs(e.w))
}
,
r.toArray = function(t, e, i) {
return void 0 === i && (i = 0),
t[i + 0] = e.x,
t[i + 1] = e.y,
t[i + 2] = e.z,
t[i + 3] = e.w,
t
}
,
r.fromArray = function(t, e, i) {
return void 0 === i && (i = 0),
t.x = e[i + 0],
t.y = e[i + 1],
t.z = e[i + 2],
t.w = e[i + 3],
t
}
,
n.clone = function() {
return new r(this.x,this.y,this.z,this.w)
}
,
n.set = function(t) {
return this.x = t.x,
this.y = t.y,
this.z = t.z,
this.w = t.w,
this
}
,
n.equals = function(t) {
return t && this.x === t.x && this.y === t.y && this.z === t.z && this.w === t.w
}
,
n.toEuler = function(t) {
return r.toEuler(t, this)
}
,
n.fromEuler = function(t) {
return r.fromEuler(this, t.x, t.y, t.z)
}
,
n.lerp = function(t, e, i) {
return i = i || new r,
r.slerp(i, this, t, e),
i
}
,
n.multiply = function(t) {
return r.multiply(this, this, t)
}
,
n.rotateAround = function(t, e, i, n) {
return n = n || new r,
r.rotateAround(n, t, e, i)
}
,
r
}
)(n.default);
i.default = d,
d.mul = d.multiply,
d.scale = d.multiplyScalar,
d.mag = d.len,
d.IDENTITY = Object.freeze(new d);
var p = new d
, m = new d
, y = new s.default
, v = new a.default
, g = .5 * Math.PI / 180;
r.default.fastDefine("cc.Quat", d, {
x: 0,
y: 0,
z: 0,
w: 1
}),
cc.quat = function(t, e, i, n) {
return new d(t,e,i,n)
}
,
cc.Quat = d,
e.exports = i.default
}
), {
"../platform/CCClass": 193,
"./mat3": 283,
"./utils": 289,
"./value-type": 290,
"./vec3": 292
}],
286: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n = o(t("./value-type"))
, r = o(t("../platform/CCClass"))
, s = o(t("./vec2"))
, a = o(t("./size"));
function o(t) {
return t && t.__esModule ? t : {
default: t
}
}
function l(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)
}
}
function h(t, e) {
return (h = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
var c = (function(t) {
var e, i;
function n(e, i, n, r) {
var s;
return void 0 === e && (e = 0),
void 0 === i && (i = 0),
void 0 === n && (n = 0),
void 0 === r && (r = 0),
(s = t.call(this) || this).x = void 0,
s.y = void 0,
s.width = void 0,
s.height = void 0,
e && "object" == typeof e && (i = e.y,
n = e.width,
r = e.height,
e = e.x),
s.x = e || 0,
s.y = i || 0,
s.width = n || 0,
s.height = r || 0,
s
}
i = t,
(e = n).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
h(e, i),
n.fromMinMax = function(t, e) {
var i = Math.min(t.x, e.x)
, r = Math.min(t.y, e.y);
return new n(i,r,Math.max(t.x, e.x) - i,Math.max(t.y, e.y) - r)
}
;
var r, o, c = n.prototype;
return c.clone = function() {
return new n(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 n;
var r = this.x
, s = this.y
, a = this.width
, o = this.height;
return i.x = r + (t.x - r) * e,
i.y = s + (t.y - s) * e,
i.width = a + (t.width - a) * e,
i.height = o + (t.height - o) * e,
i
}
,
c.set = function(t) {
return this.x = t.x,
this.y = t.y,
this.width = t.width,
this.height = t.height,
this
}
,
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
, a = e.x
, o = e.y
, l = e.x + e.width
, h = e.y + e.height;
return t.x = Math.max(i, a),
t.y = Math.max(n, o),
t.width = Math.min(r, l) - t.x,
t.height = Math.min(s, h) - t.y,
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
, a = e.x
, o = e.y
, l = e.width
, h = e.height;
return t.x = Math.min(i, a),
t.y = Math.min(n, o),
t.width = Math.max(i + r, a + l) - t.x,
t.height = Math.max(n + s, o + h) - t.y,
t
}
,
c.transformMat4 = function(t, e) {
var i = this.x
, n = this.y
, r = i + this.width
, s = n + this.height
, a = e.m
, o = a[0] * i + a[4] * n + a[12]
, l = a[1] * i + a[5] * n + a[13]
, h = a[0] * r + a[4] * n + a[12]
, c = a[1] * r + a[5] * n + a[13]
, u = a[0] * i + a[4] * s + a[12]
, _ = a[1] * i + a[5] * s + a[13]
, f = a[0] * r + a[4] * s + a[12]
, d = a[1] * r + a[5] * s + a[13]
, p = Math.min(o, h, u, f)
, m = Math.max(o, h, u, f)
, y = Math.min(l, c, _, d)
, v = Math.max(l, c, _, d);
return t.x = p,
t.y = y,
t.width = m - p,
t.height = v - y,
t
}
,
c.toString = function() {
return "(" + this.x.toFixed(2) + ", " + this.y.toFixed(2) + ", " + this.width.toFixed(2) + ", " + this.height.toFixed(2) + ")"
}
,
r = n,
(o = [{
key: "xMin",
get: function() {
return this.x
},
set: function(t) {
this.width += this.x - t,
this.x = t
}
}, {
key: "yMin",
get: function() {
return this.y
},
set: function(t) {
this.height += this.y - t,
this.y = t
}
}, {
key: "xMax",
get: function() {
return this.x + this.width
},
set: function(t) {
this.width = t - this.x
}
}, {
key: "yMax",
get: function() {
return this.y + this.height
},
set: function(t) {
this.height = t - this.y
}
}, {
key: "center",
get: function() {
return new s.default(this.x + .5 * this.width,this.y + .5 * this.height)
},
set: function(t) {
this.x = t.x - .5 * this.width,
this.y = t.y - .5 * this.height
}
}, {
key: "origin",
get: function() {
return new s.default(this.x,this.y)
},
set: function(t) {
this.x = t.x,
this.y = t.y
}
}, {
key: "size",
get: function() {
return new a.default(this.width,this.height)
},
set: function(t) {
this.width = t.width,
this.height = t.height
}
}]) && l(r.prototype, o),
n
}
)(n.default);
i.default = c,
r.default.fastDefine("cc.Rect", c, {
x: 0,
y: 0,
width: 0,
height: 0
}),
cc.Rect = c,
cc.rect = function(t, e, i, n) {
return new c(t,e,i,n)
}
,
e.exports = i.default
}
), {
"../platform/CCClass": 193,
"./size": 287,
"./value-type": 290,
"./vec2": 291
}],
287: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n = s(t("./value-type"))
, r = s(t("../platform/CCClass"));
function s(t) {
return t && t.__esModule ? t : {
default: t
}
}
function a(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)
}
}
function o(t, e) {
return (o = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
var l = (function(t) {
var e, i;
function n(e, i) {
var n;
return void 0 === e && (e = 0),
void 0 === i && (i = 0),
(n = t.call(this) || this).width = void 0,
n.height = void 0,
e && "object" == typeof e ? (n.width = e.width,
n.height = e.height) : (n.width = e || 0,
n.height = i || 0),
n
}
i = t,
(e = n).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
o(e, i);
var r, s, l = n.prototype;
return l.clone = function() {
return new n(this.width,this.height)
}
,
l.equals = function(t) {
return t && this.width === t.width && this.height === t.height
}
,
l.lerp = function(t, e, i) {
i = i || new n;
var r = this.width
, s = this.height;
return i.width = r + (t.width - r) * e,
i.height = s + (t.height - s) * e,
i
}
,
l.set = function(t) {
return this.width = t.width,
this.height = t.height,
this
}
,
l.toString = function() {
return "(" + this.width.toFixed(2) + ", " + this.height.toFixed(2) + ")"
}
,
r = n,
s = [{
key: "ZERO",
get: function() {
return new n
}
}],
null && a(r.prototype, null),
s && a(r, s),
n
}
)(n.default);
i.default = l,
l.ZERO_R = l.ZERO,
r.default.fastDefine("cc.Size", l, {
width: 0,
height: 0
}),
cc.size = function(t, e) {
return new l(t,e)
}
,
cc.Size = l,
e.exports = i.default
}
), {
"../platform/CCClass": 193,
"./value-type": 290
}],
288: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r = (n = t("./quat")) && n.__esModule ? n : {
default: n
}, s = new r.default, a = (function() {
function t() {}
return t.toRotation = function(t, e) {
return t.x = e[3],
t.y = e[4],
t.z = e[5],
t.w = e[6],
t
}
,
t.fromRotation = function(t, e) {
return t[3] = e.x,
t[4] = e.y,
t[5] = e.z,
t[6] = e.w,
t
}
,
t.toEuler = function(e, i) {
return t.toRotation(s, i),
r.default.toEuler(e, s),
e
}
,
t.fromEuler = function(e, i) {
return r.default.fromEuler(s, i.x, i.y, i.z),
t.fromRotation(e, s),
e
}
,
t.fromEulerNumber = function(e, i, n, a) {
return r.default.fromEuler(s, i, n, a),
t.fromRotation(e, s),
e
}
,
t.toScale = function(t, e) {
return t.x = e[7],
t.y = e[8],
t.z = e[9],
t
}
,
t.fromScale = function(t, e) {
return t[7] = e.x,
t[8] = e.y,
t[9] = e.z,
t
}
,
t.toPosition = function(t, e) {
return t.x = e[0],
t.y = e[1],
t.z = e[2],
t
}
,
t.fromPosition = function(t, e) {
return t[0] = e.x,
t[1] = e.y,
t[2] = e.z,
t
}
,
t.fromAngleZ = function(e, i) {
return r.default.fromAngleZ(s, i),
t.fromRotation(e, s),
e
}
,
t.toMat4 = function(t, e) {
var i = e[3]
, n = e[4]
, r = e[5]
, s = e[6]
, a = i + i
, o = n + n
, l = r + r
, h = i * a
, c = i * o
, u = i * l
, _ = n * o
, f = n * l
, d = r * l
, p = s * a
, m = s * o
, y = s * l
, v = e[7]
, g = e[8]
, A = e[9]
, x = t.m;
return x[0] = (1 - (_ + d)) * v,
x[1] = (c + y) * v,
x[2] = (u - m) * v,
x[3] = 0,
x[4] = (c - y) * g,
x[5] = (1 - (h + d)) * g,
x[6] = (f + p) * g,
x[7] = 0,
x[8] = (u + m) * A,
x[9] = (f - p) * A,
x[10] = (1 - (h + _)) * A,
x[11] = 0,
x[12] = e[0],
x[13] = e[1],
x[14] = e[2],
x[15] = 1,
t
}
,
t
}
)();
i.default = a,
cc.Trs = a,
e.exports = i.default
}
), {
"./quat": 285
}],
289: [(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) {
return i = i || s,
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 = l,
i.randomRangeInt = function(t, e) {
return Math.floor(l(t, e))
}
,
i.pseudoRandom = h,
i.pseudoRandomRange = c,
i.pseudoRandomRangeInt = function(t, e, i) {
return Math.floor(c(t, e, i))
}
,
i.nextPow2 = function(t) {
return --t,
t |= t >> 1,
t |= t >> 2,
t |= t >> 4,
t |= t >> 8,
t |= t >> 16,
++t
}
,
i.repeat = u,
i.pingPong = function(t, e) {
return t = u(t, 2 * e),
e - Math.abs(t - e)
}
,
i.inverseLerp = function(t, e, i) {
return (i - t) / (e - t)
}
,
i.sign = function(t) {
return (t > 0) - (t < 0)
}
,
i.random = i.FLOAT_BYTES = i.FLOAT_ARRAY_TYPE = i.INT_MIN = i.INT_MAX = i.INT_BITS = i.EPSILON = void 0;
var n = Math.PI / 180
, r = 180 / Math.PI
, s = 1e-6;
i.EPSILON = s,
i.INT_BITS = 32,
i.INT_MAX = 2147483647,
i.INT_MIN = -1 << 31;
var a = Float64Array;
i.FLOAT_ARRAY_TYPE = a,
i.FLOAT_BYTES = 8;
var o = Math.random;
function l(t, e) {
return Math.random() * (e - t) + t
}
function h(t) {
return (t = (9301 * t + 49297) % 233280) / 233280
}
function c(t, e, i) {
return h(t) * (i - e) + e
}
function u(t, e) {
return t - Math.floor(t / e) * e
}
i.random = o
}
), {}],
290: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r = (n = t("../platform/js")) && n.__esModule ? n : {
default: n
}, s = (function() {
function t() {}
var e = t.prototype;
return e.clone = function() {
return cc.errorID("0100", r.default.getClassName(this) + ".clone"),
null
}
,
e.equals = function() {
return cc.errorID("0100", r.default.getClassName(this) + ".equals"),
!1
}
,
e.lerp = function() {
return cc.errorID("0100", r.default.getClassName(this) + ".lerp"),
this.clone()
}
,
e.set = function() {
cc.errorID("0100", r.default.getClassName(this) + ".set")
}
,
e.toString = function() {
return "" + {}
}
,
t
}
)();
i.default = s,
r.default.setClassName("cc.ValueType", s),
cc.ValueType = s,
e.exports = i.default
}
), {
"../platform/js": 214
}],
291: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n = o(t("./value-type"))
, r = o(t("../platform/CCClass"))
, s = o(t("../utils/misc"))
, a = t("./utils");
function o(t) {
return t && t.__esModule ? t : {
default: t
}
}
function l(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)
}
}
function h(t, e) {
return (h = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
var c = 0
, u = 0
, _ = (function(t) {
var e, i;
i = t,
(e = _).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
h(e, i);
var n, r, o = _.prototype;
function _(e, i) {
var n;
return void 0 === e && (e = 0),
void 0 === i && (i = 0),
(n = t.call(this) || this).mag = _.prototype.len,
n.magSqr = _.prototype.lengthSqr,
n.subSelf = _.prototype.subtract,
n.mulSelf = _.prototype.multiplyScalar,
n.divSelf = _.prototype.divide,
n.scaleSelf = _.prototype.multiply,
n.negSelf = _.prototype.negate,
n.x = void 0,
n.y = void 0,
n.z = 0,
e && "object" == typeof e ? (n.x = e.x || 0,
n.y = e.y || 0) : (n.x = e || 0,
n.y = i || 0),
n
}
return o.sub = function(t, e) {
return _.subtract(e || new _, this, t)
}
,
o.mul = function(t, e) {
return _.multiplyScalar(e || new _, this, t)
}
,
o.div = function(t, e) {
return _.multiplyScalar(e || new _, this, 1 / t)
}
,
o.scale = function(t, e) {
return _.multiply(e || new _, this, t)
}
,
o.neg = function(t) {
return _.negate(t || new _, this)
}
,
_.clone = function(t) {
return new _(t.x,t.y)
}
,
_.copy = function(t, e) {
return t.x = e.x,
t.y = e.y,
t
}
,
_.set = function(t, e, i) {
return t.x = e,
t.y = i,
t
}
,
_.add = function(t, e, i) {
return t.x = e.x + i.x,
t.y = e.y + i.y,
t
}
,
_.subtract = function(t, e, i) {
return t.x = e.x - i.x,
t.y = e.y - i.y,
t
}
,
_.multiply = function(t, e, i) {
return t.x = e.x * i.x,
t.y = e.y * i.y,
t
}
,
_.divide = function(t, e, i) {
return t.x = e.x / i.x,
t.y = e.y / i.y,
t
}
,
_.ceil = function(t, e) {
return t.x = Math.ceil(e.x),
t.y = Math.ceil(e.y),
t
}
,
_.floor = function(t, e) {
return t.x = Math.floor(e.x),
t.y = Math.floor(e.y),
t
}
,
_.min = function(t, e, i) {
return t.x = Math.min(e.x, i.x),
t.y = Math.min(e.y, i.y),
t
}
,
_.max = function(t, e, i) {
return t.x = Math.max(e.x, i.x),
t.y = Math.max(e.y, i.y),
t
}
,
_.round = function(t, e) {
return t.x = Math.round(e.x),
t.y = Math.round(e.y),
t
}
,
_.multiplyScalar = function(t, e, i) {
return t.x = e.x * i,
t.y = e.y * i,
t
}
,
_.scaleAndAdd = function(t, e, i, n) {
return t.x = e.x + i.x * n,
t.y = e.y + i.y * n,
t
}
,
_.distance = function(t, e) {
return c = e.x - t.x,
u = e.y - t.y,
Math.sqrt(c * c + u * u)
}
,
_.squaredDistance = function(t, e) {
return c = e.x - t.x,
u = e.y - t.y,
c * c + u * u
}
,
_.len = function(t) {
return c = t.x,
u = t.y,
Math.sqrt(c * c + u * u)
}
,
_.lengthSqr = function(t) {
return c = t.x,
u = t.y,
c * c + u * u
}
,
_.negate = function(t, e) {
return t.x = -e.x,
t.y = -e.y,
t
}
,
_.inverse = function(t, e) {
return t.x = 1 / e.x,
t.y = 1 / e.y,
t
}
,
_.inverseSafe = function(t, e) {
return c = e.x,
u = e.y,
Math.abs(c) < a.EPSILON ? t.x = 0 : t.x = 1 / c,
Math.abs(u) < a.EPSILON ? t.y = 0 : t.y = 1 / u,
t
}
,
_.normalize = function(t, e) {
c = e.x,
u = e.y;
var i = c * c + u * u;
return i > 0 && (i = 1 / Math.sqrt(i),
t.x = c * i,
t.y = u * i),
t
}
,
_.dot = function(t, e) {
return t.x * e.x + t.y * e.y
}
,
_.cross = function(t, e, i) {
return t.x = t.y = 0,
t.z = e.x * i.y - e.y * i.x,
t
}
,
_.lerp = function(t, e, i, n) {
return c = e.x,
u = e.y,
t.x = c + n * (i.x - c),
t.y = u + n * (i.y - u),
t
}
,
_.random = function(t, e) {
e = e || 1;
var i = 2 * (0,
a.random)() * Math.PI;
return t.x = Math.cos(i) * e,
t.y = Math.sin(i) * e,
t
}
,
_.transformMat3 = function(t, e, i) {
c = e.x,
u = e.y;
var n = i.m;
return t.x = n[0] * c + n[3] * u + n[6],
t.y = n[1] * c + n[4] * u + n[7],
t
}
,
_.transformMat4 = function(t, e, i) {
c = e.x,
u = e.y;
var n = i.m;
return t.x = n[0] * c + n[4] * u + n[12],
t.y = n[1] * c + n[5] * u + n[13],
t
}
,
_.strictEquals = function(t, e) {
return t.x === e.x && t.y === e.y
}
,
_.equals = function(t, e, i) {
return void 0 === i && (i = a.EPSILON),
Math.abs(t.x - e.x) <= i * Math.max(1, Math.abs(t.x), Math.abs(e.x)) && Math.abs(t.y - e.y) <= i * Math.max(1, Math.abs(t.y), Math.abs(e.y))
}
,
_.angle = function(t, e) {
_.normalize(f, t),
_.normalize(d, e);
var i = _.dot(f, d);
return i > 1 ? 0 : i < -1 ? Math.PI : Math.acos(i)
}
,
_.toArray = function(t, e, i) {
return void 0 === i && (i = 0),
t[i + 0] = e.x,
t[i + 1] = e.y,
t
}
,
_.fromArray = function(t, e, i) {
return void 0 === i && (i = 0),
t.x = e[i + 0],
t.y = e[i + 1],
t
}
,
o.clone = function() {
return new _(this.x,this.y)
}
,
o.set = function(t) {
return this.x = t.x,
this.y = t.y,
this
}
,
o.equals = function(t) {
return t && this.x === t.x && this.y === t.y
}
,
o.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
}
,
o.toString = function() {
return "(" + this.x.toFixed(2) + ", " + this.y.toFixed(2) + ")"
}
,
o.lerp = function(t, e, i) {
i = i || new _;
var n = this.x
, r = this.y;
return i.x = n + (t.x - n) * e,
i.y = r + (t.y - r) * e,
i
}
,
o.clampf = function(t, e) {
return this.x = s.default.clampf(this.x, t.x, e.x),
this.y = s.default.clampf(this.y, t.y, e.y),
this
}
,
o.add = function(t, e) {
return (e = e || new _).x = this.x + t.x,
e.y = this.y + t.y,
e
}
,
o.addSelf = function(t) {
return this.x += t.x,
this.y += t.y,
this
}
,
o.subtract = function(t) {
return this.x -= t.x,
this.y -= t.y,
this
}
,
o.multiplyScalar = function(t) {
return this.x *= t,
this.y *= t,
this
}
,
o.multiply = function(t) {
return this.x *= t.x,
this.y *= t.y,
this
}
,
o.divide = function(t) {
return this.x /= t,
this.y /= t,
this
}
,
o.negate = function() {
return this.x = -this.x,
this.y = -this.y,
this
}
,
o.dot = function(t) {
return this.x * t.x + this.y * t.y
}
,
o.cross = function(t) {
return this.x * t.y - this.y * t.x
}
,
o.len = function() {
return Math.sqrt(this.x * this.x + this.y * this.y)
}
,
o.lengthSqr = function() {
return this.x * this.x + this.y * this.y
}
,
o.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);
return this.x *= e,
this.y *= e,
this
}
,
o.normalize = function(t) {
return (t = t || new _).x = this.x,
t.y = this.y,
t.normalizeSelf(),
t
}
,
o.angle = function(t) {
var e = this.magSqr()
, i = t.magSqr();
if (0 === e || 0 === i)
return console.warn("Can't get angle between zero vector"),
0;
var n = this.dot(t) / Math.sqrt(e * i);
return n = s.default.clampf(n, -1, 1),
Math.acos(n)
}
,
o.signAngle = function(t) {
var e = this.angle(t);
return this.cross(t) < 0 ? -e : e
}
,
o.rotate = function(t, e) {
return (e = e || new _).x = this.x,
e.y = this.y,
e.rotateSelf(t)
}
,
o.rotateSelf = function(t) {
var e = Math.sin(t)
, i = Math.cos(t)
, n = this.x;
return this.x = i * n - e * this.y,
this.y = e * n + i * this.y,
this
}
,
o.project = function(t) {
return t.multiplyScalar(this.dot(t) / t.dot(t))
}
,
o.transformMat4 = function(t, e) {
return e = e || new _,
_.transformMat4(e, this, t),
e
}
,
o.maxAxis = function() {
return Math.max(this.x, this.y)
}
,
n = _,
r = [{
key: "ONE",
get: function() {
return new _(1,1)
}
}, {
key: "ZERO",
get: function() {
return new _(0,0)
}
}, {
key: "UP",
get: function() {
return new _(0,1)
}
}, {
key: "RIGHT",
get: function() {
return new _(1,0)
}
}],
null && l(n.prototype, null),
r && l(n, r),
_
}
)(n.default);
i.default = _,
_.sub = _.subtract,
_.mul = _.multiply,
_.scale = _.multiplyScalar,
_.mag = _.len,
_.squaredMagnitude = _.lengthSqr,
_.div = _.divide,
_.ONE_R = _.ONE,
_.ZERO_R = _.ZERO,
_.UP_R = _.UP,
_.RIGHT_R = _.RIGHT;
var f = new _
, d = new _;
r.default.fastDefine("cc.Vec2", _, {
x: 0,
y: 0
}),
cc.v2 = function(t, e) {
return new _(t,e)
}
,
cc.Vec2 = _,
e.exports = i.default
}
), {
"../platform/CCClass": 193,
"../utils/misc": 267,
"./utils": 289,
"./value-type": 290
}],
292: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n = l(t("./value-type"))
, r = l(t("../platform/CCClass"))
, s = l(t("../utils/misc"))
, a = l(t("./vec2"))
, o = t("./utils");
function l(t) {
return t && t.__esModule ? t : {
default: t
}
}
function h(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)
}
}
function c(t, e) {
return (c = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
var u = 0
, _ = 0
, f = 0
, d = (function(t) {
var e, i;
i = t,
(e = d).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
c(e, i);
var n, r, l = d.prototype;
function d(e, i, n) {
var r;
return void 0 === e && (e = 0),
void 0 === i && (i = 0),
void 0 === n && (n = 0),
(r = t.call(this) || this).mag = d.prototype.len,
r.magSqr = d.prototype.lengthSqr,
r.subSelf = d.prototype.subtract,
r.mulSelf = d.prototype.multiplyScalar,
r.divSelf = d.prototype.divide,
r.scaleSelf = d.prototype.multiply,
r.negSelf = d.prototype.negate,
r.x = void 0,
r.y = void 0,
r.z = void 0,
r.angle = a.default.prototype.angle,
r.project = a.default.prototype.project,
e && "object" == typeof e ? (r.x = e.x,
r.y = e.y,
r.z = e.z) : (r.x = e,
r.y = i,
r.z = n),
r
}
return l.sub = function(t, e) {
return d.subtract(e || new d, this, t)
}
,
l.mul = function(t, e) {
return d.multiplyScalar(e || new d, this, t)
}
,
l.div = function(t, e) {
return d.multiplyScalar(e || new d, this, 1 / t)
}
,
l.scale = function(t, e) {
return d.multiply(e || new d, this, t)
}
,
l.neg = function(t) {
return d.negate(t || new d, this)
}
,
d.zero = function(t) {
return t.x = 0,
t.y = 0,
t.z = 0,
t
}
,
d.clone = function(t) {
return new d(t.x,t.y,t.z)
}
,
d.copy = function(t, e) {
return t.x = e.x,
t.y = e.y,
t.z = e.z,
t
}
,
d.set = function(t, e, i, n) {
return t.x = e,
t.y = i,
t.z = n,
t
}
,
d.add = function(t, e, i) {
return t.x = e.x + i.x,
t.y = e.y + i.y,
t.z = e.z + i.z,
t
}
,
d.subtract = function(t, e, i) {
return t.x = e.x - i.x,
t.y = e.y - i.y,
t.z = e.z - i.z,
t
}
,
d.multiply = function(t, e, i) {
return t.x = e.x * i.x,
t.y = e.y * i.y,
t.z = e.z * i.z,
t
}
,
d.divide = function(t, e, i) {
return t.x = e.x / i.x,
t.y = e.y / i.y,
t.z = e.z / i.z,
t
}
,
d.ceil = function(t, e) {
return t.x = Math.ceil(e.x),
t.y = Math.ceil(e.y),
t.z = Math.ceil(e.z),
t
}
,
d.floor = function(t, e) {
return t.x = Math.floor(e.x),
t.y = Math.floor(e.y),
t.z = Math.floor(e.z),
t
}
,
d.min = function(t, e, i) {
return 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
}
,
d.max = function(t, e, i) {
return 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
}
,
d.round = function(t, e) {
return t.x = Math.round(e.x),
t.y = Math.round(e.y),
t.z = Math.round(e.z),
t
}
,
d.multiplyScalar = function(t, e, i) {
return t.x = e.x * i,
t.y = e.y * i,
t.z = e.z * i,
t
}
,
d.scaleAndAdd = function(t, e, i, n) {
return t.x = e.x + i.x * n,
t.y = e.y + i.y * n,
t.z = e.z + i.z * n,
t
}
,
d.distance = function(t, e) {
return u = e.x - t.x,
_ = e.y - t.y,
f = e.z - t.z,
Math.sqrt(u * u + _ * _ + f * f)
}
,
d.squaredDistance = function(t, e) {
return u = e.x - t.x,
_ = e.y - t.y,
f = e.z - t.z,
u * u + _ * _ + f * f
}
,
d.len = function(t) {
return u = t.x,
_ = t.y,
f = t.z,
Math.sqrt(u * u + _ * _ + f * f)
}
,
d.lengthSqr = function(t) {
return u = t.x,
_ = t.y,
f = t.z,
u * u + _ * _ + f * f
}
,
d.negate = function(t, e) {
return t.x = -e.x,
t.y = -e.y,
t.z = -e.z,
t
}
,
d.inverse = function(t, e) {
return t.x = 1 / e.x,
t.y = 1 / e.y,
t.z = 1 / e.z,
t
}
,
d.inverseSafe = function(t, e) {
return u = e.x,
_ = e.y,
f = e.z,
Math.abs(u) < o.EPSILON ? t.x = 0 : t.x = 1 / u,
Math.abs(_) < o.EPSILON ? t.y = 0 : t.y = 1 / _,
Math.abs(f) < o.EPSILON ? t.z = 0 : t.z = 1 / f,
t
}
,
d.normalize = function(t, e) {
u = e.x,
_ = e.y,
f = e.z;
var i = u * u + _ * _ + f * f;
return i > 0 && (i = 1 / Math.sqrt(i),
t.x = u * i,
t.y = _ * i,
t.z = f * i),
t
}
,
d.dot = function(t, e) {
return t.x * e.x + t.y * e.y + t.z * e.z
}
,
d.cross = function(t, e, i) {
var n = e.x
, r = e.y
, s = e.z
, a = i.x
, o = i.y
, l = i.z;
return t.x = r * l - s * o,
t.y = s * a - n * l,
t.z = n * o - r * a,
t
}
,
d.lerp = function(t, e, i, n) {
return t.x = e.x + n * (i.x - e.x),
t.y = e.y + n * (i.y - e.y),
t.z = e.z + n * (i.z - e.z),
t
}
,
d.random = function(t, e) {
e = e || 1;
var i = 2 * (0,
o.random)() * Math.PI
, n = 2 * (0,
o.random)() - 1
, r = Math.sqrt(1 - n * n);
return t.x = r * Math.cos(i) * e,
t.y = r * Math.sin(i) * e,
t.z = n * e,
t
}
,
d.transformMat4 = function(t, e, i) {
u = e.x,
_ = e.y,
f = e.z;
var n = i.m
, r = n[3] * u + n[7] * _ + n[11] * f + n[15];
return r = r ? 1 / r : 1,
t.x = (n[0] * u + n[4] * _ + n[8] * f + n[12]) * r,
t.y = (n[1] * u + n[5] * _ + n[9] * f + n[13]) * r,
t.z = (n[2] * u + n[6] * _ + n[10] * f + n[14]) * r,
t
}
,
d.transformMat4Normal = function(t, e, i) {
u = e.x,
_ = e.y,
f = e.z;
var n = i.m
, r = n[3] * u + n[7] * _ + n[11] * f;
return r = r ? 1 / r : 1,
t.x = (n[0] * u + n[4] * _ + n[8] * f) * r,
t.y = (n[1] * u + n[5] * _ + n[9] * f) * r,
t.z = (n[2] * u + n[6] * _ + n[10] * f) * r,
t
}
,
d.transformMat3 = function(t, e, i) {
u = e.x,
_ = e.y,
f = e.z;
var n = i.m;
return t.x = u * n[0] + _ * n[3] + f * n[6],
t.y = u * n[1] + _ * n[4] + f * n[7],
t.z = u * n[2] + _ * n[5] + f * n[8],
t
}
,
d.transformAffine = function(t, e, i) {
u = e.x,
_ = e.y,
f = e.z;
var n = i.m;
return t.x = n[0] * u + n[1] * _ + n[2] * f + n[3],
t.y = n[4] * u + n[5] * _ + n[6] * f + n[7],
t.x = n[8] * u + n[9] * _ + n[10] * f + n[11],
t
}
,
d.transformQuat = function(t, e, i) {
var n = i.w * e.x + i.y * e.z - i.z * e.y
, r = i.w * e.y + i.z * e.x - i.x * e.z
, s = i.w * e.z + i.x * e.y - i.y * e.x
, a = -i.x * e.x - i.y * e.y - i.z * e.z;
return t.x = n * i.w + a * -i.x + r * -i.z - s * -i.y,
t.y = r * i.w + a * -i.y + s * -i.x - n * -i.z,
t.z = s * i.w + a * -i.z + n * -i.y - r * -i.x,
t
}
,
d.transformRTS = function(t, e, i, n, r) {
var s = e.x * r.x
, a = e.y * r.y
, o = e.z * r.z
, l = i.w * s + i.y * o - i.z * a
, h = i.w * a + i.z * s - i.x * o
, c = i.w * o + i.x * a - i.y * s
, u = -i.x * s - i.y * a - i.z * o;
return t.x = l * i.w + u * -i.x + h * -i.z - c * -i.y + n.x,
t.y = h * i.w + u * -i.y + c * -i.x - l * -i.z + n.y,
t.z = c * i.w + u * -i.z + l * -i.y - h * -i.x + n.z,
t
}
,
d.transformInverseRTS = function(t, e, i, n, r) {
var s = e.x - n.x
, a = e.y - n.y
, o = e.z - n.z
, l = i.w * s - i.y * o + i.z * a
, h = i.w * a - i.z * s + i.x * o
, c = i.w * o - i.x * a + i.y * s
, u = i.x * s + i.y * a + i.z * o;
return t.x = (l * i.w + u * i.x + h * i.z - c * i.y) / r.x,
t.y = (h * i.w + u * i.y + c * i.x - l * i.z) / r.y,
t.z = (c * i.w + u * i.z + l * i.y - h * i.x) / r.z,
t
}
,
d.rotateX = function(t, e, i, n) {
u = e.x - i.x,
_ = e.y - i.y,
f = e.z - i.z;
var r = Math.cos(n)
, s = Math.sin(n)
, a = u
, o = _ * r - f * s
, l = _ * s + f * r;
return t.x = a + i.x,
t.y = o + i.y,
t.z = l + i.z,
t
}
,
d.rotateY = function(t, e, i, n) {
u = e.x - i.x,
_ = e.y - i.y,
f = e.z - i.z;
var r = Math.cos(n)
, s = Math.sin(n)
, a = f * s + u * r
, o = _
, l = f * r - u * s;
return t.x = a + i.x,
t.y = o + i.y,
t.z = l + i.z,
t
}
,
d.rotateZ = function(t, e, i, n) {
u = e.x - i.x,
_ = e.y - i.y,
f = e.z - i.z;
var r = Math.cos(n)
, s = Math.sin(n)
, a = u * r - _ * s
, o = u * s + _ * r
, l = f;
return t.x = a + i.x,
t.y = o + i.y,
t.z = l + i.z,
t
}
,
d.strictEquals = function(t, e) {
return t.x === e.x && t.y === e.y && t.z === e.z
}
,
d.equals = function(t, e, i) {
void 0 === i && (i = o.EPSILON);
var n = t.x
, r = t.y
, s = t.z
, a = e.x
, l = e.y
, h = e.z;
return Math.abs(n - a) <= i * Math.max(1, Math.abs(n), Math.abs(a)) && Math.abs(r - l) <= i * Math.max(1, Math.abs(r), Math.abs(l)) && Math.abs(s - h) <= i * Math.max(1, Math.abs(s), Math.abs(h))
}
,
d.angle = function(t, e) {
d.normalize(p, t),
d.normalize(m, e);
var i = d.dot(p, m);
return i > 1 ? 0 : i < -1 ? Math.PI : Math.acos(i)
}
,
d.projectOnPlane = function(t, e, i) {
return d.subtract(t, e, d.project(t, e, i))
}
,
d.project = function(t, e, i) {
var n = d.lengthSqr(i);
return n < 1e-6 ? d.set(t, 0, 0, 0) : d.multiplyScalar(t, i, d.dot(e, i) / n)
}
,
d.toArray = function(t, e, i) {
return void 0 === i && (i = 0),
t[i + 0] = e.x,
t[i + 1] = e.y,
t[i + 2] = e.z,
t
}
,
d.fromArray = function(t, e, i) {
return void 0 === i && (i = 0),
t.x = e[i + 0],
t.y = e[i + 1],
t.z = e[i + 2],
t
}
,
l.clone = function() {
return new d(this.x,this.y,this.z)
}
,
l.set = function(t) {
return this.x = t.x,
this.y = t.y,
this.z = t.z,
this
}
,
l.equals = function(t) {
return t && this.x === t.x && this.y === t.y && this.z === t.z
}
,
l.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
}
,
l.toString = function() {
return "(" + this.x.toFixed(2) + ", " + this.y.toFixed(2) + ", " + this.z.toFixed(2) + ")"
}
,
l.lerp = function(t, e, i) {
return i = i || new d,
d.lerp(i, this, t, e),
i
}
,
l.clampf = function(t, e) {
return this.x = s.default.clampf(this.x, t.x, e.x),
this.y = s.default.clampf(this.y, t.y, e.y),
this.z = s.default.clampf(this.z, t.z, e.z),
this
}
,
l.addSelf = function(t) {
return this.x += t.x,
this.y += t.y,
this.z += t.z,
this
}
,
l.add = function(t, e) {
return (e = e || new d).x = this.x + t.x,
e.y = this.y + t.y,
e.z = this.z + t.z,
e
}
,
l.subtract = function(t) {
return this.x -= t.x,
this.y -= t.y,
this.z -= t.z,
this
}
,
l.multiplyScalar = function(t) {
return this.x *= t,
this.y *= t,
this.z *= t,
this
}
,
l.multiply = function(t) {
return this.x *= t.x,
this.y *= t.y,
this.z *= t.z,
this
}
,
l.divide = function(t) {
return this.x /= t,
this.y /= t,
this.z /= t,
this
}
,
l.negate = function() {
return this.x = -this.x,
this.y = -this.y,
this.z = -this.z,
this
}
,
l.dot = function(t) {
return this.x * t.x + this.y * t.y + this.z * t.z
}
,
l.cross = function(t, e) {
return e = e || new d,
d.cross(e, this, t),
e
}
,
l.len = function() {
return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z)
}
,
l.lengthSqr = function() {
return this.x * this.x + this.y * this.y + this.z * this.z
}
,
l.normalizeSelf = function() {
return d.normalize(this, this),
this
}
,
l.normalize = function(t) {
return t = t || new d,
d.normalize(t, this),
t
}
,
l.transformMat4 = function(t, e) {
return e = e || new d,
d.transformMat4(e, this, t),
e
}
,
l.maxAxis = function() {
return Math.max(this.x, this.y, this.z)
}
,
l.signAngle = function(t) {
cc.warnID(1408, "vec3.signAngle", "v2.1", "cc.v2(selfVector).signAngle(vector)");
var e = new a.default(this.x,this.y)
, i = new a.default(t.x,t.y);
return e.signAngle(i)
}
,
l.rotate = function(t, e) {
return cc.warnID(1408, "vec3.rotate", "v2.1", "cc.v2(selfVector).rotate(radians, out)"),
a.default.prototype.rotate.call(this, t, e)
}
,
l.rotateSelf = function(t) {
return cc.warnID(1408, "vec3.rotateSelf", "v2.1", "cc.v2(selfVector).rotateSelf(radians)"),
a.default.prototype.rotateSelf.call(this, t)
}
,
n = d,
r = [{
key: "ONE",
get: function() {
return new d(1,1,1)
}
}, {
key: "ZERO",
get: function() {
return new d
}
}, {
key: "UP",
get: function() {
return new d(0,1,0)
}
}, {
key: "RIGHT",
get: function() {
return new d(1,0,0)
}
}, {
key: "FORWARD",
get: function() {
return new d(0,0,1)
}
}],
null && h(n.prototype, null),
r && h(n, r),
d
}
)(n.default);
i.default = d,
d.sub = d.subtract,
d.mul = d.multiply,
d.scale = d.multiplyScalar,
d.mag = d.len,
d.squaredMagnitude = d.lengthSqr,
d.div = d.divide,
d.ONE_R = d.ONE,
d.ZERO_R = d.ZERO,
d.UP_R = d.UP,
d.RIGHT_R = d.RIGHT,
d.FRONT_R = d.FORWARD;
var p = new d
, m = new d;
r.default.fastDefine("cc.Vec3", d, {
x: 0,
y: 0,
z: 0
}),
cc.v3 = function(t, e, i) {
return new d(t,e,i)
}
,
cc.Vec3 = d,
e.exports = i.default
}
), {
"../platform/CCClass": 193,
"../utils/misc": 267,
"./utils": 289,
"./value-type": 290,
"./vec2": 291
}],
293: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.v4 = d,
i.default = void 0;
var n = a(t("../platform/CCClass"))
, r = a(t("./value-type"))
, s = t("./utils");
function a(t) {
return t && t.__esModule ? t : {
default: t
}
}
function o(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)
}
}
function l(t, e) {
return (l = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
var h = 0
, c = 0
, u = 0
, _ = 0
, f = (function(t) {
var e, i;
i = t,
(e = f).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
l(e, i);
var n, r, a = f.prototype;
function f(e, i, n, r) {
var s;
return void 0 === e && (e = 0),
void 0 === i && (i = 0),
void 0 === n && (n = 0),
void 0 === r && (r = 0),
(s = t.call(this) || this).mag = f.prototype.len,
s.magSqr = f.prototype.lengthSqr,
s.subSelf = f.prototype.subtract,
s.mulSelf = f.prototype.multiplyScalar,
s.divSelf = f.prototype.divide,
s.scaleSelf = f.prototype.multiply,
s.negSelf = f.prototype.negate,
s.x = void 0,
s.y = void 0,
s.z = void 0,
s.w = void 0,
e && "object" == typeof e ? (s.x = e.x,
s.y = e.y,
s.z = e.z,
s.w = e.w) : (s.x = e,
s.y = i,
s.z = n,
s.w = r),
s
}
return a.sub = function(t, e) {
return f.subtract(e || new f, this, t)
}
,
a.mul = function(t, e) {
return f.multiplyScalar(e || new f, this, t)
}
,
a.div = function(t, e) {
return f.multiplyScalar(e || new f, this, 1 / t)
}
,
a.scale = function(t, e) {
return f.multiply(e || new f, this, t)
}
,
a.neg = function(t) {
return f.negate(t || new f, this)
}
,
f.clone = function(t) {
return new f(t.x,t.y,t.z,t.w)
}
,
f.copy = function(t, e) {
return t.x = e.x,
t.y = e.y,
t.z = e.z,
t.w = e.w,
t
}
,
f.set = function(t, e, i, n, r) {
return t.x = e,
t.y = i,
t.z = n,
t.w = r,
t
}
,
f.add = function(t, e, i) {
return t.x = e.x + i.x,
t.y = e.y + i.y,
t.z = e.z + i.z,
t.w = e.w + i.w,
t
}
,
f.subtract = function(t, e, i) {
return t.x = e.x - i.x,
t.y = e.y - i.y,
t.z = e.z - i.z,
t.w = e.w - i.w,
t
}
,
f.multiply = function(t, e, i) {
return t.x = e.x * i.x,
t.y = e.y * i.y,
t.z = e.z * i.z,
t.w = e.w * i.w,
t
}
,
f.divide = function(t, e, i) {
return t.x = e.x / i.x,
t.y = e.y / i.y,
t.z = e.z / i.z,
t.w = e.w / i.w,
t
}
,
f.ceil = function(t, e) {
return t.x = Math.ceil(e.x),
t.y = Math.ceil(e.y),
t.z = Math.ceil(e.z),
t.w = Math.ceil(e.w),
t
}
,
f.floor = function(t, e) {
return t.x = Math.floor(e.x),
t.y = Math.floor(e.y),
t.z = Math.floor(e.z),
t.w = Math.floor(e.w),
t
}
,
f.min = function(t, e, i) {
return 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),
t
}
,
f.max = function(t, e, i) {
return 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),
t
}
,
f.round = function(t, e) {
return t.x = Math.round(e.x),
t.y = Math.round(e.y),
t.z = Math.round(e.z),
t.w = Math.round(e.w),
t
}
,
f.multiplyScalar = function(t, e, i) {
return t.x = e.x * i,
t.y = e.y * i,
t.z = e.z * i,
t.w = e.w * i,
t
}
,
f.scaleAndAdd = function(t, e, i, n) {
return 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,
t
}
,
f.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)
}
,
f.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
}
,
f.len = function(t) {
return h = t.x,
c = t.y,
u = t.z,
_ = t.w,
Math.sqrt(h * h + c * c + u * u + _ * _)
}
,
f.lengthSqr = function(t) {
return h = t.x,
c = t.y,
u = t.z,
_ = t.w,
h * h + c * c + u * u + _ * _
}
,
f.negate = function(t, e) {
return t.x = -e.x,
t.y = -e.y,
t.z = -e.z,
t.w = -e.w,
t
}
,
f.inverse = function(t, e) {
return t.x = 1 / e.x,
t.y = 1 / e.y,
t.z = 1 / e.z,
t.w = 1 / e.w,
t
}
,
f.inverseSafe = function(t, e) {
return h = e.x,
c = e.y,
u = e.z,
_ = e.w,
Math.abs(h) < s.EPSILON ? t.x = 0 : t.x = 1 / h,
Math.abs(c) < s.EPSILON ? t.y = 0 : t.y = 1 / c,
Math.abs(u) < s.EPSILON ? t.z = 0 : t.z = 1 / u,
Math.abs(_) < s.EPSILON ? t.w = 0 : t.w = 1 / _,
t
}
,
f.normalize = function(t, e) {
h = e.x,
c = e.y,
u = e.z,
_ = e.w;
var i = h * h + c * c + u * u + _ * _;
return i > 0 && (i = 1 / Math.sqrt(i),
t.x = h * i,
t.y = c * i,
t.z = u * i,
t.w = _ * i),
t
}
,
f.dot = function(t, e) {
return t.x * e.x + t.y * e.y + t.z * e.z + t.w * e.w
}
,
f.lerp = function(t, e, i, n) {
return t.x = e.x + n * (i.x - e.x),
t.y = e.y + n * (i.y - e.y),
t.z = e.z + n * (i.z - e.z),
t.w = e.w + n * (i.w - e.w),
t
}
,
f.random = function(t, e) {
e = e || 1;
var i = 2 * (0,
s.random)() * Math.PI
, n = 2 * (0,
s.random)() - 1
, r = Math.sqrt(1 - n * n);
return t.x = r * Math.cos(i) * e,
t.y = r * Math.sin(i) * e,
t.z = n * e,
t.w = 0,
t
}
,
f.transformMat4 = function(t, e, i) {
h = e.x,
c = e.y,
u = e.z,
_ = e.w;
var n = i.m;
return t.x = n[0] * h + n[4] * c + n[8] * u + n[12] * _,
t.y = n[1] * h + n[5] * c + n[9] * u + n[13] * _,
t.z = n[2] * h + n[6] * c + n[10] * u + n[14] * _,
t.w = n[3] * h + n[7] * c + n[11] * u + n[15] * _,
t
}
,
f.transformAffine = function(t, e, i) {
h = e.x,
c = e.y,
u = e.z,
_ = e.w;
var n = i.m;
return t.x = n[0] * h + n[1] * c + n[2] * u + n[3] * _,
t.y = n[4] * h + n[5] * c + n[6] * u + n[7] * _,
t.x = n[8] * h + n[9] * c + n[10] * u + n[11] * _,
t.w = e.w,
t
}
,
f.transformQuat = function(t, e, i) {
var n = e.x
, r = e.y
, s = e.z;
h = i.x,
c = i.y,
u = i.z;
var a = (_ = i.w) * n + c * s - u * r
, o = _ * r + u * n - h * s
, l = _ * s + h * r - c * n
, f = -h * n - c * r - u * s;
return t.x = a * _ + f * -h + o * -u - l * -c,
t.y = o * _ + f * -c + l * -h - a * -u,
t.z = l * _ + f * -u + a * -c - o * -h,
t.w = e.w,
t
}
,
f.strictEquals = function(t, e) {
return t.x === e.x && t.y === e.y && t.z === e.z && t.w === e.w
}
,
f.equals = function(t, e, i) {
return void 0 === i && (i = s.EPSILON),
Math.abs(t.x - e.x) <= i * Math.max(1, Math.abs(t.x), Math.abs(e.x)) && Math.abs(t.y - e.y) <= i * Math.max(1, Math.abs(t.y), Math.abs(e.y)) && Math.abs(t.z - e.z) <= i * Math.max(1, Math.abs(t.z), Math.abs(e.z)) && Math.abs(t.w - e.w) <= i * Math.max(1, Math.abs(t.w), Math.abs(e.w))
}
,
f.toArray = function(t, e, i) {
return void 0 === i && (i = 0),
t[i + 0] = e.x,
t[i + 1] = e.y,
t[i + 2] = e.z,
t[i + 3] = e.w,
t
}
,
f.fromArray = function(t, e, i) {
return void 0 === i && (i = 0),
t.x = e[i + 0],
t.y = e[i + 1],
t.z = e[i + 2],
t.w = e[i + 3],
t
}
,
a.clone = function() {
return new f(this.x,this.y,this.z,this.w)
}
,
a.set = function(t, e, i, n) {
return t && "object" == typeof t ? (this.x = t.x,
this.y = t.y,
this.z = t.z,
this.w = t.w) : (this.x = t || 0,
this.y = e || 0,
this.z = i || 0,
this.w = n || 0),
this
}
,
a.equals = function(t, e) {
return void 0 === e && (e = s.EPSILON),
Math.abs(this.x - t.x) <= e * Math.max(1, Math.abs(this.x), Math.abs(t.x)) && Math.abs(this.y - t.y) <= e * Math.max(1, Math.abs(this.y), Math.abs(t.y)) && Math.abs(this.z - t.z) <= e * Math.max(1, Math.abs(this.z), Math.abs(t.z)) && Math.abs(this.w - t.w) <= e * Math.max(1, Math.abs(this.w), Math.abs(t.w))
}
,
a.equals4f = function(t, e, i, n, r) {
return void 0 === r && (r = s.EPSILON),
Math.abs(this.x - t) <= r * Math.max(1, Math.abs(this.x), Math.abs(t)) && Math.abs(this.y - e) <= r * Math.max(1, Math.abs(this.y), Math.abs(e)) && Math.abs(this.z - i) <= r * Math.max(1, Math.abs(this.z), Math.abs(i)) && Math.abs(this.w - n) <= r * Math.max(1, Math.abs(this.w), Math.abs(n))
}
,
a.strictEquals = function(t) {
return this.x === t.x && this.y === t.y && this.z === t.z && this.w === t.w
}
,
a.strictEquals4f = function(t, e, i, n) {
return this.x === t && this.y === e && this.z === i && this.w === n
}
,
a.lerp = function(t, e) {
return h = this.x,
c = this.y,
u = this.z,
_ = this.w,
this.x = h + e * (t.x - h),
this.y = c + e * (t.y - c),
this.z = u + e * (t.z - u),
this.w = _ + e * (t.w - _),
this
}
,
a.toString = function() {
return "(" + this.x.toFixed(2) + ", " + this.y.toFixed(2) + ", " + this.z.toFixed(2) + ", " + this.w.toFixed(2) + ")"
}
,
a.clampf = function(t, e) {
return this.x = (0,
s.clamp)(this.x, t.x, e.x),
this.y = (0,
s.clamp)(this.y, t.y, e.y),
this.z = (0,
s.clamp)(this.z, t.z, e.z),
this.w = (0,
s.clamp)(this.w, t.w, e.w),
this
}
,
a.addSelf = function(t) {
return this.x += t.x,
this.y += t.y,
this.z += t.z,
this.w += t.w,
this
}
,
a.add = function(t, e) {
return (e = e || new f).x = this.x + t.x,
e.y = this.y + t.y,
e.z = this.z + t.z,
e.w = this.w + t.w,
e
}
,
a.subtract = function(t, e) {
return (e = e || new f).x = this.x - t.x,
e.y = this.y - t.y,
e.z = this.z - t.z,
e.w = this.w - t.w,
e
}
,
a.multiplyScalar = function(t) {
return this.x *= t,
this.y *= t,
this.z *= t,
this.w *= t,
this
}
,
a.multiply = function(t) {
return this.x *= t.x,
this.y *= t.y,
this.z *= t.z,
this.w *= t.w,
this
}
,
a.divide = function(t) {
return this.x /= t,
this.y /= t,
this.z /= t,
this.w /= t,
this
}
,
a.negate = function() {
return this.x = -this.x,
this.y = -this.y,
this.z = -this.z,
this.w = -this.w,
this
}
,
a.dot = function(t) {
return this.x * t.x + this.y * t.y + this.z * t.z + this.w * t.w
}
,
a.cross = function(t, e) {
e = e || new f;
var i = this.x
, n = this.y
, r = this.z
, s = t.x
, a = t.y
, o = t.z;
return e.x = n * o - r * a,
e.y = r * s - i * o,
e.z = i * a - n * s,
e
}
,
a.len = 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)
}
,
a.lengthSqr = function() {
var t = this.x
, e = this.y
, i = this.z
, n = this.w;
return t * t + e * e + i * i + n * n
}
,
a.normalizeSelf = function() {
return this.normalize(this),
this
}
,
a.normalize = function(t) {
t = t || new f,
h = this.x,
c = this.y,
u = this.z,
_ = this.w;
var e = h * h + c * c + u * u + _ * _;
return e > 0 && (e = 1 / Math.sqrt(e),
t.x = h * e,
t.y = c * e,
t.z = u * e,
t.w = _ * e),
t
}
,
a.transformMat4 = function(t, e) {
e = e || new f,
h = this.x,
c = this.y,
u = this.z,
_ = this.w;
var i = t.m;
return e.x = i[0] * h + i[4] * c + i[8] * u + i[12] * _,
e.y = i[1] * h + i[5] * c + i[9] * u + i[13] * _,
e.z = i[2] * h + i[6] * c + i[10] * u + i[14] * _,
e.w = i[3] * h + i[7] * c + i[11] * u + i[15] * _,
e
}
,
a.maxAxis = function() {
return Math.max(this.x, this.y, this.z, this.w)
}
,
n = f,
r = [{
key: "ZERO",
get: function() {
return new f(0,0,0,0)
}
}, {
key: "ONE",
get: function() {
return new f(1,1,1,1)
}
}, {
key: "NEG_ONE",
get: function() {
return new f(-1,-1,-1,-1)
}
}],
null && o(n.prototype, null),
r && o(n, r),
f
}
)(r.default);
function d(t, e, i, n) {
return new f(t,e,i,n)
}
i.default = f,
f.sub = f.subtract,
f.mul = f.multiply,
f.div = f.divide,
f.scale = f.multiplyScalar,
f.mag = f.len,
f.squaredMagnitude = f.lengthSqr,
f.ZERO_R = f.ZERO,
f.ONE_R = f.ONE,
f.NEG_ONE_R = f.NEG_ONE,
n.default.fastDefine("cc.Vec4", f, {
x: 0,
y: 0,
z: 0,
w: 0
}),
cc.v4 = d,
cc.Vec4 = f
}
), {
"../platform/CCClass": 193,
"./utils": 289,
"./value-type": 290
}],
294: [(function() {
"use strict";
cc.js
}
), {}],
295: [(function(t) {
"use strict";
t("./core/CCGame"),
t("./actions")
}
), {
"./actions": 7,
"./core/CCGame": 28
}],
296: [(function(t, e) {
"use strict";
var i = t("../compression/zlib.min")
, n = t("../core/CCDebug")
, r = function(t) {
var e, i, r, s, a, o, l, h, c, u, _, f, d;
for (this.data = t,
this.pos = 8,
this.palette = [],
this.imgData = [],
this.transparency = {},
this.animation = null,
this.text = {},
a = null; ; ) {
switch (e = this.readUInt32(),
h = function() {
var t, e;
for (e = [],
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() || 1 / 0,
frames: []
};
break;
case "PLTE":
this.palette = this.read(e);
break;
case "fcTL":
a && this.animation.frames.push(a),
this.pos += 4,
a = {
width: this.readUInt32(),
height: this.readUInt32(),
xOffset: this.readUInt32(),
yOffset: this.readUInt32()
},
s = this.readUInt16(),
r = this.readUInt16() || 100,
a.delay = 1e3 * s / r,
a.disposeOp = this.data[this.pos++],
a.blendOp = this.data[this.pos++],
a.data = [];
break;
case "IDAT":
case "fdAT":
for ("fdAT" === h && (this.pos += 4,
e -= 4),
t = (null != a ? a.data : void 0) || this.imgData,
_ = 0; 0 <= e ? _ < e : _ > e; 0 <= e ? ++_ : --_)
t.push(this.data[this.pos++]);
break;
case "tRNS":
switch (this.transparency = {},
this.colorType) {
case 3:
if (this.transparency.indexed = this.read(e),
(c = 255 - this.transparency.indexed.length) > 0)
for (f = 0; 0 <= c ? f < c : f > c; 0 <= c ? ++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":
o = (u = this.read(e)).indexOf(0),
l = String.fromCharCode.apply(String, u.slice(0, o)),
this.text[l] = String.fromCharCode.apply(String, u.slice(o + 1));
break;
case "IEND":
return a && this.animation.frames.push(a),
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),
void (Uint8Array != Array && (this.imgData = new Uint8Array(this.imgData)));
default:
this.pos += e
}
if (this.pos += 4,
this.pos > this.data.length)
throw new Error(n.getError(6017))
}
};
r.prototype = {
constructor: r,
read: function(t) {
var e, i;
for (i = [],
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, r, s, a, o, l, h, c, u, _, f, d, p, m, y, v, g, A, x, b, C, T, S;
if (null == t && (t = this.imgData),
0 === t.length)
return new Uint8Array(0);
for (t = new i.Inflate(t,{
index: 0,
verify: !1
}).decompress(),
v = (d = this.pixelBitlength / 8) * this.width,
p = new Uint8Array(v * this.height),
l = t.length,
y = 0,
m = 0,
r = 0; m < l; ) {
switch (t[m++]) {
case 0:
for (a = x = 0; x < v; a = x += 1)
p[r++] = t[m++];
break;
case 1:
for (a = b = 0; b < v; a = b += 1)
e = t[m++],
o = a < d ? 0 : p[r - d],
p[r++] = (e + o) % 256;
break;
case 2:
for (a = C = 0; C < v; a = C += 1)
e = t[m++],
s = (a - a % d) / d,
g = y && p[(y - 1) * v + s * d + a % d],
p[r++] = (g + e) % 256;
break;
case 3:
for (a = T = 0; T < v; a = T += 1)
e = t[m++],
s = (a - a % d) / d,
o = a < d ? 0 : p[r - d],
g = y && p[(y - 1) * v + s * d + a % d],
p[r++] = (e + Math.floor((o + g) / 2)) % 256;
break;
case 4:
for (a = S = 0; S < v; a = S += 1)
e = t[m++],
s = (a - a % d) / d,
o = a < d ? 0 : p[r - d],
0 === y ? g = A = 0 : (g = p[(y - 1) * v + s * d + a % d],
A = s && p[(y - 1) * v + (s - 1) * d + a % d]),
h = o + g - A,
c = Math.abs(h - o),
_ = Math.abs(h - g),
f = Math.abs(h - A),
u = c <= _ && c <= f ? o : _ <= f ? g : A,
p[r++] = (e + u) % 256;
break;
default:
throw new Error(n.getError(6018, t[m - 1]))
}
y++
}
return p
},
copyToImageData: function(t, e) {
var i, n, r, s, a, o, l, h, c, u, _;
if (n = this.colors,
c = null,
i = this.hasAlphaChannel,
this.palette.length && (c = null != (_ = this._decodedPalette) ? _ : this._decodedPalette = this.decodePalette(),
n = 4,
i = !0),
h = (r = t.data || t).length,
a = c || e,
s = o = 0,
1 === n)
for (; s < h; )
l = c ? 4 * e[s / 4] : o,
u = a[l++],
r[s++] = u,
r[s++] = u,
r[s++] = u,
r[s++] = i ? a[l++] : 255,
o = l;
else
for (; s < h; )
l = c ? 4 * e[s / 4] : o,
r[s++] = a[l++],
r[s++] = a[l++],
r[s++] = a[l++],
r[s++] = i ? a[l++] : 255,
o = l
},
decodePalette: function() {
var t, e, i, n, r, s, a, o, l;
for (i = this.palette,
s = this.transparency.indexed || [],
r = new Uint8Array((s.length || 0) + i.length),
n = 0,
t = 0,
e = a = 0,
o = i.length; a < o; e = a += 3)
r[n++] = i[e],
r[n++] = i[e + 1],
r[n++] = i[e + 2],
r[n++] = null != (l = s[t++]) ? l : 255;
return r
},
render: function(t) {
var e, i;
return t.width = this.width,
t.height = this.height,
i = (e = t.getContext("2d")).createImageData(this.width, this.height),
this.copyToImageData(i, this.decodePixels()),
e.putImageData(i, 0, 0)
}
},
e.exports = r
}
), {
"../compression/zlib.min": 25,
"../core/CCDebug": 26
}],
297: [(function(t, e) {
"use strict";
var i = t("../core/assets/CCAsset")
, n = t("../core/assets/CCSpriteFrame")
, r = cc.Class({
name: "cc.ParticleAsset",
extends: i,
properties: {
spriteFrame: {
default: null,
type: n
}
}
});
cc.ParticleAsset = e.exports = r
}
), {
"../core/assets/CCAsset": 62,
"../core/assets/CCSpriteFrame": 74
}],
298: [(function(t, e) {
"use strict";
var i = t("../core/platform/CCMacro")
, n = t("./CCParticleAsset")
, r = t("../core/components/CCRenderComponent")
, s = t("../compression/ZipUtils")
, a = t("./CCPNGReader")
, o = t("./CCTIFFReader")
, l = t("../core/utils/texture-util")
, h = (t("../core/renderer/render-flow"),
t("./particle-simulator"))
, c = (t("../core/assets/material/CCMaterial"),
t("../core/utils/blend-func"))
, u = cc.Enum({
GRAVITY: 0,
RADIUS: 1
})
, _ = cc.Enum({
FREE: 0,
RELATIVE: 1,
GROUPED: 2
})
, f = {
preview: {
default: !0,
editorOnly: !0,
notify: !1,
animatable: !1,
tooltip: !1
},
_custom: !1,
custom: {
get: function() {
return this._custom
},
set: function(t) {
this._custom !== t && (this._custom = t,
this._applyFile())
},
animatable: !1,
tooltip: !1
},
_file: {
default: null,
type: n
},
file: {
get: function() {
return this._file
},
set: function(t) {
this._file !== t && (this._file = t,
t ? this._applyFile() : this.custom = !0)
},
animatable: !1,
type: n,
tooltip: !1
},
_spriteFrame: {
default: null,
type: cc.SpriteFrame
},
spriteFrame: {
get: function() {
return this._spriteFrame
},
set: function(t) {
var e = this._renderSpriteFrame;
e !== t && (this._renderSpriteFrame = t,
t && !t._uuid || (this._spriteFrame = t),
this._applySpriteFrame(e))
},
type: cc.SpriteFrame,
tooltip: !1
},
_texture: {
default: null,
type: cc.Texture2D,
editorOnly: !0
},
texture: {
get: function() {
return this._getTexture()
},
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: _.FREE,
formerlySerializedAs: "positionType"
},
positionType: {
type: _,
get: function() {
return this._positionType
},
set: function(t) {
this._positionType = t,
this._updateMaterial()
}
},
emitterMode: {
default: u.GRAVITY,
type: u
},
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
}
, d = cc.Class({
name: "cc.ParticleSystem",
extends: r,
mixins: [c],
editor: !1,
ctor: function() {
this.initProperties()
},
initProperties: function() {
this._previewTimer = null,
this._focused = !1,
this._aspectRatio = 1,
this._simulator = new h(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: f,
statics: {
DURATION_INFINITY: -1,
START_SIZE_EQUAL_TO_END_SIZE: -1,
START_RADIUS_EQUAL_TO_END_RADIUS: -1,
EmitterMode: u,
PositionType: _,
_PNGReader: a,
_TIFFReader: o
},
onFocusInEditor: !1,
onLostFocusInEditor: !1,
_startPreview: !1,
_stopPreview: !1,
_convertTextureToSpriteFrame: !1,
__preload: function() {
this._super(),
this._custom && this.spriteFrame && !this._renderSpriteFrame ? this._applySpriteFrame(this.spriteFrame) : this._file && (this._custom ? !this._getTexture() && this._applyFile() : this._applyFile()),
this.playOnLoad && this.resetSystem()
},
onDestroy: function() {
this.autoRemoveOnFinish && (this.autoRemoveOnFinish = !1),
this._buffer && (this._buffer.destroy(),
this._buffer = null),
this._simulator._uvFilled = 0,
this._super()
},
lateUpdate: function(t) {
this._simulator.finished || this._simulator.step(t)
},
addParticle: function() {},
stopSystem: function() {
this._stopped = !0,
this._simulator.stop()
},
resetSystem: function() {
this._stopped = !1,
this._simulator.reset(),
this.markForRender(!0)
},
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.assetManager.postLoadNative(t, (function(i) {
!i && t._nativeAsset ? e.isValid && (e._plistFile = t.nativeUrl,
e._custom || (e._spriteFrame !== t.spriteFrame && (e.spriteFrame = t.spriteFrame),
e._initWithDictionary(t._nativeAsset)),
e._spriteFrame ? !e._renderSpriteFrame && e._spriteFrame && e._applySpriteFrame(e.spriteFrame) : t.spriteFrame ? e.spriteFrame = t.spriteFrame : e._custom && e._initTextureWithDictionary(t._nativeAsset)) : cc.errorID(6029)
}
))
}
},
_initTextureWithDictionary: function(t) {
var e, n = cc.path.changeBasename(this._plistFile, t.textureFileName || "");
if (t.textureFileName)
l.loadImage(n, (function(e, i) {
e ? (t.textureFileName = void 0,
this._initTextureWithDictionary(t)) : (cc.assetManager.assets.add(n, i),
this.spriteFrame = new cc.SpriteFrame(i))
}
), this);
else if (t.textureImageData) {
var r = t.textureImageData;
if (!(r && r.length > 0))
return !1;
var h = cc.assetManager.assets.get(n);
if (!h) {
var c = s.unzipBase64AsArray(r, 1);
if (!c)
return cc.warnID(6030, this._file.name),
!1;
var u = (e = c).length > 8 && 137 === e[0] && 80 === e[1] && 78 === e[2] && 71 === e[3] && 13 === e[4] && 10 === e[5] && 26 === e[6] && 10 === e[7] ? i.ImageFormat.PNG : e.length > 2 && (73 === e[0] && 73 === e[1] || 77 === e[0] && 77 === e[1] || 255 === e[0] && 216 === e[1]) ? i.ImageFormat.TIFF : i.ImageFormat.UNKNOWN;
if (u !== i.ImageFormat.TIFF && u !== i.ImageFormat.PNG)
return cc.warnID(6031, this._file.name),
!1;
var _ = document.createElement("canvas");
u === i.ImageFormat.PNG ? new a(c).render(_) : o.parseTIFF(c, _),
h = l.cacheImage(n, _)
}
h || cc.warnID(6032, this._file.name),
this.spriteFrame = new cc.SpriteFrame(h)
}
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 || i.SRC_ALPHA),
this.dstBlendFactor = parseInt(t.blendFuncDestination || i.ONE_MINUS_SRC_ALPHA);
var n = this._startColor;
n.r = 255 * parseFloat(t.startColorRed || 0),
n.g = 255 * parseFloat(t.startColorGreen || 0),
n.b = 255 * parseFloat(t.startColorBlue || 0),
n.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 a = this._endColorVar;
if (a.r = 255 * parseFloat(t.finishColorVarianceRed || 0),
a.g = 255 * parseFloat(t.finishColorVarianceGreen || 0),
a.b = 255 * parseFloat(t.finishColorVarianceBlue || 0),
a.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(void 0 !== t.positionType ? t.positionType : _.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 || u.GRAVITY),
this.emitterMode === u.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 o = t.rotationIsDir || "";
null !== o ? (o = o.toString().toLowerCase(),
this.rotationIsDir = "true" === o || "1" === o) : this.rotationIsDir = !1
} else {
if (this.emitterMode !== u.RADIUS)
return cc.warnID(6009),
!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)
}
return this._initTextureWithDictionary(t),
!0
},
_validateRender: function() {
var t = this._getTexture();
t && t.loaded ? this._super() : this.disableRender()
},
_onTextureLoaded: function() {
this._simulator.updateUVs(!0),
this._syncAspect(),
this._updateMaterial(),
this.markForRender(!0)
},
_syncAspect: function() {
var t = this._renderSpriteFrame._rect;
this._aspectRatio = t.width / t.height
},
_applySpriteFrame: function() {
this._renderSpriteFrame = this._renderSpriteFrame || this._spriteFrame,
this._renderSpriteFrame && (this._renderSpriteFrame.textureLoaded() ? this._onTextureLoaded() : this._renderSpriteFrame.onTextureLoaded(this._onTextureLoaded, this))
},
_getTexture: function() {
return this._renderSpriteFrame && this._renderSpriteFrame.getTexture() || this._texture
},
_updateMaterial: function() {
var t = this.getMaterial(0);
t && (t.define("CC_USE_MODEL", this._positionType !== _.FREE),
t.setProperty("texture", this._getTexture()),
c.prototype._updateMaterial.call(this))
},
_finishedSimulation: function() {
this.resetSystem(),
this.stopSystem(),
this.disableRender(),
this.autoRemoveOnFinish && this._stopped && this.node.destroy()
}
});
cc.ParticleSystem = e.exports = d
}
), {
"../compression/ZipUtils": 22,
"../core/assets/material/CCMaterial": 80,
"../core/components/CCRenderComponent": 115,
"../core/platform/CCMacro": 198,
"../core/renderer/render-flow": 225,
"../core/utils/blend-func": 261,
"../core/utils/texture-util": 275,
"./CCPNGReader": 296,
"./CCParticleAsset": 297,
"./CCTIFFReader": 299,
"./particle-simulator": 301,
"fire-url": void 0
}],
299: [(function(t, e) {
"use strict";
var i = t("../core/CCDebug")
, n = {
_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)
throw console.log(t),
TypeError(i.getError(6019));
this.littleEndian = !1
}
return this.littleEndian
},
hasTowel: function() {
if (42 !== this.getUint16(2))
throw RangeError(i.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;
return t in e ? e[t] : (cc.logID(6021, t),
"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 a = 0; a < i; a++) {
var o = s * a;
s >= 8 ? -1 !== ["RATIONAL", "SRATIONAL"].indexOf(e) ? (r.push(this.getUint32(n + o)),
r.push(this.getUint32(n + o + 4))) : cc.logID(8e3) : r.push(this.getBytes(s, n + o))
}
return "ASCII" === e && r.forEach((function(t, e, i) {
i[e] = String.fromCharCode(t)
}
)),
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), a = i + t, o = 32 - t;
return a <= 0 ? cc.logID(6023) : a <= 8 ? (n = 24 + i,
r = this.getUint8(s)) : a <= 16 ? (n = 16 + i,
r = this.getUint16(s)) : a <= 32 ? (n = i,
r = this.getUint32(s)) : cc.logID(6022),
{
bits: r << n >>> o,
byteOffset: s + Math.floor(a / 8),
bitOffset: a % 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)
, a = this.getUint16(n + 2)
, o = this.getUint32(n + 4)
, l = this.getUint32(n + 8)
, h = this.getFieldTagName(s)
, c = this.getFieldTypeName(a)
, u = this.getFieldValues(h, c, o, l);
i[h] = {
type: c,
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) {
if (e = e || document.createElement("canvas"),
this._tiffData = t,
this.canvas = e,
this.checkLittleEndian(),
this.hasTowel()) {
var n = this.getUint32(4);
this._fileDirectories.length = 0,
this.parseFileDirectory(n);
var r = this._fileDirectories[0]
, s = r.ImageWidth.values[0]
, a = r.ImageLength.values[0];
this.canvas.width = s,
this.canvas.height = a;
var o = []
, l = r.Compression ? r.Compression.values[0] : 1
, h = r.SamplesPerPixel.values[0]
, c = []
, u = 0
, _ = !1;
if (r.BitsPerSample.values.forEach((function(t, e) {
c[e] = {
bitsPerSample: t,
hasBytesPerSample: !1,
bytesPerSample: void 0
},
t % 8 == 0 && (c[e].hasBytesPerSample = !0,
c[e].bytesPerSample = t / 8),
u += t
}
), this),
u % 8 == 0) {
_ = !0;
var f = u / 8
}
var d = r.StripOffsets.values
, p = d.length;
if (r.StripByteCounts)
var m = r.StripByteCounts.values;
else {
if (cc.logID(8003),
1 !== p)
throw Error(i.getError(6024));
m = [Math.ceil(s * a * u / 8)]
}
for (var y = 0; y < p; y++) {
var v = d[y];
o[y] = [];
for (var g = m[y], A = 0, x = 0, b = 1, C = !0, T = [], S = 0, w = 0, E = 0; A < g; A += b)
switch (l) {
case 1:
var M = 0;
for (T = []; M < h; M++) {
if (!c[M].hasBytesPerSample) {
var D = this.getBits(c[M].bitsPerSample, v + A, x);
throw T.push(D.bits),
A = D.byteOffset - v,
x = D.bitOffset,
RangeError(i.getError(6025))
}
var B = c[M].bytesPerSample * M;
T.push(this.getBytes(c[M].bytesPerSample, v + A + B))
}
if (o[y].push(T),
!_)
throw b = 0,
RangeError(i.getError(6026));
b = f;
break;
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
break;
case 32773:
if (C) {
C = !1;
var I = 1
, P = 1
, R = this.getInt8(v + A);
R >= 0 && R <= 127 ? I = R + 1 : R >= -127 && R <= -1 ? P = 1 - R : C = !0
} else {
var O = this.getUint8(v + A);
for (M = 0; M < P; M++) {
if (!c[w].hasBytesPerSample)
throw RangeError(i.getError(6025));
E = E << 8 * S | O,
++S === c[w].bytesPerSample && (T.push(E),
E = S = 0,
w++),
w === h && (o[y].push(T),
T = [],
w = 0)
}
0 == --I && (C = !0)
}
b = 1
}
}
if (e.getContext) {
var L = this.canvas.getContext("2d");
L.fillStyle = "rgba(255, 255, 255, 0)";
var F = r.RowsPerStrip ? r.RowsPerStrip.values[0] : a
, V = o.length
, N = a % F
, k = 0 === N ? F : N
, G = F
, U = 0
, z = r.PhotometricInterpretation.values[0]
, H = []
, W = 0;
if (r.ExtraSamples && (W = (H = r.ExtraSamples.values).length),
r.ColorMap)
var j = r.ColorMap.values
, X = Math.pow(2, c[0].bitsPerSample);
for (y = 0; y < V; y++) {
y + 1 === V && (G = k);
for (var Y = o[y].length, q = U * y, J = 0, Z = 0; Z < Y; J++)
for (var K = 0; K < s; K++,
Z++) {
var Q = o[y][Z]
, $ = 0
, tt = 0
, et = 0
, it = 1;
if (W > 0)
for (var nt = 0; nt < W; nt++)
if (1 === H[nt] || 2 === H[nt]) {
it = Q[3 + nt] / 256;
break
}
switch (z) {
case 0:
if (c[0].hasBytesPerSample)
var rt = Math.pow(16, 2 * c[0].bytesPerSample);
Q.forEach((function(t, e, i) {
i[e] = rt - t
}
));
case 1:
$ = tt = et = this.clampColorSample(Q[0], c[0].bitsPerSample);
break;
case 2:
$ = this.clampColorSample(Q[0], c[0].bitsPerSample),
tt = this.clampColorSample(Q[1], c[1].bitsPerSample),
et = this.clampColorSample(Q[2], c[2].bitsPerSample);
break;
case 3:
if (void 0 === j)
throw Error(i.getError(6027));
var st = Q[0];
$ = this.clampColorSample(j[st], 16),
tt = this.clampColorSample(j[X + st], 16),
et = this.clampColorSample(j[2 * X + st], 16);
break;
default:
throw RangeError(i.getError(6028, z))
}
L.fillStyle = "rgba(" + $ + ", " + tt + ", " + et + ", " + it + ")",
L.fillRect(K, q + J, 1, 1)
}
U = G
}
}
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 = n
}
), {
"../core/CCDebug": 26
}],
300: [(function(t) {
"use strict";
t("./CCParticleAsset"),
t("./CCParticleSystem"),
t("./particle-simulator"),
t("./particle-system-assembler")
}
), {
"./CCParticleAsset": 297,
"./CCParticleSystem": 298,
"./particle-simulator": 301,
"./particle-system-assembler": 302
}],
301: [(function(t, e) {
"use strict";
var i = t("../core/platform/js")
, n = t("../core/utils/misc")
, r = cc.v2(0, 0)
, s = cc.v2()
, a = cc.v2()
, o = cc.v2()
, l = cc.v2()
, h = 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.preciseColor = {
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.aspectRatio = 1,
this.dir = cc.v2(0, 0),
this.radialAccel = 0,
this.tangentialAccel = 0,
this.angle = 0,
this.degreesPerSecond = 0,
this.radius = 0,
this.deltaRadius = 0
}
, c = new i.Pool(function(t) {
t.pos.set(r),
t.startPos.set(r),
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(r),
t.aspectRatio = 1,
t.dir.set(r),
t.radialAccel = 0,
t.tangentialAccel = 0,
t.angle = 0,
t.degreesPerSecond = 0,
t.radius = 0,
t.deltaRadius = 0
}
,1024);
c.get = function() {
return this._get() || new h
}
;
var u = function(t) {
this.sys = t,
this.particles = [],
this.active = !1,
this.readyToPlay = !0,
this.finished = !1,
this.elapsed = 0,
this.emitCounter = 0,
this._uvFilled = 0,
this._worldRotation = 0
};
function _(t) {
for (var e = 0, i = t; i; )
e += i.angle,
i = i.parent;
return e
}
u.prototype.stop = function() {
this.active = !1,
this.readyToPlay = !1,
this.elapsed = this.sys.duration,
this.emitCounter = 0
}
,
u.prototype.reset = function() {
this.active = !0,
this.readyToPlay = !0,
this.elapsed = 0,
this.emitCounter = 0,
this.finished = !1;
for (var t = this.particles, e = 0; e < t.length; ++e)
c.put(t[e]);
t.length = 0
}
,
u.prototype.emitParticle = function(t) {
var e = this.sys
, i = n.clampf
, r = c.get();
this.particles.push(r),
r.timeToLive = e.life + e.lifeVar * (Math.random() - .5) * 2;
var s, a, o, l, h = r.timeToLive = Math.max(0, r.timeToLive);
r.pos.x = e.sourcePos.x + e.posVar.x * (Math.random() - .5) * 2,
r.pos.y = e.sourcePos.y + e.posVar.y * (Math.random() - .5) * 2;
var u = e._startColor
, _ = e._startColorVar
, f = e._endColor
, d = e._endColorVar;
r.color.r = s = i(u.r + _.r * (Math.random() - .5) * 2, 0, 255),
r.color.g = a = i(u.g + _.g * (Math.random() - .5) * 2, 0, 255),
r.color.b = o = i(u.b + _.b * (Math.random() - .5) * 2, 0, 255),
r.color.a = l = i(u.a + _.a * (Math.random() - .5) * 2, 0, 255);
var p = r.color
, m = r.preciseColor;
m.r = p.r,
m.g = p.g,
m.b = p.b,
m.a = p.a,
r.deltaColor.r = (i(f.r + d.r * (Math.random() - .5) * 2, 0, 255) - s) / h,
r.deltaColor.g = (i(f.g + d.g * (Math.random() - .5) * 2, 0, 255) - a) / h,
r.deltaColor.b = (i(f.b + d.b * (Math.random() - .5) * 2, 0, 255) - o) / h,
r.deltaColor.a = (i(f.a + d.a * (Math.random() - .5) * 2, 0, 255) - l) / h;
var y = e.startSize + e.startSizeVar * (Math.random() - .5) * 2;
if (y = Math.max(0, y),
r.size = y,
e.endSize === cc.ParticleSystem.START_SIZE_EQUAL_TO_END_SIZE)
r.deltaSize = 0;
else {
var v = e.endSize + e.endSizeVar * (Math.random() - .5) * 2;
v = Math.max(0, v),
r.deltaSize = (v - y) / h
}
var g = e.startSpin + e.startSpinVar * (Math.random() - .5) * 2
, A = e.endSpin + e.endSpinVar * (Math.random() - .5) * 2;
r.rotation = g,
r.deltaRotation = (A - g) / h,
r.startPos.x = t.x,
r.startPos.y = t.y,
r.aspectRatio = e._aspectRatio || 1;
var x = n.degreesToRadians(e.angle + this._worldRotation + e.angleVar * (Math.random() - .5) * 2);
if (e.emitterMode === cc.ParticleSystem.EmitterMode.GRAVITY) {
var b = e.speed + e.speedVar * (Math.random() - .5) * 2;
r.dir.x = Math.cos(x),
r.dir.y = Math.sin(x),
r.dir.mulSelf(b),
r.radialAccel = e.radialAccel + e.radialAccelVar * (Math.random() - .5) * 2,
r.tangentialAccel = e.tangentialAccel + e.tangentialAccelVar * (Math.random() - .5) * 2,
e.rotationIsDir && (r.rotation = -n.radiansToDegrees(Math.atan2(r.dir.y, r.dir.x)))
} else {
var C = e.startRadius + e.startRadiusVar * (Math.random() - .5) * 2
, T = e.endRadius + e.endRadiusVar * (Math.random() - .5) * 2;
r.radius = C,
r.deltaRadius = e.endRadius === cc.ParticleSystem.START_RADIUS_EQUAL_TO_END_RADIUS ? 0 : (T - C) / h,
r.angle = x,
r.degreesPerSecond = n.degreesToRadians(e.rotatePerS + e.rotatePerSVar * (Math.random() - .5) * 2)
}
}
,
u.prototype.updateUVs = function(t) {
var e = this.sys._assembler;
if (e) {
var i = e.getBuffer();
if (i && this.sys._renderSpriteFrame) {
for (var n = 4 * e._vfmt._bytes / 4, r = i._vData, s = this.sys._renderSpriteFrame.uv, a = t ? 0 : this._uvFilled, o = this.particles.length, l = a; l < o; l++) {
var h = l * n;
r[h + 2] = s[0],
r[h + 3] = s[1],
r[h + 7] = s[2],
r[h + 8] = s[3],
r[h + 12] = s[4],
r[h + 13] = s[5],
r[h + 17] = s[6],
r[h + 18] = s[7]
}
this._uvFilled = o
}
}
}
,
u.prototype.updateParticleBuffer = function(t, e, i, r) {
var s = i._vData
, a = i._uintVData
, o = e.x
, l = e.y
, h = t.size
, c = h
, u = t.aspectRatio;
u > 1 ? c = h / u : h = c * u;
var _ = h / 2
, f = c / 2;
if (t.rotation) {
var d = -_
, p = -f
, m = _
, y = f
, v = -n.degreesToRadians(t.rotation)
, g = Math.cos(v)
, A = Math.sin(v);
s[r] = d * g - p * A + o,
s[r + 1] = d * A + p * g + l,
s[r + 5] = m * g - p * A + o,
s[r + 6] = m * A + p * g + l,
s[r + 10] = d * g - y * A + o,
s[r + 11] = d * A + y * g + l,
s[r + 15] = m * g - y * A + o,
s[r + 16] = m * A + y * g + l
} else
s[r] = o - _,
s[r + 1] = l - f,
s[r + 5] = o + _,
s[r + 6] = l - f,
s[r + 10] = o - _,
s[r + 11] = l + f,
s[r + 15] = o + _,
s[r + 16] = l + f;
a[r + 4] = t.color._val,
a[r + 9] = t.color._val,
a[r + 14] = t.color._val,
a[r + 19] = t.color._val
}
,
u.prototype.step = function(t) {
t = t > cc.director._maxParticleDeltaTime ? cc.director._maxParticleDeltaTime : t;
var e = this.sys
, i = e.node
, n = this.particles
, r = 4 * this.sys._assembler._vfmt._bytes / 4
, h = cc.ParticleSystem.PositionType;
if (i._updateWorldMatrix(),
e.positionType === h.FREE) {
this._worldRotation = _(i);
var u = i._worldMatrix.m;
s.x = u[12],
s.y = u[13]
} else
e.positionType === h.RELATIVE ? (this._worldRotation = i.angle,
s.x = i.x,
s.y = i.y) : this._worldRotation = 0;
if (this.active && e.emissionRate) {
var f = 1 / e.emissionRate;
for (n.length < e.totalParticles && (this.emitCounter += t); n.length < e.totalParticles && this.emitCounter > f; )
this.emitParticle(s),
this.emitCounter -= f;
this.elapsed += t,
-1 !== e.duration && e.duration < this.elapsed && e.stopSystem()
}
var d = e._assembler.getBuffer()
, p = n.length;
d.reset(),
d.request(4 * p, 6 * p),
p > this._uvFilled && this.updateUVs();
for (var m = 0; m < n.length; ) {
a.x = a.y = o.x = o.y = l.x = l.y = 0;
var y = n[m];
if (y.timeToLive -= t,
y.timeToLive > 0) {
if (e.emitterMode === cc.ParticleSystem.EmitterMode.GRAVITY) {
var v = l
, g = a
, A = o;
(y.pos.x || y.pos.y) && (g.set(y.pos),
g.normalizeSelf()),
A.set(g),
g.mulSelf(y.radialAccel);
var x = A.x;
A.x = -A.y,
A.y = x,
A.mulSelf(y.tangentialAccel),
v.set(g),
v.addSelf(A),
v.addSelf(e.gravity),
v.mulSelf(t),
y.dir.addSelf(v),
v.set(y.dir),
v.mulSelf(t),
y.pos.addSelf(v)
} else
y.angle += y.degreesPerSecond * t,
y.radius += y.deltaRadius * t,
y.pos.x = -Math.cos(y.angle) * y.radius,
y.pos.y = -Math.sin(y.angle) * y.radius;
var b = y.preciseColor
, C = y.deltaColor;
b.r += C.r * t,
b.g += C.g * t,
b.b += C.b * t,
b.a += C.a * t;
var T = y.color;
T.r = b.r,
T.g = b.g,
T.b = b.b,
T.a = b.a,
y.size += y.deltaSize * t,
y.size < 0 && (y.size = 0),
y.rotation += y.deltaRotation * t;
var S = a;
S.set(y.pos),
e.positionType !== h.GROUPED && S.addSelf(y.startPos);
var w = r * m;
this.updateParticleBuffer(y, S, d, w),
++m
} else {
var E = n[m];
m !== n.length - 1 && (n[m] = n[n.length - 1]),
c.put(E),
n.length--
}
}
e._assembler._ia._count = 6 * n.length,
n.length > 0 ? d.uploadData() : this.active || this.readyToPlay || (this.finished = !0,
e._finishedSimulation())
}
,
e.exports = u
}
), {
"../core/platform/js": 214,
"../core/utils/misc": 267
}],
302: [(function(t, e) {
"use strict";
var i = r(t("../core/renderer/assembler"))
, n = r(t("../renderer/core/input-assembler"));
function r(t) {
return t && t.__esModule ? t : {
default: t
}
}
function s(t, e) {
return (s = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
var a = t("./CCParticleSystem")
, o = t("../core/renderer/")
, l = t("../core/renderer/webgl/quad-buffer")
, h = t("../core/renderer/webgl/vertex-format").vfmtPosUvColor
, c = (function(t) {
var e, i;
function r(e) {
var i;
return (i = t.call(this, e) || this)._buffer = null,
i._ia = null,
i._vfmt = h,
i
}
i = t,
(e = r).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
s(e, i);
var a = r.prototype;
return a.getBuffer = function() {
return this._buffer || (this._buffer = new l(o._handle,h),
this._ia = new n.default,
this._ia._vertexBuffer = this._buffer._vb,
this._ia._indexBuffer = this._buffer._ib,
this._ia._start = 0,
this._ia._count = 0),
this._buffer
}
,
a.fillBuffers = function(t, e) {
if (this._ia) {
var i = cc.ParticleSystem.PositionType;
t.positionType === i.RELATIVE ? e.node = t.node.parent : e.node = t.node,
e.material = t._materials[0],
e._flushIA(this._ia)
}
}
,
r
}
)(i.default);
i.default.register(a, c),
e.exports = c
}
), {
"../core/renderer/": 224,
"../core/renderer/assembler": 221,
"../core/renderer/webgl/quad-buffer": 253,
"../core/renderer/webgl/vertex-format": 256,
"../renderer/core/input-assembler": 305,
"./CCParticleSystem": 298
}],
303: [(function(t, e) {
"use strict";
var i, n, r, s, a, o, l, h, c, u, _, f, d, p, m, y, v, g, A, x, b, C, T, S, w, E, M, D, B, I, P, R, O, L, F, V, N, k, G, U, z, H;
(function(t) {
t[t.COMPRESSED_RGB_S3TC_DXT1_EXT = 33776] = "COMPRESSED_RGB_S3TC_DXT1_EXT",
t[t.COMPRESSED_RGBA_S3TC_DXT1_EXT = 33777] = "COMPRESSED_RGBA_S3TC_DXT1_EXT",
t[t.COMPRESSED_RGBA_S3TC_DXT3_EXT = 33778] = "COMPRESSED_RGBA_S3TC_DXT3_EXT",
t[t.COMPRESSED_RGBA_S3TC_DXT5_EXT = 33779] = "COMPRESSED_RGBA_S3TC_DXT5_EXT",
t[t.COMPRESSED_SRGB_S3TC_DXT1_EXT = 35916] = "COMPRESSED_SRGB_S3TC_DXT1_EXT",
t[t.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = 35917] = "COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT",
t[t.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = 35918] = "COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT",
t[t.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = 35919] = "COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT",
t[t.COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 35840] = "COMPRESSED_RGB_PVRTC_4BPPV1_IMG",
t[t.COMPRESSED_RGB_PVRTC_2BPPV1_IMG = 35841] = "COMPRESSED_RGB_PVRTC_2BPPV1_IMG",
t[t.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 35842] = "COMPRESSED_RGBA_PVRTC_4BPPV1_IMG",
t[t.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 35843] = "COMPRESSED_RGBA_PVRTC_2BPPV1_IMG",
t[t.COMPRESSED_RGB_ETC1_WEBGL = 36196] = "COMPRESSED_RGB_ETC1_WEBGL"
}
)(i || (i = {})),
(function(t) {
t[t.UNKNOWN = 0] = "UNKNOWN",
t[t.BUFFER = 1] = "BUFFER",
t[t.TEXTURE = 2] = "TEXTURE",
t[t.TEXTURE_VIEW = 3] = "TEXTURE_VIEW",
t[t.RENDER_PASS = 4] = "RENDER_PASS",
t[t.FRAMEBUFFER = 5] = "FRAMEBUFFER",
t[t.SAMPLER = 6] = "SAMPLER",
t[t.SHADER = 7] = "SHADER",
t[t.PIPELINE_LAYOUT = 8] = "PIPELINE_LAYOUT",
t[t.PIPELINE_STATE = 9] = "PIPELINE_STATE",
t[t.BINDING_LAYOUT = 10] = "BINDING_LAYOUT",
t[t.INPUT_ASSEMBLER = 11] = "INPUT_ASSEMBLER",
t[t.COMMAND_ALLOCATOR = 12] = "COMMAND_ALLOCATOR",
t[t.COMMAND_BUFFER = 13] = "COMMAND_BUFFER",
t[t.QUEUE = 14] = "QUEUE",
t[t.WINDOW = 15] = "WINDOW"
}
)(n || (n = {})),
(function(t) {
t[t.UNREADY = 0] = "UNREADY",
t[t.FAILED = 1] = "FAILED",
t[t.SUCCESS = 2] = "SUCCESS"
}
)(r || (r = {})),
(function() {
function t(t) {
this._gfxType = n.UNKNOWN,
this._status = r.UNREADY,
this._gfxType = t
}
Object.defineProperty(t.prototype, "gfxType", {
get: function() {
return this._gfxType
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(t.prototype, "status", {
get: function() {
return this._status
},
enumerable: !0,
configurable: !0
})
}
)(),
(function(t) {
t.ATTR_POSITION = "a_position",
t.ATTR_NORMAL = "a_normal",
t.ATTR_TANGENT = "a_tangent",
t.ATTR_BITANGENT = "a_bitangent",
t.ATTR_WEIGHTS = "a_weights",
t.ATTR_JOINTS = "a_joints",
t.ATTR_COLOR = "a_color",
t.ATTR_COLOR1 = "a_color1",
t.ATTR_COLOR2 = "a_color2",
t.ATTR_TEX_COORD = "a_texCoord",
t.ATTR_TEX_COORD1 = "a_texCoord1",
t.ATTR_TEX_COORD2 = "a_texCoord2",
t.ATTR_TEX_COORD3 = "a_texCoord3",
t.ATTR_TEX_COORD4 = "a_texCoord4",
t.ATTR_TEX_COORD5 = "a_texCoord5",
t.ATTR_TEX_COORD6 = "a_texCoord6",
t.ATTR_TEX_COORD7 = "a_texCoord7",
t.ATTR_TEX_COORD8 = "a_texCoord8"
}
)(s || (s = {})),
(function(t) {
t[t.UNKNOWN = 0] = "UNKNOWN",
t[t.BOOL = 1] = "BOOL",
t[t.BOOL2 = 2] = "BOOL2",
t[t.BOOL3 = 3] = "BOOL3",
t[t.BOOL4 = 4] = "BOOL4",
t[t.INT = 5] = "INT",
t[t.INT2 = 6] = "INT2",
t[t.INT3 = 7] = "INT3",
t[t.INT4 = 8] = "INT4",
t[t.UINT = 9] = "UINT",
t[t.UINT2 = 10] = "UINT2",
t[t.UINT3 = 11] = "UINT3",
t[t.UINT4 = 12] = "UINT4",
t[t.FLOAT = 13] = "FLOAT",
t[t.FLOAT2 = 14] = "FLOAT2",
t[t.FLOAT3 = 15] = "FLOAT3",
t[t.FLOAT4 = 16] = "FLOAT4",
t[t.COLOR4 = 17] = "COLOR4",
t[t.MAT2 = 18] = "MAT2",
t[t.MAT2X3 = 19] = "MAT2X3",
t[t.MAT2X4 = 20] = "MAT2X4",
t[t.MAT3X2 = 21] = "MAT3X2",
t[t.MAT3 = 22] = "MAT3",
t[t.MAT3X4 = 23] = "MAT3X4",
t[t.MAT4X2 = 24] = "MAT4X2",
t[t.MAT4X3 = 25] = "MAT4X3",
t[t.MAT4 = 26] = "MAT4",
t[t.SAMPLER1D = 27] = "SAMPLER1D",
t[t.SAMPLER1D_ARRAY = 28] = "SAMPLER1D_ARRAY",
t[t.SAMPLER2D = 29] = "SAMPLER2D",
t[t.SAMPLER2D_ARRAY = 30] = "SAMPLER2D_ARRAY",
t[t.SAMPLER3D = 31] = "SAMPLER3D",
t[t.SAMPLER_CUBE = 32] = "SAMPLER_CUBE",
t[t.COUNT = 33] = "COUNT"
}
)(a || (a = {})),
(function(t) {
t[t.UNKNOWN = 0] = "UNKNOWN",
t[t.A8 = 1] = "A8",
t[t.L8 = 2] = "L8",
t[t.LA8 = 3] = "LA8",
t[t.R8 = 4] = "R8",
t[t.R8SN = 5] = "R8SN",
t[t.R8UI = 6] = "R8UI",
t[t.R8I = 7] = "R8I",
t[t.R16F = 8] = "R16F",
t[t.R16UI = 9] = "R16UI",
t[t.R16I = 10] = "R16I",
t[t.R32F = 11] = "R32F",
t[t.R32UI = 12] = "R32UI",
t[t.R32I = 13] = "R32I",
t[t.RG8 = 14] = "RG8",
t[t.RG8SN = 15] = "RG8SN",
t[t.RG8UI = 16] = "RG8UI",
t[t.RG8I = 17] = "RG8I",
t[t.RG16F = 18] = "RG16F",
t[t.RG16UI = 19] = "RG16UI",
t[t.RG16I = 20] = "RG16I",
t[t.RG32F = 21] = "RG32F",
t[t.RG32UI = 22] = "RG32UI",
t[t.RG32I = 23] = "RG32I",
t[t.RGB8 = 24] = "RGB8",
t[t.SRGB8 = 25] = "SRGB8",
t[t.RGB8SN = 26] = "RGB8SN",
t[t.RGB8UI = 27] = "RGB8UI",
t[t.RGB8I = 28] = "RGB8I",
t[t.RGB16F = 29] = "RGB16F",
t[t.RGB16UI = 30] = "RGB16UI",
t[t.RGB16I = 31] = "RGB16I",
t[t.RGB32F = 32] = "RGB32F",
t[t.RGB32UI = 33] = "RGB32UI",
t[t.RGB32I = 34] = "RGB32I",
t[t.RGBA8 = 35] = "RGBA8",
t[t.SRGB8_A8 = 36] = "SRGB8_A8",
t[t.RGBA8SN = 37] = "RGBA8SN",
t[t.RGBA8UI = 38] = "RGBA8UI",
t[t.RGBA8I = 39] = "RGBA8I",
t[t.RGBA16F = 40] = "RGBA16F",
t[t.RGBA16UI = 41] = "RGBA16UI",
t[t.RGBA16I = 42] = "RGBA16I",
t[t.RGBA32F = 43] = "RGBA32F",
t[t.RGBA32UI = 44] = "RGBA32UI",
t[t.RGBA32I = 45] = "RGBA32I",
t[t.R5G6B5 = 46] = "R5G6B5",
t[t.R11G11B10F = 47] = "R11G11B10F",
t[t.RGB5A1 = 48] = "RGB5A1",
t[t.RGBA4 = 49] = "RGBA4",
t[t.RGB10A2 = 50] = "RGB10A2",
t[t.RGB10A2UI = 51] = "RGB10A2UI",
t[t.RGB9E5 = 52] = "RGB9E5",
t[t.D16 = 53] = "D16",
t[t.D16S8 = 54] = "D16S8",
t[t.D24 = 55] = "D24",
t[t.D24S8 = 56] = "D24S8",
t[t.D32F = 57] = "D32F",
t[t.D32F_S8 = 58] = "D32F_S8",
t[t.BC1 = 59] = "BC1",
t[t.BC1_ALPHA = 60] = "BC1_ALPHA",
t[t.BC1_SRGB = 61] = "BC1_SRGB",
t[t.BC1_SRGB_ALPHA = 62] = "BC1_SRGB_ALPHA",
t[t.BC2 = 63] = "BC2",
t[t.BC2_SRGB = 64] = "BC2_SRGB",
t[t.BC3 = 65] = "BC3",
t[t.BC3_SRGB = 66] = "BC3_SRGB",
t[t.BC4 = 67] = "BC4",
t[t.BC4_SNORM = 68] = "BC4_SNORM",
t[t.BC5 = 69] = "BC5",
t[t.BC5_SNORM = 70] = "BC5_SNORM",
t[t.BC6H_UF16 = 71] = "BC6H_UF16",
t[t.BC6H_SF16 = 72] = "BC6H_SF16",
t[t.BC7 = 73] = "BC7",
t[t.BC7_SRGB = 74] = "BC7_SRGB",
t[t.ETC_RGB8 = 75] = "ETC_RGB8",
t[t.ETC2_RGB8 = 76] = "ETC2_RGB8",
t[t.ETC2_SRGB8 = 77] = "ETC2_SRGB8",
t[t.ETC2_RGB8_A1 = 78] = "ETC2_RGB8_A1",
t[t.ETC2_SRGB8_A1 = 79] = "ETC2_SRGB8_A1",
t[t.ETC2_RGBA8 = 80] = "ETC2_RGBA8",
t[t.ETC2_SRGB8_A8 = 81] = "ETC2_SRGB8_A8",
t[t.EAC_R11 = 82] = "EAC_R11",
t[t.EAC_R11SN = 83] = "EAC_R11SN",
t[t.EAC_RG11 = 84] = "EAC_RG11",
t[t.EAC_RG11SN = 85] = "EAC_RG11SN",
t[t.PVRTC_RGB2 = 86] = "PVRTC_RGB2",
t[t.PVRTC_RGBA2 = 87] = "PVRTC_RGBA2",
t[t.PVRTC_RGB4 = 88] = "PVRTC_RGB4",
t[t.PVRTC_RGBA4 = 89] = "PVRTC_RGBA4",
t[t.PVRTC2_2BPP = 90] = "PVRTC2_2BPP",
t[t.PVRTC2_4BPP = 91] = "PVRTC2_4BPP"
}
)(o || (o = {})),
(function(t) {
t[t.NONE = 0] = "NONE",
t[t.TRANSFER_SRC = 1] = "TRANSFER_SRC",
t[t.TRANSFER_DST = 2] = "TRANSFER_DST",
t[t.INDEX = 4] = "INDEX",
t[t.VERTEX = 8] = "VERTEX",
t[t.UNIFORM = 16] = "UNIFORM",
t[t.STORAGE = 32] = "STORAGE",
t[t.INDIRECT = 64] = "INDIRECT"
}
)(l || (l = {})),
(function(t) {
t[t.NONE = 0] = "NONE",
t[t.DEVICE = 1] = "DEVICE",
t[t.HOST = 2] = "HOST"
}
)(h || (h = {})),
(function(t) {
t[t.NONE = 0] = "NONE",
t[t.READ = 1] = "READ",
t[t.WRITE = 2] = "WRITE"
}
)(c || (c = {})),
(function(t) {
t[t.POINT_LIST = 0] = "POINT_LIST",
t[t.LINE_LIST = 1] = "LINE_LIST",
t[t.LINE_STRIP = 2] = "LINE_STRIP",
t[t.LINE_LOOP = 3] = "LINE_LOOP",
t[t.LINE_LIST_ADJACENCY = 4] = "LINE_LIST_ADJACENCY",
t[t.LINE_STRIP_ADJACENCY = 5] = "LINE_STRIP_ADJACENCY",
t[t.ISO_LINE_LIST = 6] = "ISO_LINE_LIST",
t[t.TRIANGLE_LIST = 7] = "TRIANGLE_LIST",
t[t.TRIANGLE_STRIP = 8] = "TRIANGLE_STRIP",
t[t.TRIANGLE_FAN = 9] = "TRIANGLE_FAN",
t[t.TRIANGLE_LIST_ADJACENCY = 10] = "TRIANGLE_LIST_ADJACENCY",
t[t.TRIANGLE_STRIP_ADJACENCY = 11] = "TRIANGLE_STRIP_ADJACENCY",
t[t.TRIANGLE_PATCH_ADJACENCY = 12] = "TRIANGLE_PATCH_ADJACENCY",
t[t.QUAD_PATCH_LIST = 13] = "QUAD_PATCH_LIST"
}
)(u || (u = {})),
(function(t) {
t[t.FILL = 0] = "FILL",
t[t.POINT = 1] = "POINT",
t[t.LINE = 2] = "LINE"
}
)(_ || (_ = {})),
(function(t) {
t[t.GOURAND = 0] = "GOURAND",
t[t.FLAT = 1] = "FLAT"
}
)(f || (f = {})),
(function(t) {
t[t.NONE = 0] = "NONE",
t[t.FRONT = 1] = "FRONT",
t[t.BACK = 2] = "BACK"
}
)(d || (d = {})),
(function(t) {
t[t.NEVER = 0] = "NEVER",
t[t.LESS = 1] = "LESS",
t[t.EQUAL = 2] = "EQUAL",
t[t.LESS_EQUAL = 3] = "LESS_EQUAL",
t[t.GREATER = 4] = "GREATER",
t[t.NOT_EQUAL = 5] = "NOT_EQUAL",
t[t.GREATER_EQUAL = 6] = "GREATER_EQUAL",
t[t.ALWAYS = 7] = "ALWAYS"
}
)(p || (p = {})),
(function(t) {
t[t.ZERO = 0] = "ZERO",
t[t.KEEP = 1] = "KEEP",
t[t.REPLACE = 2] = "REPLACE",
t[t.INCR = 3] = "INCR",
t[t.DECR = 4] = "DECR",
t[t.INVERT = 5] = "INVERT",
t[t.INCR_WRAP = 6] = "INCR_WRAP",
t[t.DECR_WRAP = 7] = "DECR_WRAP"
}
)(m || (m = {})),
(function(t) {
t[t.ADD = 0] = "ADD",
t[t.SUB = 1] = "SUB",
t[t.REV_SUB = 2] = "REV_SUB",
t[t.MIN = 3] = "MIN",
t[t.MAX = 4] = "MAX"
}
)(y || (y = {})),
(function(t) {
t[t.ZERO = 0] = "ZERO",
t[t.ONE = 1] = "ONE",
t[t.SRC_ALPHA = 2] = "SRC_ALPHA",
t[t.DST_ALPHA = 3] = "DST_ALPHA",
t[t.ONE_MINUS_SRC_ALPHA = 4] = "ONE_MINUS_SRC_ALPHA",
t[t.ONE_MINUS_DST_ALPHA = 5] = "ONE_MINUS_DST_ALPHA",
t[t.SRC_COLOR = 6] = "SRC_COLOR",
t[t.DST_COLOR = 7] = "DST_COLOR",
t[t.ONE_MINUS_SRC_COLOR = 8] = "ONE_MINUS_SRC_COLOR",
t[t.ONE_MINUS_DST_COLOR = 9] = "ONE_MINUS_DST_COLOR",
t[t.SRC_ALPHA_SATURATE = 10] = "SRC_ALPHA_SATURATE",
t[t.CONSTANT_COLOR = 11] = "CONSTANT_COLOR",
t[t.ONE_MINUS_CONSTANT_COLOR = 12] = "ONE_MINUS_CONSTANT_COLOR",
t[t.CONSTANT_ALPHA = 13] = "CONSTANT_ALPHA",
t[t.ONE_MINUS_CONSTANT_ALPHA = 14] = "ONE_MINUS_CONSTANT_ALPHA"
}
)(v || (v = {})),
(function(t) {
t[t.NONE = 0] = "NONE",
t[t.R = 1] = "R",
t[t.G = 2] = "G",
t[t.B = 4] = "B",
t[t.A = 8] = "A",
t[t.ALL = 15] = "ALL"
}
)(g || (g = {})),
(function(t) {
t[t.NONE = 0] = "NONE",
t[t.POINT = 1] = "POINT",
t[t.LINEAR = 2] = "LINEAR",
t[t.ANISOTROPIC = 3] = "ANISOTROPIC"
}
)(A || (A = {})),
(function(t) {
t[t.WRAP = 0] = "WRAP",
t[t.MIRROR = 1] = "MIRROR",
t[t.CLAMP = 2] = "CLAMP",
t[t.BORDER = 3] = "BORDER"
}
)(x || (x = {})),
(function(t) {
t[t.TEX1D = 0] = "TEX1D",
t[t.TEX2D = 1] = "TEX2D",
t[t.TEX3D = 2] = "TEX3D"
}
)(b || (b = {})),
(function(t) {
t[t.NONE = 0] = "NONE",
t[t.TRANSFER_SRC = 1] = "TRANSFER_SRC",
t[t.TRANSFER_DST = 2] = "TRANSFER_DST",
t[t.SAMPLED = 4] = "SAMPLED",
t[t.STORAGE = 8] = "STORAGE",
t[t.COLOR_ATTACHMENT = 16] = "COLOR_ATTACHMENT",
t[t.DEPTH_STENCIL_ATTACHMENT = 32] = "DEPTH_STENCIL_ATTACHMENT",
t[t.TRANSIENT_ATTACHMENT = 64] = "TRANSIENT_ATTACHMENT",
t[t.INPUT_ATTACHMENT = 128] = "INPUT_ATTACHMENT"
}
)(C || (C = {})),
(function(t) {
t[t.X1 = 0] = "X1",
t[t.X2 = 1] = "X2",
t[t.X4 = 2] = "X4",
t[t.X8 = 3] = "X8",
t[t.X16 = 4] = "X16",
t[t.X32 = 5] = "X32",
t[t.X64 = 6] = "X64"
}
)(T || (T = {})),
(function(t) {
t[t.NONE = 0] = "NONE",
t[t.GEN_MIPMAP = 1] = "GEN_MIPMAP",
t[t.CUBEMAP = 2] = "CUBEMAP",
t[t.BAKUP_BUFFER = 4] = "BAKUP_BUFFER"
}
)(S || (S = {})),
(function(t) {
t[t.TV1D = 0] = "TV1D",
t[t.TV2D = 1] = "TV2D",
t[t.TV3D = 2] = "TV3D",
t[t.CUBE = 3] = "CUBE",
t[t.TV1D_ARRAY = 4] = "TV1D_ARRAY",
t[t.TV2D_ARRAY = 5] = "TV2D_ARRAY"
}
)(w || (w = {})),
(function(t) {
t[t.VERTEX = 0] = "VERTEX",
t[t.HULL = 1] = "HULL",
t[t.DOMAIN = 2] = "DOMAIN",
t[t.GEOMETRY = 3] = "GEOMETRY",
t[t.FRAGMENT = 4] = "FRAGMENT",
t[t.COMPUTE = 5] = "COMPUTE",
t[t.COUNT = 6] = "COUNT"
}
)(E || (E = {})),
(function(t) {
t[t.UNKNOWN = 0] = "UNKNOWN",
t[t.UNIFORM_BUFFER = 1] = "UNIFORM_BUFFER",
t[t.SAMPLER = 2] = "SAMPLER",
t[t.STORAGE_BUFFER = 3] = "STORAGE_BUFFER"
}
)(M || (M = {})),
(function(t) {
t[t.PRIMARY = 0] = "PRIMARY",
t[t.SECONDARY = 1] = "SECONDARY"
}
)(D || (D = {})),
(function(t) {
t[t.LOAD = 0] = "LOAD",
t[t.CLEAR = 1] = "CLEAR",
t[t.DISCARD = 2] = "DISCARD"
}
)(B || (B = {})),
(function(t) {
t[t.STORE = 0] = "STORE",
t[t.DISCARD = 1] = "DISCARD"
}
)(I || (I = {})),
(function(t) {
t[t.UNDEFINED = 0] = "UNDEFINED",
t[t.GENERAL = 1] = "GENERAL",
t[t.COLOR_ATTACHMENT_OPTIMAL = 2] = "COLOR_ATTACHMENT_OPTIMAL",
t[t.DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3] = "DEPTH_STENCIL_ATTACHMENT_OPTIMAL",
t[t.DEPTH_STENCIL_READONLY_OPTIMAL = 4] = "DEPTH_STENCIL_READONLY_OPTIMAL",
t[t.SHADER_READONLY_OPTIMAL = 5] = "SHADER_READONLY_OPTIMAL",
t[t.TRANSFER_SRC_OPTIMAL = 6] = "TRANSFER_SRC_OPTIMAL",
t[t.TRANSFER_DST_OPTIMAL = 7] = "TRANSFER_DST_OPTIMAL",
t[t.PREINITIALIZED = 8] = "PREINITIALIZED",
t[t.PRESENT_SRC = 9] = "PRESENT_SRC"
}
)(P || (P = {})),
(function(t) {
t[t.GRAPHICS = 0] = "GRAPHICS",
t[t.COMPUTE = 1] = "COMPUTE",
t[t.RAY_TRACING = 2] = "RAY_TRACING"
}
)(R || (R = {})),
(function(t) {
t[t.VIEWPORT = 0] = "VIEWPORT",
t[t.SCISSOR = 1] = "SCISSOR",
t[t.LINE_WIDTH = 2] = "LINE_WIDTH",
t[t.DEPTH_BIAS = 3] = "DEPTH_BIAS",
t[t.BLEND_CONSTANTS = 4] = "BLEND_CONSTANTS",
t[t.DEPTH_BOUNDS = 5] = "DEPTH_BOUNDS",
t[t.STENCIL_WRITE_MASK = 6] = "STENCIL_WRITE_MASK",
t[t.STENCIL_COMPARE_MASK = 7] = "STENCIL_COMPARE_MASK"
}
)(O || (O = {})),
(function(t) {
t[t.FRONT = 0] = "FRONT",
t[t.BACK = 1] = "BACK",
t[t.ALL = 2] = "ALL"
}
)(L || (L = {})),
(function(t) {
t[t.GRAPHICS = 0] = "GRAPHICS",
t[t.COMPUTE = 1] = "COMPUTE",
t[t.TRANSFER = 2] = "TRANSFER"
}
)(F || (F = {})),
(function(t) {
t[t.NONE = 0] = "NONE",
t[t.COLOR = 1] = "COLOR",
t[t.DEPTH = 2] = "DEPTH",
t[t.STENCIL = 4] = "STENCIL",
t[t.DEPTH_STENCIL = 6] = "DEPTH_STENCIL",
t[t.ALL = 7] = "ALL"
}
)(V || (V = {})),
(function(t) {
t[t.DEFAULT = 100] = "DEFAULT"
}
)(N || (N = {})),
(function(t) {
t[t.MIN = 0] = "MIN",
t[t.MAX = 255] = "MAX",
t[t.DEFAULT = 128] = "DEFAULT"
}
)(k || (k = {})),
(function(t) {
t[t.UBO_GLOBAL = 23] = "UBO_GLOBAL",
t[t.UBO_SHADOW = 22] = "UBO_SHADOW",
t[t.UBO_LOCAL = 21] = "UBO_LOCAL",
t[t.UBO_FORWARD_LIGHTS = 20] = "UBO_FORWARD_LIGHTS",
t[t.UBO_SKINNING = 19] = "UBO_SKINNING",
t[t.UBO_SKINNING_TEXTURE = 18] = "UBO_SKINNING_TEXTURE",
t[t.UBO_UI = 17] = "UBO_UI",
t[t.SAMPLER_JOINTS = 25] = "SAMPLER_JOINTS",
t[t.SAMPLER_ENVIRONMENT = 26] = "SAMPLER_ENVIRONMENT",
t[t.CUSTUM_UBO_BINDING_END_POINT = 17] = "CUSTUM_UBO_BINDING_END_POINT",
t[t.CUSTOM_SAMPLER_BINDING_START_POINT = 30] = "CUSTOM_SAMPLER_BINDING_START_POINT"
}
)(G || (G = {})),
(function(t) {
t[t.minFilter = 0] = "minFilter",
t[t.magFilter = 1] = "magFilter",
t[t.mipFilter = 2] = "mipFilter",
t[t.addressU = 3] = "addressU",
t[t.addressV = 4] = "addressV",
t[t.addressW = 5] = "addressW",
t[t.maxAnisotropy = 6] = "maxAnisotropy",
t[t.cmpFunc = 7] = "cmpFunc",
t[t.minLOD = 8] = "minLOD",
t[t.maxLOD = 9] = "maxLOD",
t[t.mipLODBias = 10] = "mipLODBias",
t[t.borderColor = 11] = "borderColor",
t[t.total = 15] = "total"
}
)(H || (H = {}));
var W = {};
W[W.bool = a.BOOL] = "bool",
W[W.int = a.INT] = "int",
W[W.ivec2 = a.INT2] = "ivec2invTypeParams",
W[W.ivec3 = a.INT3] = "ivec3",
W[W.ivec4 = a.INT4] = "ivec4",
W[W.float = a.FLOAT] = "float",
W[W.vec2 = a.FLOAT2] = "vec2",
W[W.vec3 = a.FLOAT3] = "vec3",
W[W.vec4 = a.FLOAT4] = "vec4",
W[W.mat2 = a.MAT2] = "mat2",
W[W.mat3 = a.MAT3] = "mat3",
W[W.mat4 = a.MAT4] = "mat4",
W[W.sampler2D = a.SAMPLER2D] = "sampler2D",
W[W.samplerCube = a.SAMPLER_CUBE] = "samplerCube";
var j = ((U = {})[a.BOOL] = 4,
U[a.INT] = 4,
U[a.INT2] = 8,
U[a.INT3] = 12,
U[a.INT4] = 16,
U[a.FLOAT] = 4,
U[a.FLOAT2] = 8,
U[a.FLOAT3] = 12,
U[a.FLOAT4] = 16,
U[a.MAT2] = 16,
U[a.MAT3] = 36,
U[a.MAT4] = 64,
U[a.SAMPLER2D] = 4,
U[a.SAMPLER_CUBE] = 4,
U)
, X = ((z = {})[a.BOOL] = o.R32I,
z[a.INT] = o.R32I,
z[a.INT2] = o.RG32I,
z[a.INT3] = o.RGB32I,
z[a.INT4] = o.RGBA32I,
z[a.FLOAT] = o.R32F,
z[a.FLOAT2] = o.RG32F,
z[a.FLOAT3] = o.RGB32F,
z[a.FLOAT4] = o.RGBA32F,
z)
, Y = {
BACK: 1029,
FRONT: 1028,
NONE: 0,
ADD: 32774,
SUB: 32778,
REV_SUB: 32779,
ZERO: 0,
ONE: 1,
SRC_COLOR: 768,
ONE_MINUS_SRC_COLOR: 769,
DST_COLOR: 774,
ONE_MINUS_DST_COLOR: 775,
SRC_ALPHA: 770,
ONE_MINUS_SRC_ALPHA: 771,
DST_ALPHA: 772,
ONE_MINUS_DST_ALPHA: 773,
CONSTANT_COLOR: 32769,
ONE_MINUS_CONSTANT_COLOR: 32770,
CONSTANT_ALPHA: 32771,
ONE_MINUS_CONSTANT_ALPHA: 32772,
SRC_ALPHA_SATURATE: 776,
NEVER: 512,
LESS: 513,
EQUAL: 514,
LEQUAL: 515,
GREATER: 516,
NOTEQUAL: 517,
GEQUAL: 518,
ALWAYS: 519,
KEEP: 7680,
REPLACE: 7681,
INCR: 7682,
INCR_WRAP: 34055,
DECR: 7683,
DECR_WRAP: 34056,
INVERT: 5386
};
Object.assign(Y, N);
var q = {
murmurhash2_32_gc: function(t, e) {
for (var i, n = t.length, r = e ^ n, s = 0; 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)
}
return r = 1540483477 * (65535 & (r ^= r >>> 13)) + ((1540483477 * (r >>> 16) & 65535) << 16),
(r ^= r >>> 15) >>> 0
},
SamplerInfoIndex: H,
effectStructure: {
$techniques: [{
$passes: [{
depthStencilState: {},
rasterizerState: {},
blendState: {
targets: [{}]
},
properties: {
any: {
sampler: {},
inspector: {}
}
}
}]
}]
},
typeMap: W,
sizeMap: j,
formatMap: X,
passParams: Y,
RenderQueue: {
OPAQUE: 0,
TRANSPARENT: 1,
OVERLAY: 2
},
RenderPriority: k,
GFXGetTypeSize: function(t) {
switch (t) {
case a.BOOL:
case a.INT:
case a.UINT:
case a.FLOAT:
return 4;
case a.BOOL2:
case a.INT2:
case a.UINT2:
case a.FLOAT2:
return 8;
case a.BOOL3:
case a.INT3:
case a.UINT3:
case a.FLOAT3:
return 12;
case a.BOOL4:
case a.INT4:
case a.UINT4:
case a.FLOAT4:
case a.MAT2:
return 16;
case a.MAT2X3:
return 24;
case a.MAT2X4:
return 32;
case a.MAT3X2:
return 24;
case a.MAT3:
return 36;
case a.MAT3X4:
return 48;
case a.MAT4X2:
case a.MAT4X2:
return 32;
case a.MAT4:
return 64;
case a.SAMPLER1D:
case a.SAMPLER1D_ARRAY:
case a.SAMPLER2D:
case a.SAMPLER2D_ARRAY:
case a.SAMPLER3D:
case a.SAMPLER_CUBE:
return 4;
default:
return 0
}
},
UniformBinding: G
};
e.exports = q
}
), {}],
304: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n = t("../memop")
, r = h(t("../enums"))
, s = t("../../core/value-types")
, a = h(t("./program-lib"))
, o = h(t("./view"))
, l = h(t("../gfx"));
function h(t) {
return t && t.__esModule ? t : {
default: t
}
}
var c = new s.Mat4
, u = new n.RecyclePool(function() {
return {
stage: null,
items: null
}
}
,8)
, _ = new n.RecyclePool(function() {
return new Float32Array(2)
}
,8)
, f = new n.RecyclePool(function() {
return new Float32Array(3)
}
,8)
, d = new n.RecyclePool(function() {
return new Float32Array(4)
}
,8)
, p = new n.RecyclePool(function() {
return new Float32Array(9)
}
,8)
, m = new n.RecyclePool(function() {
return new Float32Array(16)
}
,8)
, y = new n.RecyclePool(function() {
return new Float32Array(64)
}
,8)
, v = new n.RecyclePool(function() {
return new Int32Array(2)
}
,8)
, g = new n.RecyclePool(function() {
return new Int32Array(3)
}
,8)
, A = new n.RecyclePool(function() {
return new Int32Array(4)
}
,8)
, x = new n.RecyclePool(function() {
return new Int32Array(64)
}
,8)
, b = (function() {
function t(t, e) {
var i;
this._device = t,
this._programLib = new a.default(t),
this._opts = e,
this._type2defaultValue = ((i = {})[r.default.PARAM_INT] = 0,
i[r.default.PARAM_INT2] = new s.Vec2(0,0),
i[r.default.PARAM_INT3] = new s.Vec3(0,0,0),
i[r.default.PARAM_INT4] = new s.Vec4(0,0,0,0),
i[r.default.PARAM_FLOAT] = 0,
i[r.default.PARAM_FLOAT2] = new s.Vec2(0,0),
i[r.default.PARAM_FLOAT3] = new s.Vec3(0,0,0),
i[r.default.PARAM_FLOAT4] = new s.Vec4(0,0,0,0),
i[r.default.PARAM_COLOR4] = new s.Color(0,0,0,1),
i[r.default.PARAM_MAT3] = new s.Mat3,
i[r.default.PARAM_MAT4] = new s.Mat4,
i[r.default.PARAM_TEXTURE_2D] = e.defaultTexture,
i[r.default.PARAM_TEXTURE_CUBE] = e.defaultTextureCube,
i),
this._stage2fn = {},
this._usedTextureUnits = 0,
this._viewPools = new n.RecyclePool(function() {
return new o.default
}
,8),
this._drawItemsPools = new n.RecyclePool(function() {
return {
model: null,
node: null,
ia: null,
effect: null,
defines: null,
uniforms: null
}
}
,100),
this._stageItemsPools = new n.RecyclePool(function() {
return new n.RecyclePool(function() {
return {
model: null,
node: null,
ia: null,
effect: null,
defines: null,
passes: [],
sortKey: -1,
uniforms: null
}
}
,100)
}
,16),
this._definesChanged = !1
}
var e = t.prototype;
return e._resetTextuerUnit = function() {
this._usedTextureUnits = 0
}
,
e._allocTextureUnit = function() {
var t = this._device
, e = this._usedTextureUnits;
return e >= t._caps.maxTextureUnits && console.warn("Trying to use " + e + " texture units while this GPU supports only " + t._caps.maxTextureUnits),
this._usedTextureUnits += 1,
e
}
,
e._registerStage = function(t, e) {
this._stage2fn[t] = e
}
,
e.clear = function() {
this._programLib.clear(),
this.reset()
}
,
e.reset = function() {
this._viewPools.reset(),
this._stageItemsPools.reset(),
this._definesChanged = !1
}
,
e._requestView = function() {
return this._viewPools.add()
}
,
e._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 & r.default.CLEAR_COLOR && (n.color = s.Vec4.toArray([], t._color)),
t._clearFlags & r.default.CLEAR_DEPTH && (n.depth = t._depth),
t._clearFlags & r.default.CLEAR_STENCIL && (n.stencil = t._stencil),
i.clear(n),
this._drawItemsPools.reset();
for (var a = 0; a < e._models.length; ++a) {
var o = e._models.data[a];
if (0 != (o._cullingMask & t._cullingMask)) {
var l = this._drawItemsPools.add();
o.extractDrawItem(l)
}
}
u.reset();
for (var h = 0; h < t._stages.length; ++h) {
var c = t._stages[h]
, _ = this._stageItemsPools.add();
_.reset();
for (var f = 0; f < this._drawItemsPools.length; ++f) {
var d = this._drawItemsPools.data[f]
, p = d.effect.stagePasses[c];
if (p && 0 !== p.length) {
var m = _.add();
m.passes = p,
m.model = d.model,
m.node = d.node,
m.ia = d.ia,
m.effect = d.effect,
m.defines = d.defines,
m.sortKey = -1,
m.uniforms = d.uniforms
}
}
var y = u.add();
y.stage = c,
y.items = _
}
for (var v = 0; v < u.length; ++v) {
var g = u.data[v];
(0,
this._stage2fn[g.stage])(t, g.items)
}
}
,
e._setProperty = function(t) {
var e = this._device
, i = t.value;
if (void 0 === i && (i = t.val),
void 0 === i && (i = this._type2defaultValue[t.type]),
void 0 !== i)
if (t.type === r.default.PARAM_TEXTURE_2D || t.type === r.default.PARAM_TEXTURE_CUBE)
if (Array.isArray(i)) {
if (i.length > t.count)
return void console.error("Failed to set property [" + t.name + "] : The length of texture array [" + i.length + "] is bigger than [" + t.count + "].");
for (var n = x.add(), s = 0; s < i.length; ++s)
n[s] = this._allocTextureUnit();
e.setTextureArray(t.name, i, n)
} else
e.setTexture(t.name, i, this._allocTextureUnit());
else
t.directly ? e.setUniformDirectly(t.name, i) : e.setUniform(t.name, i);
else
console.warn("Failed to set technique property " + t.name + ", value not found.")
}
,
e._draw = function(t) {
var e = this._device
, i = this._programLib
, n = t.node
, r = t.ia
, a = t.passes
, o = t.effect;
_.reset(),
f.reset(),
d.reset(),
p.reset(),
m.reset(),
y.reset(),
v.reset(),
g.reset(),
A.reset(),
x.reset(),
n.getWorldMatrix(c),
e.setUniform("cc_matWorld", s.Mat4.toArray(m.add(), c)),
s.Mat4.invert(c, c),
s.Mat4.transpose(c, c),
e.setUniform("cc_matWorldIT", s.Mat4.toArray(m.add(), c));
for (var h = this._defines, u = 0; u < a.length; ++u) {
var b = a[u];
this._definesChanged && (b._programKey = null);
var C = r.count;
r._vertexBuffer && e.setVertexBuffer(0, r._vertexBuffer),
r._indexBuffer && e.setIndexBuffer(r._indexBuffer),
e.setPrimitiveType(r._primitiveType),
Object.setPrototypeOf(h, b._defines);
var T = i.getProgram(b, h, o.name);
e.setProgram(T);
for (var S = T._uniforms, w = b._properties, E = 0; E < S.length; E++) {
var M = w[S[E].name];
void 0 !== M && this._setProperty(M)
}
e.setCullMode(b._cullMode),
b._blend && (e.enableBlend(),
e.setBlendFuncSep(b._blendSrc, b._blendDst, b._blendSrcAlpha, b._blendDstAlpha),
e.setBlendEqSep(b._blendEq, b._blendAlphaEq),
e.setBlendColor32(b._blendColor)),
b._depthTest && (e.enableDepthTest(),
e.setDepthFunc(b._depthFunc)),
b._depthWrite && e.enableDepthWrite(),
e.setStencilTest(b._stencilTest),
b._stencilTest === l.default.STENCIL_ENABLE && (e.setStencilFuncFront(b._stencilFuncFront, b._stencilRefFront, b._stencilMaskFront),
e.setStencilOpFront(b._stencilFailOpFront, b._stencilZFailOpFront, b._stencilZPassOpFront, b._stencilWriteMaskFront),
e.setStencilFuncBack(b._stencilFuncBack, b._stencilRefBack, b._stencilMaskBack),
e.setStencilOpBack(b._stencilFailOpBack, b._stencilZFailOpBack, b._stencilZPassOpBack, b._stencilWriteMaskBack)),
e.draw(r._start, C),
this._resetTextuerUnit()
}
}
,
t
}
)();
i.default = b,
e.exports = i.default
}
), {
"../../core/value-types": 282,
"../enums": 310,
"../gfx": 315,
"../memop": 327,
"./program-lib": 307,
"./view": 309
}],
305: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r = (n = t("../gfx")) && n.__esModule ? n : {
default: n
};
function s(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)
}
}
var a = (function() {
function t(t, e, i) {
void 0 === i && (i = r.default.PT_TRIANGLES),
this._vertexBuffer = t,
this._indexBuffer = e,
this._primitiveType = i,
this._start = 0,
this._count = -1
}
var e, i;
return e = t,
(i = [{
key: "count",
get: function() {
return -1 !== this._count ? this._count : this._indexBuffer ? this._indexBuffer.count : this._vertexBuffer ? this._vertexBuffer.count : 0
}
}]) && s(e.prototype, i),
t
}
)();
i.default = a,
e.exports = i.default
}
), {
"../gfx": 315
}],
306: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n = a(t("../gfx"))
, r = a(t("../enums"))
, s = a(t("../../core/value-types/value-type"));
function a(t) {
return t && t.__esModule ? t : {
default: t
}
}
var o = (function() {
function t(t, e, i, r, s, a) {
void 0 === s && (s = {}),
void 0 === a && (a = {}),
this._name = t,
this._detailName = e,
this._programName = i,
this._programKey = null,
this._stage = r,
this._properties = s,
this._defines = a,
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
}
var e = t.prototype;
return e.setCullMode = function(t) {
void 0 === t && (t = n.default.CULL_BACK),
this._cullMode = t
}
,
e.setBlend = function(t, e, i, r, s, a, o, l) {
void 0 === t && (t = !1),
void 0 === e && (e = n.default.BLEND_FUNC_ADD),
void 0 === i && (i = n.default.BLEND_SRC_ALPHA),
void 0 === r && (r = n.default.BLEND_ONE_MINUS_SRC_ALPHA),
void 0 === s && (s = n.default.BLEND_FUNC_ADD),
void 0 === a && (a = n.default.BLEND_SRC_ALPHA),
void 0 === o && (o = n.default.BLEND_ONE_MINUS_SRC_ALPHA),
void 0 === l && (l = 4294967295),
this._blend = t,
this._blendEq = e,
this._blendSrc = i,
this._blendDst = r,
this._blendAlphaEq = s,
this._blendSrcAlpha = a,
this._blendDstAlpha = o,
this._blendColor = l
}
,
e.setDepth = function(t, e, i) {
void 0 === t && (t = !1),
void 0 === e && (e = !1),
void 0 === i && (i = n.default.DS_FUNC_LESS),
this._depthTest = t,
this._depthWrite = e,
this._depthFunc = i
}
,
e.setStencilFront = function(t, e, i, r, s, a, o, l) {
void 0 === t && (t = n.default.STENCIL_INHERIT),
void 0 === e && (e = n.default.DS_FUNC_ALWAYS),
void 0 === i && (i = 0),
void 0 === r && (r = 255),
void 0 === s && (s = n.default.STENCIL_OP_KEEP),
void 0 === a && (a = n.default.STENCIL_OP_KEEP),
void 0 === o && (o = n.default.STENCIL_OP_KEEP),
void 0 === l && (l = 255),
this._stencilTest = t,
this._stencilFuncFront = e,
this._stencilRefFront = i,
this._stencilMaskFront = r,
this._stencilFailOpFront = s,
this._stencilZFailOpFront = a,
this._stencilZPassOpFront = o,
this._stencilWriteMaskFront = l
}
,
e.setStencilEnabled = function(t) {
void 0 === t && (t = n.default.STENCIL_INHERIT),
this._stencilTest = t
}
,
e.setStencilBack = function(t, e, i, r, s, a, o, l) {
void 0 === t && (t = n.default.STENCIL_INHERIT),
void 0 === e && (e = n.default.DS_FUNC_ALWAYS),
void 0 === i && (i = 0),
void 0 === r && (r = 255),
void 0 === s && (s = n.default.STENCIL_OP_KEEP),
void 0 === a && (a = n.default.STENCIL_OP_KEEP),
void 0 === o && (o = n.default.STENCIL_OP_KEEP),
void 0 === l && (l = 255),
this._stencilTest = t,
this._stencilFuncBack = e,
this._stencilRefBack = i,
this._stencilMaskBack = r,
this._stencilFailOpBack = s,
this._stencilZFailOpBack = a,
this._stencilZPassOpBack = o,
this._stencilWriteMaskBack = l
}
,
e.setStage = function(t) {
this._stage = t
}
,
e.setProperties = function(t) {
this._properties = t
}
,
e.getProperty = function(t) {
if (this._properties[t])
return this._properties[t].value
}
,
e.setProperty = function(t, e, i) {
var n = this._properties[t];
if (!n)
return !1;
if (n.directly = i,
Array.isArray(e)) {
var a = n.value;
if (a.length !== e.length)
return void cc.warnID(9105, this._name, t);
for (var o = 0; o < e.length; o++)
a[o] = e[o]
} else
e && !ArrayBuffer.isView(e) ? n.type === r.default.PARAM_TEXTURE_2D ? n.value = e.getImpl() : e instanceof s.default ? e.constructor.toArray(n.value, e) : ("object" == typeof e && cc.warnID(9106, this._name, t),
n.value = e) : n.value = e;
return !0
}
,
e.getDefine = function(t) {
return this._defines[t]
}
,
e.define = function(t, e, i) {
var n = this._defines[t];
return !(!i && void 0 === n || (n !== e && (this._defines[t] = e,
this._programKey = null),
0))
}
,
e.clone = function() {
var e = new t(this._programName);
Object.assign(e, this);
var i = {}
, n = this._properties;
for (var r in n) {
var s = n[r]
, a = i[r] = {}
, o = s.value;
for (var l in Array.isArray(o) ? a.value = o.concat() : ArrayBuffer.isView(o) ? a.value = new o.__proto__.constructor(o) : a.value = o,
s)
"value" !== l && (a[l] = s[l])
}
return e._properties = i,
e._defines = Object.assign({}, this._defines),
e
}
,
t
}
)();
i.default = o,
e.exports = i.default
}
), {
"../../core/value-types/value-type": 290,
"../enums": 310,
"../gfx": 315
}],
307: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r = (n = t("../gfx")) && n.__esModule ? n : {
default: n
}, s = 0;
function a(t, e) {
for (var i = [], n = 0; n < t.length; n++) {
var r = t[n].name
, s = e[r];
"number" != typeof s && (s = s ? 1 : 0),
i.push("#define " + r + " " + s)
}
return i.join("\n") + "\n"
}
function o(t, e, i) {
for (var n = t, r = 0; r < e.length; r++) {
var s = e[r].name
, a = i[s];
if (Number.isInteger(a)) {
var o = new RegExp(s,"g");
n = n.replace(o, a)
}
}
return n
}
function l(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 = ""
, a = parseInt(i)
, o = parseInt(n);
(a.isNaN || o.isNaN) && console.error("Unroll For Loops Error: begin and end of range must be an int num.");
for (var l = a; l < o; ++l)
s += r.replace(new RegExp("{" + e + "}","g"), l);
return s
}
))
}
function h(t) {
return t.replace(/\bhighp\b/g, "mediump")
}
var c = (function() {
function t(t) {
this._device = t,
this._templates = {},
this._cache = {},
this._checkPrecision()
}
var e = t.prototype;
return e.clear = function() {
this._templates = {},
this._cache = {}
}
,
e.define = function(t) {
var e = t.name
, i = t.defines
, n = t.glsl1 || t
, r = n.vert
, a = n.frag;
if (!this._templates[e]) {
for (var o = ++s, l = 0, h = 0; h < i.length; ++h) {
var c = i[h]
, u = 1;
if ("number" === c.type) {
var _ = c.range || [];
c.min = _[0] || 0,
c.max = _[1] || 4,
u = Math.ceil(Math.log2(c.max - c.min)),
c._map = function(t) {
return t - this.min << this._offset
}
.bind(c)
} else
c._map = function(t) {
return t ? 1 << this._offset : 0
}
.bind(c);
c._offset = l,
l += u
}
var f = t.uniforms || [];
if (t.samplers)
for (var d = 0; d < t.samplers.length; d++)
f.push(t.samplers[d]);
if (t.blocks)
for (var p = 0; p < t.blocks.length; p++)
for (var m = t.blocks[p].defines, y = t.blocks[p].members, v = 0; v < y.length; v++)
f.push({
defines: m,
name: y[v].name,
type: y[v].type
});
this._templates[e] = {
id: o,
name: e,
vert: r,
frag: a,
defines: i,
attributes: t.attributes,
uniforms: f,
extensions: t.extensions
}
}
}
,
e.getTemplate = function(t) {
return this._templates[t]
}
,
e.hasProgram = function(t) {
return void 0 !== this._templates[t]
}
,
e.getKey = function(t, e) {
for (var i = this._templates[t], n = 0, r = 0; r < i.defines.length; ++r) {
var s = i.defines[r]
, a = e[s.name];
void 0 !== a && (n |= s._map(a))
}
return i.id + ":" + n
}
,
e.getProgram = function(t, e, i) {
var n = t._programKey = t._programKey || this.getKey(t._programName, e)
, s = this._cache[n];
if (s)
return s;
var c = this._templates[t._programName]
, u = a(c.defines, e)
, _ = o(c.vert, c.defines, e);
_ = u + l(_),
this._highpSupported || (_ = h(_));
var f = o(c.frag, c.defines, e);
f = u + l(f),
this._highpSupported || (f = h(f));
var d = (s = new r.default.Program(this._device,{
vert: _,
frag: f
})).link();
if (d) {
var p = _.split("\n")
, m = f.split("\n")
, y = c.defines.length;
d.forEach((function(t) {
var e = t.line - 1
, n = t.line - y
, r = ("vs" === t.type ? p : m)[e]
, s = t.info || "Failed to compile " + t.type + " " + t.fileID + " (ln " + n + "): \n " + t.message + ": \n " + r;
cc.error(i + " : " + s)
}
))
}
return this._cache[n] = s,
s
}
,
e._checkPrecision = function() {
var t = this._device._gl
, e = !1;
if (t.getShaderPrecisionFormat) {
var i = t.getShaderPrecisionFormat(t.VERTEX_SHADER, t.HIGH_FLOAT)
, n = t.getShaderPrecisionFormat(t.FRAGMENT_SHADER, t.HIGH_FLOAT);
e = i && i.precision > 0 && n && n.precision > 0
}
e || cc.warnID(9102),
this._highpSupported = e
}
,
t
}
)();
i.default = c,
e.exports = i.default
}
), {
"../gfx": 315
}],
308: [(function(t, e, i) {
"use strict";
function n(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)
}
}
i.__esModule = !0,
i.default = void 0;
var r = (function() {
function t(t, e) {
this._name = t,
this._passes = e
}
var e, i;
return t.prototype.clone = function() {
for (var e = [], i = 0; i < this._passes.length; i++)
e.push(this._passes[i].clone());
return new t(this._name,e)
}
,
e = t,
(i = [{
key: "name",
get: function() {
return this._name
}
}, {
key: "passes",
get: function() {
return this._passes
}
}]) && n(e.prototype, i),
t
}
)();
i.default = r,
e.exports = i.default
}
), {}],
309: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r = t("../../core/value-types"), s = (n = t("../enums")) && n.__esModule ? n : {
default: n
}, a = new r.Mat4, o = 0, l = (function() {
function t() {
this._id = o++,
this._priority = 0,
this._rect = {
x: 0,
y: 0,
w: 1,
h: 1
},
this._color = new r.Vec4(.3,.3,.3,1),
this._depth = 1,
this._stencil = 0,
this._clearFlags = s.default.CLEAR_COLOR | s.default.CLEAR_DEPTH,
this._clearModel = null,
this._matView = cc.mat4(),
this._matViewInv = cc.mat4(),
this._matProj = cc.mat4(),
this._matViewProj = cc.mat4(),
this._matInvViewProj = cc.mat4(),
this._stages = [],
this._cullingByID = !1,
this._framebuffer = null,
this._shadowLight = null,
this._cullingMask = 4294967295
}
var e = t.prototype;
return e.getForward = function(t) {
var e = this._matView.m;
return r.Vec3.set(t, -e[2], -e[6], -e[10])
}
,
e.getPosition = function(t) {
return r.Mat4.invert(a, this._matView),
r.Mat4.getTranslation(t, a)
}
,
t
}
)();
i.default = l,
e.exports = i.default
}
), {
"../../core/value-types": 282,
"../enums": 310
}],
310: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n = t("./build/mappings")
, r = {
PROJ_PERSPECTIVE: 0,
PROJ_ORTHO: 1,
LIGHT_DIRECTIONAL: 0,
LIGHT_POINT: 1,
LIGHT_SPOT: 2,
LIGHT_AMBIENT: 3,
SHADOW_NONE: 0,
SHADOW_HARD: 1,
SHADOW_SOFT: 2,
PARAM_INT: n.typeMap.int,
PARAM_INT2: n.typeMap.ivec2,
PARAM_INT3: n.typeMap.ivec3,
PARAM_INT4: n.typeMap.ivec4,
PARAM_FLOAT: n.typeMap.float,
PARAM_FLOAT2: n.typeMap.vec2,
PARAM_FLOAT3: n.typeMap.vec3,
PARAM_FLOAT4: n.typeMap.vec4,
PARAM_MAT2: n.typeMap.mat2,
PARAM_MAT3: n.typeMap.mat3,
PARAM_MAT4: n.typeMap.mat4,
PARAM_TEXTURE_2D: n.typeMap.sampler2D,
PARAM_TEXTURE_CUBE: n.typeMap.samplerCube,
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
};
i.default = r,
e.exports = i.default
}
), {
"./build/mappings": 303
}],
311: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r, s = h(t("./state")), a = t("./enums"), o = h(t("./texture-2d")), l = h(t("./texture-cube"));
function h(t) {
return t && t.__esModule ? t : {
default: t
}
}
function c(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)
}
}
var u = ((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)
, _ = ((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 f(t, e, i) {
if (e.blend !== i.blend)
return i.blend ? (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),
void (i.blendSep ? (t.blendFuncSeparate(i.blendSrc, i.blendDst, i.blendSrcAlpha, i.blendDstAlpha),
t.blendEquationSeparate(i.blendEq, i.blendAlphaEq)) : (t.blendFunc(i.blendSrc, i.blendDst),
t.blendEquation(i.blendEq)))) : void t.disable(t.BLEND);
!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),
e.blendSep === i.blendSep ? 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)) : (e.blendSrc === i.blendSrc && e.blendDst === i.blendDst || t.blendFunc(i.blendSrc, i.blendDst),
e.blendEq !== i.blendEq && t.blendEquation(i.blendEq)) : i.blendSep ? (t.blendFuncSeparate(i.blendSrc, i.blendDst, i.blendSrcAlpha, i.blendDstAlpha),
t.blendEquationSeparate(i.blendEq, i.blendAlphaEq)) : (t.blendFunc(i.blendSrc, i.blendDst),
t.blendEquation(i.blendEq)))
}
function d(t, e, i) {
if (e.depthTest !== i.depthTest)
return i.depthTest ? (t.enable(t.DEPTH_TEST),
t.depthFunc(i.depthFunc),
void t.depthMask(i.depthWrite)) : void t.disable(t.DEPTH_TEST);
e.depthWrite !== i.depthWrite && t.depthMask(i.depthWrite),
!1 !== i.depthTest ? e.depthFunc !== i.depthFunc && t.depthFunc(i.depthFunc) : i.depthWrite && (i.depthTest = !0,
i.depthFunc = a.enums.DS_FUNC_ALWAYS,
t.enable(t.DEPTH_TEST),
t.depthFunc(i.depthFunc))
}
function p(t, e, i) {
if (i.stencilTest !== a.enums.STENCIL_INHERIT)
return i.stencilTest !== e.stencilTest ? i.stencilTest === a.enums.STENCIL_DISABLE ? void t.disable(t.STENCIL_TEST) : (t.enable(t.STENCIL_TEST),
void (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)) : (t.stencilFunc(i.stencilFuncFront, i.stencilRefFront, i.stencilMaskFront),
t.stencilMask(i.stencilWriteMaskFront),
t.stencilOp(i.stencilFailOpFront, i.stencilZFailOpFront, i.stencilZPassOpFront)))) : void (i.stencilTest !== a.enums.STENCIL_DISABLE && (e.stencilSep === i.stencilSep ? 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)) : (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)) : 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)) : (t.stencilFunc(i.stencilFuncFront, i.stencilRefFront, i.stencilMaskFront),
t.stencilMask(i.stencilWriteMaskFront),
t.stencilOp(i.stencilFailOpFront, i.stencilZFailOpFront, i.stencilZPassOpFront))))
}
function m(t, e, i) {
e.cullMode !== i.cullMode && (i.cullMode !== a.enums.CULL_NONE ? (t.enable(t.CULL_FACE),
t.cullFace(i.cullMode)) : 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 a = 0; a < t._caps.maxVertexAttribs; ++a)
t._newAttributes[a] = 0;
for (var o = 0; o < n.maxStream + 1; ++o) {
var l = n.vertexBuffers[o]
, h = n.vertexBufferOffsets[o];
if (l && -1 !== l._glID) {
e.bindBuffer(e.ARRAY_BUFFER, l._glID);
for (var c = 0; c < n.program._attributes.length; ++c) {
var u = n.program._attributes[c]
, _ = l._format.element(u.name);
_ ? (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 + h * _.stride)) : console.warn("Can not find vertex attribute: " + u.name)
}
}
}
for (var f = 0; f < t._caps.maxVertexAttribs; ++f)
t._enabledAttributes[f] !== t._newAttributes[f] && (e.disableVertexAttribArray(f),
t._enabledAttributes[f] = 0)
}
}
}
function v(t, e, i) {
for (var n = 0; n < i.maxTextureSlot + 1; ++n)
if (e.textureUnits[n] !== i.textureUnits[n]) {
var r = i.textureUnits[n];
r && -1 !== r._glID && (t.activeTexture(t.TEXTURE0 + n),
t.bindTexture(r._target, r._glID))
}
}
function g(t, e, i, n) {
void 0 === n && (n = 0),
i instanceof o.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 A = (function() {
function t(t, e) {
var i;
void 0 === (e = e || {}).alpha && (e.alpha = !1),
void 0 === e.stencil && (e.stencil = !0),
void 0 === e.depth && (e.depth = !0),
void 0 === e.antialias && (e.antialias = !1),
void 0 === e.preserveDrawingBuffer && (e.preserveDrawingBuffer = !1);
try {
i = t.getContext("webgl", e) || t.getContext("experimental-webgl", e) || t.getContext("webkit-3d", e) || t.getContext("moz-webgl", e)
} catch (r) {
return void console.error(r)
}
i || console.error("This device does not support webgl"),
this._gl = i,
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(),
s.default.initDefault(this),
this._current = new s.default(this),
this._next = new s.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 n = 0; n < this._caps.maxVertexAttribs; ++n)
this._enabledAttributes[n] = 0,
this._newAttributes[n] = 0
}
var e, i, n = t.prototype;
return n._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 a = e.getExtension(r[s] + n);
if (a) {
this._extensions[n] = a;
break
}
} catch (o) {
console.error(o)
}
}
,
n._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
}
,
n._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)
}
,
n._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)
}
,
n._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)
}
,
n.ext = function(t) {
return this._extensions[t]
}
,
n.allowFloatTexture = function() {
return null != this.ext("OES_texture_float")
}
,
n.setFrameBuffer = function(t) {
if (this._framebuffer !== t) {
this._framebuffer = t;
var e = this._gl;
if (t) {
e.bindFramebuffer(e.FRAMEBUFFER, t._glID);
for (var i = t._colors.length, n = 0; n < i; ++n) {
var r = t._colors[n];
g(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 && g(e, e.DEPTH_ATTACHMENT, t._depth),
t._stencil && g(e, e.STENCIL_ATTACHMENT, t._stencil),
t._depthStencil && g(e, e.DEPTH_STENCIL_ATTACHMENT, t._depthStencil)
} else
e.bindFramebuffer(e.FRAMEBUFFER, null)
}
}
,
n.setViewport = function(t, e, i, n) {
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)
}
,
n.setScissor = function(t, e, i, n) {
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)
}
,
n.clear = function(t) {
if (void 0 !== t.color || void 0 !== t.depth || void 0 !== t.stencil) {
var e = this._gl
, i = 0;
void 0 !== t.color && (i |= e.COLOR_BUFFER_BIT,
e.clearColor(t.color[0], t.color[1], t.color[2], t.color[3])),
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)),
void 0 !== t.stencil && (i |= e.STENCIL_BUFFER_BIT,
e.clearStencil(t.stencil)),
e.clear(i),
void 0 !== t.depth && (!1 === this._current.depthTest ? e.disable(e.DEPTH_TEST) : (!1 === this._current.depthWrite && e.depthMask(!1),
this._current.depthFunc !== a.enums.DS_FUNC_ALWAYS && e.depthFunc(this._current.depthFunc)))
}
}
,
n.enableBlend = function() {
this._next.blend = !0
}
,
n.enableDepthTest = function() {
this._next.depthTest = !0
}
,
n.enableDepthWrite = function() {
this._next.depthWrite = !0
}
,
n.setStencilTest = function(t) {
this._next.stencilTest = t
}
,
n.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
}
,
n.setStencilFuncFront = function(t, e, i) {
this._next.stencilSep = !0,
this._next.stencilFuncFront = t,
this._next.stencilRefFront = e,
this._next.stencilMaskFront = i
}
,
n.setStencilFuncBack = function(t, e, i) {
this._next.stencilSep = !0,
this._next.stencilFuncBack = t,
this._next.stencilRefBack = e,
this._next.stencilMaskBack = i
}
,
n.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
}
,
n.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
}
,
n.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
}
,
n.setDepthFunc = function(t) {
this._next.depthFunc = t
}
,
n.setBlendColor32 = function(t) {
this._next.blendColor = t
}
,
n.setBlendColor = function(t, e, i, n) {
this._next.blendColor = (255 * t << 24 | 255 * e << 16 | 255 * i << 8 | 255 * n) >>> 0
}
,
n.setBlendFunc = function(t, e) {
this._next.blendSep = !1,
this._next.blendSrc = t,
this._next.blendDst = e
}
,
n.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
}
,
n.setBlendEq = function(t) {
this._next.blendSep = !1,
this._next.blendEq = t
}
,
n.setBlendEqSep = function(t, e) {
this._next.blendSep = !0,
this._next.blendEq = t,
this._next.blendAlphaEq = e
}
,
n.setCullMode = function(t) {
this._next.cullMode = t
}
,
n.setVertexBuffer = function(t, e, i) {
void 0 === i && (i = 0),
this._next.vertexBuffers[t] = e,
this._next.vertexBufferOffsets[t] = i,
this._next.maxStream < t && (this._next.maxStream = t)
}
,
n.setIndexBuffer = function(t) {
this._next.indexBuffer = t
}
,
n.setProgram = function(t) {
this._next.program = t
}
,
n.setTexture = function(t, e, i) {
i >= this._caps.maxTextureUnits ? console.warn("Can not set texture " + t + " at stage " + i + ", max texture exceed: " + this._caps.maxTextureUnits) : (this._next.textureUnits[i] = e,
this.setUniform(t, i),
this._next.maxTextureSlot < i && (this._next.maxTextureSlot = i))
}
,
n.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._next.maxTextureSlot < s && (this._next.maxTextureSlot = s)
}
this.setUniform(t, i)
}
}
,
n.setUniform = function(t, e) {
var i = this._uniforms[t]
, n = !1
, r = !1
, s = !1
, a = !1;
do {
if (!i)
break;
if (s = Array.isArray(e) || e instanceof Float32Array,
a = e instanceof Int32Array,
r = s || a,
i.isArray !== r)
break;
if (i.isArray && i.value.length !== e.length)
break;
n = !0
} while (0);if (n) {
var o = i.value
, l = !1;
if (i.isArray)
for (var h = 0, c = o.length; h < c; h++)
o[h] !== e[h] && (l = !0,
o[h] = e[h]);
else
o !== e && (l = !0,
i.value = e);
l && (i.dirty = !0)
} else {
var u = e;
s ? u = new Float32Array(e) : a && (u = new Int32Array(e)),
i = {
dirty: !0,
value: u,
isArray: r
}
}
this._uniforms[t] = i
}
,
n.setUniformDirectly = function(t, e) {
var i = this._uniforms[t];
i || (this._uniforms[t] = i = {}),
i.dirty = !0,
i.value = e
}
,
n.setPrimitiveType = function(t) {
this._next.primitiveType = t
}
,
n.resetDrawCalls = function() {
this._stats.drawcalls = 0
}
,
n.getDrawCalls = function() {
return this._stats.drawcalls
}
,
n.draw = function(t, e) {
var i = this._gl
, n = this._current
, r = this._next;
f(i, n, r),
d(i, n, r),
p(i, n, r),
m(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;
n.program !== r.program && (r.program._linked ? i.useProgram(r.program._glID) : console.warn("Failed to use program: has not linked yet."),
s = !0),
v(i, n, r);
for (var a = 0; a < r.program._uniforms.length; ++a) {
var o = r.program._uniforms[a]
, l = this._uniforms[o.name];
if (l && (s || l.dirty)) {
l.dirty = !1;
var h = void 0 === o.size ? u[o.type] : _[o.type];
h ? h(i, o.location, l.value) : console.warn("Can not find commit function for uniform " + o.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++),
n.set(r),
r.reset()
}
,
e = t,
(i = [{
key: "caps",
get: function() {
return this._caps
}
}]) && c(e.prototype, i),
t
}
)();
i.default = A,
e.exports = i.default
}
), {
"./enums": 312,
"./state": 319,
"./texture-2d": 320,
"./texture-cube": 321
}],
312: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.attrTypeBytes = function(t) {
return t === s.ATTR_TYPE_INT8 ? 1 : t === s.ATTR_TYPE_UINT8 ? 1 : t === s.ATTR_TYPE_INT16 ? 2 : t === s.ATTR_TYPE_UINT16 ? 2 : t === s.ATTR_TYPE_INT32 ? 4 : t === s.ATTR_TYPE_UINT32 ? 4 : t === s.ATTR_TYPE_FLOAT32 ? 4 : (console.warn("Unknown ATTR_TYPE: " + t),
0)
}
,
i.glFilter = function(t, e, i) {
void 0 === i && (i = -1);
var r = n[e][i + 1];
return void 0 === r ? (console.warn("Unknown FILTER: " + e),
-1 === i ? t.LINEAR : t.LINEAR_MIPMAP_LINEAR) : r
}
,
i.glTextureFmt = function(t) {
var e = r[t];
return void 0 === e ? (console.warn("Unknown TEXTURE_FMT: " + t),
r[s.TEXTURE_FMT_RGBA8]) : e
}
,
i.enums = void 0;
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 = {
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_TEX_COORD: "a_texCoord",
ATTR_TEX_COORD1: "a_texCoord1",
ATTR_TEX_COORD2: "a_texCoord2",
ATTR_TEX_COORD3: "a_texCoord3",
ATTR_TEX_COORD4: "a_texCoord4",
ATTR_TEX_COORD5: "a_texCoord5",
ATTR_TEX_COORD6: "a_texCoord6",
ATTR_TEX_COORD7: "a_texCoord7",
ATTR_TEX_COORD8: "a_texCoord8",
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
};
i.enums = s
}
), {}],
313: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n = (function() {
function t(t, e, i, n) {
this._device = t,
this._width = e,
this._height = i,
this._colors = n.colors || [],
this._depth = n.depth || null,
this._stencil = n.stencil || null,
this._depthStencil = n.depthStencil || null,
this._glID = t._gl.createFramebuffer()
}
var e = t.prototype;
return e.destroy = function() {
null !== this._glID ? (this._device._gl.deleteFramebuffer(this._glID),
this._glID = null) : console.error("The frame-buffer already destroyed")
}
,
e.getHandle = function() {
return this._glID
}
,
t
}
)();
i.default = n,
e.exports = i.default
}
), {}],
314: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r = t("./enums");
function s(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)
}
}
var a = ((n = {})[r.enums.INDEX_FMT_UINT8] = 1,
n[r.enums.INDEX_FMT_UINT16] = 2,
n[r.enums.INDEX_FMT_UINT32] = 4,
n)
, o = (function() {
function t(t, e, i, n) {
this._device = t,
this._format = e,
this._usage = i,
this._bytesPerIndex = a[e],
this._bytes = n.byteLength,
this._numIndices = this._bytes / this._bytesPerIndex,
this._needExpandDataStore = !0,
this._glID = t._gl.createBuffer(),
this.update(0, n),
t._stats.ib += this._bytes
}
var e, i, n = t.prototype;
return n.destroy = function() {
-1 !== this._glID ? (this._device._gl.deleteBuffer(this._glID),
this._device._stats.ib -= this.bytes,
this._glID = -1) : console.error("The buffer already destroyed")
}
,
n.update = function(t, e) {
if (-1 !== this._glID) {
if (0 !== e.byteLength) {
if (t + e.byteLength > this._bytes) {
if (t)
return void console.error("Failed to update data, bytes exceed.");
this._needExpandDataStore = !0,
this._bytes = t + e.byteLength,
this._numIndices = this._bytes / this._bytesPerIndex
}
var i = this._device._gl
, n = this._usage;
i.bindBuffer(i.ELEMENT_ARRAY_BUFFER, this._glID),
this._needExpandDataStore ? (i.bufferData(i.ELEMENT_ARRAY_BUFFER, e, n),
this._needExpandDataStore = !1) : i.bufferSubData(i.ELEMENT_ARRAY_BUFFER, t, e),
this._device._restoreIndexBuffer()
}
} else
console.error("The buffer is destroyed")
}
,
n.setUsage = function(t) {
this._usage = t
}
,
e = t,
(i = [{
key: "count",
get: function() {
return this._numIndices
}
}]) && s(e.prototype, i),
t
}
)();
o.BYTES_PER_INDEX = a;
var l = o;
i.default = l,
e.exports = i.default
}
), {
"./enums": 312
}],
315: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r = t("./enums");
n = {
VertexFormat: t("./vertex-format"),
IndexBuffer: t("./index-buffer"),
VertexBuffer: t("./vertex-buffer"),
Program: t("./program"),
Texture: t("./texture"),
Texture2D: t("./texture-2d"),
TextureCube: t("./texture-cube"),
RenderBuffer: t("./render-buffer"),
FrameBuffer: t("./frame-buffer"),
Device: t("./device"),
attrTypeBytes: r.attrTypeBytes,
glFilter: r.glFilter,
glTextureFmt: r.glTextureFmt
},
Object.assign(n, r.enums);
var s = n;
i.default = s,
cc.gfx = n,
e.exports = i.default
}
), {
"./device": 311,
"./enums": 312,
"./frame-buffer": 313,
"./index-buffer": 314,
"./program": 317,
"./render-buffer": 318,
"./texture": 322,
"./texture-2d": 320,
"./texture-cube": 321,
"./vertex-buffer": 323,
"./vertex-format": 324
}],
316: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.isPow2 = function(t) {
return !(t & t - 1 || !t)
}
}
), {}],
317: [(function(t, e, i) {
"use strict";
function n(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)
}
}
i.__esModule = !0,
i.default = void 0;
var r = 0;
function s(t, e, i) {
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(t, e) {
this._device = t,
this._attributes = [],
this._uniforms = [],
this._samplers = [],
this._errors = [],
this._linked = !1,
this._vertSource = e.vert,
this._fragSource = e.frag,
this._glID = null,
this._id = r++
}
var e, i, a = t.prototype;
return a.link = function() {
if (!this._linked) {
var t = this._device._gl
, e = o(t, t.VERTEX_SHADER, this._vertSource)
, i = o(t, t.FRAGMENT_SHADER, this._fragSource)
, n = t.createProgram();
t.attachShader(n, e),
t.attachShader(n, i),
t.linkProgram(n);
var r = !1
, a = this._errors;
if (t.getShaderParameter(e, t.COMPILE_STATUS) || (s(a, "vs", t.getShaderInfoLog(e)),
r = !0),
t.getShaderParameter(i, t.COMPILE_STATUS) || (s(a, "fs", t.getShaderInfoLog(i)),
r = !0),
t.deleteShader(e),
t.deleteShader(i),
r)
return a;
if (!t.getProgramParameter(n, t.LINK_STATUS))
return a.push({
info: "Failed to link shader program: " + t.getProgramInfoLog(n)
}),
a;
this._glID = n;
for (var l = t.getProgramParameter(n, t.ACTIVE_ATTRIBUTES), h = 0; h < l; ++h) {
var c = t.getActiveAttrib(n, h)
, u = t.getAttribLocation(n, c.name);
this._attributes.push({
name: c.name,
location: u,
type: c.type
})
}
for (var _ = t.getProgramParameter(n, t.ACTIVE_UNIFORMS), f = 0; f < _; ++f) {
var d = t.getActiveUniform(n, f)
, p = d.name
, m = t.getUniformLocation(n, p)
, y = "[0]" === p.substr(p.length - 3);
y && (p = p.substr(0, p.length - 3));
var v = {
name: p,
location: m,
type: d.type,
size: y ? d.size : void 0
};
this._uniforms.push(v)
}
this._linked = !0
}
}
,
a.destroy = function() {
this._device._gl.deleteProgram(this._glID),
this._linked = !1,
this._glID = null,
this._attributes = [],
this._uniforms = [],
this._samplers = []
}
,
e = t,
(i = [{
key: "id",
get: function() {
return this._id
}
}]) && n(e.prototype, i),
t
}
)();
function o(t, e, i) {
var n = t.createShader(e);
return t.shaderSource(n, i),
t.compileShader(n),
n
}
i.default = a,
e.exports = i.default
}
), {}],
318: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n = (function() {
function t(t, e, i, n) {
this._device = t,
this._format = e,
this._glID = t._gl.createRenderbuffer(),
this.update(i, n)
}
var e = t.prototype;
return e.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)
}
,
e.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")
}
,
t
}
)();
i.default = n,
e.exports = i.default
}
), {}],
319: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n = t("./enums")
, r = {
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
}
, s = (function() {
function t(t) {
this.vertexBuffers = new Array(t._caps.maxVertexStreams),
this.vertexBufferOffsets = new Array(t._caps.maxVertexStreams),
this.textureUnits = new Array(t._caps.maxTextureUnits),
this.set(r)
}
t.initDefault = function(t) {
r.vertexBuffers = new Array(t._caps.maxVertexStreams),
r.vertexBufferOffsets = new Array(t._caps.maxVertexStreams),
r.textureUnits = new Array(t._caps.maxTextureUnits)
}
;
var e = t.prototype;
return e.reset = function() {
this.set(r)
}
,
e.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
}
,
t
}
)();
i.default = s,
e.exports = i.default
}
), {
"./enums": 312
}],
320: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r = (n = t("./texture")) && n.__esModule ? n : {
default: n
}, s = t("./enums"), a = t("./misc");
function o(t, e) {
return (o = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
var l = (function(t) {
var e, i;
function n(e, i) {
var n, r = (n = t.call(this, e) || this)._device._gl;
return n._target = r.TEXTURE_2D,
n._glID = r.createTexture(),
i.images = i.images || [null],
n.update(i),
n
}
i = t,
(e = n).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
o(e, i);
var r = n.prototype;
return r.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),
void 0 !== t.format && (this._format = t.format,
this._compressed = this._format >= s.enums.TEXTURE_FMT_RGB_DXT1 && this._format <= s.enums.TEXTURE_FMT_RGBA_PVRTC_4BPPV1 || this._format >= s.enums.TEXTURE_FMT_RGB_ETC2 && this._format <= s.enums.TEXTURE_FMT_RGBA_ETC2),
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."),
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),
void 0 !== t.images && t.images.length > 0 && (this._setMipmap(t.images, t.flipY, t.premultiplyAlpha),
t.images.length > 1 && (this._genMipmap = !0)),
i && (e.hint(e.GENERATE_MIPMAP_HINT, e.NICEST),
e.generateMipmap(e.TEXTURE_2D),
this._genMipmap = !0),
this._setTexInfo(),
this._device._restoreTexture(0)
}
,
r.updateSubImage = function(t) {
var e = this._device._gl
, i = (0,
s.glTextureFmt)(this._format);
e.activeTexture(e.TEXTURE0),
e.bindTexture(e.TEXTURE_2D, this._glID),
this._setSubImage(i, t),
this._device._restoreTexture(0)
}
,
r.updateImage = function(t) {
var e = this._device._gl
, i = (0,
s.glTextureFmt)(this._format);
e.activeTexture(e.TEXTURE0),
e.bindTexture(e.TEXTURE_2D, this._glID),
this._setImage(i, t),
this._device._restoreTexture(0)
}
,
r._setSubImage = function(t, e) {
var i = this._device._gl
, n = e.flipY
, r = e.premultiplyAlpha
, s = e.image;
!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)) : (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))
}
,
r._setImage = function(t, e) {
var i = this._device._gl
, n = e.flipY
, r = e.premultiplyAlpha
, s = e.image;
!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)) : (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))
}
,
r._setMipmap = function(t, e, i) {
for (var n = (0,
s.glTextureFmt)(this._format), r = {
width: this._width,
height: this._height,
flipY: e,
premultiplyAlpha: i,
level: 0,
image: null
}, a = 0; a < t.length; ++a)
r.level = a,
r.width = this._width >> a,
r.height = this._height >> a,
r.image = t[a],
this._setImage(n, r)
}
,
r._setTexInfo = function() {
var t = this._device._gl
, e = (0,
a.isPow2)(this._width) && (0,
a.isPow2)(this._height);
e || this._wrapS === s.enums.WRAP_CLAMP && this._wrapT === s.enums.WRAP_CLAMP || (console.warn("WebGL1 doesn't support all wrap modes with NPOT textures"),
this._wrapS = s.enums.WRAP_CLAMP,
this._wrapT = s.enums.WRAP_CLAMP);
var i = this._genMipmap ? this._mipFilter : -1;
e || -1 === i || (console.warn("NPOT textures do not support mipmap filter"),
i = -1),
t.texParameteri(t.TEXTURE_2D, t.TEXTURE_MIN_FILTER, (0,
s.glFilter)(t, this._minFilter, i)),
t.texParameteri(t.TEXTURE_2D, t.TEXTURE_MAG_FILTER, (0,
s.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)
}
,
n
}
)(r.default);
i.default = l,
e.exports = i.default
}
), {
"./enums": 312,
"./misc": 316,
"./texture": 322
}],
321: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r = (n = t("./texture")) && n.__esModule ? n : {
default: n
}, s = t("./enums"), a = t("./misc");
function o(t, e) {
return (o = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
var l = (function(t) {
var e, i;
function n(e, i) {
var n, r = (n = t.call(this, e) || this)._device._gl;
return n._target = r.TEXTURE_CUBE_MAP,
n._glID = r.createTexture(),
n.update(i),
n
}
i = t,
(e = n).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
o(e, i);
var r = n.prototype;
return r.update = function(t) {
var e = this._device._gl
, i = this._genMipmaps;
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),
void 0 !== t.format && (this._format = t.format,
this._compressed = this._format >= s.enums.TEXTURE_FMT_RGB_DXT1 && this._format <= s.enums.TEXTURE_FMT_RGBA_PVRTC_4BPPV1 || this._format >= s.enums.TEXTURE_FMT_RGB_ETC2 && this._format <= s.enums.TEXTURE_FMT_RGBA_ETC2),
void 0 !== t.genMipmaps && (this._genMipmaps = t.genMipmaps,
i = t.genMipmaps),
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),
void 0 !== t.images && t.images.length > 0 && (this._setMipmap(t.images, t.flipY, t.premultiplyAlpha),
t.images.length > 1 && (this._genMipmaps = !0)),
i && (e.hint(e.GENERATE_MIPMAP_HINT, e.NICEST),
e.generateMipmap(e.TEXTURE_CUBE_MAP),
this._genMipmaps = !0),
this._setTexInfo(),
this._device._restoreTexture(0)
}
,
r.updateSubImage = function(t) {
var e = this._device._gl
, i = (0,
s.glTextureFmt)(this._format);
e.activeTexture(e.TEXTURE0),
e.bindTexture(e.TEXTURE_CUBE_MAP, this._glID),
this._setSubImage(i, t),
this._device._restoreTexture(0)
}
,
r.updateImage = function(t) {
var e = this._device._gl
, i = (0,
s.glTextureFmt)(this._format);
e.activeTexture(e.TEXTURE0),
e.bindTexture(e.TEXTURE_CUBE_MAP, this._glID),
this._setImage(i, t),
this._device._restoreTexture(0)
}
,
r._setSubImage = function(t, e) {
var i = this._device._gl
, n = e.flipY
, r = e.premultiplyAlpha
, s = e.faceIndex
, a = 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),
!a || ArrayBuffer.isView(a) || a 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, a) : i.texSubImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X + s, e.level, e.x, e.y, e.width, e.height, t.format, t.pixelType, a) : i.texSubImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X + s, e.level, e.x, e.y, t.format, t.pixelType, a)
}
,
r._setImage = function(t, e) {
var i = this._device._gl
, n = e.flipY
, r = e.premultiplyAlpha
, s = e.faceIndex
, a = 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),
!a || ArrayBuffer.isView(a) || a instanceof ArrayBuffer ? this._compressed ? i.compressedTexImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X + s, e.level, t.internalFormat, e.width, e.height, 0, a) : i.texImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X + s, e.level, t.internalFormat, e.width, e.height, 0, t.format, t.pixelType, a) : i.texImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X + s, e.level, t.internalFormat, t.format, t.pixelType, a)
}
,
r._setMipmap = function(t, e, i) {
for (var n = (0,
s.glTextureFmt)(this._format), r = {
width: this._width,
height: this._height,
faceIndex: 0,
flipY: e,
premultiplyAlpha: i,
level: 0,
image: null
}, a = 0; a < t.length; ++a) {
var o = t[a];
r.level = a,
r.width = this._width >> a,
r.height = this._height >> a;
for (var l = 0; l < 6; ++l)
r.faceIndex = l,
r.image = o[l],
this._setImage(n, r)
}
}
,
r._setTexInfo = function() {
var t = this._device._gl
, e = (0,
a.isPow2)(this._width) && (0,
a.isPow2)(this._height);
e || this._wrapS === s.enums.WRAP_CLAMP && this._wrapT === s.enums.WRAP_CLAMP || (console.warn("WebGL1 doesn't support all wrap modes with NPOT textures"),
this._wrapS = s.enums.WRAP_CLAMP,
this._wrapT = s.enums.WRAP_CLAMP);
var i = this._genMipmaps ? this._mipFilter : -1;
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,
s.glFilter)(t, this._minFilter, i)),
t.texParameteri(t.TEXTURE_CUBE_MAP, t.TEXTURE_MAG_FILTER, (0,
s.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)
}
,
n
}
)(r.default);
i.default = l,
e.exports = i.default
}
), {
"./enums": 312,
"./misc": 316,
"./texture": 322
}],
322: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n = t("./enums")
, r = 0
, s = (function() {
function t(t) {
this._device = t,
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 = r++
}
return t.prototype.destroy = function() {
null !== this._glID ? (this._device._gl.deleteTexture(this._glID),
this._device._stats.tex -= this.bytes,
this._glID = null) : console.error("The texture already destroyed")
}
,
t
}
)();
i.default = s,
e.exports = i.default
}
), {
"./enums": 312
}],
323: [(function(t, e, i) {
"use strict";
function n(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)
}
}
i.__esModule = !0,
i.default = void 0,
t("./enums");
var r = (function() {
function t(t, e, i, n) {
this._device = t,
this._format = e,
this._usage = i,
this._bytesPerVertex = this._format._bytes,
this._bytes = n.byteLength,
this._numVertices = this._bytes / this._bytesPerVertex,
this._needExpandDataStore = !0,
this._glID = t._gl.createBuffer(),
this.update(0, n),
t._stats.vb += this._bytes
}
var e, i, r = t.prototype;
return r.destroy = function() {
-1 !== this._glID ? (this._device._gl.deleteBuffer(this._glID),
this._device._stats.vb -= this.bytes,
this._glID = -1) : console.error("The buffer already destroyed")
}
,
r.update = function(t, e) {
if (-1 !== this._glID) {
if (0 !== e.byteLength) {
if (t + e.byteLength > this._bytes) {
if (t)
return void console.error("Failed to update data, bytes exceed.");
this._needExpandDataStore = !0,
this._bytes = t + e.byteLength,
this._numVertices = this._bytes / this._bytesPerVertex
}
var i = this._device._gl
, n = this._usage;
i.bindBuffer(i.ARRAY_BUFFER, this._glID),
this._needExpandDataStore ? (i.bufferData(i.ARRAY_BUFFER, e, n),
this._needExpandDataStore = !1) : i.bufferSubData(i.ARRAY_BUFFER, t, e),
i.bindBuffer(i.ARRAY_BUFFER, null)
}
} else
console.error("The buffer is destroyed")
}
,
r.getFormat = function(t) {
return this._format.element(t)
}
,
r.setUsage = function(t) {
this._usage = t
}
,
e = t,
(i = [{
key: "count",
get: function() {
return this._numVertices
}
}]) && n(e.prototype, i),
t
}
)();
i.default = r,
e.exports = i.default
}
), {
"./enums": 312
}],
324: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r = t("./enums"), s = (n = t("../murmurhash2_gc")) && n.__esModule ? n : {
default: n
}, a = (function() {
function t(t) {
this._attr2el = {},
this._elements = [],
this._bytes = 0;
for (var e = "", i = 0, n = t.length; i < n; ++i) {
var a = t[i]
, o = {
name: a.name,
offset: this._bytes,
stride: 0,
stream: -1,
type: a.type,
num: a.num,
normalize: void 0 !== a.normalize && a.normalize,
bytes: a.num * (0,
r.attrTypeBytes)(a.type)
};
this._attr2el[o.name] = o,
this._elements.push(o),
this._bytes += o.bytes,
e += o.name + ":" + o.num + ":" + o.type + ":" + o.normalize
}
for (var l = 0, h = this._elements.length; l < h; ++l)
this._elements[l].stride = this._bytes;
this._hash = (0,
s.default)(e, 666)
}
var e = t.prototype;
return e.element = function(t) {
return this._attr2el[t]
}
,
e.getHash = function() {
return this._hash
}
,
t
}
)();
i.default = a,
e.exports = i.default
}
), {
"../murmurhash2_gc": 333,
"./enums": 312
}],
325: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n = (function() {
function t(t, e) {
this._cursor = 0,
this._data = new Array(e);
for (var i = 0; i < e; ++i)
this._data[i] = t()
}
return t.prototype.request = function() {
var t = this._data[this._cursor];
return this._cursor = (this._cursor + 1) % this._data.length,
t
}
,
t
}
)();
i.default = n,
e.exports = i.default
}
), {}],
326: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r = (n = t("./timsort")) && n.__esModule ? n : {
default: n
};
function s(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)
}
}
var a = (function() {
function t(t) {
this._count = 0,
this._data = new Array(t)
}
var e, i, n = t.prototype;
return n._resize = function(t) {
if (t > this._data.length)
for (var e = this._data.length; e < t; ++e)
this._data[e] = void 0
}
,
n.reset = function() {
for (var t = 0; t < this._count; ++t)
this._data[t] = void 0;
this._count = 0
}
,
n.push = function(t) {
this._count >= this._data.length && this._resize(2 * this._data.length),
this._data[this._count] = t,
++this._count
}
,
n.pop = function() {
--this._count,
this._count < 0 && (this._count = 0);
var t = this._data[this._count];
return this._data[this._count] = void 0,
t
}
,
n.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
}
}
,
n.indexOf = function(t) {
return this._data.indexOf(t)
}
,
n.sort = function(t) {
return (0,
r.default)(this._data, 0, this._count, t)
}
,
e = t,
(i = [{
key: "length",
get: function() {
return this._count
}
}, {
key: "data",
get: function() {
return this._data
}
}]) && s(e.prototype, i),
t
}
)();
i.default = a,
e.exports = i.default
}
), {
"./timsort": 331
}],
327: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.TypedArrayPool = i.RecyclePool = i.Pool = i.LinkedArray = i.FixedArray = i.CircularPool = void 0;
var n = h(t("./circular-pool"));
i.CircularPool = n.default;
var r = h(t("./fixed-array"));
i.FixedArray = r.default;
var s = h(t("./linked-array"));
i.LinkedArray = s.default;
var a = h(t("./pool"));
i.Pool = a.default;
var o = h(t("./recycle-pool"));
i.RecyclePool = o.default;
var l = h(t("./typed-array-pool"));
function h(t) {
return t && t.__esModule ? t : {
default: t
}
}
i.TypedArrayPool = l.default
}
), {
"./circular-pool": 325,
"./fixed-array": 326,
"./linked-array": 328,
"./pool": 329,
"./recycle-pool": 330,
"./typed-array-pool": 332
}],
328: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r = (n = t("./pool")) && n.__esModule ? n : {
default: n
};
function s(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)
}
}
var a = (function() {
function t(t, e) {
this._fn = t,
this._count = 0,
this._head = null,
this._tail = null,
this._pool = new r.default(t,e)
}
var e, i, n = t.prototype;
return n.add = function() {
var t = this._pool.alloc();
return this._tail ? (this._tail._next = t,
t._prev = this._tail) : this._head = t,
this._tail = t,
this._count += 1,
t
}
,
n.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
}
,
n.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
}
}
,
e = t,
(i = [{
key: "head",
get: function() {
return this._head
}
}, {
key: "tail",
get: function() {
return this._tail
}
}, {
key: "length",
get: function() {
return this._count
}
}]) && s(e.prototype, i),
t
}
)();
i.default = a,
e.exports = i.default
}
), {
"./pool": 329
}],
329: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n = (function() {
function t(t, e) {
this._fn = t,
this._idx = e - 1,
this._frees = new Array(e);
for (var i = 0; i < e; ++i)
this._frees[i] = t()
}
var e = t.prototype;
return e._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
}
,
e.alloc = function() {
this._idx < 0 && this._expand(Math.round(1.2 * this._frees.length) + 1);
var t = this._frees[this._idx];
return this._frees[this._idx] = null,
--this._idx,
t
}
,
e.free = function(t) {
++this._idx,
this._frees[this._idx] = t
}
,
e.clear = function(t) {
for (var e = 0; e <= this._idx; e++)
t && t(this._frees[e]);
this._frees.length = 0,
this._idx = -1
}
,
t
}
)();
i.default = n,
e.exports = i.default
}
), {}],
330: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r = (n = t("./timsort")) && n.__esModule ? n : {
default: n
};
function s(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)
}
}
var a = (function() {
function t(t, e) {
this._fn = t,
this._count = 0,
this._data = new Array(e);
for (var i = 0; i < e; ++i)
this._data[i] = t()
}
var e, i, n = t.prototype;
return n.reset = function() {
this._count = 0
}
,
n.resize = function(t) {
if (t > this._data.length)
for (var e = this._data.length; e < t; ++e)
this._data[e] = this._fn()
}
,
n.add = function() {
return this._count >= this._data.length && this.resize(2 * this._data.length),
this._data[this._count++]
}
,
n.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
}
}
,
n.sort = function(t) {
return (0,
r.default)(this._data, 0, this._count, t)
}
,
e = t,
(i = [{
key: "length",
get: function() {
return this._count
}
}, {
key: "data",
get: function() {
return this._data
}
}]) && s(e.prototype, i),
t
}
)();
i.default = a,
cc.RecyclePool = a,
e.exports = i.default
}
), {
"./timsort": 331
}],
331: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = function(t, e, i, r) {
if (!Array.isArray(t))
throw new TypeError("Can only sort arrays");
void 0 === e && (e = 0),
void 0 === i && (i = t.length),
void 0 === r && (r = l);
var s = i - e;
if (!(s < 2)) {
var a = 0;
if (s < n)
return void _(t, e, i, e + (a = c(t, e, i, r)), r);
var o = new p(t,r)
, u = h(s);
do {
if ((a = c(t, e, i, r)) < u) {
var f = s;
f > u && (f = u),
_(t, e, e + f, e + a, r),
a = f
}
o.pushRun(e, a),
o.mergeRuns(),
s -= a,
e += a
} while (0 !== s);o.forceMergeRuns()
}
}
;
var n = 32
, r = 7
, s = 256
, a = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9];
function o(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 = o(t)
, n = o(e)
, r = 0;
return i < n ? (t *= a[n - i - 1],
e /= 10,
r = -1) : i > n && (e *= a[i - n - 1],
t /= 10,
r = 1),
t === e ? r : t < e ? -1 : 1
}
var s = String(t)
, l = String(e);
return s === l ? 0 : s < l ? -1 : 1
}
function h(t) {
for (var e = 0; t >= n; )
e |= 1 & t,
t >>= 1;
return t + e
}
function c(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++;
u(t, e, r)
} else
for (; r < i && n(t[r], t[r - 1]) >= 0; )
r++;
return r - e
}
function u(t, e, i) {
for (i--; e < i; ) {
var n = t[e];
t[e++] = t[i],
t[i--] = n
}
}
function _(t, e, i, n, r) {
for (n === e && n++; n < i; n++) {
for (var s = t[n], a = e, o = n; a < o; ) {
var l = a + o >>> 1;
r(s, t[l]) < 0 ? o = l : a = l + 1
}
var h = n - a;
switch (h) {
case 3:
t[a + 3] = t[a + 2];
case 2:
t[a + 2] = t[a + 1];
case 1:
t[a + 1] = t[a];
break;
default:
for (; h > 0; )
t[a + h] = t[a + h - 1],
h--
}
t[a] = s
}
}
function f(t, e, i, n, r, s) {
var a = 0
, o = 0
, l = 1;
if (s(t, e[i + r]) > 0) {
for (o = n - r; l < o && s(t, e[i + r + l]) > 0; )
a = l,
(l = 1 + (l << 1)) <= 0 && (l = o);
l > o && (l = o),
a += r,
l += r
} else {
for (o = r + 1; l < o && s(t, e[i + r - l]) <= 0; )
a = l,
(l = 1 + (l << 1)) <= 0 && (l = o);
l > o && (l = o);
var h = a;
a = r - l,
l = r - h
}
for (a++; a < l; ) {
var c = a + (l - a >>> 1);
s(t, e[i + c]) > 0 ? a = c + 1 : l = c
}
return l
}
function d(t, e, i, n, r, s) {
var a = 0
, o = 0
, l = 1;
if (s(t, e[i + r]) < 0) {
for (o = r + 1; l < o && s(t, e[i + r - l]) < 0; )
a = l,
(l = 1 + (l << 1)) <= 0 && (l = o);
l > o && (l = o);
var h = a;
a = r - l,
l = r - h
} else {
for (o = n - r; l < o && s(t, e[i + r + l]) >= 0; )
a = l,
(l = 1 + (l << 1)) <= 0 && (l = o);
l > o && (l = o),
a += r,
l += r
}
for (a++; a < l; ) {
var c = a + (l - a >>> 1);
s(t, e[i + c]) < 0 ? l = c : a = c + 1
}
return l
}
var p = (function() {
function t(t, e) {
this.array = t,
this.compare = e,
this.minGallop = r,
this.length = t.length,
this.tmpStorageLength = s,
this.length < 2 * s && (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
}
var e = t.prototype;
return e.pushRun = function(t, e) {
this.runStart[this.stackSize] = t,
this.runLength[this.stackSize] = e,
this.stackSize += 1
}
,
e.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)
}
}
,
e.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)
}
}
,
e.mergeAt = function(t) {
var e = this.compare
, i = this.array
, n = this.runStart[t]
, r = this.runLength[t]
, s = this.runStart[t + 1]
, a = this.runLength[t + 1];
this.runLength[t] = r + a,
t === this.stackSize - 3 && (this.runStart[t + 1] = this.runStart[t + 2],
this.runLength[t + 1] = this.runLength[t + 2]),
this.stackSize--;
var o = d(i[s], i, n, r, 0, e);
n += o,
0 != (r -= o) && 0 !== (a = f(i[n + r - 1], i, s, a, a - 1, e)) && (r <= a ? this.mergeLow(n, r, s, a) : this.mergeHigh(n, r, s, a))
}
,
e.mergeLow = function(t, e, i, n) {
var s = this.compare
, a = this.array
, o = this.tmp
, l = 0;
for (l = 0; l < e; l++)
o[l] = a[t + l];
var h = 0
, c = i
, u = t;
if (a[u++] = a[c++],
0 != --n)
if (1 !== e) {
for (var _ = this.minGallop; ; ) {
var p = 0
, m = 0
, y = !1;
do {
if (s(a[c], o[h]) < 0) {
if (a[u++] = a[c++],
m++,
p = 0,
0 == --n) {
y = !0;
break
}
} else if (a[u++] = o[h++],
p++,
m = 0,
1 == --e) {
y = !0;
break
}
} while ((p | m) < _);if (y)
break;
do {
if (0 !== (p = d(a[c], o, h, e, 0, s))) {
for (l = 0; l < p; l++)
a[u + l] = o[h + l];
if (u += p,
h += p,
(e -= p) <= 1) {
y = !0;
break
}
}
if (a[u++] = a[c++],
0 == --n) {
y = !0;
break
}
if (0 !== (m = f(o[h], a, c, n, 0, s))) {
for (l = 0; l < m; l++)
a[u + l] = a[c + l];
if (u += m,
c += m,
0 == (n -= m)) {
y = !0;
break
}
}
if (a[u++] = o[h++],
1 == --e) {
y = !0;
break
}
_--
} while (p >= r || m >= r);if (y)
break;
_ < 0 && (_ = 0),
_ += 2
}
if (this.minGallop = _,
_ < 1 && (this.minGallop = 1),
1 === e) {
for (l = 0; l < n; l++)
a[u + l] = a[c + l];
a[u + n] = o[h]
} else {
if (0 === e)
throw new Error("mergeLow preconditions were not respected");
for (l = 0; l < e; l++)
a[u + l] = o[h + l]
}
} else {
for (l = 0; l < n; l++)
a[u + l] = a[c + l];
a[u + n] = o[h]
}
else
for (l = 0; l < e; l++)
a[u + l] = o[h + l]
}
,
e.mergeHigh = function(t, e, i, n) {
var s = this.compare
, a = this.array
, o = this.tmp
, l = 0;
for (l = 0; l < n; l++)
o[l] = a[i + l];
var h = t + e - 1
, c = n - 1
, u = i + n - 1
, _ = 0
, p = 0;
if (a[u--] = a[h--],
0 != --e)
if (1 !== n) {
for (var m = this.minGallop; ; ) {
var y = 0
, v = 0
, g = !1;
do {
if (s(o[c], a[h]) < 0) {
if (a[u--] = a[h--],
y++,
v = 0,
0 == --e) {
g = !0;
break
}
} else if (a[u--] = o[c--],
v++,
y = 0,
1 == --n) {
g = !0;
break
}
} while ((y | v) < m);if (g)
break;
do {
if (0 != (y = e - d(o[c], a, t, e, e - 1, s))) {
for (e -= y,
p = 1 + (u -= y),
_ = 1 + (h -= y),
l = y - 1; l >= 0; l--)
a[p + l] = a[_ + l];
if (0 === e) {
g = !0;
break
}
}
if (a[u--] = o[c--],
1 == --n) {
g = !0;
break
}
if (0 != (v = n - f(a[h], o, 0, n, n - 1, s))) {
for (n -= v,
p = 1 + (u -= v),
_ = 1 + (c -= v),
l = 0; l < v; l++)
a[p + l] = o[_ + l];
if (n <= 1) {
g = !0;
break
}
}
if (a[u--] = a[h--],
0 == --e) {
g = !0;
break
}
m--
} while (y >= r || v >= r);if (g)
break;
m < 0 && (m = 0),
m += 2
}
if (this.minGallop = m,
m < 1 && (this.minGallop = 1),
1 === n) {
for (p = 1 + (u -= e),
_ = 1 + (h -= e),
l = e - 1; l >= 0; l--)
a[p + l] = a[_ + l];
a[u] = o[c]
} else {
if (0 === n)
throw new Error("mergeHigh preconditions were not respected");
for (_ = u - (n - 1),
l = 0; l < n; l++)
a[_ + l] = o[l]
}
} else {
for (p = 1 + (u -= e),
_ = 1 + (h -= e),
l = e - 1; l >= 0; l--)
a[p + l] = a[_ + l];
a[u] = o[c]
}
else
for (_ = u - (n - 1),
l = 0; l < n; l++)
a[_ + l] = o[l]
}
,
t
}
)();
e.exports = i.default
}
), {}],
332: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 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 a(t) {
var e, i;
return e = (t > 65535) << 4,
e |= i = ((t >>>= e) > 255) << 3,
e |= i = ((t >>>= i) > 15) << 2,
(e |= i = ((t >>>= i) > 3) << 1) | (t >>>= i) >> 1
}
function o(t) {
var e = s(t)
, i = n[a(e) >> 2];
return i.length > 0 ? i.pop() : new ArrayBuffer(e)
}
var l = {
alloc_int8: function(t) {
var e = new Int8Array(o(t),0,t);
return e.length !== t ? e.subarray(0, t) : e
},
alloc_uint8: function(t) {
var e = new Uint8Array(o(t),0,t);
return e.length !== t ? e.subarray(0, t) : e
},
alloc_int16: function(t) {
var e = new Int16Array(o(2 * t),0,t);
return e.length !== t ? e.subarray(0, t) : e
},
alloc_uint16: function(t) {
var e = new Uint16Array(o(2 * t),0,t);
return e.length !== t ? e.subarray(0, t) : e
},
alloc_int32: function(t) {
var e = new Int32Array(o(4 * t),0,t);
return e.length !== t ? e.subarray(0, t) : e
},
alloc_uint32: function(t) {
var e = new Uint32Array(o(4 * t),0,t);
return e.length !== t ? e.subarray(0, t) : e
},
alloc_float32: function(t) {
var e = new Float32Array(o(4 * t),0,t);
return e.length !== t ? e.subarray(0, t) : e
},
alloc_float64: function(t) {
var e = new Float64Array(o(8 * t),0,t);
return e.length !== t ? e.subarray(0, t) : e
},
alloc_dataview: function(t) {
var e = new DataView(o(t),0,t);
return e.length !== t ? e.subarray(0, t) : e
},
free: function(t) {
var e;
e = t.buffer,
n[a(e.byteLength) >> 2].push(e)
},
reset: function() {
for (var t = Array(8), e = 0; e < 8; ++e)
t[e] = []
}
};
i.default = l,
e.exports = i.default
}
), {}],
333: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = function(t, e) {
for (var i, n = t.length, r = e ^ n, s = 0; 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)
}
return r = 1540483477 * (65535 & (r ^= r >>> 13)) + ((1540483477 * (r >>> 16) & 65535) << 16),
(r ^= r >>> 15) >>> 0
}
,
e.exports = i.default
}
), {}],
334: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n = t("../../core/value-types")
, r = o(t("../core/base-renderer"))
, s = o(t("../enums"))
, a = t("../memop");
function o(t) {
return t && t.__esModule ? t : {
default: t
}
}
function l(t) {
if (void 0 === t)
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return t
}
function h(t, e) {
return (h = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
var c = new Float32Array(16)
, u = new Float32Array(16)
, _ = new Float32Array(16)
, f = new Float32Array(16)
, d = new Float32Array(4)
, p = new Float32Array(64)
, m = []
, y = new Float32Array(4)
, v = new n.Vec4(0,0,0,0)
, g = new n.Vec3(0,0,0)
, A = new n.Vec3(0,0,0)
, x = new a.RecyclePool(function() {
return new Float32Array(16)
}
,8);
function b(t, e) {
return t._priority - e._priority
}
var C = (function(t) {
var e, i;
function r(e, i) {
var n;
return (n = t.call(this, e, i) || this)._time = new Float32Array(4),
n._lights = [],
n._shadowLights = [],
n._numLights = 0,
n._defines = {},
n._registerStage("shadowcast", n._shadowStage.bind(l(n))),
n._registerStage("opaque", n._opaqueStage.bind(l(n))),
n._registerStage("transparent", n._transparentStage.bind(l(n))),
n
}
i = t,
(e = r).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
h(e, i);
var a = r.prototype;
return a.reset = function() {
x.reset(),
t.prototype.reset.call(this)
}
,
a.render = function(t, e) {
this.reset(),
e && (this._time[0] += e,
this._time[1] = e,
this._time[2]++),
this._device.setUniform("cc_time", this._time),
this._updateLights(t);
for (var i = this._device._gl.canvas, n = 0; n < t._cameras.length; ++n) {
var r = this._requestView()
, s = i.width
, a = i.height;
t._cameras.data[n].extractView(r, s, a)
}
this._viewPools.sort(b);
for (var o = 0; o < this._viewPools.length; ++o) {
var l = this._viewPools.data[o];
this._render(l, t)
}
}
,
a.renderCamera = function(t, e) {
this.reset(),
this._updateLights(e);
var i = this._device._gl.canvas
, n = i.width
, r = i.height
, s = this._requestView();
t.extractView(s, n, r),
this._viewPools.sort(b);
for (var a = 0; a < this._viewPools.length; ++a) {
var o = this._viewPools.data[a];
this._render(o, e)
}
}
,
a._updateLights = function(t) {
this._lights.length = 0,
this._shadowLights.length = 0;
for (var e = t._lights, i = 0; i < e.length; ++i) {
var n = e.data[i];
if (n.update(this._device),
n.shadowType !== s.default.SHADOW_NONE) {
this._shadowLights.length < 2 && this._shadowLights.splice(0, 0, n);
var r = this._requestView();
n.extractView(r, ["shadowcast"]),
this._lights.splice(0, 0, n)
} else
this._lights.push(n)
}
this._updateLightDefines(),
this._numLights = e._count
}
,
a._updateLightDefines = function() {
for (var t = this._defines, e = 0; e < this._lights.length; ++e) {
var i = this._lights[e]
, n = "CC_LIGHT_" + e + "_TYPE"
, r = "CC_SHADOW_" + e + "_TYPE";
t[n] !== i._type && (t[n] = i._type,
this._definesChanged = !0),
t[r] !== i._shadowType && (t[r] = i._shadowType,
this._definesChanged = !0)
}
var s = Math.min(4, this._lights.length);
t.CC_NUM_LIGHTS !== s && (t.CC_NUM_LIGHTS = s,
this._definesChanged = !0),
s = Math.min(4, this._shadowLights.length),
t.CC_NUM_SHADOW_LIGHTS !== s && (t.CC_NUM_SHADOW_LIGHTS = s,
this._definesChanged = !0)
}
,
a._submitLightsUniforms = function() {
var t = this._device;
if (this._lights.length > 0) {
for (var e = x.add(), i = x.add(), n = x.add(), r = Math.min(4, this._lights.length), a = 0; a < r; ++a) {
var o = this._lights[a]
, l = 4 * a;
n.set(o._colorUniform, l),
i.set(o._directionUniform, l),
e.set(o._positionUniform, l),
e[l + 3] = o._range,
o._type === s.default.LIGHT_SPOT ? (i[l + 3] = o._spotUniform[0],
n[l + 3] = o._spotUniform[1]) : (i[l + 3] = 0,
n[l + 3] = 0)
}
t.setUniform("cc_lightDirection", i),
t.setUniform("cc_lightColor", n),
t.setUniform("cc_lightPositionAndRange", e)
}
}
,
a._submitShadowStageUniforms = function(t) {
var e = t._shadowLight
, i = y;
i[0] = e.shadowMinDepth,
i[1] = e.shadowMaxDepth,
i[2] = e.shadowDepthScale,
i[3] = e.shadowDarkness,
this._device.setUniform("cc_shadow_map_lightViewProjMatrix", n.Mat4.toArray(f, t._matViewProj)),
this._device.setUniform("cc_shadow_map_info", i),
this._device.setUniform("cc_shadow_map_bias", e.shadowBias),
this._defines.CC_SHADOW_TYPE = e._shadowType
}
,
a._submitOtherStagesUniforms = function() {
for (var t = x.add(), e = 0; e < this._shadowLights.length; ++e) {
var i = this._shadowLights[e]
, r = m[e];
r || (r = m[e] = new Float32Array(p.buffer,64 * e,16)),
n.Mat4.toArray(r, i.viewProjMatrix);
var s = 4 * e;
t[s] = i.shadowMinDepth,
t[s + 1] = i.shadowMaxDepth,
t[s + 2] = i._shadowResolution,
t[s + 3] = i.shadowDarkness
}
this._device.setUniform("cc_shadow_lightViewProjMatrix", p),
this._device.setUniform("cc_shadow_info", t)
}
,
a._sortItems = function(t) {
t.sort((function(t, e) {
return t.passes.length !== e.passes.length ? t.passes.length - e.passes.length : t.sortKey - e.sortKey
}
))
}
,
a._shadowStage = function(t, e) {
this._submitShadowStageUniforms(t);
for (var i = 0; i < e.length; ++i) {
var n = e.data[i];
n.effect.getDefine("CC_CASTING_SHADOW") && this._draw(n)
}
}
,
a._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 a = e.data[s], o = 0; o < i.length; ++o)
this._device.setTexture("cc_shadow_map_" + o, i[o].shadowMap, this._allocTextureUnit());
this._draw(a)
}
}
,
a._opaqueStage = function(t, e) {
t.getPosition(v),
this._device.setUniform("cc_matView", n.Mat4.toArray(c, t._matView)),
this._device.setUniform("cc_matViewInv", n.Mat4.toArray(u, t._matViewInv)),
this._device.setUniform("cc_matProj", n.Mat4.toArray(_, t._matProj)),
this._device.setUniform("cc_matViewProj", n.Mat4.toArray(f, t._matViewProj)),
this._device.setUniform("cc_cameraPos", n.Vec4.toArray(d, v)),
this._submitLightsUniforms(),
this._submitOtherStagesUniforms(),
this._drawItems(t, e)
}
,
a._transparentStage = function(t, e) {
t.getPosition(v),
t.getForward(g),
this._device.setUniform("cc_matView", n.Mat4.toArray(c, t._matView)),
this._device.setUniform("cc_matViewInv", n.Mat4.toArray(u, t._matViewInv)),
this._device.setUniform("cc_matProj", n.Mat4.toArray(_, t._matProj)),
this._device.setUniform("cc_matViewProj", n.Mat4.toArray(f, t._matViewProj)),
this._device.setUniform("cc_cameraPos", n.Vec4.toArray(d, v)),
this._submitLightsUniforms(),
this._submitOtherStagesUniforms();
for (var i = 0; i < e.length; ++i) {
var r = e.data[i];
r.node.getWorldPosition(A),
n.Vec3.sub(A, A, v),
r.sortKey = -n.Vec3.dot(A, g)
}
this._sortItems(e),
this._drawItems(t, e)
}
,
r
}
)(r.default);
i.default = C,
e.exports = i.default
}
), {
"../../core/value-types": 282,
"../core/base-renderer": 304,
"../enums": 310,
"../memop": 327
}],
335: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r = t("../../core/value-types"), s = t("../../core/geom-utils"), a = (n = t("../enums")) && n.__esModule ? n : {
default: n
};
function o(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)
}
}
var l = new r.Mat4
, h = new r.Mat4
, c = new r.Mat4
, u = new r.Mat4
, _ = new r.Mat4
, f = new r.Mat4
, d = new r.Vec3
, p = new r.Vec3
, m = (function() {
function t() {
this._poolID = -1,
this._node = null,
this._projection = a.default.PROJ_PERSPECTIVE,
this._priority = 0,
this._color = new r.Vec4(.2,.3,.47,1),
this._depth = 1,
this._stencil = 0,
this._clearFlags = a.default.CLEAR_COLOR | a.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
}
var e, i, n = t.prototype;
return n.setCullingMask = function(t) {
this._cullingMask = t
}
,
n.getNode = function() {
return this._node
}
,
n.setNode = function(t) {
this._node = t
}
,
n.getType = function() {
return this._projection
}
,
n.setType = function(t) {
this._projection = t
}
,
n.getPriority = function() {
return this._priority
}
,
n.setPriority = function(t) {
this._priority = t
}
,
n.getOrthoHeight = function() {
return this._orthoHeight
}
,
n.setOrthoHeight = function(t) {
this._orthoHeight = t
}
,
n.getFov = function() {
return this._fov
}
,
n.setFov = function(t) {
this._fov = t
}
,
n.getNear = function() {
return this._near
}
,
n.setNear = function(t) {
this._near = t
}
,
n.getFar = function() {
return this._far
}
,
n.setFar = function(t) {
this._far = t
}
,
n.getColor = function(t) {
return r.Vec4.copy(t, this._color)
}
,
n.setColor = function(t, e, i, n) {
r.Vec4.set(this._color, t, e, i, n)
}
,
n.getDepth = function() {
return this._depth
}
,
n.setDepth = function(t) {
this._depth = t
}
,
n.getStencil = function() {
return this._stencil
}
,
n.setStencil = function(t) {
this._stencil = t
}
,
n.getClearFlags = function() {
return this._clearFlags
}
,
n.setClearFlags = function(t) {
this._clearFlags = t
}
,
n.getRect = function(t) {
return t.x = this._rect.x,
t.y = this._rect.y,
t.w = this._rect.w,
t.h = this._rect.h,
t
}
,
n.setRect = function(t, e, i, n) {
this._rect.x = t,
this._rect.y = e,
this._rect.w = i,
this._rect.h = n
}
,
n.getStages = function() {
return this._stages
}
,
n.setStages = function(t) {
this._stages = t
}
,
n.getFramebuffer = function() {
return this._framebuffer
}
,
n.setFrameBuffer = function(t) {
this._framebuffer = t
}
,
n._calcMatrices = function(t, e) {
this._node.getWorldRT(c),
r.Mat4.invert(h, c);
var i = t / e;
if (this._projection === a.default.PROJ_PERSPECTIVE)
r.Mat4.perspective(u, this._fov, i, this._near, this._far);
else {
var n = this._orthoHeight * i
, s = this._orthoHeight;
r.Mat4.ortho(u, -n, n, -s, s, this._near, this._far)
}
r.Mat4.mul(_, u, h),
r.Mat4.invert(f, _)
}
,
n.extractView = function(t, e, i) {
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),
r.Mat4.copy(t._matView, h),
r.Mat4.copy(t._matViewInv, c),
r.Mat4.copy(t._matProj, u),
r.Mat4.copy(t._matViewProj, _),
r.Mat4.copy(t._matInvViewProj, f),
t._cullingMask = this._cullingMask
}
,
n.screenPointToRay = function(t, e, i, n, o) {
if (!cc.geomUtils)
return o;
o = o || new s.Ray,
this._calcMatrices(i, n);
var l = this._rect.x * i
, h = this._rect.y * n
, c = this._rect.w * i
, u = this._rect.h * n;
return r.Vec3.set(p, (t - l) / c * 2 - 1, (e - h) / u * 2 - 1, 1),
r.Vec3.transformMat4(p, p, f),
this._projection === a.default.PROJ_PERSPECTIVE ? this._node.getWorldPosition(d) : (r.Vec3.set(d, (t - l) / c * 2 - 1, (e - h) / u * 2 - 1, -1),
r.Vec3.transformMat4(d, d, f)),
s.Ray.fromPoints(o, d, p)
}
,
n.screenToWorld = function(t, e, i, n) {
this._calcMatrices(i, n);
var s = this._rect.x * i
, o = this._rect.y * n
, l = this._rect.w * i
, h = this._rect.h * n;
return this._projection === a.default.PROJ_PERSPECTIVE ? (r.Vec3.set(t, (e.x - s) / l * 2 - 1, (e.y - o) / h * 2 - 1, .9999),
r.Vec3.transformMat4(t, t, f),
this._node.getWorldPosition(d),
r.Vec3.lerp(t, d, t, (0,
r.lerp)(this._near / this._far, 1, e.z))) : (r.Vec3.set(t, (e.x - s) / l * 2 - 1, (e.y - o) / h * 2 - 1, 2 * e.z - 1),
r.Vec3.transformMat4(t, t, f)),
t
}
,
n.worldToScreen = function(t, e, i, n) {
this._calcMatrices(i, n);
var s = this._rect.x * i
, a = this._rect.y * n
, o = this._rect.w * i
, l = this._rect.h * n;
return r.Vec3.transformMat4(t, e, _),
t.x = s + .5 * (t.x + 1) * o,
t.y = a + .5 * (t.y + 1) * l,
t.z = .5 * t.z + .5,
t
}
,
n.worldMatrixToScreen = function(t, e, i, n) {
this._calcMatrices(i, n),
r.Mat4.mul(t, _, e);
var s = i / 2
, a = n / 2;
return r.Mat4.identity(l),
r.Mat4.transform(l, l, r.Vec3.set(d, s, a, 0)),
r.Mat4.scale(l, l, r.Vec3.set(d, s, a, 1)),
r.Mat4.mul(t, l, t),
t
}
,
e = t,
(i = [{
key: "cullingMask",
get: function() {
return this._cullingMask
},
set: function(t) {
this._cullingMask = t
}
}]) && o(e.prototype, i),
t
}
)();
i.default = m,
e.exports = i.default
}
), {
"../../core/geom-utils": 148,
"../../core/value-types": 282,
"../enums": 310
}],
336: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n = (function() {
function 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
}
var e = t.prototype;
return e.setNode = function(t) {
this._node = t
}
,
e.setInputAssembler = function(t) {
this._inputAssembler = t
}
,
e.setEffect = function(t) {
this._effect = t
}
,
e.setUserKey = function(t) {
this._userKey = t
}
,
e.extractDrawItem = function(t) {
t.model = this,
t.node = this._node,
t.ia = this._inputAssembler,
t.effect = this._effect
}
,
t
}
)();
i.default = n,
e.exports = i.default
}
), {}],
337: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n = t("../memop")
, r = (function() {
function t(t) {
this._lights = new n.FixedArray(16),
this._models = new n.FixedArray(16),
this._cameras = new n.FixedArray(16),
this._debugCamera = null,
this._app = t,
this._views = []
}
var e = t.prototype;
return e._add = function(t, e) {
-1 === e._poolID && (t.push(e),
e._poolID = t.length - 1)
}
,
e._remove = function(t, e) {
-1 !== e._poolID && (t.data[t.length - 1]._poolID = e._poolID,
t.fastRemove(e._poolID),
e._poolID = -1)
}
,
e.reset = function() {
for (var t = 0; t < this._models.length; ++t)
this._models.data[t]._viewID = -1
}
,
e.setDebugCamera = function(t) {
this._debugCamera = t
}
,
e.getCameraCount = function() {
return this._cameras.length
}
,
e.getCamera = function(t) {
return this._cameras.data[t]
}
,
e.addCamera = function(t) {
this._add(this._cameras, t)
}
,
e.removeCamera = function(t) {
this._remove(this._cameras, t)
}
,
e.getModelCount = function() {
return this._models.length
}
,
e.getModel = function(t) {
return this._models.data[t]
}
,
e.addModel = function(t) {
this._add(this._models, t)
}
,
e.removeModel = function(t) {
this._remove(this._models, t)
}
,
e.getLightCount = function() {
return this._lights.length
}
,
e.getLight = function(t) {
return this._lights.data[t]
}
,
e.addLight = function(t) {
this._add(this._lights, t)
}
,
e.removeLight = function(t) {
this._remove(this._lights, t)
}
,
e.addView = function(t) {
-1 === this._views.indexOf(t) && this._views.push(t)
}
,
e.removeView = function(t) {
var e = this._views.indexOf(t);
-1 !== e && this._views.splice(e, 1)
}
,
t
}
)();
i.default = r,
e.exports = i.default
}
), {
"../memop": 327
}],
338: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.getInspectorProps = function(t) {
var e = {
type: t.type
};
Object.assign(e, t.editor || t.inspector),
e.defines = t.defines,
e.value = v(e.type)(t.value),
t.range && (e.range = t.range);
var i = g(e.type);
return e.typeName = A[i] || i,
e.valueCtor = d[e.type],
"cc.Texture2D" == e.typeName && (e.typeName = "cc.Asset",
e.assetType = "cc.Texture2D"),
e
}
,
i.getClassName = i.getInstanceCtor = i.getInstanceType = i.enums2default = i.ctor2enums = void 0;
var n, r, s, a, o = c(t("./enums")), l = t("../core/value-types"), h = c(t("../core/assets/CCTexture2D"));
function c(t) {
return t && t.__esModule ? t : {
default: t
}
}
var u;
u = t("./gfx/texture-2d");
var _ = cc.Object
, f = ((n = {})[Boolean] = function(t) {
return t || !1
}
,
n[Number] = function(t) {
return t ? ArrayBuffer.isView(t) ? t[0] : t : 0
}
,
n[l.Vec2] = function(t) {
return t ? cc.v2(t[0], t[1]) : cc.v2()
}
,
n[l.Vec3] = function(t) {
return t ? cc.v3(t[0], t[1], t[2]) : cc.v3()
}
,
n[l.Vec4] = function(t) {
return t ? cc.v4(t[0], t[1], t[2], t[3]) : cc.v4()
}
,
n[l.Color] = function(t) {
return t ? cc.color(255 * t[0], 255 * t[1], 255 * t[2], 255 * (t[3] || 1)) : cc.color()
}
,
n[l.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[h.default] = function() {
return null
}
,
n[_] = function() {
return null
}
,
n)
, d = ((r = {})[o.default.PARAM_INT] = Number,
r[o.default.PARAM_INT2] = l.Vec2,
r[o.default.PARAM_INT3] = l.Vec3,
r[o.default.PARAM_INT4] = l.Vec4,
r[o.default.PARAM_FLOAT] = Number,
r[o.default.PARAM_FLOAT2] = l.Vec2,
r[o.default.PARAM_FLOAT3] = l.Vec3,
r[o.default.PARAM_FLOAT4] = l.Vec4,
r[o.default.PARAM_MAT4] = l.Mat4,
r[o.default.PARAM_TEXTURE_2D] = h.default,
r.color = l.Color,
r.number = Number,
r.boolean = Boolean,
r.default = _,
r)
, p = ((s = {})[Number] = o.default.PARAM_FLOAT,
s[l.Vec2] = o.default.PARAM_FLOAT2,
s[l.Vec3] = o.default.PARAM_FLOAT3,
s[l.Vec4] = o.default.PARAM_FLOAT4,
s[l.Color] = o.default.PARAM_COLOR3,
s[l.Color] = o.default.PARAM_COLOR4,
s[l.Mat4] = o.default.PARAM_MAT4,
s[h.default] = o.default.PARAM_TEXTURE_2D,
s[u] = o.default.PARAM_TEXTURE_2D,
s);
i.ctor2enums = p;
var m = ((a = {})[o.default.PARAM_INT] = new Uint32Array([0]),
a[o.default.PARAM_INT2] = new Uint32Array([0, 0]),
a[o.default.PARAM_INT3] = new Uint32Array([0, 0, 0]),
a[o.default.PARAM_INT4] = new Uint32Array([0, 0, 0, 0]),
a[o.default.PARAM_FLOAT] = new Float32Array([0]),
a[o.default.PARAM_FLOAT2] = new Float32Array([0, 0]),
a[o.default.PARAM_FLOAT3] = new Float32Array([0, 0, 0]),
a[o.default.PARAM_FLOAT4] = new Float32Array([0, 0, 0, 0]),
a[o.default.PARAM_MAT4] = cc.mat4().m,
a[o.default.PARAM_TEXTURE_2D] = null,
a.number = 0,
a.boolean = !1,
a);
i.enums2default = m;
var y = function(t) {
return d[t] || d.default
};
i.getInstanceType = y;
var v = function(t) {
return f[y(t)]
};
i.getInstanceCtor = v;
var g = function(t) {
return cc.js.getClassName(y(t))
};
i.getClassName = g;
var A = {
Number: "number",
Boolean: "boolean"
}
}
), {
"../core/assets/CCTexture2D": 77,
"../core/value-types": 282,
"./enums": 310,
"./gfx/texture-2d": 320
}],
339: [(function(t) {
"use strict";
var e = t("../compression/ZipUtils")
, i = t("../compression/zlib.min")
, n = t("../core/platform/js");
function r(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
}
function s(t) {
var e = cc.Label.HorizontalAlign;
switch (t) {
case "center":
return e.CENTER;
case "right":
return e.RIGHT;
default:
return e.LEFT
}
}
function a(t) {
var e = cc.Label.VerticalAlign;
switch (t) {
case "center":
return e.CENTER;
case "bottom":
return e.BOTTOM;
default:
return e.TOP
}
}
function o(t) {
if (!t)
return cc.color(0, 0, 0, 255);
if (8 === (t = -1 !== t.indexOf("#") ? t.substring(1) : t).length) {
var e = parseInt(t.substr(0, 2), 16) || 255
, i = parseInt(t.substr(2, 2), 16) || 0
, n = parseInt(t.substr(4, 2), 16) || 0
, r = parseInt(t.substr(6, 2), 16) || 0;
return cc.color(i, n, r, e)
}
var s = parseInt(t.substr(0, 2), 16) || 0
, a = parseInt(t.substr(2, 2), 16) || 0
, o = parseInt(t.substr(4, 2), 16) || 0;
return cc.color(s, a, o, 255)
}
function l(t, e) {
for (var i = [], n = t.getElementsByTagName("properties"), r = 0; r < n.length; ++r)
for (var s = n[r].getElementsByTagName("property"), a = 0; a < s.length; ++a)
i.push(s[a]);
e = e || {};
for (var l = 0; l < i.length; l++) {
var h = i[l]
, c = h.getAttribute("name")
, u = h.getAttribute("type") || "string"
, _ = h.getAttribute("value");
"int" === u ? _ = parseInt(_) : "float" === u ? _ = parseFloat(_) : "bool" === u ? _ = "true" === _ : "color" === u && (_ = o(_)),
e[c] = _
}
return e
}
t("../core/platform/CCSAXParser"),
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.TMXImageLayerInfo = function() {
this.name = "",
this.visible = !0,
this.width = 0,
this.height = 0,
this.offset = cc.v2(0, 0),
this._opacity = 0,
this._trans = new cc.Color(255,255,255,255),
this.sourceImage = null
}
,
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);
return 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),
i
}
},
cc.TMXMapInfo = function(t, e, i, n, r) {
this.properties = [],
this.orientation = null,
this.parentElement = null,
this.parentGID = null,
this.layerAttrs = 0,
this.storingCharacters = !1,
this.currentString = null,
this.renderOrder = cc.TiledMap.RenderOrder.RightDown,
this._supportVersion = [1, 2, 0],
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._imageLayers = [],
this._tileProperties = {},
this._tileAnimations = {},
this._tsxMap = null,
this._textures = null,
this._staggerAxis = null,
this._staggerIndex = null,
this._hexSideLength = 0,
this._imageLayerTextures = null,
this.initWithXML(t, e, i, n, r)
}
,
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)
},
getImageLayers: function() {
return this._imageLayers
},
setImageLayers: function(t) {
this._allChildren.push(t),
this._imageLayers.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, n, r) {
return this._tilesets.length = 0,
this._layers.length = 0,
this._imageLayers.length = 0,
this._tsxMap = e,
this._textures = i,
this._imageLayerTextures = r,
this._textureSizes = n,
this._objectGroups.length = 0,
this._allChildren.length = 0,
this.properties.length = 0,
this._tileProperties = {},
this._tileAnimations = {},
this.currentString = "",
this.storingCharacters = !1,
this.layerAttrs = cc.TMXLayerInfo.ATTRIB_NONE,
this.parentElement = cc.TiledMap.NONE,
this.parseXMLString(t)
},
parseXMLString: function(t, e) {
var i, n = this._parser._parseXML(t).documentElement, r = n.getAttribute("orientation"), s = n.getAttribute("staggeraxis"), a = n.getAttribute("staggerindex"), o = n.getAttribute("hexsidelength"), h = n.getAttribute("renderorder"), c = n.getAttribute("version") || "1.0.0";
if ("map" === n.nodeName) {
for (var u = c.split("."), _ = this._supportVersion, f = 0; f < _.length; f++) {
var d = parseInt(u[f]) || 0;
if (_[f] < d) {
cc.logID(7216, c);
break
}
}
"orthogonal" === r ? this.orientation = cc.TiledMap.Orientation.ORTHO : "isometric" === r ? this.orientation = cc.TiledMap.Orientation.ISO : "hexagonal" === r ? this.orientation = cc.TiledMap.Orientation.HEX : null !== r && cc.logID(7217, r),
this.renderOrder = "right-up" === h ? cc.TiledMap.RenderOrder.RightUp : "left-up" === h ? cc.TiledMap.RenderOrder.LeftUp : "left-down" === h ? cc.TiledMap.RenderOrder.LeftDown : cc.TiledMap.RenderOrder.RightDown,
"x" === s ? this.setStaggerAxis(cc.TiledMap.StaggerAxis.STAGGERAXIS_X) : "y" === s && this.setStaggerAxis(cc.TiledMap.StaggerAxis.STAGGERAXIS_Y),
"odd" === a ? this.setStaggerIndex(cc.TiledMap.StaggerIndex.STAGGERINDEX_ODD) : "even" === a && this.setStaggerIndex(cc.TiledMap.StaggerIndex.STAGGERINDEX_EVEN),
o && this.setHexSideLength(parseFloat(o));
var p = cc.size(0, 0);
p.width = parseFloat(n.getAttribute("width")),
p.height = parseFloat(n.getAttribute("height")),
this.setMapSize(p),
(p = cc.size(0, 0)).width = parseFloat(n.getAttribute("tilewidth")),
p.height = parseFloat(n.getAttribute("tileheight")),
this.setTileSize(p),
this.properties = l(n)
}
var m = n.getElementsByTagName("tileset");
for ("map" !== n.nodeName && (m = []).push(n),
i = 0; i < m.length; i++) {
var y = m[i]
, v = y.getAttribute("source");
if (v) {
var g = parseInt(y.getAttribute("firstgid"))
, A = this._tsxMap[v];
A && this.parseXMLString(A, g)
} else {
var x = y.getElementsByTagName("image")
, b = x.length > 1
, C = x[0]
, T = C.getAttribute("source");
T = T.replace(/\\/g, "/");
var S = y.getElementsByTagName("tile")
, w = S && S.length || 1
, E = null
, M = y.getAttribute("name") || ""
, D = parseInt(y.getAttribute("spacing")) || 0
, B = parseInt(y.getAttribute("margin")) || 0
, I = parseInt(e);
I || (I = parseInt(y.getAttribute("firstgid")) || 0);
var P = cc.size(0, 0);
P.width = parseFloat(y.getAttribute("tilewidth")),
P.height = parseFloat(y.getAttribute("tileheight"));
var R = y.getElementsByTagName("tileoffset")[0]
, O = cc.v2(0, 0);
R && (O.x = parseFloat(R.getAttribute("x")),
O.y = parseFloat(R.getAttribute("y")));
for (var L = null, F = 0; F < w; F++)
if (L && !b || ((L = new cc.TMXTilesetInfo).name = M,
L.firstGid = I,
L.spacing = D,
L.margin = B,
L._tileSize = P,
L.tileOffset = O,
L.sourceImage = this._textures[T],
L.imageSize = this._textureSizes[T] || L.imageSize,
L.sourceImage || cc.errorID(7221, T),
this.setTilesets(L)),
E = S && S[F]) {
this.parentGID = parseInt(I) + parseInt(E.getAttribute("id") || 0);
var V = E.getElementsByTagName("image");
if (V && V.length > 0) {
var N = (C = V[0]).getAttribute("source");
N = N.replace(/\\/g, "/"),
L.sourceImage = this._textures[N],
L.sourceImage || cc.errorID(7221, N);
var k = cc.size(0, 0);
k.width = parseFloat(C.getAttribute("width")),
k.height = parseFloat(C.getAttribute("height")),
L._tileSize = k,
L.firstGid = this.parentGID
}
this._tileProperties[this.parentGID] = l(E);
var G = E.getElementsByTagName("animation");
if (G && G.length > 0) {
var U = G[0].getElementsByTagName("frame")
, z = {
frames: [],
dt: 0,
frameIdx: 0
};
this._tileAnimations[this.parentGID] = z;
for (var H = z.frames, W = 0; W < U.length; W++) {
var j = U[W]
, X = parseInt(I) + parseInt(j.getAttribute("tileid"))
, Y = parseFloat(j.getAttribute("duration"));
H.push({
tileid: X,
duration: Y / 1e3,
grid: null
})
}
}
}
}
}
var q = n.childNodes;
for (i = 0; i < q.length; i++) {
var J = q[i];
if (!this._shouldIgnoreNode(J)) {
if ("imagelayer" === J.nodeName) {
var Z = this._parseImageLayer(J);
Z && this.setImageLayers(Z)
}
if ("layer" === J.nodeName) {
var K = this._parseLayer(J);
this.setLayers(K)
}
if ("objectgroup" === J.nodeName) {
var Q = this._parseObjectGroup(J);
this.setObjectGroups(Q)
}
}
}
return n
},
_shouldIgnoreNode: function(t) {
return 3 === t.nodeType || 8 === t.nodeType || 4 === t.nodeType
},
_parseImageLayer: function(t) {
var e = t.getElementsByTagName("image");
if (!e || 0 == e.length)
return null;
var i = new cc.TMXImageLayerInfo;
i.name = t.getAttribute("name"),
i.offset.x = parseFloat(t.getAttribute("offsetx")) || 0,
i.offset.y = parseFloat(t.getAttribute("offsety")) || 0;
var n = t.getAttribute("visible");
i.visible = !("0" === n);
var r = t.getAttribute("opacity") || 1;
i.opacity = parseInt(255 * parseFloat(r)) || 255;
var s = e[0]
, a = s.getAttribute("source");
return i.sourceImage = this._imageLayerTextures[a],
i.width = parseInt(s.getAttribute("width")) || 0,
i.height = parseInt(s.getAttribute("height")) || 0,
i.trans = o(s.getAttribute("trans")),
i.sourceImage ? i : (cc.errorID(7221, a),
null)
},
_parseLayer: function(t) {
var n = t.getElementsByTagName("data")[0]
, s = new cc.TMXLayerInfo;
s.name = t.getAttribute("name");
var a = cc.size(0, 0);
a.width = parseFloat(t.getAttribute("width")),
a.height = parseFloat(t.getAttribute("height")),
s._layerSize = a;
var o = t.getAttribute("visible");
s.visible = !("0" === o);
var h = t.getAttribute("opacity") || 1;
s._opacity = h ? parseInt(255 * parseFloat(h)) : 255,
s.offset = cc.v2(parseFloat(t.getAttribute("offsetx")) || 0, parseFloat(t.getAttribute("offsety")) || 0);
for (var c = "", u = 0; u < n.childNodes.length; u++)
c += n.childNodes[u].nodeValue;
c = c.trim();
var _, f = n.getAttribute("compression"), d = n.getAttribute("encoding");
if (f && "gzip" !== f && "zlib" !== f)
return cc.logID(7218),
null;
switch (f) {
case "gzip":
_ = e.unzipBase64AsArray(c, 4);
break;
case "zlib":
_ = r(new i.Inflate(e.Base64.decodeAsArray(c, 1)).decompress());
break;
case null:
case "":
if ("base64" === d)
_ = e.Base64.decodeAsArray(c, 4);
else if ("csv" === d) {
_ = [];
for (var p = c.split(","), m = 0; m < p.length; m++)
_.push(parseInt(p[m]))
} else {
var y = n.getElementsByTagName("tile");
_ = [];
for (var v = 0; v < y.length; v++)
_.push(parseInt(y[v].getAttribute("gid")))
}
break;
default:
this.layerAttrs === cc.TMXLayerInfo.ATTRIB_NONE && cc.logID(7219)
}
return _ && (s._tiles = new Uint32Array(_)),
s.properties = l(t),
s
},
_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 h = t.getAttribute("draworder");
h && (e._draworder = h),
e.setProperties(l(t));
var c = t.getElementsByTagName("object");
if (c) {
for (var u = 0; u < c.length; u++) {
var _ = c[u]
, f = {};
f.id = _.getAttribute("id") || u,
f.name = _.getAttribute("name") || "",
f.width = parseFloat(_.getAttribute("width")) || 0,
f.height = parseFloat(_.getAttribute("height")) || 0,
f.x = parseFloat(_.getAttribute("x")) || 0,
f.y = parseFloat(_.getAttribute("y")) || 0,
f.rotation = parseFloat(_.getAttribute("rotation")) || 0,
l(_, f);
var d = _.getAttribute("visible");
f.visible = !(d && 0 === parseInt(d));
var p = _.getElementsByTagName("text");
if (p && p.length > 0) {
var m = p[0];
f.type = cc.TiledMap.TMXObjectType.TEXT,
f.wrap = "1" == m.getAttribute("wrap"),
f.color = o(m.getAttribute("color")),
f.halign = s(m.getAttribute("halign")),
f.valign = a(m.getAttribute("valign")),
f.pixelsize = parseInt(m.getAttribute("pixelsize")) || 16,
f.text = m.childNodes[0].nodeValue
}
var y = _.getAttribute("gid");
y && (f.gid = parseInt(y),
f.type = cc.TiledMap.TMXObjectType.IMAGE);
var v = _.getElementsByTagName("ellipse");
v && v.length > 0 && (f.type = cc.TiledMap.TMXObjectType.ELLIPSE);
var g = _.getElementsByTagName("polygon");
if (g && g.length > 0) {
f.type = cc.TiledMap.TMXObjectType.POLYGON;
var A = g[0].getAttribute("points");
A && (f.points = this._parsePointsString(A))
}
var x = _.getElementsByTagName("polyline");
if (x && x.length > 0) {
f.type = cc.TiledMap.TMXObjectType.POLYLINE;
var b = x[0].getAttribute("points");
b && (f.polylinePoints = this._parsePointsString(b))
}
f.type || (f.type = cc.TiledMap.TMXObjectType.RECT),
e._objects.push(f)
}
"index" !== h && e._objects.sort((function(t, e) {
return t.y - e.y
}
))
}
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
},
setTileAnimations: function(t) {
this._tileAnimations = t
},
getTileAnimations: function() {
return this._tileAnimations
},
getTileProperties: function() {
return this._tileProperties
},
setTileProperties: function(t) {
this._tileProperties = t
},
getCurrentString: function() {
return this.currentString
},
setCurrentString: function(t) {
this.currentString = t
}
};
var h = cc.TMXMapInfo.prototype;
n.getset(h, "mapWidth", h._getMapWidth, h._setMapWidth),
n.getset(h, "mapHeight", h._getMapHeight, h._setMapHeight),
n.getset(h, "tileWidth", h._getTileWidth, h._setTileWidth),
n.getset(h, "tileHeight", h._getTileHeight, h._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": 200,
"../core/platform/js": 214
}],
340: [(function(t, e) {
"use strict";
var i, n = t("../core/value-types"), r = (i = t("../core/assets/material/material-variant")) && i.__esModule ? i : {
default: i
}, s = t("../core/components/CCRenderComponent"), a = t("../core/assets/material/CCMaterial"), o = t("../core/renderer/render-flow"), l = cc.mat4(), h = cc.v2(), c = cc.v2(), u = cc.v2(), _ = {
row: 0,
col: 0
}, f = cc.Class({
name: "cc.TiledUserNodeData",
extends: cc.Component,
ctor: function() {
this._index = -1,
this._row = -1,
this._col = -1,
this._tiledLayer = null
}
}), d = cc.Class({
name: "cc.TiledLayer",
extends: s,
editor: {
inspector: "packages://inspector/inspectors/comps/tiled-layer.js"
},
ctor: function() {
this._userNodeGrid = {},
this._userNodeMap = {},
this._userNodeDirty = !1,
this._tiledTiles = [],
this._tilesetIndexArr = [],
this._tilesetIndexToArrIndex = {},
this._texIdToMatIndex = {},
this._viewPort = {
x: -1,
y: -1,
width: -1,
height: -1
},
this._cullingRect = {
leftDown: {
row: -1,
col: -1
},
rightTop: {
row: -1,
col: -1
}
},
this._cullingDirty = !0,
this._rightTop = {
row: -1,
col: -1
},
this._layerInfo = null,
this._mapInfo = null,
this._topOffset = 0,
this._downOffset = 0,
this._leftOffset = 0,
this._rightOffset = 0,
this._tiles = [],
this._vertices = [],
this._verticesDirty = !0,
this._layerName = "",
this._layerOrientation = null,
this._texGrids = null,
this._textures = null,
this._tilesets = null,
this._leftDownToCenterX = 0,
this._leftDownToCenterY = 0,
this._hasTiledNodeGrid = !1,
this._hasAniGrid = !1,
this._animations = null,
this._enableCulling = cc.macro.ENABLE_TILEDMAP_CULLING
},
_hasTiledNode: function() {
return this._hasTiledNodeGrid
},
_hasAnimation: function() {
return this._hasAniGrid
},
enableCulling: function(t) {
this._enableCulling != t && (this._enableCulling = t,
this._cullingDirty = !0)
},
addUserNode: function(t) {
var e = t.getComponent(f);
return e ? (cc.warn("CCTiledLayer:addUserNode node has been added"),
!1) : (e = t.addComponent(f),
t.parent = this.node,
t._renderFlag |= o.FLAG_BREAK_FLOW,
this._userNodeMap[t._id] = e,
e._row = -1,
e._col = -1,
e._tiledLayer = this,
this._nodeLocalPosToLayerPos(t, h),
this._positionToRowCol(h.x, h.y, _),
this._addUserNodeToGrid(e, _),
this._updateCullingOffsetByUserNode(t),
t.on(cc.Node.EventType.POSITION_CHANGED, this._userNodePosChange, e),
t.on(cc.Node.EventType.SIZE_CHANGED, this._userNodeSizeChange, e),
!0)
},
removeUserNode: function(t) {
var e = t.getComponent(f);
return e ? (t.off(cc.Node.EventType.POSITION_CHANGED, this._userNodePosChange, e),
t.off(cc.Node.EventType.SIZE_CHANGED, this._userNodeSizeChange, e),
this._removeUserNodeFromGrid(e),
delete this._userNodeMap[t._id],
t._removeComponent(e),
e.destroy(),
t.removeFromParent(!0),
t._renderFlag &= ~o.FLAG_BREAK_FLOW,
!0) : (cc.warn("CCTiledLayer:removeUserNode node is not exist"),
!1)
},
destroyUserNode: function(t) {
this.removeUserNode(t),
t.destroy()
},
_nodeLocalPosToLayerPos: function(t, e) {
e.x = t.x + this._leftDownToCenterX,
e.y = t.y + this._leftDownToCenterY
},
_getNodesByRowCol: function(t, e) {
var i = this._userNodeGrid[t];
return i ? i[e] : null
},
_getNodesCountByRow: function(t) {
var e = this._userNodeGrid[t];
return e ? e.count : 0
},
_updateAllUserNode: function() {
for (var t in this._userNodeGrid = {},
this._userNodeMap) {
var e = this._userNodeMap[t];
this._nodeLocalPosToLayerPos(e.node, h),
this._positionToRowCol(h.x, h.y, _),
this._addUserNodeToGrid(e, _),
this._updateCullingOffsetByUserNode(e.node)
}
},
_updateCullingOffsetByUserNode: function(t) {
this._topOffset < t.height && (this._topOffset = t.height),
this._downOffset < t.height && (this._downOffset = t.height),
this._leftOffset < t.width && (this._leftOffset = t.width),
this._rightOffset < t.width && (this._rightOffset = t.width)
},
_userNodeSizeChange: function() {
var t = this.node;
this._tiledLayer._updateCullingOffsetByUserNode(t)
},
_userNodePosChange: function() {
var t = this.node
, e = this._tiledLayer;
e._nodeLocalPosToLayerPos(t, h),
e._positionToRowCol(h.x, h.y, _),
e._limitInLayer(_),
_.row === this._row && _.col === this._col || (e._removeUserNodeFromGrid(this),
e._addUserNodeToGrid(this, _))
},
_removeUserNodeFromGrid: function(t) {
var e = t._row
, i = t._col
, n = t._index
, r = this._userNodeGrid[e]
, s = r && r[i];
s && (r.count--,
s.count--,
s.list[n] = null,
s.count <= 0 && (s.list.length = 0,
s.count = 0)),
t._row = -1,
t._col = -1,
t._index = -1,
this._userNodeDirty = !0
},
_limitInLayer: function(t) {
var e = t.row
, i = t.col;
e < 0 && (t.row = 0),
e > this._rightTop.row && (t.row = this._rightTop.row),
i < 0 && (t.col = 0),
i > this._rightTop.col && (t.col = this._rightTop.col)
},
_addUserNodeToGrid: function(t, e) {
var i = e.row
, n = e.col
, r = this._userNodeGrid[i] = this._userNodeGrid[i] || {
count: 0
}
, s = r[n] = r[n] || {
count: 0,
list: []
};
t._row = i,
t._col = n,
t._index = s.list.length,
r.count++,
s.count++,
s.list.push(t),
this._userNodeDirty = !0
},
_isUserNodeDirty: function() {
return this._userNodeDirty
},
_setUserNodeDirty: function(t) {
this._userNodeDirty = t
},
onEnable: function() {
this._super(),
this.node.on(cc.Node.EventType.ANCHOR_CHANGED, this._syncAnchorPoint, this),
this._activateMaterial()
},
onDisable: function() {
this._super(),
this.node.off(cc.Node.EventType.ANCHOR_CHANGED, this._syncAnchorPoint, this)
},
_syncAnchorPoint: function() {
var t = this.node;
this._leftDownToCenterX = t.width * t.anchorX * t.scaleX,
this._leftDownToCenterY = t.height * t.anchorY * t.scaleY,
this._cullingDirty = !0
},
onDestroy: function() {
this._super(),
this._buffer && (this._buffer.destroy(),
this._buffer = null),
this._renderDataList = 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, n;
switch (void 0 !== e ? (i = Math.floor(t),
e = Math.floor(e)) : (i = Math.floor(t.x),
e = Math.floor(t.y)),
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(t, e) {
if (t && "object" == typeof t) {
var i = t;
e = i.y,
t = i.x
}
return t >= this._layerSize.width || e >= this._layerSize.height || t < 0 || e < 0
},
_positionForIsoAt: function(t, e) {
var i = 0
, n = 0
, r = Math.floor(t) + Math.floor(e) * this._layerSize.width
, s = this._tiles[r];
if (s) {
var a = (s & cc.TiledMap.TileFlag.FLIPPED_MASK) >>> 0
, o = this._texGrids[a].tileset.tileOffset;
i = o.x,
n = o.y
}
return cc.v2(.5 * this._mapTileSize.width * (this._layerSize.height + t - e - 1) + i, .5 * this._mapTileSize.height * (this._layerSize.width - t + this._layerSize.height - e - 2) - n)
},
_positionForOrthoAt: function(t, e) {
var i = 0
, n = 0
, r = Math.floor(t) + Math.floor(e) * this._layerSize.width
, s = this._tiles[r];
if (s) {
var a = (s & cc.TiledMap.TileFlag.FLIPPED_MASK) >>> 0
, o = this._texGrids[a].tileset.tileOffset;
i = o.x,
n = o.y
}
return cc.v2(t * this._mapTileSize.width + i, (this._layerSize.height - e - 1) * this._mapTileSize.height - n)
},
_positionForHexAt: function(t, e) {
var i, n = this._mapTileSize.width, r = this._mapTileSize.height, s = this._layerSize.height, a = Math.floor(t) + Math.floor(e) * this._layerSize.width, o = this._tiles[a];
i = this._texGrids[o] ? this._texGrids[o].tileset.tileOffset : {
x: 0,
y: 0
};
var l = this._staggerIndex === cc.TiledMap.StaggerIndex.STAGGERINDEX_ODD ? 1 : -1
, h = 0
, c = 0
, u = 0
, _ = 0;
switch (this._staggerAxis) {
case cc.TiledMap.StaggerAxis.STAGGERAXIS_Y:
u = 0,
e % 2 == 1 && (u = n / 2 * l),
h = t * n + u + i.x,
c = (s - e - 1) * (r - (r - this._hexSideLength) / 2) - i.y;
break;
case cc.TiledMap.StaggerAxis.STAGGERAXIS_X:
_ = 0,
t % 2 == 1 && (_ = r / 2 * -l),
h = t * (n - (n - this._hexSideLength) / 2) + i.x,
c = (s - e - 1) * r + _ - i.y
}
return cc.v2(h, c)
},
setTilesGIDAt: function(t, e, i, n) {
if (t && 0 !== t.length && !(n <= 0)) {
i < 0 && (i = 0),
e < 0 && (e = 0);
for (var r = 0, s = e + n, a = i; ; a++)
for (var o = e; o < s; o++) {
if (r >= t.length)
return;
this._updateTileForGID(t[r], o, a),
r++
}
}
},
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 === n && e instanceof cc.Vec2 ? (r = e,
n = i) : (u.x = e,
u.y = i,
r = u);
var s = t & cc.TiledMap.TileFlag.FLIPPED_MASK;
if (r.x = Math.floor(r.x),
r.y = Math.floor(r.y),
this._isInvalidPosition(r))
throw new Error("cc.TiledLayer.setTileGIDAt(): invalid position");
this._tiles && this._tilesets && 0 != this._tilesets.length ? 0 !== s && s < this._tilesets[0].firstGid ? cc.logID(7239, t) : (n = n || 0,
this._updateTileForGID((t | n) >>> 0, r.x, r.y)) : cc.logID(7238)
},
_updateTileForGID: function(t, e, i) {
var n = 0 | e + i * this._layerSize.width;
if (!(n >= this._tiles.length) && t !== this._tiles[n]) {
var r = (t & cc.TiledMap.TileFlag.FLIPPED_MASK) >>> 0
, s = this._texGrids[r]
, a = s && s.texId;
s ? (this._tiles[n] = t,
this._updateVertex(e, i),
this._buildMaterial(a)) : this._tiles[n] = 0,
this._cullingDirty = !0
}
},
getTiles: function() {
return this._tiles
},
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),
this._isInvalidPosition(i, e))
throw new Error("cc.TiledLayer.getTileGIDAt(): invalid position");
if (!this._tiles)
return cc.logID(7237),
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");
if (void 0 !== e && (t = cc.v2(t, e)),
this._isInvalidPosition(t))
throw new Error("TiledLayer.getTileFlagsAt: invalid position");
if (!this._tiles)
return cc.logID(7240),
null;
var i = Math.floor(t.x) + Math.floor(t.y) * this._layerSize.width;
return (this._tiles[i] & cc.TiledMap.TileFlag.FLIPPED_ALL) >>> 0
},
_setCullingDirty: function(t) {
this._cullingDirty = t
},
_isCullingDirty: function() {
return this._cullingDirty
},
_updateViewPort: function(t, e, i, n) {
if (this._viewPort.width !== i || this._viewPort.height !== n || this._viewPort.x !== t || this._viewPort.y !== e) {
this._viewPort.x = t,
this._viewPort.y = e,
this._viewPort.width = i,
this._viewPort.height = n;
var r = 1;
this._layerOrientation === cc.TiledMap.Orientation.ISO && (r = 2);
var s = this._viewPort.x - this._offset.x + this._leftDownToCenterX
, a = this._viewPort.y - this._offset.y + this._leftDownToCenterY
, o = s - this._leftOffset
, l = a - this._downOffset
, h = s + i + this._rightOffset
, c = a + n + this._topOffset
, u = this._cullingRect.leftDown
, f = this._cullingRect.rightTop;
o < 0 && (o = 0),
l < 0 && (l = 0),
this._positionToRowCol(o, l, _),
_.row -= r,
_.col -= r,
_.row = _.row > 0 ? _.row : 0,
_.col = _.col > 0 ? _.col : 0,
_.row === u.row && _.col === u.col || (u.row = _.row,
u.col = _.col,
this._cullingDirty = !0),
h < 0 || c < 0 ? (_.row = -1,
_.col = -1) : (this._positionToRowCol(h, c, _),
_.row++,
_.col++),
_.row > this._rightTop.row && (_.row = this._rightTop.row),
_.col > this._rightTop.col && (_.col = this._rightTop.col),
_.row === f.row && _.col === f.col || (f.row = _.row,
f.col = _.col,
this._cullingDirty = !0)
}
},
_positionToRowCol: function(t, e, i) {
var n = cc.TiledMap
, r = n.Orientation
, s = n.StaggerAxis
, a = this._mapTileSize.width
, o = this._mapTileSize.height
, l = .5 * a
, h = .5 * o
, c = 0
, u = 0
, _ = 0
, f = 0
, d = this._staggerAxis;
switch (this._layerSize.width,
this._layerOrientation) {
case r.ORTHO:
u = Math.floor(t / a),
c = Math.floor(e / o);
break;
case r.ISO:
u = Math.floor(t / l),
c = Math.floor(e / h);
break;
case r.HEX:
d === s.STAGGERAXIS_Y ? (_ = (c = Math.floor(e / (o - this._diffY1))) % 2 == 1 ? l * this._odd_even : 0,
u = Math.floor((t - _) / a)) : (f = (u = Math.floor(t / (a - this._diffX1))) % 2 == 1 ? h * -this._odd_even : 0,
c = Math.floor((e - f) / o))
}
return i.row = c,
i.col = u,
i
},
_updateCulling: function() {
if (this._enableCulling) {
this.node._updateWorldMatrix(),
n.Mat4.invert(l, this.node._worldMatrix);
var t = cc.visibleRect
, e = cc.Camera.findCamera(this.node);
e && (h.x = 0,
h.y = 0,
c.x = h.x + t.width,
c.y = h.y + t.height,
e.getScreenToWorldPoint(h, h),
e.getScreenToWorldPoint(c, c),
n.Vec2.transformMat4(h, h, l),
n.Vec2.transformMat4(c, c, l),
this._updateViewPort(h.x, h.y, c.x - h.x, c.y - h.y))
}
},
getLayerOrientation: function() {
return this._layerOrientation
},
getProperties: function() {
return this._properties
},
_updateVertex: function(t, e) {
var i = cc.TiledMap
, n = i.TileFlag.FLIPPED_MASK
, r = i.StaggerAxis
, s = i.Orientation
, a = this._vertices
, o = this._layerOrientation
, l = this._tiles;
if (l) {
var h, c, u, _, f, d, p, m = this._rightTop, y = this._mapTileSize.width, v = this._mapTileSize.height, g = .5 * y, A = .5 * v, x = this._layerSize.height, b = this._layerSize.width, C = this._texGrids;
o === s.HEX && (_ = this._staggerAxis,
f = this._diffX1,
d = this._diffY1,
p = this._odd_even);
var T, S, w, E, M = 0, D = 0, B = 0, I = 0, P = e * b + t;
if (h = C[S = (l[P] & n) >>> 0]) {
switch (this._animations[S] && (this._hasAniGrid = this._hasAniGrid || !0),
o) {
case s.ORTHO:
c = (M = t) * y,
u = (D = x - e - 1) * v;
break;
case s.ISO:
c = g * (M = x + t - e - 1),
u = A * (D = x + b - t - e - 2);
break;
case s.HEX:
c = t * (y - f) + (_ === r.STAGGERAXIS_Y && e % 2 == 1 ? g * p : 0),
u = (x - e - 1) * (v - d) + (_ === r.STAGGERAXIS_X && t % 2 == 1 ? A * -p : 0),
M = t,
D = x - e - 1
}
var R = a[D] = a[D] || {
minCol: 0,
maxCol: 0
}
, O = R[M] = R[M] || {};
R.minCol > M && (R.minCol = M),
R.maxCol < M && (R.maxCol = M),
m.row < D && (m.row = D),
m.col < M && (m.col = M),
T = h.tileset.tileOffset,
c += this._offset.x + T.x,
u += this._offset.y - T.y,
B = (B = -T.y + h.tileset._tileSize.height - v) < 0 ? 0 : B,
w = T.y < 0 ? 0 : T.y,
E = -T.x < 0 ? 0 : -T.x,
I = (I = T.x + h.tileset._tileSize.width - y) < 0 ? 0 : I,
this._rightOffset < E && (this._rightOffset = E),
this._leftOffset < I && (this._leftOffset = I),
this._topOffset < w && (this._topOffset = w),
this._downOffset < B && (this._downOffset = B),
O.left = c,
O.bottom = u,
O.index = P,
this._cullingDirty = !0
}
}
},
_updateVertices: function() {
if (this._vertices.length = 0,
this._tiles) {
var t = this._rightTop;
t.row = -1,
t.col = -1;
var e = this._layerSize.height
, i = this._layerSize.width;
this._topOffset = 0,
this._downOffset = 0,
this._leftOffset = 0,
this._rightOffset = 0,
this._hasAniGrid = !1;
for (var n = 0; n < e; ++n)
for (var r = 0; r < i; ++r)
this._updateVertex(r, n);
this._verticesDirty = !1
}
},
getTiledTileAt: function(t, e, i) {
if (this._isInvalidPosition(t, e))
throw new Error("TiledLayer.getTiledTileAt: invalid position");
if (!this._tiles)
return cc.logID(7236),
null;
var n = Math.floor(t) + Math.floor(e) * this._layerSize.width
, r = this._tiledTiles[n];
if (!r && i) {
var s = new cc.Node;
return (r = s.addComponent(cc.TiledTile))._x = t,
r._y = e,
r._layer = this,
r._updateInfo(),
s.parent = this.node,
r
}
return r
},
setTiledTileAt: function(t, e, i) {
if (this._isInvalidPosition(t, e))
throw new Error("TiledLayer.setTiledTileAt: invalid position");
if (!this._tiles)
return cc.logID(7236),
null;
var n = Math.floor(t) + Math.floor(e) * this._layerSize.width;
return this._tiledTiles[n] = i,
this._cullingDirty = !0,
this._hasTiledNodeGrid = !!i || this._tiledTiles.some((function(t) {
return !!t
}
)),
i
},
getTexture: function(t) {
return t = t || 0,
this._textures && t >= 0 && this._textures.length > t ? this._textures[t] : null
},
getTextures: function() {
return this._textures
},
setTexture: function(t) {
this.setTextures([t])
},
setTextures: function(t) {
this._textures = t,
this._activateMaterial()
},
getLayerSize: function() {
return this._layerSize
},
getMapTileSize: function() {
return this._mapTileSize
},
getTileSet: function(t) {
return t = t || 0,
this._tilesets && t >= 0 && this._tilesets.length > t ? this._tilesets[t] : null
},
getTileSets: function() {
return this._tilesets
},
setTileSet: function(t) {
this.setTileSets([t])
},
setTileSets: function(t) {
this._tilesets = t;
for (var e = this._textures = [], i = this._texGrids = [], n = 0; n < t.length; n++) {
var r = t[n];
r && (e[n] = r.sourceImage)
}
cc.TiledMap.loadAllTextures(e, function() {
for (var e = 0, n = t.length; e < n; ++e) {
var r = t[e];
r && cc.TiledMap.fillTextureGrids(r, i, e)
}
this._prepareToRender()
}
.bind(this))
},
_traverseAllGrid: function() {
var t = this._tiles
, e = this._texGrids
, i = this._tilesetIndexArr
, n = this._tilesetIndexToArrIndex = {}
, r = cc.TiledMap.TileFlag.FLIPPED_MASK;
i.length = 0;
for (var s = 0; s < t.length; s++) {
var a = t[s];
if (0 !== a) {
var o = e[a = (a & r) >>> 0];
if (o) {
var l = o.texId;
void 0 === n[l] && (n[l] = i.length,
i.push(l))
} else
cc.error("CCTiledLayer:_traverseAllGrid grid is null, gid is:", a)
}
}
},
_init: function(t, e, i, n, r) {
this._cullingDirty = !0,
this._layerInfo = t,
this._mapInfo = e;
var s = t._layerSize;
this._layerName = t.name,
this._tiles = t._tiles,
this._properties = t.properties,
this._layerSize = s,
this._minGID = t._minGID,
this._maxGID = t._maxGID,
this._opacity = t._opacity,
this._renderOrder = e.renderOrder,
this._staggerAxis = e.getStaggerAxis(),
this._staggerIndex = e.getStaggerIndex(),
this._hexSideLength = e.getHexSideLength(),
this._animations = e.getTileAnimations(),
this._tilesets = i,
this._textures = n,
this._texGrids = r,
this._layerOrientation = e.orientation,
this._mapTileSize = e.getTileSize();
var a = this._mapTileSize.width
, o = this._mapTileSize.height
, l = this._layerSize.width
, h = this._layerSize.height;
if (this._layerOrientation === cc.TiledMap.Orientation.HEX) {
var c = cc.TiledMap
, u = c.StaggerAxis
, _ = c.StaggerIndex
, f = 0
, d = 0;
this._odd_even = this._staggerIndex === _.STAGGERINDEX_ODD ? 1 : -1,
this._staggerAxis === u.STAGGERAXIS_X ? (this._diffX1 = (a - this._hexSideLength) / 2,
this._diffY1 = 0,
d = o * (h + .5),
f = (a + this._hexSideLength) * Math.floor(l / 2) + a * (l % 2)) : (this._diffX1 = 0,
this._diffY1 = (o - this._hexSideLength) / 2,
f = a * (l + .5),
d = (o + this._hexSideLength) * Math.floor(h / 2) + o * (h % 2)),
this.node.setContentSize(f, d)
} else if (this._layerOrientation === cc.TiledMap.Orientation.ISO) {
var p = l + h;
this.node.setContentSize(.5 * a * p, .5 * o * p)
} else
this.node.setContentSize(l * a, h * o);
this._offset = cc.v2(t.offset.x, -t.offset.y),
this._useAutomaticVertexZ = !1,
this._vertexZvalue = 0,
this._syncAnchorPoint(),
this._prepareToRender()
},
_prepareToRender: function() {
this._updateVertices(),
this._traverseAllGrid(),
this._updateAllUserNode(),
this._activateMaterial()
},
_buildMaterial: function(t) {
var e = this._texIdToMatIndex;
if (void 0 !== e[t])
return null;
var i = this._tilesetIndexArr
, n = this._tilesetIndexToArrIndex
, s = n[t];
void 0 === s && (n[t] = s = i.length,
i.push(t));
var o = this._textures[t]
, l = this._materials[s];
return l || (l = a.getBuiltinMaterial("2d-sprite")),
(l = r.default.create(l, this)).define("CC_USE_MODEL", !0),
l.setProperty("texture", o),
this._materials[s] = l,
e[t] = s,
l
},
_activateMaterial: function() {
var t = this._tilesetIndexArr;
if (0 !== t.length) {
for (var e = t.length, i = 0; i < e; i++)
this._buildMaterial(t[i]);
this._materials.length = e,
this.markForRender(!0)
} else
this.disableRender()
}
});
cc.TiledLayer = e.exports = d
}
), {
"../core/assets/material/CCMaterial": 80,
"../core/assets/material/material-variant": 87,
"../core/components/CCRenderComponent": 115,
"../core/renderer/render-flow": 225,
"../core/value-types": 282
}],
341: [(function(t, e) {
"use strict";
t("./CCTMXXMLParser"),
t("./CCTiledMapAsset"),
t("./CCTiledLayer"),
t("./CCTiledTile"),
t("./CCTiledObjectGroup");
var i = cc.Enum({
ORTHO: 0,
HEX: 1,
ISO: 2
})
, n = cc.Enum({
NONE: 0,
MAP: 1,
LAYER: 2,
OBJECTGROUP: 3,
OBJECT: 4,
TILE: 5
})
, r = cc.Enum({
HORIZONTAL: 2147483648,
VERTICAL: 1073741824,
DIAGONAL: 536870912,
FLIPPED_ALL: 4026531840,
FLIPPED_MASK: 268435455
})
, s = cc.Enum({
STAGGERAXIS_X: 0,
STAGGERAXIS_Y: 1
})
, a = cc.Enum({
STAGGERINDEX_ODD: 0,
STAGGERINDEX_EVEN: 1
})
, o = cc.Enum({
RightDown: 0,
RightUp: 1,
LeftDown: 2,
LeftUp: 3
})
, l = cc.Enum({
RECT: 0,
ELLIPSE: 1,
POLYGON: 2,
POLYLINE: 3,
IMAGE: 4,
TEXT: 5
})
, h = cc.Class({
name: "cc.TiledMap",
extends: cc.Component,
editor: !1,
ctor: function() {
this._texGrids = [],
this._textures = [],
this._tilesets = [],
this._animations = [],
this._imageLayers = [],
this._layers = [],
this._groups = [],
this._images = [],
this._properties = [],
this._tileProperties = [],
this._mapSize = cc.size(0, 0),
this._tileSize = cc.size(0, 0)
},
statics: {
Orientation: i,
Property: n,
TileFlag: r,
StaggerAxis: s,
StaggerIndex: a,
TMXObjectType: l,
RenderOrder: o
},
properties: {
_tmxFile: {
default: null,
type: cc.TiledMapAsset
},
tmxAsset: {
get: function() {
return this._tmxFile
},
set: function(t) {
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
},
enableCulling: function(t) {
for (var e = this._layers, i = 0; i < e.length; ++i)
e[i].enableCulling(t)
},
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
},
_changeLayer: function(t, e) {
for (var i = this._layers, n = 0, r = i.length; n < r; n++) {
var s = i[n];
if (s && s.getLayerName() === t)
return void (i[n] = e)
}
},
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 = t.textureSizes, r = {}, s = {}, a = 0; a < e.length; ++a) {
var o = i[a];
r[o] = e[a],
s[o] = n[a]
}
var l = {};
e = t.imageLayerTextures,
i = t.imageLayerTextureNames;
for (var h = 0; h < e.length; ++h)
l[i[h]] = e[h];
for (var c = t.tsxFileNames, u = t.tsxFiles, _ = {}, f = 0; f < c.length; ++f)
c[f].length > 0 && (_[c[f]] = u[f].text);
var d = new cc.TMXMapInfo(t.tmxXmlStr,_,r,s,l)
, p = d.getTilesets();
p && 0 !== p.length || cc.logID(7241),
this._buildWithMapInfo(d)
} else
this._releaseMapInfo()
},
_releaseMapInfo: function() {
for (var t = this._layers, e = 0, i = t.length; e < i; e++)
t[e].node.removeFromParent(!0),
t[e].node.destroy();
t.length = 0;
for (var n = this._groups, r = 0, s = n.length; r < s; r++)
n[r].node.removeFromParent(!0),
n[r].node.destroy();
n.length = 0;
for (var a = this._images, o = 0, l = a.length; o < l; o++)
a[o].removeFromParent(!0),
a[o].destroy();
a.length = 0
},
_syncAnchorPoint: function() {
var t, e, i = this.node.getAnchorPoint(), n = this.node.width * i.x, r = this.node.height * (1 - i.y);
for (t = 0,
e = this._layers.length; t < e; t++)
this._layers[t].node.setAnchorPoint(i);
for (t = 0,
e = this._groups.length; t < e; t++) {
var s = this._groups[t]
, a = s.node;
a.anchorX = .5,
a.anchorY = .5,
a.x = s._offset.x - n + a.width * a.anchorX,
a.y = s._offset.y + r - a.height * a.anchorY
}
for (t = 0,
e = this._images.length; t < e; t++) {
var o = this._images[t];
o.anchorX = .5,
o.anchorY = .5,
o.x = o._offset.x - n + o.width * o.anchorX,
o.y = o._offset.y + r - o.height * o.anchorY
}
},
_fillAniGrids: function(t, e) {
for (var i in e) {
var n = e[i];
if (n)
for (var r = n.frames, s = 0; s < r.length; s++) {
var a = r[s];
a.grid = t[a.tileid]
}
}
},
_buildLayerAndGroup: function() {
var t = this._tilesets
, e = this._texGrids
, i = this._animations;
e.length = 0;
for (var n = 0, r = t.length; n < r; ++n) {
var s = t[n];
s && cc.TiledMap.fillTextureGrids(s, e, n)
}
this._fillAniGrids(e, i);
for (var a = this._layers, o = this._groups, l = this._images, h = {}, c = 0, u = a.length; c < u; c++)
h[a[c].node._name] = !0;
for (var _ = 0, f = o.length; _ < f; _++)
h[o[_].node._name] = !0;
for (var d = 0, p = l.length; d < p; d++)
h[l[d]._name] = !0;
a = this._layers = [],
o = this._groups = [],
l = this._images = [];
var m = this._mapInfo
, y = this.node
, v = m.getAllChildren()
, g = this._textures
, A = 0
, x = 0;
if (v && v.length > 0)
for (var b = 0, C = v.length; b < C; b++) {
var T = v[b]
, S = T.name
, w = this.node.getChildByName(S);
if (h[S] = !1,
w || ((w = new cc.Node).name = S,
y.addChild(w)),
w.setSiblingIndex(b),
w.active = T.visible,
T instanceof cc.TMXLayerInfo) {
var E = w.getComponent(cc.TiledLayer);
E || (E = w.addComponent(cc.TiledLayer)),
E._init(T, m, t, g, e),
T.ownTiles = !1,
a.push(E)
} else if (T instanceof cc.TMXObjectGroupInfo) {
var M = w.getComponent(cc.TiledObjectGroup);
M || (M = w.addComponent(cc.TiledObjectGroup)),
M._init(T, m, e),
o.push(M)
} else if (T instanceof cc.TMXImageLayerInfo) {
var D = T.sourceImage;
w.opacity = T.opacity,
w.layerInfo = T,
w._offset = cc.v2(T.offset.x, -T.offset.y);
var B = w.getComponent(cc.Sprite);
B || (B = w.addComponent(cc.Sprite));
var I = B.spriteFrame || new cc.SpriteFrame;
I.setTexture(D),
B.spriteFrame = I,
w.width = D.width,
w.height = D.height,
l.push(w)
}
A = Math.max(A, w.width),
x = Math.max(x, w.height)
}
for (var P = y.children, R = 0, O = P.length; R < O; R++) {
var L = P[R];
h[L._name] && L.destroy()
}
this.node.width = A,
this.node.height = x,
this._syncAnchorPoint()
},
_buildWithMapInfo: function(t) {
this._mapInfo = t,
this._mapSize = t.getMapSize(),
this._tileSize = t.getTileSize(),
this._mapOrientation = t.orientation,
this._properties = t.properties,
this._tileProperties = t.getTileProperties(),
this._imageLayers = t.getImageLayers(),
this._animations = t.getTileAnimations(),
this._tilesets = t.getTilesets();
var e = this._tilesets;
this._textures.length = 0;
for (var i = [], n = 0, r = e.length; n < r; ++n) {
var s = e[n];
s && s.sourceImage && (this._textures[n] = s.sourceImage,
i.push(s.sourceImage))
}
for (var a = 0; a < this._imageLayers.length; a++) {
var o = this._imageLayers[a];
o && o.sourceImage && i.push(o.sourceImage)
}
cc.TiledMap.loadAllTextures(i, function() {
this._buildLayerAndGroup()
}
.bind(this))
},
update: function(t) {
var e = this._animations
, i = this._texGrids;
for (var n in e) {
var r = e[n]
, s = r.frames
, a = s[r.frameIdx];
r.dt += t,
a.duration < r.dt && (r.dt = 0,
r.frameIdx++,
r.frameIdx >= s.length && (r.frameIdx = 0),
a = s[r.frameIdx]),
i[n] = a.grid
}
}
});
cc.TiledMap = e.exports = h,
cc.TiledMap.loadAllTextures = function(t, e) {
var i = t.length;
if (0 !== i)
for (var n = 0, r = function() {
++n >= i && e()
}, s = 0; s < i; s++) {
var a = t[s];
a.loaded ? r() : a.once("load", (function() {
r()
}
))
}
else
e()
}
,
cc.TiledMap.fillTextureGrids = function(t, e, i) {
var n = t.sourceImage;
t.imageSize.width && t.imageSize.height || (t.imageSize.width = n.width,
t.imageSize.height = n.height);
var r = t._tileSize.width
, s = t._tileSize.height
, a = n.width
, o = n.height
, l = t.spacing
, h = t.margin
, c = Math.floor((a - 2 * h + l) / (r + l))
, u = Math.floor((o - 2 * h + l) / (s + l)) * c
, _ = t.firstGid
, f = null
, d = !!e[_]
, p = cc.macro.FIX_ARTIFACTS_BY_STRECHING_TEXEL_TMX ? .5 : 0;
u <= 0 && (u = 1);
for (var m = t.firstGid + u; _ < m && (d && !e[_] && (d = !1),
d || !e[_]); ++_)
f = {
texId: i,
tileset: t,
x: 0,
y: 0,
width: r,
height: s,
t: 0,
l: 0,
r: 0,
b: 0,
gid: _
},
t.rectForGID(_, f),
f.x += p,
f.y += p,
f.width -= 2 * p,
f.height -= 2 * p,
f.t = f.y / o,
f.l = f.x / a,
f.r = (f.x + f.width) / a,
f.b = (f.y + f.height) / o,
e[_] = f
}
,
cc.js.obsolete(cc.TiledMap.prototype, "cc.TiledMap.tmxFile", "tmxAsset", !0),
cc.js.get(cc.TiledMap.prototype, "mapLoaded", (function() {
return cc.errorID(7203),
[]
}
), !1)
}
), {
"./CCTMXXMLParser": 339,
"./CCTiledLayer": 340,
"./CCTiledMapAsset": 342,
"./CCTiledObjectGroup": 344,
"./CCTiledTile": 345
}],
342: [(function(t, e) {
"use strict";
var i = cc.Class({
name: "cc.TiledMapAsset",
extends: cc.Asset,
properties: {
tmxXmlStr: "",
textures: {
default: [],
type: [cc.Texture2D]
},
textureNames: [cc.String],
textureSizes: {
default: [],
type: [cc.Size]
},
imageLayerTextures: {
default: [],
type: [cc.Texture2D]
},
imageLayerTextureNames: [cc.String],
tsxFiles: [cc.TextAsset],
tsxFileNames: [cc.String]
},
statics: {
preventDeferredLoadDependents: !0
},
createNode: !1
});
cc.TiledMapAsset = i,
e.exports = i
}
), {}],
343: [(function(t, e) {
"use strict";
var i, n = (i = t("../renderer/core/input-assembler")) && i.__esModule ? i : {
default: i
}, r = cc.Class({
name: "cc.TiledMapRenderDataList",
ctor: function() {
this._dataList = [],
this._offset = 0
},
_pushRenderData: function() {
var t = {};
t.ia = new n.default,
t.nodesRenderList = [],
this._dataList.push(t)
},
popRenderData: function(t) {
this._offset >= this._dataList.length && this._pushRenderData();
var e = this._dataList[this._offset];
e.nodesRenderList.length = 0;
var i = e.ia;
return i._vertexBuffer = t._vb,
i._indexBuffer = t._ib,
i._start = t.indiceOffset,
i._count = 0,
this._offset++,
e
},
pushNodesList: function(t, e) {
t.nodesRenderList.push(e)
},
reset: function() {
this._offset = 0
}
});
cc.TiledMapRenderDataList = e.exports = r
}
), {
"../renderer/core/input-assembler": 305
}],
344: [(function(t, e) {
"use strict";
var i = 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, i) {
var n = cc.TiledMap
, r = n.TMXObjectType
, s = n.Orientation
, a = n.StaggerAxis
, o = n.TileFlag
, l = o.FLIPPED_MASK
, h = o.HORIZONTAL
, c = o.VERTICAL;
this._groupName = t.name,
this._positionOffset = t.offset,
this._mapInfo = e,
this._properties = t.getProperties(),
this._offset = cc.v2(t.offset.x, -t.offset.y),
this._opacity = t._opacity;
var u = e._mapSize
, _ = e._tileSize
, f = 0
, d = 0;
if (e.orientation === s.HEX)
e.getStaggerAxis() === a.STAGGERAXIS_X ? (d = _.height * (u.height + .5),
f = (_.width + e.getHexSideLength()) * Math.floor(u.width / 2) + _.width * (u.width % 2)) : (f = _.width * (u.width + .5),
d = (_.height + e.getHexSideLength()) * Math.floor(u.height / 2) + _.height * (u.height % 2));
else if (e.orientation === s.ISO) {
var p = u.width + u.height;
f = .5 * _.width * p,
d = .5 * _.height * p
} else
f = u.width * _.width,
d = u.height * _.height;
this.node.setContentSize(f, d);
for (var m = f * this.node.anchorX, y = d * (1 - this.node.anchorY), v = t._objects, g = {}, A = 0, x = v.length; A < x; A++) {
var b = v[A]
, C = b.type;
b.offset = cc.v2(b.x, b.y);
var T = b.points || b.polylinePoints;
if (T)
for (var S = 0; S < T.length; S++)
T[S].y *= -1;
if (s.ISO !== e.orientation)
b.y = d - b.y;
else {
var w = b.x / _.height
, E = b.y / _.height;
b.x = .5 * _.width * (u.height + w - E),
b.y = .5 * _.height * (u.width + u.height - w - E)
}
if (C === r.TEXT) {
var M = "text" + b.id;
g[M] = !0;
var D = this.node.getChildByName(M);
D || (D = new cc.Node),
D.active = b.visible,
D.anchorX = 0,
D.anchorY = 1,
D.angle = -b.rotation,
D.x = b.x - m,
D.y = b.y - y,
D.name = M,
D.parent = this.node,
D.color = b.color,
D.opacity = this._opacity,
D.setSiblingIndex(A);
var B = D.getComponent(cc.Label);
B || (B = D.addComponent(cc.Label)),
B.overflow = cc.Label.Overflow.SHRINK,
B.lineHeight = b.height,
B.string = b.text,
B.horizontalAlign = b.halign,
B.verticalAlign = b.valign,
B.fontSize = b.pixelsize,
D.width = b.width,
D.height = b.height
}
if (C === r.IMAGE) {
var I = b.gid
, P = i[(I & l) >>> 0];
if (!P)
continue;
var R = P.tileset
, O = "img" + b.id;
g[O] = !0;
var L = this.node.getChildByName(O)
, F = b.width || P.width
, V = b.height || P.height
, N = R.tileOffset.x
, k = R.tileOffset.y;
L instanceof cc.PrivateNode && (L.removeFromParent(),
L.destroy(),
L = null),
L || (L = new cc.Node),
s.ISO == e.orientation ? (L.anchorX = .5 + N / F,
L.anchorY = k / V) : (L.anchorX = N / F,
L.anchorY = k / V),
L.active = b.visible,
L.angle = -b.rotation,
L.x = b.x - m,
L.y = b.y - y,
L.name = O,
L.parent = this.node,
L.opacity = this._opacity,
L.setSiblingIndex(A);
var G = L.getComponent(cc.Sprite);
G || (G = L.addComponent(cc.Sprite));
var U = G.spriteFrame;
U || (U = new cc.SpriteFrame),
(I & h) >>> 0 ? U.setFlipX(!0) : U.setFlipX(!1),
(I & c) >>> 0 ? U.setFlipY(!0) : U.setFlipY(!1),
U.setTexture(P.tileset.sourceImage, cc.rect(P)),
G.spriteFrame = U,
G.setVertsDirty(),
L.width = F,
L.height = V
}
}
this._objects = v;
for (var z = this.node.children, H = /^(?:img|text)\d+$/, W = 0, j = z.length; W < j; W++) {
var X = z[W]
, Y = X._name;
H.test(Y) && !g[Y] && X.destroy()
}
}
});
cc.TiledObjectGroup = e.exports = i
}
), {}],
345: [(function(t, e) {
"use strict";
var i = 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) {
t !== this._x && (this._layer && this._layer._isInvalidPosition(t, this._y) ? cc.warn("Invalid x, the valid value is between [%s] ~ [%s]", 0, this._layer._layerSize.width) : (this._resetTile(),
this._x = t,
this._updateInfo()))
},
type: cc.Integer
},
y: {
get: function() {
return this._y
},
set: function(t) {
t !== this._y && (this._layer && this._layer._isInvalidPosition(this._x, t) ? cc.warn("Invalid y, the valid value is between [%s] ~ [%s]", 0, this._layer._layerSize.height) : (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;
this._layer.getTiledTileAt(t, e) ? cc.warn("There is already a TiledTile at [%s, %s]", t, e) : (this.node.setPosition(this._layer.getPositionAt(t, e)),
this._layer.setTiledTileAt(t, e, this))
}
}
});
cc.TiledTile = e.exports = i
}
), {}],
346: [(function(t) {
"use strict";
t("./CCTiledMap"),
t("./CCTiledMapRenderDataList"),
t("./tiledmap-buffer"),
t("./tmx-layer-assembler")
}
), {
"./CCTiledMap": 341,
"./CCTiledMapRenderDataList": 343,
"./tiledmap-buffer": 347,
"./tmx-layer-assembler": 348
}],
347: [(function(t, e) {
"use strict";
var i = cc.Class({
name: "cc.TiledMapBuffer",
extends: t("../core/renderer/webgl/quad-buffer"),
_updateOffset: function() {
var t = this._offsetInfo;
t.vertexOffset = this.vertexOffset,
t.indiceOffset = this.indiceOffset,
t.byteOffset = this.byteOffset
},
adjust: function(t, e) {
this.vertexOffset += t,
this.indiceOffset += e,
this.indiceStart = this.indiceOffset,
this.byteOffset = this.byteOffset + t * this._vertexBytes,
this._dirty = !0
}
});
cc.TiledMapBuffer = e.exports = i
}
), {
"../core/renderer/webgl/quad-buffer": 253
}],
348: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r = (n = t("../core/renderer/assembler")) && n.__esModule ? n : {
default: n
}, s = t("../core/value-types");
function a(t, e) {
return (a = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
var o = t("./CCTiledLayer")
, l = t("./CCTiledMap")
, h = l.TileFlag
, c = h.FLIPPED_MASK
, u = t("../core/renderer/")
, _ = t("../core/renderer/webgl/vertex-format").vfmtPosUvColor
, f = parseInt(10922.5)
, d = l.RenderOrder
, p = t("../core/renderer/render-flow")
, m = cc.mat4()
, y = cc.v3()
, v = {
row: 0,
col: 0
}
, g = {
x: 0,
y: 0
}
, A = {
x: 0,
y: 0
}
, x = {
x: 0,
y: 0
}
, b = {
x: 0,
y: 0
}
, C = null
, T = null
, S = 0
, w = 0
, E = 0
, M = 0
, D = null
, B = null
, I = null
, P = null
, R = null
, O = null
, L = null
, F = null;
function V(t) {
t._updateLocalMatrix(),
s.Mat4.mul(t._worldMatrix, D, t._matrix),
t._renderFlag &= ~(p.FLAG_TRANSFORM | p.FLAG_BREAK_FLOW),
p.visitRootNode(t),
t._renderFlag |= p.FLAG_BREAK_FLOW
}
function N() {
0 !== T._count && (B.material = C.material,
B.node = O.node,
B._flushIA(C.ia),
S >= f ? (P.uploadData(),
P.switchBuffer(),
L = P._vData,
F = P._uintVData,
C = I.popRenderData(P),
T = C.ia,
w = 0,
S = 0) : (C = I.popRenderData(P),
T = C.ia),
C.material = R)
}
function k(t, e) {
var i = O._getNodesByRowCol(t, e);
if (i && 0 != i.count) {
var n = i.list
, r = 0
, s = 0;
for (N(),
B.worldMatDirty++; r < i.count; ) {
var a = n[s];
s++,
a && (V(a.node),
r !== s && (n[r] = a,
a._index = r),
r++)
}
n.length = r,
B.worldMatDirty--,
I.pushNodesList(C, n),
B._flush(),
B.node = O.node
}
}
function G(t, e) {
g.x = t.l,
g.y = t.t,
A.x = t.r,
A.y = t.t,
x.x = t.l,
x.y = t.b,
b.x = t.r,
b.y = t.b;
var i = null;
(e & h.DIAGONAL) >>> 0 && (i = A,
A = x,
x = i),
(e & h.HORIZONTAL) >>> 0 && (i = g,
g = A,
A = i,
i = x,
x = b,
b = i),
(e & h.VERTICAL) >>> 0 && (i = g,
g = x,
x = i,
i = A,
A = b,
b = i)
}
var U = (function(t) {
var e, i;
function n() {
return t.apply(this, arguments) || this
}
i = t,
(e = n).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
a(e, i);
var r = n.prototype;
return r.updateRenderData = function(t) {
t._renderDataList || (t._buffer = new cc.TiledMapBuffer(u._handle,_),
t._renderDataList = new cc.TiledMapRenderDataList)
}
,
r.fillBuffers = function(t, e) {
if (0 !== t._vertices.length) {
t._updateCulling();
var i = t.node;
if (E = t._leftDownToCenterX,
M = t._leftDownToCenterY,
D = i._worldMatrix,
B = e,
O = t,
I = t._renderDataList,
P = t._buffer,
t._isCullingDirty() || t._isUserNodeDirty() || t._hasAnimation() || t._hasTiledNode()) {
var n, r;
if (P.reset(),
t._enableCulling) {
var s = t._cullingRect;
n = s.leftDown,
r = s.rightTop
} else
n = v,
r = t._rightTop;
var a = (r.row - n.row + 1) * (r.col - n.col + 1);
switch (a > f && (a = f),
P.request(4 * a, 6 * a),
t._renderOrder) {
case d.RightDown:
this.traverseGrids(n, r, -1, 1);
break;
case d.LeftDown:
this.traverseGrids(n, r, -1, -1);
break;
case d.RightUp:
this.traverseGrids(n, r, 1, 1);
break;
case d.LeftUp:
this.traverseGrids(n, r, 1, -1)
}
t._setCullingDirty(!1),
t._setUserNodeDirty(!1)
} else
for (var o = null, l = null, h = null, c = 0; c < I._offset; c++) {
if ((l = (o = I._dataList[c]).nodesRenderList).length > 0) {
e.worldMatDirty++;
for (var u = 0; u < l.length; u++)
if (h = l[u])
for (var _ = 0; _ < h.length; _++) {
var p = h[_];
p && V(p.node)
}
e.worldMatDirty--,
e._flush()
}
o.ia._count > 0 && (e.material = o.material,
e.node = i,
e._flushIA(o.ia))
}
C = null,
T = null,
D = null,
B = null,
I = null,
P = null,
R = null,
O = null,
L = null,
F = null
}
}
,
r.traverseGrids = function(t, e, i, n) {
if (I.reset(),
!(e.row < 0 || e.col < 0)) {
C = I.popRenderData(P),
T = C.ia,
L = P._vData,
F = P._uintVData,
S = 0,
w = 0,
R = null;
var r = O.node
, s = (r.parent ? r.parent._opacity / 255 : 1) * r._opacity;
r._color._fastSetA(s);
var a, o, l, h, u, _, d, p, m = r._color._val, y = O._tiledTiles, v = O._texGrids, D = O._tiles, V = O._texIdToMatIndex, U = O._materials, z = O._vertices, H = null, W = 0, j = 0, X = 0, Y = 0, q = 0, J = null, Z = -1, K = 0, Q = !0;
for (-1 == i ? (h = e.row,
u = t.row) : (h = t.row,
u = e.row); (u - h) * i >= 0; h += i)
for (a = z[h],
Q = 0 == (K = O._getNodesCountByRow(h)) && null != a,
1 == n ? (o = Q && t.col < a.minCol ? a.minCol : t.col,
l = Q && e.col > a.maxCol ? a.maxCol : e.col) : (o = Q && e.col > a.maxCol ? a.maxCol : e.col,
l = Q && t.col < a.minCol ? a.minCol : t.col); (l - o) * n >= 0; o += n)
(_ = a && a[o]) ? (H = v[((W = D[_.index]) & c) >>> 0]) && (Z !== H.texId && (-1 !== Z && N(),
p = V[Z = H.texId],
R = U[p],
C.material = R),
R && (j = _.left - E,
X = _.bottom - M,
Y = j + (d = H.tileset._tileSize).width,
q = X + d.height,
(J = y[_.index]) ? J.node.active && (J.node._color._fastSetA(J.node._opacity * s / 255),
this.fillByTiledNode(J.node, L, F, j, Y, q, X)) : (L[w] = j,
L[w + 1] = q,
F[w + 4] = m,
L[w + 5] = j,
L[w + 6] = X,
F[w + 9] = m,
L[w + 10] = Y,
L[w + 11] = q,
F[w + 14] = m,
L[w + 15] = Y,
L[w + 16] = X,
F[w + 19] = m),
G(H, W),
L[w + 2] = g.x,
L[w + 3] = g.y,
L[w + 7] = x.x,
L[w + 8] = x.y,
L[w + 12] = A.x,
L[w + 13] = A.y,
L[w + 17] = b.x,
L[w + 18] = b.y,
w += 20,
P.adjust(4, 6),
T._count += 6,
S++,
K > 0 && k(h, o),
S >= f && N())) : K > 0 && k(h, o);
P.uploadData(),
T._count > 0 && (B.material = C.material,
B.node = O.node,
B._flushIA(C.ia))
}
}
,
r.fillByTiledNode = function(t, e, i, n, r, a, o) {
t._updateLocalMatrix(),
s.Mat4.copy(m, t._matrix),
s.Vec3.set(y, -(n + E), -(o + M), 0),
s.Mat4.transform(m, m, y);
var l = m.m
, h = l[0]
, c = l[1]
, u = l[4]
, _ = l[5]
, f = l[12]
, d = l[13]
, p = t._color._val;
e[w] = n * h + a * u + f,
e[w + 1] = n * c + a * _ + d,
i[w + 4] = p,
e[w + 5] = n * h + o * u + f,
e[w + 6] = n * c + o * _ + d,
i[w + 9] = p,
e[w + 10] = r * h + a * u + f,
e[w + 11] = r * c + a * _ + d,
i[w + 14] = p,
e[w + 15] = r * h + o * u + f,
e[w + 16] = r * c + o * _ + d,
i[w + 19] = p
}
,
n
}
)(r.default);
i.default = U,
r.default.register(o, U),
e.exports = i.default
}
), {
"../core/renderer/": 224,
"../core/renderer/assembler": 221,
"../core/renderer/render-flow": 225,
"../core/renderer/webgl/vertex-format": 256,
"../core/value-types": 282,
"./CCTiledLayer": 340,
"./CCTiledMap": 341
}],
349: [(function(t, e) {
"use strict";
var i = t("./video-player-impl")
, n = i.EventType
, r = cc.Enum({
REMOTE: 0,
LOCAL: 1
})
, s = cc.Class({
name: "cc.VideoPlayer",
extends: cc.Component,
editor: !1,
properties: {
_resourceType: r.REMOTE,
resourceType: {
tooltip: !1,
type: r,
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._currentStatus === n.NONE || this._currentStatus === n.STOPPED || this._currentStatus === n.META_LOADED || this._currentStatus === n.READY_TO_PLAY ? 0 : this._currentStatus === n.COMPLETED ? this._impl.duration() : 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 && this._impl.setKeepAspectRatioEnabled(this.keepAspectRatio)
}
},
_isFullscreen: {
default: !1,
formerlySerializedAs: "_N$isFullscreen"
},
isFullscreen: {
get: function() {
return this._isFullscreen = this._impl && this._impl.isFullScreenEnabled(),
this._isFullscreen
},
set: function(t) {
this._isFullscreen = t,
this._impl && this._impl.setFullScreenEnabled(t)
},
animatable: !1,
tooltip: !1
},
_stayOnBottom: !1,
stayOnBottom: {
get: function() {
return this._stayOnBottom
},
set: function(t) {
this._stayOnBottom = t,
this._impl && this._impl.setStayOnBottom(t)
},
animatable: !1,
tooltip: !1
},
videoPlayerEvent: {
default: [],
type: cc.Component.EventHandler
}
},
statics: {
EventType: n,
ResourceType: r,
Impl: i
},
ctor: function() {
this._impl = new i,
this._currentStatus = n.NONE
},
_syncVolume: function() {
var t = this._impl;
if (t) {
var e = this._mute ? 0 : this._volume;
t.setVolume(e)
}
},
_updateVideoSource: function() {
var t = "";
this.resourceType === r.REMOTE ? t = this.remoteURL : this._clip && (t = this._clip.nativeUrl),
this._impl.setURL(t, this._mute || 0 === this._volume),
this._impl.setKeepAspectRatioEnabled(this.keepAspectRatio)
},
onLoad: function() {
var t = this._impl;
t && (t.createDomElementIfNeeded(this._mute || 0 === this._volume),
t.setStayOnBottom(this._stayOnBottom),
this._updateVideoSource(),
t.seekTo(this.currentTime),
t.setFullScreenEnabled(this._isFullscreen),
this.pause(),
t.setEventListener(n.PLAYING, this.onPlaying.bind(this)),
t.setEventListener(n.PAUSED, this.onPasued.bind(this)),
t.setEventListener(n.STOPPED, this.onStopped.bind(this)),
t.setEventListener(n.COMPLETED, this.onCompleted.bind(this)),
t.setEventListener(n.META_LOADED, this.onMetaLoaded.bind(this)),
t.setEventListener(n.CLICKED, this.onClicked.bind(this)),
t.setEventListener(n.READY_TO_PLAY, this.onReadyToPlay.bind(this)))
},
onRestore: function() {
this._impl || (this._impl = new i)
},
onEnable: function() {
this._impl && this._impl.enable()
},
onDisable: function() {
this._impl && this._impl.disable()
},
onDestroy: function() {
this._impl && (this._impl.destroy(),
this._impl = null)
},
update: function() {
this._impl && this._impl.updateMatrix(this.node)
},
onReadyToPlay: function() {
this._currentStatus = n.READY_TO_PLAY,
cc.Component.EventHandler.emitEvents(this.videoPlayerEvent, this, n.READY_TO_PLAY),
this.node.emit("ready-to-play", this)
},
onMetaLoaded: function() {
this._currentStatus = n.META_LOADED,
cc.Component.EventHandler.emitEvents(this.videoPlayerEvent, this, n.META_LOADED),
this.node.emit("meta-loaded", this)
},
onClicked: function() {
this._currentStatus = n.CLICKED,
cc.Component.EventHandler.emitEvents(this.videoPlayerEvent, this, n.CLICKED),
this.node.emit("clicked", this)
},
onPlaying: function() {
this._currentStatus = n.PLAYING,
cc.Component.EventHandler.emitEvents(this.videoPlayerEvent, this, n.PLAYING),
this.node.emit("playing", this)
},
onPasued: function() {
this._currentStatus = n.PAUSED,
cc.Component.EventHandler.emitEvents(this.videoPlayerEvent, this, n.PAUSED),
this.node.emit("paused", this)
},
onStopped: function() {
this._currentStatus = n.STOPPED,
cc.Component.EventHandler.emitEvents(this.videoPlayerEvent, this, n.STOPPED),
this.node.emit("stopped", this)
},
onCompleted: function() {
this._currentStatus = n.COMPLETED,
cc.Component.EventHandler.emitEvents(this.videoPlayerEvent, this, n.COMPLETED),
this.node.emit("completed", this)
},
play: function() {
this._impl && (this._syncVolume(),
this._impl.play())
},
resume: function() {
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 = s
}
), {
"./video-player-impl": 350
}],
350: [(function(t, e) {
"use strict";
var i = t("../core/platform/utils")
, n = t("../core/platform/CCSys")
, r = t("../core/platform/CCMacro")
, s = 1
, a = 4
, o = cc.mat4()
, l = cc.Class({
name: "VideoPlayerImpl",
ctor: function() {
this._EventList = {},
this._video = null,
this._url = "",
this._waitingFullscreen = !1,
this._fullScreenEnabled = !1,
this._stayOnBottom = !1,
this._loadedmeta = !1,
this._loaded = !1,
this._visible = !1,
this._playing = !1,
this._ignorePause = !1,
this._forceUpdate = !1,
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._forceUpdate = !0,
e._waitingFullscreen && (e._waitingFullscreen = !1,
e._toggleFullscreen(!0)),
e._dispatchEvent(l.EventType.META_LOADED)
}
,
i.ended = function() {
e._video === t && (e._playing = !1,
e._dispatchEvent(l.EventType.COMPLETED))
}
,
i.play = function() {
e._video === t && (e._playing = !0,
e._updateVisibility(),
e._dispatchEvent(l.EventType.PLAYING))
}
,
i.pause = function() {
e._video === t && (e._playing = !1,
e._ignorePause || e._dispatchEvent(l.EventType.PAUSED))
}
,
i.click = function() {
e._dispatchEvent(l.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;
t.readyState !== a && t.readyState !== s || (t.currentTime = 0,
e._loaded = !0,
e._forceUpdate = !0,
e._dispatchEvent(l.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;
t && (this._visible ? t.style.visibility = "visible" : (t.style.visibility = "hidden",
t.pause(),
this._playing = !1))
},
_updateSize: function(t, e) {
var i = this._video;
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.style["z-index"] = this._stayOnBottom ? r.MIN_ZINDEX : 0,
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) {
i.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;
if (this._url !== t) {
this.removeDom(),
this._url = t,
this.createDomElementIfNeeded(e),
this._bindEvent();
var r = this._video;
r.style.visibility = "hidden",
this._loaded = !1,
this._playing = !1,
this._loadedmeta = !1,
(i = document.createElement("source")).src = t,
r.appendChild(i),
n = cc.path.extname(t);
for (var s = l._polyfill, a = 0; a < s.canPlayType.length; a++)
n !== s.canPlayType[a] && ((i = document.createElement("source")).src = t.replace(n, s.canPlayType[a]),
r.appendChild(i))
}
},
getURL: function() {
return this._url
},
play: function() {
var t = this._video;
t && this._visible && !this._playing && t.play()
},
pause: function() {
var t = this._video;
this._playing && t && t.pause()
},
resume: function() {
this.play()
},
stop: function() {
var t = this._video;
t && this._visible && (this._ignorePause = !0,
t.currentTime = 0,
t.pause(),
setTimeout(function() {
this._dispatchEvent(l.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;
e && (this._loaded ? e.currentTime = t : e.addEventListener(l._polyfill.event, (function i() {
e.currentTime = t,
e.removeEventListener(l._polyfill.event, i)
}
)))
},
isPlaying: function() {
return this._playing
},
duration: function() {
var t = this._video
, e = -1;
return t ? ((e = t.duration) <= 0 && cc.logID(7702),
e) : e
},
currentTime: function() {
var t = this._video;
return t ? t.currentTime : -1
},
setKeepAspectRatioEnabled: function() {
cc.logID(7700)
},
isKeepAspectRatioEnabled: function() {
return !0
},
_toggleFullscreen: function(t) {
var e = this
, i = this._video;
i && (t ? (n.browserType === n.BROWSER_TYPE_IE && (i.style.transform = ""),
cc.screen.requestFullScreen(i, (function() {
var t = n.browserType === n.BROWSER_TYPE_IE ? document.msFullscreenElement : document.fullscreenElement;
e._fullScreenEnabled = t === i
}
), (function() {
e._fullScreenEnabled = !1
}
))) : cc.screen.fullScreen() && cc.screen.exitFullScreen(i))
},
setStayOnBottom: function(t) {
this._stayOnBottom = t,
this._video && (this._video.style["z-index"] = t ? r.MIN_ZINDEX : 0)
},
setFullScreenEnabled: function(t) {
!this._loadedmeta && t ? this._waitingFullscreen = !0 : this._toggleFullscreen(t)
},
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[l.EventType.PLAYING].call(this, this, this._video.src)
},
enable: function() {
var t = l.elements;
-1 === t.indexOf(this) && t.push(this),
this.setVisible(!0)
},
disable: function() {
var t = l.elements
, e = t.indexOf(this);
-1 !== e && t.splice(e, 1),
this.setVisible(!1)
},
destroy: function() {
this.disable(),
this.removeDom()
},
setVisible: function(t) {
this._visible !== t && (this._visible = !!t,
this._updateVisibility())
},
updateMatrix: function(t) {
if (this._video && this._visible && !this._fullScreenEnabled) {
t.getWorldMatrix(o);
var e = cc.Camera._findRendererCamera(t);
e && e.worldMatrixToScreen(o, o, cc.game.canvas.width, cc.game.canvas.height);
var i = o.m;
if (this._forceUpdate || this._m00 !== i[0] || this._m01 !== i[1] || this._m04 !== i[4] || this._m05 !== i[5] || this._m12 !== i[12] || this._m13 !== i[13] || this._w !== t._contentSize.width || this._h !== t._contentSize.height) {
this._m00 = i[0],
this._m01 = i[1],
this._m04 = i[4],
this._m05 = i[5],
this._m12 = i[12],
this._m13 = i[13],
this._w = t._contentSize.width,
this._h = t._contentSize.height;
var r, s, a = cc.view._devicePixelRatio, h = 1 / a, c = 1 / a, u = cc.game.container, _ = i[0] * h, f = i[1], d = i[4], p = i[5] * c, m = u && u.style.paddingLeft ? parseInt(u.style.paddingLeft) : 0, y = u && u.style.paddingBottom ? parseInt(u.style.paddingBottom) : 0;
l._polyfill.zoomInvalid ? (this._updateSize(this._w * _, this._h * p),
_ = 1,
p = 1,
r = this._w * h,
s = this._h * c) : (r = this._w * h,
s = this._h * c,
this._updateSize(this._w, this._h));
var v = r * i[0] * t._anchorPoint.x
, g = s * i[5] * t._anchorPoint.y
, A = "matrix(" + _ + "," + -f + "," + -d + "," + p + "," + (i[12] * h - v + m) + "," + -(i[13] * c - g + y) + ")";
this._video.style.transform = A,
this._video.style["-webkit-transform"] = A,
this._video.style["transform-origin"] = "0px 100% 0px",
this._video.style["-webkit-transform-origin"] = "0px 100% 0px",
n.browserType !== n.BROWSER_TYPE_IE && (this._forceUpdate = !1)
}
}
}
});
l.EventType = {
NONE: -1,
PLAYING: 0,
PAUSED: 1,
STOPPED: 2,
COMPLETED: 3,
META_LOADED: 4,
CLICKED: 5,
READY_TO_PLAY: 6
},
l.elements = [],
l.pauseElements = [],
cc.game.on(cc.game.EVENT_HIDE, (function() {
for (var t, e = l.elements, i = 0; i < e.length; i++)
(t = e[i]).isPlaying() && (t.pause(),
l.pauseElements.push(t))
}
)),
cc.game.on(cc.game.EVENT_SHOW, (function() {
for (var t = l.pauseElements, e = t.pop(); e; )
e.play(),
e = t.pop()
}
)),
l._polyfill = {
devicePixelRatio: !1,
event: "canplay",
canPlayType: []
};
var h = document.createElement("video");
h.canPlayType && (h.canPlayType("video/ogg") && (l._polyfill.canPlayType.push(".ogg"),
l._polyfill.canPlayType.push(".ogv")),
h.canPlayType("video/mp4") && l._polyfill.canPlayType.push(".mp4"),
h.canPlayType("video/webm") && l._polyfill.canPlayType.push(".webm")),
n.OS_ANDROID !== n.os || n.browserType !== n.BROWSER_TYPE_SOUGOU && n.browserType !== n.BROWSER_TYPE_360 || (l._polyfill.zoomInvalid = !0);
var c = document.createElement("style");
c.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(c),
e.exports = l
}
), {
"../core/platform/CCMacro": 198,
"../core/platform/CCSys": 202,
"../core/platform/utils": 217
}],
351: [(function(t, e) {
"use strict";
var i = t("./webview-impl")
, n = i.EventType;
function r() {}
var s = cc.Class({
name: "cc.WebView",
extends: cc.Component,
editor: !1,
properties: {
_url: "",
url: {
type: cc.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: n,
Impl: i
},
ctor: function() {
this._impl = new s.Impl
},
onRestore: function() {
this._impl || (this._impl = new s.Impl)
},
onEnable: function() {
var t = this._impl;
t.createDomElementIfNeeded(this.node.width, this.node.height),
t.setEventListener(n.LOADED, this._onWebViewLoaded.bind(this)),
t.setEventListener(n.LOADING, this._onWebViewLoading.bind(this)),
t.setEventListener(n.ERROR, this._onWebViewLoadError.bind(this)),
t.loadURL(this._url),
t.setVisible(!0)
},
onDisable: function() {
var t = this._impl;
t.setVisible(!1),
t.setEventListener(n.LOADED, r),
t.setEventListener(n.LOADING, r),
t.setEventListener(n.ERROR, r)
},
onDestroy: function() {
this._impl && (this._impl.destroy(),
this._impl = null)
},
update: function() {
this._impl && this._impl.updateMatrix(this.node)
},
_onWebViewLoaded: function() {
cc.Component.EventHandler.emitEvents(this.webviewEvents, this, n.LOADED),
this.node.emit("loaded", this)
},
_onWebViewLoading: function() {
return cc.Component.EventHandler.emitEvents(this.webviewEvents, this, n.LOADING),
this.node.emit("loading", this),
!0
},
_onWebViewLoadError: function() {
cc.Component.EventHandler.emitEvents(this.webviewEvents, this, n.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 = s
}
), {
"./webview-impl": 352
}],
352: [(function(t, e) {
"use strict";
var i = t("../core/platform/utils")
, n = t("../core/platform/CCSys")
, r = cc.mat4()
, s = 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 = !1,
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"
}
},
_updateSize: function(t, e) {
var i = this._div;
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._forceUpdate = !0,
i._dispatchEvent(s.EventType.LOADED)
}
,
e.error = function() {
i._dispatchEvent(s.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) {
s._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%") : this._div = this._iframe = document.createElement("iframe"),
s._polyfill.enableBG && (this._div.style.background = "#FFF"),
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;
t && (i.contains(cc.game.container, t) && cc.game.container.removeChild(t),
this._div = null);
var e = this._iframe;
if (e) {
var n = this.__eventListeners;
e.removeEventListener("load", n.load),
e.removeEventListener("error", n.error),
n.load = null,
n.error = null,
this._iframe = null
}
},
setOnJSCallback: function() {},
setJavascriptInterfaceScheme: function() {},
loadData: function() {},
loadHTMLString: function() {},
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(s.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() {
return cc.logID(7801),
!0
},
canGoForward: function() {
return cc.logID(7802),
!0
},
goBack: function() {
try {
if (s._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 (i) {
cc.log(i)
}
},
goForward: function() {
try {
if (s._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 (i) {
cc.log(i)
}
},
evaluateJS: function(t) {
var e = this._iframe;
if (e) {
var i = e.contentWindow;
try {
i.eval(t),
this._dispatchEvent(s.EventType.JS_EVALUATED)
} catch (n) {
console.error(n)
}
}
},
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 s.RenderCmd(this)
},
destroy: function() {
this.removeDom()
},
setVisible: function(t) {
this._visible !== t && (this._visible = !!t,
this._updateVisibility())
},
updateMatrix: function(t) {
if (this._div && this._visible) {
t.getWorldMatrix(r);
var e = cc.Camera._findRendererCamera(t);
e && e.worldMatrixToScreen(r, r, cc.game.canvas.width, cc.game.canvas.height);
var i = r.m;
if (this._forceUpdate || this._m00 !== i[0] || this._m01 !== i[1] || this._m04 !== i[4] || this._m05 !== i[5] || this._m12 !== i[12] || this._m13 !== i[13] || this._w !== t._contentSize.width || this._h !== t._contentSize.height) {
this._m00 = i[0],
this._m01 = i[1],
this._m04 = i[4],
this._m05 = i[5],
this._m12 = i[12],
this._m13 = i[13],
this._w = t._contentSize.width,
this._h = t._contentSize.height;
var n = cc.view._devicePixelRatio
, s = 1 / n
, a = 1 / n
, o = cc.game.container
, l = i[0] * s
, h = i[1]
, c = i[4]
, u = i[5] * a
, _ = o && o.style.paddingLeft ? parseInt(o.style.paddingLeft) : 0
, f = o && o.style.paddingBottom ? parseInt(o.style.paddingBottom) : 0;
this._updateSize(this._w, this._h);
var d = this._w * s
, p = this._h * a
, m = d * i[0] * t._anchorPoint.x
, y = p * i[5] * t._anchorPoint.y
, v = "matrix(" + l + "," + -h + "," + -c + "," + u + "," + (i[12] * s - m + _) + "," + -(i[13] * a - y + f) + ")";
this._div.style.transform = v,
this._div.style["-webkit-transform"] = v,
this._div.style["transform-origin"] = "0px 100% 0px",
this._div.style["-webkit-transform-origin"] = "0px 100% 0px",
this._setOpacity(t.opacity),
this._forceUpdate = !1
}
}
}
});
s.EventType = {
LOADING: 0,
LOADED: 1,
ERROR: 2,
JS_EVALUATED: 3
};
var a = s._polyfill = {
devicePixelRatio: !1,
enableDiv: !1
};
n.os === n.OS_IOS && (a.enableDiv = !0),
n.isMobile ? n.browserType === n.BROWSER_TYPE_FIREFOX && (a.enableBG = !0) : n.browserType === n.BROWSER_TYPE_IE && (a.closeHistory = !0),
e.exports = s
}
), {
"../core/platform/CCSys": 202,
"../core/platform/utils": 217
}],
353: [(function(t) {
"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": 160,
"./cocos2d/core/components/CCStudioComponent": 121,
"./cocos2d/deprecated": 294,
"./cocos2d/particle": 300,
"./cocos2d/particle/CCParticleAsset": 297,
"./cocos2d/tilemap": 346,
"./cocos2d/tilemap/CCTiledMapAsset": 342,
"./cocos2d/videoplayer/CCVideoPlayer": 349,
"./cocos2d/webview/CCWebView": 351,
"./extensions/ccpool/CCNodePool": 354,
"./extensions/dragonbones": 364,
"./extensions/spine": 369
}],
354: [(function(t, e) {
"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;
return i && i.reuse && i.reuse.apply(i, arguments),
e
}
},
e.exports = cc.NodePool
}
), {}],
355: [(function(t, e) {
"use strict";
var i, n, r = [], s = [], a = 0, o = 0, l = 0, h = null, c = null, u = 0, _ = 0, f = 0, d = 0, p = null, m = cc.Class({
ctor: function() {
this._privateMode = !1,
this._inited = !1,
this._invalid = !0,
this._enableCacheAttachedInfo = !1,
this.frames = [],
this.totalTime = 0,
this.isCompleted = !1,
this._frameIdx = -1,
this._armatureInfo = null,
this._animationName = null,
this._tempSegments = null,
this._tempColors = null,
this._tempBoneInfos = null
},
init: function(t, e) {
this._inited = !0,
this._armatureInfo = t,
this._animationName = e
},
clear: function() {
this._inited = !1;
for (var t = 0, e = this.frames.length; t < e; t++)
this.frames[t].segments.length = 0;
this.invalidAllFrame()
},
begin: function() {
if (this._invalid) {
var t = this._armatureInfo
, e = t.curAnimationCache;
e && e != this && (this._privateMode ? e.invalidAllFrame() : e.updateToFrame()),
t.armature.animation.play(this._animationName, 1),
t.curAnimationCache = this,
this._invalid = !1,
this._frameIdx = -1,
this.totalTime = 0,
this.isCompleted = !1
}
},
end: function() {
this._needToUpdate() || (this._armatureInfo.curAnimationCache = null,
this.frames.length = this._frameIdx + 1,
this.isCompleted = !0)
},
_needToUpdate: function(t) {
return !this._armatureInfo.armature.animation.isCompleted && this.totalTime < 30 && (null == t || this._frameIdx < t)
},
updateToFrame: function(t) {
if (this._inited && (this.begin(),
this._needToUpdate(t))) {
var e = this._armatureInfo.armature;
do {
e.advanceTime(1 / 60),
this._frameIdx++,
this._updateFrame(e, this._frameIdx),
this.totalTime += 1 / 60
} while (this._needToUpdate(t));this.end()
}
},
isInited: function() {
return this._inited
},
isInvalid: function() {
return this._invalid
},
invalidAllFrame: function() {
this.isCompleted = !1,
this._invalid = !0
},
updateAllFrame: function() {
this.invalidAllFrame(),
this.updateToFrame()
},
enableCacheAttachedInfo: function() {
this._enableCacheAttachedInfo || (this._enableCacheAttachedInfo = !0,
this.invalidAllFrame())
},
_updateFrame: function(t, e) {
l = 0,
a = 0,
o = 0,
h = null,
c = null,
u = 0,
_ = 0,
f = 0,
d = 0,
p = null,
this.frames[e] = this.frames[e] || {
segments: [],
colors: [],
boneInfos: [],
vertices: null,
uintVert: null,
indices: null
};
var i = this.frames[e]
, n = this._tempSegments = i.segments
, m = this._tempColors = i.colors
, y = this._tempBoneInfos = i.boneInfos;
this._traverseArmature(t, 1),
d > 0 && (m[d - 1].vfOffset = l),
m.length = d,
y.length = a;
var v = f - 1;
if (v >= 0)
if (_ > 0) {
var g = n[v];
g.indexCount = _,
g.vfCount = 5 * u,
g.vertexCount = u,
n.length = f
} else
n.length = f - 1;
if (0 !== n.length) {
var A = i.vertices
, x = i.uintVert;
(!A || A.length < l) && (A = i.vertices = new Float32Array(l),
x = i.uintVert = new Uint32Array(A.buffer));
for (var b = 0, C = 0; b < l; )
A[b++] = r[C++],
A[b++] = r[C++],
A[b++] = r[C++],
A[b++] = r[C++],
x[b++] = r[C++];
var T = i.indices;
(!T || T.length < o) && (T = i.indices = new Uint16Array(o));
for (var S = 0; S < o; S++)
T[S] = s[S];
i.vertices = A,
i.uintVert = x,
i.indices = T
}
},
_traverseArmature: function(t, e) {
var m, y, v, g, A, x, b, C, T, S = this._tempColors, w = this._tempSegments, E = this._tempBoneInfos, M = r, D = s, B = t._slots, I = t._bones;
if (this._enableCacheAttachedInfo)
for (var P = 0, R = I.length; P < R; P++,
a++) {
var O = I[P]
, L = E[a];
L || (L = E[a] = {
globalTransformMatrix: new dragonBones.Matrix
});
var F = O.globalTransformMatrix;
L.globalTransformMatrix.copyFrom(F)
}
for (var V = 0, N = B.length; V < N; V++)
if ((v = B[V])._visible && v._displayData)
if (v.updateWorldMatrix(),
A = v._color,
v.childArmature)
this._traverseArmature(v.childArmature, e * A.a / 255);
else if (b = v.getTexture()) {
h === b.nativeUrl && c === v._blendMode || (h = b.nativeUrl,
c = v._blendMode,
(C = f - 1) >= 0 && (_ > 0 ? ((T = w[C]).indexCount = _,
T.vertexCount = u,
T.vfCount = 5 * u) : f--),
w[f] = {
tex: b,
blendMode: v._blendMode,
indexCount: 0,
vertexCount: 0,
vfCount: 0
},
f++,
_ = 0,
u = 0),
x = (A.a * e << 24 >>> 0) + (A.b << 16) + (A.g << 8) + A.r,
p !== x && (p = x,
d > 0 && (S[d - 1].vfOffset = l),
S[d++] = {
r: A.r,
g: A.g,
b: A.b,
a: A.a * e,
vfOffset: 0
}),
m = v._localVertices,
y = v._indices,
g = v._worldMatrix.m;
for (var k = 0, G = m.length; k < G; )
i = m[k++],
n = m[k++],
M[l++] = i * g[0] + n * g[4] + g[12],
M[l++] = i * g[1] + n * g[5] + g[13],
M[l++] = m[k++],
M[l++] = m[k++],
M[l++] = x;
for (var U = 0, z = y.length; U < z; U++)
D[o++] = u + y[U];
_ += y.length,
u += m.length / 4
}
}
}), y = cc.Class({
ctor: function() {
this._privateMode = !1,
this._animationPool = {},
this._armatureCache = {}
},
enablePrivateMode: function() {
this._privateMode = !0
},
dispose: function() {
for (var t in this._armatureCache) {
var e = this._armatureCache[t];
if (e) {
var i = e.armature;
i && i.dispose()
}
}
this._armatureCache = null,
this._animationPool = null
},
_removeArmature: function(t) {
var e = this._armatureCache[t]
, i = e.animationsCache;
for (var n in i) {
var r = i[n];
r && (this._animationPool[t + "#" + n] = r,
r.clear())
}
var s = e.armature;
s && s.dispose(),
delete this._armatureCache[t]
},
resetArmature: function(t) {
for (var e in this._armatureCache)
-1 != e.indexOf(t) && this._removeArmature(e)
},
getArmatureCache: function(t, e, i) {
var n, r = this._armatureCache[e];
if (r)
n = r.armature;
else {
var s = dragonBones.CCFactory.getInstance().buildArmatureDisplay(t, e, "", i);
if (!s || !s._armature)
return;
if (n = s._armature,
!y.canCache(n))
return void n.dispose();
this._armatureCache[e] = {
armature: n,
animationsCache: {},
curAnimationCache: null
}
}
return n
},
getAnimationCache: function(t, e) {
var i = this._armatureCache[t];
return i ? i.animationsCache[e] : null
},
initAnimationCache: function(t, e) {
if (!e)
return null;
var i = this._armatureCache[t]
, n = i && i.armature;
if (!n)
return null;
if (!n.animation.hasAnimation(e))
return null;
var r = i.animationsCache
, s = r[e];
if (!s) {
var a = t + "#" + e;
(s = this._animationPool[a]) ? delete this._animationPool[a] : (s = new m)._privateMode = this._privateMode,
s.init(i, e),
r[e] = s
}
return s
},
invalidAnimationCache: function(t) {
var e = this._armatureCache[t];
if (!e || !e.armature)
return null;
var i = e.animationsCache;
for (var n in i)
i[n].invalidAllFrame()
},
updateAnimationCache: function(t, e) {
if (e) {
var i = this.initAnimationCache(t, e);
if (!i)
return;
i.updateAllFrame()
} else {
var n = this._armatureCache[t];
if (!n || !n.armature)
return null;
var r = n.animationsCache;
for (var s in r)
r[s].updateAllFrame()
}
}
});
y.FrameTime = 1 / 60,
y.sharedCache = new y,
y.canCache = function(t) {
for (var e = t._slots, i = 0, n = e.length; i < n; i++)
if (e[i].childArmature)
return !1;
return !0
}
,
e.exports = y
}
), {}],
356: [(function(t, e) {
"use strict";
var i = t("../../cocos2d/core/components/CCRenderComponent")
, n = t("../../cocos2d/core/event/event-target")
, r = t("../../cocos2d/core/graphics/graphics")
, s = t("../../cocos2d/core/renderer/render-flow").FLAG_POST_RENDER
, a = t("./ArmatureCache")
, o = t("./AttachUtil")
, l = cc.Enum({
default: -1
})
, h = cc.Enum({
"<None>": 0
})
, c = (cc.Enum({
REALTIME: 0
}),
cc.Enum({
REALTIME: 0,
SHARED_CACHE: 1,
PRIVATE_CACHE: 2
}))
, u = cc.Class({
name: "dragonBones.ArmatureDisplay",
extends: i,
editor: !1,
statics: {
AnimationCacheMode: c
},
properties: {
_factory: {
default: null,
type: dragonBones.CCFactory,
serializable: !1
},
dragonAsset: {
default: null,
type: dragonBones.DragonBonesAsset,
notify: function() {
this._refresh()
},
tooltip: !1
},
dragonAtlasAsset: {
default: null,
type: dragonBones.DragonBonesAtlasAsset,
notify: function() {
this._parseDragonAtlasAsset(),
this._refresh()
},
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;
if (this.dragonAsset && (e = this.dragonAsset.getArmatureEnum()),
!e)
return cc.errorID(7400, this.name);
t = e[this._defaultArmatureIndex]
}
void 0 !== t ? this.armatureName = t : cc.errorID(7401, this.name)
},
type: l,
visible: !0,
editorOnly: !0,
animatable: !1,
displayName: "Armature",
tooltip: !1
},
_animationIndex: {
default: 0,
notify: function() {
var t;
if (0 !== this._animationIndex) {
if (this.dragonAsset && (t = this.dragonAsset.getAnimsEnum(this.armatureName)),
t) {
var e = t[this._animationIndex];
void 0 !== e ? this.playAnimation(e, this.playTimes) : cc.errorID(7402, this.name)
}
} else
this.animationName = ""
},
type: h,
visible: !0,
editorOnly: !0,
animatable: !1,
displayName: "Animation",
tooltip: !1
},
_preCacheMode: -1,
_cacheMode: c.REALTIME,
_defaultCacheMode: {
default: 0,
type: c,
notify: function() {
if (this._defaultCacheMode !== c.REALTIME && this._armature && !a.canCache(this._armature))
return this._defaultCacheMode = c.REALTIME,
void cc.warn("Animation cache mode doesn't support skeletal nesting");
this.setAnimationCacheMode(this._defaultCacheMode)
},
editorOnly: !0,
visible: !0,
animatable: !1,
displayName: "Animation Cache Mode",
tooltip: !1
},
timeScale: {
default: 1,
notify: function() {
this._armature && !this.isAnimationCached() && (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 n,
this._materialCache = {},
this._inited = !1,
this.attachUtil = new o,
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.getMaterial(0);
t && t.define("CC_USE_MODEL", !this.enableBatch),
this._materialCache = {}
},
_updateMaterial: function() {
var t = this.getMaterial(0);
if (t) {
t.define("CC_USE_MODEL", !this.enableBatch),
t.define("USE_TEXTURE", !0);
var e = this.premultipliedAlpha ? cc.gfx.BLEND_ONE : cc.gfx.BLEND_SRC_ALPHA
, i = cc.gfx.BLEND_ONE_MINUS_SRC_ALPHA;
t.setBlend(!0, cc.gfx.BLEND_FUNC_ADD, e, e, cc.gfx.BLEND_FUNC_ADD, i, i)
}
this._materialCache = {}
},
disableRender: function() {
this._super(),
this.node._renderFlag &= ~s
},
markForRender: function(t) {
this._super(t),
t ? this.node._renderFlag |= s : this.node._renderFlag &= ~s
},
_validateRender: function() {
var t = this.dragonAtlasAsset && this.dragonAtlasAsset.texture;
t && t.loaded ? this._super() : this.disableRender()
},
__preload: function() {
this._init()
},
_init: function() {
if (!this._inited) {
this._inited = !0,
this._resetAssembler(),
this._activateMaterial(),
this._parseDragonAtlasAsset(),
this._refresh();
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) {
this._preCacheMode !== t && (this._cacheMode = t,
this._buildArmature(),
this._armature && !this.isAnimationCached() && this._factory._dragonBones.clock.add(this._armature))
},
isAnimationCached: function() {
return this._cacheMode !== c.REALTIME
},
onEnable: function() {
this._super(),
this._armature && !this.isAnimationCached() && this._factory._dragonBones.clock.add(this._armature)
},
onDisable: function() {
this._super(),
this._armature && !this.isAnimationCached() && this._factory._dragonBones.clock.remove(this._armature)
},
_emitCacheCompleteEvent: function() {
this._eventTarget.emit(dragonBones.EventObject.LOOP_COMPLETE),
this._eventTarget.emit(dragonBones.EventObject.COMPLETE)
},
update: function(t) {
if (this.isAnimationCached() && this._frameCache) {
var e = this._frameCache;
if (e.isInited()) {
var i = e.frames;
if (this._playing) {
var n = a.FrameTime;
0 == this._accTime && 0 == this._playCount && this._eventTarget.emit(dragonBones.EventObject.START);
var r = dragonBones.timeScale;
this._accTime += t * this.timeScale * r;
var s = Math.floor(this._accTime / n);
if (e.isCompleted || e.updateToFrame(s),
e.isCompleted && s >= i.length) {
if (this._playCount++,
this.playTimes > 0 && this._playCount >= this.playTimes)
return this._curFrame = i[i.length - 1],
this._accTime = 0,
this._playing = !1,
this._playCount = 0,
void this._emitCacheCompleteEvent();
this._accTime = 0,
s = 0,
this._emitCacheCompleteEvent()
}
this._curFrame = i[s]
} else
e.isInvalid() && (e.updateToFrame(),
this._curFrame = i[i.length - 1])
}
}
},
onDestroy: function() {
this._super(),
this._inited = !1,
this._cacheMode === c.PRIVATE_CACHE ? (this._armatureCache.dispose(),
this._armatureCache = null,
this._armature = null) : this._cacheMode === c.SHARED_CACHE ? (this._armatureCache = null,
this._armature = null) : 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(r);
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)
},
_buildArmature: function() {
if (this.dragonAsset && this.dragonAtlasAsset && this.armatureName) {
this._armature && (this._preCacheMode === c.PRIVATE_CACHE ? this._armatureCache.dispose() : this._preCacheMode === c.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 === c.SHARED_CACHE ? this._armatureCache = a.sharedCache : this._cacheMode === c.PRIVATE_CACHE && (this._armatureCache = new a,
this._armatureCache.enablePrivateMode());
var t = this.dragonAtlasAsset._uuid;
if (this._armatureKey = this.dragonAsset.init(this._factory, t),
this.isAnimationCached() && (this._armature = this._armatureCache.getArmatureCache(this.armatureName, this._armatureKey, t),
this._armature || (this._cacheMode = c.REALTIME)),
this._preCacheMode = this._cacheMode,
this._cacheMode === c.REALTIME) {
if (this._displayProxy = this._factory.buildArmatureDisplay(this.armatureName, this._armatureKey, "", t),
!this._displayProxy)
return;
this._displayProxy._ccNode = this.node,
this._displayProxy.setEventTarget(this._eventTarget),
this._armature = this._displayProxy._armature,
this._armature.animation.timeScale = this.timeScale
}
if (this._cacheMode !== c.REALTIME && this.debugBones && cc.warn("Debug bones is invalid in cached mode"),
this._armature) {
var e = this._armature.armatureData.aabb;
this.node.setContentSize(e.width, e.height)
}
this._updateBatch(),
this.attachUtil.init(this),
this.attachUtil._associateAttachedNode(),
this.animationName && this.playAnimation(this.animationName, this.playTimes),
this.markForRender(!0)
}
},
_parseDragonAtlasAsset: function() {
this.dragonAtlasAsset && this.dragonAtlasAsset.init(this._factory)
},
_refresh: function() {
this._buildArmature()
},
_updateCacheModeEnum: !1,
_updateAnimEnum: !1,
_updateArmatureEnum: !1,
playAnimation: function(t, e) {
if (this.playTimes = void 0 === e ? -1 : e,
this.animationName = t,
this.isAnimationCached()) {
var i = this._armatureCache.getAnimationCache(this._armatureKey, t);
i || (i = this._armatureCache.initAnimationCache(this._armatureKey, t)),
i && (this._accTime = 0,
this._playCount = 0,
this._frameCache = i,
this.attachUtil._hasAttachedNode() && this._frameCache.enableCacheAttachedInfo(),
this._frameCache.updateToFrame(0),
this._playing = !0,
this._curFrame = this._frameCache.frames[0])
} else if (this._armature)
return this._armature.animation.play(t, this.playTimes)
},
updateAnimationCache: function(t) {
this.isAnimationCached() && this._armatureCache.updateAnimationCache(this._armatureKey, t)
},
invalidAnimationCache: function() {
this.isAnimationCached() && this._armatureCache.invalidAnimationCache(this._armatureKey)
},
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/components/CCRenderComponent": 115,
"../../cocos2d/core/event/event-target": 140,
"../../cocos2d/core/graphics/graphics": 156,
"../../cocos2d/core/renderer/render-flow": 225,
"./ArmatureCache": 355,
"./AttachUtil": 357
}],
357: [(function(t, e) {
"use strict";
var i, n = (i = t("../../cocos2d/core/value-types/mat4")) && i.__esModule ? i : {
default: i
}, r = t("../../cocos2d/core/renderer/render-flow").FLAG_TRANSFORM, s = function() {}, a = function(t) {
Object.defineProperty(t, "_worldMatDirty", {
get: function() {
return !0
},
set: function() {}
}),
t._calculWorldMatrix = s,
t._mulMat = s
}, o = new n.default, l = cc.Class({
name: "dragonBones.AttachUtil",
ctor: function() {
this._inited = !1,
this._armature = null,
this._armatureNode = null,
this._armatureDisplay = null,
this._attachedRootNode = null,
this._attachedNodeArray = [],
this._boneIndexToNode = {}
},
init: function(t) {
this._inited = !0,
this._armature = t._armature,
this._armatureNode = t.node,
this._armatureDisplay = t
},
reset: function() {
this._inited = !1,
this._armature = null,
this._armatureNode = null,
this._armatureDisplay = null
},
_prepareAttachNode: function() {
if (this._armature) {
var t = this._armatureNode.getChildByName("ATTACHED_NODE_TREE");
return t && t.isValid || (t = new cc.Node("ATTACHED_NODE_TREE"),
a(t),
this._armatureNode.addChild(t)),
this._armatureDisplay.isAnimationCached() && this._armatureDisplay._frameCache && this._armatureDisplay._frameCache.enableCacheAttachedInfo(),
this._attachedRootNode = t,
t
}
},
_buildBoneAttachedNode: function(t, e) {
var i = "ATTACHED_NODE:" + t.name
, n = new cc.Node(i);
return this._buildBoneRelation(n, t, e),
n
},
_buildBoneRelation: function(t, e, i) {
a(t),
t._bone = e,
t._boneIndex = i,
this._attachedNodeArray.push(t),
this._boneIndexToNode[i] = t
},
getAttachedRootNode: function() {
return this._attachedRootNode
},
getAttachedNodes: function(t) {
var e = this._attachedNodeArray
, i = [];
if (!this._inited)
return i;
for (var n = 0, r = e.length; n < r; n++) {
var s = e[n];
s && s.isValid && s.name === "ATTACHED_NODE:" + t && i.push(s)
}
return i
},
_rebuildNodeArray: function() {
for (var t = this._boneIndexToNode = {}, e = this._attachedNodeArray, i = this._attachedNodeArray = [], n = 0, r = e.length; n < r; n++) {
var s = e[n];
s && s.isValid && !s._toRemove && (i.push(s),
t[s._boneIndex] = s)
}
},
_sortNodeArray: function() {
this._attachedNodeArray.sort((function(t, e) {
return t._boneIndex < e._boneIndex ? -1 : 1
}
))
},
_getNodeByBoneIndex: function(t) {
var e = this._boneIndexToNode[t];
return e && e.isValid ? e : null
},
destroyAttachedNodes: function(t) {
if (this._inited) {
for (var e = this._attachedNodeArray, i = function t(e) {
for (var i = e.children, n = 0, r = i.length; n < r; n++) {
var s = i[n];
s && t(s)
}
e._toRemove = !0
}, n = 0, r = e.length; n < r; n++) {
var s = e[n];
s && s.isValid && s.name.split("ATTACHED_NODE:")[1] === t && (i(s),
s.removeFromParent(!0),
s.destroy(),
e[n] = null)
}
this._rebuildNodeArray()
}
},
generateAttachedNodes: function(t) {
var e = [];
if (!this._inited)
return e;
var i = this._prepareAttachNode();
if (!i)
return e;
var n = 0
, r = []
, s = function(e) {
if (e) {
for (var i, a = e.getBones(), o = 0, l = a.length; o < l; o++)
(i = a[o])._boneIndex = n++,
t === i.name && r.push(i);
for (var h, c = e.getSlots(), u = 0, _ = c.length; u < _; u++)
(h = c[u]).childArmature && s(h.childArmature)
}
}
.bind(this);
s(this._armature);
for (var a = function(t) {
if (t) {
var e = this._getNodeByBoneIndex(t._boneIndex);
if (e)
return e;
e = this._buildBoneAttachedNode(t, t._boneIndex);
var n = null;
t.armature.parent && (n = t.armature.parent.parent);
var r = a(t.parent || n) || i;
return e.parent = r,
t.parent ? e._rootNode = r._rootNode : e._rootNode = r,
e
}
}
.bind(this), o = 0, l = r.length; o < l; o++) {
var h = a(r[o]);
h && e.push(h)
}
return this._sortNodeArray(),
e
},
destroyAllAttachedNodes: function() {
if (this._attachedRootNode = null,
this._attachedNodeArray.length = 0,
this._boneIndexToNode = {},
this._inited) {
var t = this._armatureNode.getChildByName("ATTACHED_NODE_TREE");
t && (t.removeFromParent(!0),
t.destroy(),
t = null)
}
},
generateAllAttachedNodes: function() {
if (this._inited) {
this._boneIndexToNode = {},
this._attachedNodeArray.length = 0;
var t = this._prepareAttachNode();
if (t) {
var e = 0
, i = function(n) {
if (n) {
var r = t;
n.parent && (r = n.parent.parent._attachedNode);
for (var s, a = n.getBones(), o = 0, l = a.length; o < l; o++) {
var h = e++;
(s = a[o])._attachedNode = null;
var c = null;
if (c = s.parent ? s.parent._attachedNode : r) {
var u = c.getChildByName("ATTACHED_NODE:" + s.name);
u && u.isValid ? this._buildBoneRelation(u, s, h) : (u = this._buildBoneAttachedNode(s, h),
c.addChild(u)),
u._rootNode = r,
s._attachedNode = u
}
}
for (var _, f = n.getSlots(), d = 0, p = f.length; d < p; d++)
(_ = f[d]).childArmature && i(_.childArmature)
}
}
.bind(this);
return i(this._armature),
t
}
}
},
_hasAttachedNode: function() {
return !!this._inited && !!this._armatureNode.getChildByName("ATTACHED_NODE_TREE")
},
_associateAttachedNode: function() {
if (this._inited) {
var t = this._armatureNode.getChildByName("ATTACHED_NODE_TREE");
if (t && t.isValid) {
this._attachedRootNode = t,
this._boneIndexToNode = {},
this._attachedNodeArray.length = 0;
var e = this._armature;
if (e) {
a(t),
this._armatureDisplay.isAnimationCached() && this._armatureDisplay._frameCache && this._armatureDisplay._frameCache.enableCacheAttachedInfo();
var i = 0
, n = function(e) {
if (e) {
var r = t;
e.parent && (r = e.parent.parent._attachedNode);
for (var s, a = e.getBones(), o = 0, l = a.length; o < l; o++) {
var h = i++;
(s = a[o])._attachedNode = null;
var c = null;
if (c = s.parent ? s.parent._attachedNode : r) {
var u = c.getChildByName("ATTACHED_NODE:" + s.name);
u && u.isValid && (this._buildBoneRelation(u, s, h),
u._rootNode = r,
s._attachedNode = u)
}
}
for (var _, f = e.getSlots(), d = 0, p = f.length; d < p; d++)
(_ = f[d]).childArmature && n(_.childArmature)
}
}
.bind(this);
n(e)
}
}
}
},
_syncAttachedNode: function() {
if (this._inited) {
var t = this._attachedRootNode
, e = this._attachedNodeArray;
if (!t || !t.isValid)
return this._attachedRootNode = null,
void (e.length = 0);
var i = this._armatureNode._worldMatrix;
n.default.copy(t._worldMatrix, i),
t._renderFlag &= ~r;
var s = null
, a = this._armatureDisplay.isAnimationCached();
if (!a || (s = this._armatureDisplay._curFrame && this._armatureDisplay._curFrame.boneInfos)) {
for (var l, h, c, u, _ = this._armatureNode._mulMat, f = !1, d = 0, p = e.length; d < p; d++) {
var m = e[d];
if (m && m.isValid) {
var y = a ? s[m._boneIndex] : m._bone;
y && !y._isInPool ? (l = m._worldMatrix,
h = m._rootNode._worldMatrix,
c = y.globalTransformMatrix,
u = void 0,
(u = o.m)[0] = c.a,
u[1] = c.b,
u[4] = -c.c,
u[5] = -c.d,
u[12] = c.tx,
u[13] = c.ty,
_(l, h, o),
m._renderFlag &= ~r) : (m.removeFromParent(!0),
m.destroy(),
e[d] = null,
f = !0)
} else
e[d] = null,
f = !0
}
f && this._rebuildNodeArray()
}
}
}
});
e.exports = dragonBones.AttachUtil = l
}
), {
"../../cocos2d/core/renderer/render-flow": 225,
"../../cocos2d/core/value-types/mat4": 284
}],
358: [(function(t) {
"use strict";
var e = t("../../cocos2d/core/event/event-target");
dragonBones.CCArmatureDisplay = cc.Class({
name: "dragonBones.CCArmatureDisplay",
properties: {
node: {
get: function() {
return this
}
}
},
ctor: function() {
this._eventTarget = new e
},
setEventTarget: function(t) {
this._eventTarget = t
},
getRootDisplay: function() {
var t, e = this._armature._parent;
if (!e)
return this;
for (; e; )
t = e,
e = e._armature._parent;
return t._armature.getDisplay()
},
convertToRootSpace: function(t) {
var e = this._armature._parent;
if (!e)
return t;
e.updateWorldMatrix();
var i = e._worldMatrix.m
, n = cc.v2(0, 0);
return n.x = t.x * i[0] + t.y * i[4] + i[12],
n.y = t.x * i[1] + t.y * i[5] + i[13],
n
},
convertToWorldSpace: function(t) {
var e = this.convertToRootSpace(t);
return this.getRootNode().convertToWorldSpaceAR(e)
},
getRootNode: function() {
var t = this.getRootDisplay();
return t && t._ccNode
},
dbInit: function(t) {
this._armature = t
},
dbClear: function() {
this._armature = null
},
dbUpdate: function() {},
advanceTimeBySelf: function(t) {
this.shouldAdvanced = !!t
},
hasDBEventListener: function(t) {
return this._eventTarget.hasEventListener(t)
},
addDBEventListener: function(t, e, i) {
this._eventTarget.on(t, e, i)
},
removeDBEventListener: function(t, e, i) {
this._eventTarget.off(t, e, i)
},
dispatchDBEvent: function(t, e) {
this._eventTarget.emit(t, e)
}
})
}
), {
"../../cocos2d/core/event/event-target": 140
}],
359: [(function() {
"use strict";
var t = dragonBones.BaseObject
, e = dragonBones.BaseFactory
, i = dragonBones.CCFactory = cc.Class({
name: "dragonBones.CCFactory",
extends: e,
statics: {
_factory: null,
getInstance: function() {
return i._factory || (i._factory = new i),
i._factory
}
},
ctor: function() {
var t = new dragonBones.CCArmatureDisplay;
this._dragonBones = new dragonBones.DragonBones(t),
cc.director._scheduler && (cc.game.on(cc.game.EVENT_RESTART, this.initUpdate, this),
this.initUpdate())
},
initUpdate: function() {
cc.director._scheduler.enableForTarget(this),
cc.director._scheduler.scheduleUpdate(this, cc.Scheduler.PRIORITY_SYSTEM, !1)
},
update: function(t) {
this._dragonBones.advanceTime(t)
},
getDragonBonesDataByRawData: function(t) {
return (t instanceof ArrayBuffer ? e._binaryParser : this._dataParser).parseDragonBonesData(t, 1)
},
buildArmatureDisplay: function(t, e, i, n) {
var r = this.buildArmature(t, e, i, n);
return r && r._display
},
createArmatureNode: function(t, e, i) {
var n = (i = i || new cc.Node).getComponent(dragonBones.ArmatureDisplay);
return n || (n = i.addComponent(dragonBones.ArmatureDisplay)),
i.name = e,
n._armatureName = e,
n._N$dragonAsset = t.dragonAsset,
n._N$dragonAtlasAsset = t.dragonAtlasAsset,
n._init(),
n
},
_buildTextureAtlasData: function(e, i) {
return e ? e.renderTexture = i : e = t.borrowObject(dragonBones.CCTextureAtlasData),
e
},
_sortSlots: function() {
for (var t = this._slots, e = [], i = 0, n = t.length; i < n; i++) {
for (var r = t[i], s = r._zOrder, a = !1, o = e.length - 1; o >= 0; o--)
if (s >= e[o]._zOrder) {
e.splice(o + 1, 0, r),
a = !0;
break
}
a || e.splice(0, 0, r)
}
this._slots = e
},
_buildArmature: function(e) {
var i = t.borrowObject(dragonBones.Armature);
i._skinData = e.skin,
i._animation = t.borrowObject(dragonBones.Animation),
i._animation._armature = i,
i._animation.animations = e.armature.animations,
i._isChildArmature = !1;
var n = new dragonBones.CCArmatureDisplay;
return i.init(e.armature, n, n, this._dragonBones),
i
},
_buildSlot: function(e, i, n) {
var r = t.borrowObject(dragonBones.CCSlot)
, s = r;
return r.init(i, n, s, s),
r
},
getDragonBonesDataByUUID: function(t) {
for (var e in this._dragonBonesDataMap)
if (-1 != e.indexOf(t))
return this._dragonBonesDataMap[e];
return null
},
removeDragonBonesDataByUUID: function(t, e) {
for (var i in void 0 === e && (e = !0),
this._dragonBonesDataMap)
-1 !== i.indexOf(t) && (e && this._dragonBones.bufferObject(this._dragonBonesDataMap[i]),
delete this._dragonBonesDataMap[i])
}
})
}
), {}],
360: [(function(t) {
"use strict";
var e, i = (e = t("../../cocos2d/core/value-types/mat4")) && e.__esModule ? e : {
default: e
}, n = dragonBones.BinaryOffset, r = dragonBones.BoneType;
dragonBones.CCSlot = cc.Class({
name: "dragonBones.CCSlot",
extends: dragonBones.Slot,
ctor: function() {
this._localVertices = [],
this._indices = [],
this._matrix = cc.mat4(),
this._worldMatrix = cc.mat4(),
this._worldMatrixDirty = !0,
this._visible = !1,
this._color = cc.color()
},
_onClear: function() {
this._super(),
this._localVertices.length = 0,
this._indices.length = 0,
i.default.identity(this._matrix),
i.default.identity(this._worldMatrix),
this._worldMatrixDirty = !0,
this._color = cc.color(),
this._visible = !1
},
statics: {
toString: function() {
return "[class dragonBones.CCSlot]"
}
},
_onUpdateDisplay: function() {},
_initDisplay: function() {},
_addDisplay: function() {
this._visible = !0
},
_replaceDisplay: function() {},
_removeDisplay: function() {
this._visible = !1
},
_disposeDisplay: function() {},
_updateVisible: function() {
this._visible = this.parent._visible
},
_updateZOrder: function() {},
_updateBlendMode: function() {
if (this._childArmature)
for (var t = this._childArmature.getSlots(), e = 0, i = t.length; e < i; e++) {
var n = t[e];
n._blendMode = this._blendMode,
n._updateBlendMode()
}
},
_updateColor: function() {
var t = this._color;
t.r = 255 * this._colorTransform.redMultiplier,
t.g = 255 * this._colorTransform.greenMultiplier,
t.b = 255 * this._colorTransform.blueMultiplier,
t.a = 255 * this._colorTransform.alphaMultiplier
},
getTexture: function() {
return this._textureData && this._textureData.spriteFrame && this._textureData.spriteFrame.getTexture()
},
_updateFrame: function() {
this._indices.length = 0;
var t = this._indices
, e = this._localVertices
, i = 0
, r = 0
, s = this._textureData;
if (this._display && !(this._displayIndex < 0) && s && s.spriteFrame) {
var a = s.spriteFrame.getTexture()
, o = a.width
, l = a.height
, h = s.region
, c = null !== this._deformVertices && this._display === this._meshDisplay ? this._deformVertices.verticesData : null;
if (c) {
var u = c.data
, _ = u.intArray
, f = u.floatArray
, d = _[c.offset + n.MeshVertexCount]
, p = _[c.offset + n.MeshTriangleCount]
, m = _[c.offset + n.MeshFloatOffset];
m < 0 && (m += 65536);
for (var y = m + 2 * d, v = this._armature._armatureData.scale, g = 0, A = 2 * d; g < A; g += 2)
e[r++] = f[m + g] * v,
e[r++] = -f[m + g + 1] * v,
c.rotated ? (e[r++] = (h.x + (1 - f[y + g]) * h.width) / o,
e[r++] = (h.y + f[y + g + 1] * h.height) / l) : (e[r++] = (h.x + f[y + g] * h.width) / o,
e[r++] = (h.y + f[y + g + 1] * h.height) / l);
for (var x = 0; x < 3 * p; ++x)
t[i++] = _[c.offset + n.MeshVertexIndices + x];
e.length = r,
t.length = i,
c.weight && this._identityTransform()
} else {
var b = h.x / o
, C = (h.y + h.height) / l
, T = (h.x + h.width) / o
, S = h.y / l;
e[r++] = 0,
e[r++] = 0,
e[r++] = b,
e[r++] = C,
e[r++] = h.width,
e[r++] = 0,
e[r++] = T,
e[r++] = C,
e[r++] = 0,
e[r++] = h.height,
e[r++] = b,
e[r++] = S,
e[r++] = h.width,
e[r++] = h.height,
e[r++] = T,
e[r++] = S,
t[0] = 0,
t[1] = 1,
t[2] = 2,
t[3] = 1,
t[4] = 3,
t[5] = 2,
e.length = r,
t.length = 6
}
this._visibleDirty = !0,
this._blendModeDirty = !0,
this._colorDirty = !0
}
},
_updateMesh: function() {
var t = this._armature._armatureData.scale
, e = this._deformVertices.vertices
, i = this._deformVertices.bones
, s = this._deformVertices.verticesData
, a = s.weight
, o = e.length > 0 && s.inheritDeform
, l = this._localVertices;
if (a) {
var h = s.data
, c = h.intArray
, u = h.floatArray
, _ = c[s.offset + n.MeshVertexCount]
, f = c[a.offset + n.WeigthFloatOffset];
f < 0 && (f += 65536);
for (var d = 0, p = a.offset + n.WeigthBoneIndices + i.length, m = f, y = 0, v = 0; d < _; d++,
v += 4) {
for (var g = c[p++], A = 0, x = 0, b = 0; b < g; ++b) {
var C = i[c[p++]];
if (null !== C) {
var T = C.globalTransformMatrix
, S = u[m++]
, w = u[m++] * t
, E = u[m++] * t;
o && (w += e[y++],
E += e[y++]),
A += (T.a * w + T.c * E + T.tx) * S,
x += (T.b * w + T.d * E + T.ty) * S
}
}
l[v] = A,
l[v + 1] = -x
}
} else if (o) {
var M = this._parent._boneData.type !== r.Bone
, D = s.data
, B = D.intArray
, I = D.floatArray
, P = B[s.offset + n.MeshVertexCount]
, R = B[s.offset + n.MeshFloatOffset];
R < 0 && (R += 65536);
for (var O = 0, L = P, F = 0; O < L; O++,
F += 4) {
var V = I[R + 2 * O] * t + e[2 * O]
, N = I[R + 2 * O + 1] * t + e[2 * O + 1];
if (M) {
var k = this._parent._getGlobalTransformMatrix(V, N);
l[F] = k.a * V + k.c * N + k.tx,
l[F + 1] = -k.b * V + k.d * N + k.ty
} else
l[F] = V,
l[F + 1] = -N
}
}
a && this._identityTransform()
},
_identityTransform: function() {
var t = this._matrix.m;
t[0] = 1,
t[1] = 0,
t[4] = -0,
t[5] = -1,
t[12] = 0,
t[13] = 0,
this._worldMatrixDirty = !0
},
_updateTransform: function() {
var t = this._matrix.m;
t[0] = this.globalTransformMatrix.a,
t[1] = this.globalTransformMatrix.b,
t[4] = -this.globalTransformMatrix.c,
t[5] = -this.globalTransformMatrix.d,
this._childArmature ? (t[12] = this.globalTransformMatrix.tx,
t[13] = this.globalTransformMatrix.ty) : (t[12] = this.globalTransformMatrix.tx - (this.globalTransformMatrix.a * this._pivotX - this.globalTransformMatrix.c * this._pivotY),
t[13] = this.globalTransformMatrix.ty - (this.globalTransformMatrix.b * this._pivotX - this.globalTransformMatrix.d * this._pivotY)),
this._worldMatrixDirty = !0
},
updateWorldMatrix: function() {
if (this._armature) {
var t = this._armature._parent;
if (t && t.updateWorldMatrix(),
this._worldMatrixDirty) {
this.calculWorldMatrix();
var e = this.childArmature;
if (!e)
return;
for (var i = e.getSlots(), n = 0, r = i.length; n < r; n++) {
var s = i[n];
s && (s._worldMatrixDirty = !0)
}
}
}
},
_mulMat: function(t, e, i) {
var n = e.m
, r = i.m
, s = t.m
, a = n[0]
, o = n[1]
, l = n[4]
, h = n[5]
, c = n[12]
, u = n[13]
, _ = r[0]
, f = r[1]
, d = r[4]
, p = r[5]
, m = r[12]
, y = r[13];
0 !== o || 0 !== l ? (s[0] = _ * a + f * l,
s[1] = _ * o + f * h,
s[4] = d * a + p * l,
s[5] = d * o + p * h,
s[12] = a * m + l * y + c,
s[13] = o * m + h * y + u) : (s[0] = _ * a,
s[1] = f * h,
s[4] = d * a,
s[5] = p * h,
s[12] = a * m + c,
s[13] = h * y + u)
},
calculWorldMatrix: function() {
var t = this._armature._parent;
t ? this._mulMat(this._worldMatrix, t._worldMatrix, this._matrix) : i.default.copy(this._worldMatrix, this._matrix),
this._worldMatrixDirty = !1
}
})
}
), {
"../../cocos2d/core/value-types/mat4": 284
}],
361: [(function() {
"use strict";
dragonBones.CCTextureAtlasData = cc.Class({
extends: dragonBones.TextureAtlasData,
name: "dragonBones.CCTextureAtlasData",
properties: {
_renderTexture: {
default: null,
serializable: !1
},
renderTexture: {
get: function() {
return this._renderTexture
},
set: function(t) {
if (this._renderTexture = t,
t)
for (var e in this.textures) {
var i = this.textures[e];
if (!i.spriteFrame) {
var n;
n = i.rotated ? cc.rect(i.region.x, i.region.y, i.region.height, i.region.width) : cc.rect(i.region.x, i.region.y, i.region.width, i.region.height);
var r = cc.v2(0, 0)
, s = cc.size(n.width, n.height);
i.spriteFrame = new cc.SpriteFrame,
i.spriteFrame.setTexture(t, n, !1, r, s)
}
}
else
for (var a in this.textures)
this.textures[a].spriteFrame = null
}
}
},
statics: {
toString: function() {
return "[class dragonBones.CCTextureAtlasData]"
}
},
_onClear: function() {
dragonBones.TextureAtlasData.prototype._onClear.call(this),
this.renderTexture = null
},
createTexture: function() {
return dragonBones.BaseObject.borrowObject(dragonBones.CCTextureData)
}
}),
dragonBones.CCTextureData = cc.Class({
extends: dragonBones.TextureData,
name: "dragonBones.CCTextureData",
properties: {
spriteFrame: {
default: null,
serializable: !1
}
},
statics: {
toString: function() {
return "[class dragonBones.CCTextureData]"
}
},
_onClear: function() {
dragonBones.TextureData.prototype._onClear.call(this),
this.spriteFrame = null
}
})
}
), {}],
362: [(function(t, e) {
"use strict";
var i = t("./ArmatureCache").sharedCache
, 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._dragonBonesJsonData = JSON.parse(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()
},
init: function(t, e) {
this._factory = t,
!this._dragonBonesJsonData && this.dragonBonesJson && (this._dragonBonesJsonData = JSON.parse(this.dragonBonesJson));
var i;
if (i = this._dragonBonesJsonData ? this._dragonBonesJsonData : this._nativeAsset,
!this._uuid) {
var n = this._factory.getDragonBonesDataByRawData(i);
n ? this._uuid = n.name : cc.warn("dragonbones name is empty")
}
var r = this._uuid + "#" + e;
return this._factory.getDragonBonesData(r) ? r : (this._factory.parseDragonBonesData(i, r),
r)
},
getArmatureEnum: !1,
getAnimsEnum: !1,
_clear: function() {
this._factory && (i.resetArmature(this._uuid),
this._factory.removeDragonBonesDataByUUID(this._uuid, !0))
},
destroy: function() {
this._clear(),
this._super()
}
});
dragonBones.DragonBonesAsset = e.exports = n
}
), {
"./ArmatureCache": 355
}],
363: [(function(t, e) {
"use strict";
var i = t("./ArmatureCache").sharedCache
, 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._atlasJsonData = JSON.parse(this.atlasJson),
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,
this._atlasJsonData || (this._atlasJsonData = JSON.parse(this.atlasJson));
var e = this._atlasJsonData;
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() {
this._factory && (i.resetArmature(this._uuid),
this._factory.removeTextureAtlasData(this._uuid, !0),
this._factory.removeDragonBonesDataByUUID(this._uuid, !0)),
this._textureAtlasData = null
},
destroy: function() {
this._clear(),
this._super()
}
});
dragonBones.DragonBonesAtlasAsset = e.exports = n
}
), {
"./ArmatureCache": 355
}],
364: [(function(t) {
"use strict";
var e = "undefined" == typeof window ? global : window;
e.dragonBones = t("./lib/dragonBones"),
void 0 !== e.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
},
t("./CCFactory"),
t("./CCSlot"),
t("./CCTextureData"),
t("./CCArmatureDisplay"),
t("./ArmatureCache"),
t("./DragonBonesAsset"),
t("./DragonBonesAtlasAsset"),
t("./ArmatureDisplay"),
t("./webgl-assembler"))
}
), {
"./ArmatureCache": 355,
"./ArmatureDisplay": 356,
"./CCArmatureDisplay": 358,
"./CCFactory": 359,
"./CCSlot": 360,
"./CCTextureData": 361,
"./DragonBonesAsset": 362,
"./DragonBonesAtlasAsset": 363,
"./lib/dragonBones": 365,
"./webgl-assembler": 366
}],
365: [(function(t, e) {
"use strict";
var i, n, r, s = Object.setPrototypeOf || Array;
r || (r = {}),
(function(t) {
var e = (function() {
function e(i) {
this._clock = new t.WorldClock,
this._events = [],
this._objects = [],
this._eventManager = null,
this._eventManager = i,
console.info("DragonBones: " + e.VERSION + "\nWebsite: http://dragonbones.com/\nSource and Demo: https://github.com/DragonBones/")
}
return e.prototype.advanceTime = function(e) {
if (this._objects.length > 0) {
for (var i = 0, n = this._objects; i < n.length; i++)
n[i].returnToPool();
this._objects.length = 0
}
if (this._clock.advanceTime(e),
this._events.length > 0) {
for (var r = 0; r < this._events.length; ++r) {
var s = this._events[r]
, a = s.armature;
null !== a._armatureData && (a.eventDispatcher.dispatchDBEvent(s.type, s),
s.type === t.EventObject.SOUND_EVENT && this._eventManager.dispatchDBEvent(s.type, s)),
this.bufferObject(s)
}
this._events.length = 0
}
}
,
e.prototype.bufferEvent = function(t) {
this._events.indexOf(t) < 0 && this._events.push(t)
}
,
e.prototype.bufferObject = function(t) {
this._objects.indexOf(t) < 0 && this._objects.push(t)
}
,
Object.defineProperty(e.prototype, "clock", {
get: function() {
return this._clock
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(e.prototype, "eventManager", {
get: function() {
return this._eventManager
},
enumerable: !0,
configurable: !0
}),
e.VERSION = "5.6.300",
e.yDown = !1,
e.debug = !1,
e.debugDraw = !1,
e.webAssembly = !1,
e
}
)();
t.DragonBones = e
}
)(r || (r = {})),
console.warn || (console.warn = function() {}
),
console.assert || (console.assert = function() {}
),
Date.now || (Date.now = function() {
return (new Date).getTime()
}
),
s = function(t, e) {
function i() {
this.constructor = t
}
for (var n in e)
e.hasOwnProperty(n) && (t[n] = e[n]);
i.prototype = e.prototype,
t.prototype = new i
}
,
(function(t) {
var e = (function() {
function t() {
this.hashCode = t._hashCode++,
this._isInPool = !1
}
return t._returnObject = function(e) {
var i = String(e.constructor)
, n = i in t._maxCountMap ? t._maxCountMap[i] : t._defaultMaxCount
, r = t._poolsMap[i] = t._poolsMap[i] || [];
r.length < n && (e._isInPool ? console.warn("The object is already in the pool.") : (e._isInPool = !0,
r.push(e)))
}
,
t.toString = function() {
throw new Error
}
,
t.setMaxCount = function(e, i) {
if ((i < 0 || i != i) && (i = 0),
null !== e)
null !== (r = (n = String(e))in t._poolsMap ? t._poolsMap[n] : null) && r.length > i && (r.length = i),
t._maxCountMap[n] = i;
else
for (var n in t._defaultMaxCount = i,
t._poolsMap) {
var r;
(r = t._poolsMap[n]).length > i && (r.length = i),
n in t._maxCountMap && (t._maxCountMap[n] = i)
}
}
,
t.clearPool = function(e) {
if (void 0 === e && (e = null),
null !== e) {
var i = String(e);
null !== (r = i in t._poolsMap ? t._poolsMap[i] : null) && r.length > 0 && (r.length = 0)
} else
for (var n in t._poolsMap) {
var r;
(r = t._poolsMap[n]).length = 0
}
}
,
t.borrowObject = function(e) {
var i = String(e)
, n = i in t._poolsMap ? t._poolsMap[i] : null;
if (null !== n && n.length > 0) {
var r = n.pop();
return r._isInPool = !1,
r
}
var s = new e;
return s._onClear(),
s
}
,
t.prototype.returnToPool = function() {
this._onClear(),
t._returnObject(this)
}
,
t._hashCode = 0,
t._defaultMaxCount = 3e3,
t._maxCountMap = {},
t._poolsMap = {},
t
}
)();
t.BaseObject = e
}
)(r || (r = {})),
(function(t) {
var e = (function() {
function t(t, e, i, n, r, s) {
void 0 === t && (t = 1),
void 0 === e && (e = 0),
void 0 === i && (i = 0),
void 0 === n && (n = 1),
void 0 === r && (r = 0),
void 0 === s && (s = 0),
this.a = t,
this.b = e,
this.c = i,
this.d = n,
this.tx = r,
this.ty = s
}
return t.prototype.toString = function() {
return "[object dragonBones.Matrix] a:" + this.a + " b:" + this.b + " c:" + this.c + " d:" + this.d + " tx:" + this.tx + " ty:" + this.ty
}
,
t.prototype.copyFrom = function(t) {
return this.a = t.a,
this.b = t.b,
this.c = t.c,
this.d = t.d,
this.tx = t.tx,
this.ty = t.ty,
this
}
,
t.prototype.copyFromArray = function(t, e) {
return void 0 === e && (e = 0),
this.a = t[e],
this.b = t[e + 1],
this.c = t[e + 2],
this.d = t[e + 3],
this.tx = t[e + 4],
this.ty = t[e + 5],
this
}
,
t.prototype.identity = function() {
return this.a = this.d = 1,
this.b = this.c = 0,
this.tx = this.ty = 0,
this
}
,
t.prototype.concat = function(t) {
var e = this.a * t.a
, i = 0
, n = 0
, r = this.d * t.d
, s = this.tx * t.a + t.tx
, a = this.ty * t.d + t.ty;
return 0 === this.b && 0 === this.c || (e += this.b * t.c,
i += this.b * t.d,
n += this.c * t.a,
r += this.c * t.b),
0 === t.b && 0 === t.c || (i += this.a * t.b,
n += this.d * t.c,
s += this.ty * t.c,
a += this.tx * t.b),
this.a = e,
this.b = i,
this.c = n,
this.d = r,
this.tx = s,
this.ty = a,
this
}
,
t.prototype.invert = function() {
var t = this.a
, e = this.b
, i = this.c
, n = this.d
, r = this.tx
, s = this.ty;
if (0 === e && 0 === i)
return this.b = this.c = 0,
0 === t || 0 === n ? this.a = this.b = this.tx = this.ty = 0 : (t = this.a = 1 / t,
n = this.d = 1 / n,
this.tx = -t * r,
this.ty = -n * s),
this;
var a = t * n - e * i;
if (0 === a)
return this.a = this.d = 1,
this.b = this.c = 0,
this.tx = this.ty = 0,
this;
a = 1 / a;
var o = this.a = n * a;
return e = this.b = -e * a,
i = this.c = -i * a,
n = this.d = t * a,
this.tx = -(o * r + i * s),
this.ty = -(e * r + n * s),
this
}
,
t.prototype.transformPoint = function(t, e, i, n) {
void 0 === n && (n = !1),
i.x = this.a * t + this.c * e,
i.y = this.b * t + this.d * e,
n || (i.x += this.tx,
i.y += this.ty)
}
,
t.prototype.transformRectangle = function(t, e) {
void 0 === e && (e = !1);
var i = this.a
, n = this.b
, r = this.c
, s = this.d
, a = e ? 0 : this.tx
, o = e ? 0 : this.ty
, l = t.x
, h = t.y
, c = l + t.width
, u = h + t.height
, _ = i * l + r * h + a
, f = n * l + s * h + o
, d = i * c + r * h + a
, p = n * c + s * h + o
, m = i * c + r * u + a
, y = n * c + s * u + o
, v = i * l + r * u + a
, g = n * l + s * u + o
, A = 0;
_ > d && (A = _,
_ = d,
d = A),
m > v && (A = m,
m = v,
v = A),
t.x = Math.floor(_ < m ? _ : m),
t.width = Math.ceil((d > v ? d : v) - t.x),
f > p && (A = f,
f = p,
p = A),
y > g && (A = y,
y = g,
g = A),
t.y = Math.floor(f < y ? f : y),
t.height = Math.ceil((p > g ? p : g) - t.y)
}
,
t
}
)();
t.Matrix = e
}
)(r || (r = {})),
(function(t) {
var e = (function() {
function t(t, e, i, n, r, s) {
void 0 === t && (t = 0),
void 0 === e && (e = 0),
void 0 === i && (i = 0),
void 0 === n && (n = 0),
void 0 === r && (r = 1),
void 0 === s && (s = 1),
this.x = t,
this.y = e,
this.skew = i,
this.rotation = n,
this.scaleX = r,
this.scaleY = s
}
return t.normalizeRadian = function(t) {
return (t = (t + Math.PI) % (2 * Math.PI)) + (t > 0 ? -Math.PI : Math.PI)
}
,
t.prototype.toString = function() {
return "[object dragonBones.Transform] x:" + this.x + " y:" + this.y + " skewX:" + 180 * this.skew / Math.PI + " skewY:" + 180 * this.rotation / Math.PI + " scaleX:" + this.scaleX + " scaleY:" + this.scaleY
}
,
t.prototype.copyFrom = function(t) {
return this.x = t.x,
this.y = t.y,
this.skew = t.skew,
this.rotation = t.rotation,
this.scaleX = t.scaleX,
this.scaleY = t.scaleY,
this
}
,
t.prototype.identity = function() {
return this.x = this.y = 0,
this.skew = this.rotation = 0,
this.scaleX = this.scaleY = 1,
this
}
,
t.prototype.add = function(t) {
return this.x += t.x,
this.y += t.y,
this.skew += t.skew,
this.rotation += t.rotation,
this.scaleX *= t.scaleX,
this.scaleY *= t.scaleY,
this
}
,
t.prototype.minus = function(t) {
return this.x -= t.x,
this.y -= t.y,
this.skew -= t.skew,
this.rotation -= t.rotation,
this.scaleX /= t.scaleX,
this.scaleY /= t.scaleY,
this
}
,
t.prototype.fromMatrix = function(e) {
var i = this.scaleX
, n = this.scaleY
, r = t.PI_Q;
this.x = e.tx,
this.y = e.ty,
this.rotation = Math.atan(e.b / e.a);
var s = Math.atan(-e.c / e.d);
return this.scaleX = this.rotation > -r && this.rotation < r ? e.a / Math.cos(this.rotation) : e.b / Math.sin(this.rotation),
this.scaleY = s > -r && s < r ? e.d / Math.cos(s) : -e.c / Math.sin(s),
i >= 0 && this.scaleX < 0 && (this.scaleX = -this.scaleX,
this.rotation = this.rotation - Math.PI),
n >= 0 && this.scaleY < 0 && (this.scaleY = -this.scaleY,
s -= Math.PI),
this.skew = s - this.rotation,
this
}
,
t.prototype.toMatrix = function(t) {
return 0 === this.rotation ? (t.a = 1,
t.b = 0) : (t.a = Math.cos(this.rotation),
t.b = Math.sin(this.rotation)),
0 === this.skew ? (t.c = -t.b,
t.d = t.a) : (t.c = -Math.sin(this.skew + this.rotation),
t.d = Math.cos(this.skew + this.rotation)),
1 !== this.scaleX && (t.a *= this.scaleX,
t.b *= this.scaleX),
1 !== this.scaleY && (t.c *= this.scaleY,
t.d *= this.scaleY),
t.tx = this.x,
t.ty = this.y,
this
}
,
t.PI = Math.PI,
t.PI_D = 2 * Math.PI,
t.PI_H = Math.PI / 2,
t.PI_Q = Math.PI / 4,
t.RAD_DEG = 180 / Math.PI,
t.DEG_RAD = Math.PI / 180,
t
}
)();
t.Transform = e
}
)(r || (r = {})),
(function(t) {
var e = (function() {
function t(t, e, i, n, r, s, a, o) {
void 0 === t && (t = 1),
void 0 === e && (e = 1),
void 0 === i && (i = 1),
void 0 === n && (n = 1),
void 0 === r && (r = 0),
void 0 === s && (s = 0),
void 0 === a && (a = 0),
void 0 === o && (o = 0),
this.alphaMultiplier = t,
this.redMultiplier = e,
this.greenMultiplier = i,
this.blueMultiplier = n,
this.alphaOffset = r,
this.redOffset = s,
this.greenOffset = a,
this.blueOffset = o
}
return t.prototype.copyFrom = function(t) {
this.alphaMultiplier = t.alphaMultiplier,
this.redMultiplier = t.redMultiplier,
this.greenMultiplier = t.greenMultiplier,
this.blueMultiplier = t.blueMultiplier,
this.alphaOffset = t.alphaOffset,
this.redOffset = t.redOffset,
this.greenOffset = t.greenOffset,
this.blueOffset = t.blueOffset
}
,
t.prototype.identity = function() {
this.alphaMultiplier = this.redMultiplier = this.greenMultiplier = this.blueMultiplier = 1,
this.alphaOffset = this.redOffset = this.greenOffset = this.blueOffset = 0
}
,
t
}
)();
t.ColorTransform = e
}
)(r || (r = {})),
(function(t) {
var e = (function() {
function t(t, e) {
void 0 === t && (t = 0),
void 0 === e && (e = 0),
this.x = t,
this.y = e
}
return t.prototype.copyFrom = function(t) {
this.x = t.x,
this.y = t.y
}
,
t.prototype.clear = function() {
this.x = this.y = 0
}
,
t
}
)();
t.Point = e
}
)(r || (r = {})),
(function(t) {
var e = (function() {
function t(t, e, i, n) {
void 0 === t && (t = 0),
void 0 === e && (e = 0),
void 0 === i && (i = 0),
void 0 === n && (n = 0),
this.x = t,
this.y = e,
this.width = i,
this.height = n
}
return t.prototype.copyFrom = function(t) {
this.x = t.x,
this.y = t.y,
this.width = t.width,
this.height = t.height
}
,
t.prototype.clear = function() {
this.x = this.y = 0,
this.width = this.height = 0
}
,
t
}
)();
t.Rectangle = e
}
)(r || (r = {})),
(function(t) {
var e = (function(t) {
function e() {
var e = null !== t && t.apply(this, arguments) || this;
return e.ints = [],
e.floats = [],
e.strings = [],
e
}
return s(e, t),
e.toString = function() {
return "[class dragonBones.UserData]"
}
,
e.prototype._onClear = function() {
this.ints.length = 0,
this.floats.length = 0,
this.strings.length = 0
}
,
e.prototype.addInt = function(t) {
this.ints.push(t)
}
,
e.prototype.addFloat = function(t) {
this.floats.push(t)
}
,
e.prototype.addString = function(t) {
this.strings.push(t)
}
,
e.prototype.getInt = function(t) {
return void 0 === t && (t = 0),
t >= 0 && t < this.ints.length ? this.ints[t] : 0
}
,
e.prototype.getFloat = function(t) {
return void 0 === t && (t = 0),
t >= 0 && t < this.floats.length ? this.floats[t] : 0
}
,
e.prototype.getString = function(t) {
return void 0 === t && (t = 0),
t >= 0 && t < this.strings.length ? this.strings[t] : ""
}
,
e
}
)(t.BaseObject);
t.UserData = e;
var i = (function(t) {
function e() {
var e = null !== t && t.apply(this, arguments) || this;
return e.data = null,
e
}
return s(e, t),
e.toString = function() {
return "[class dragonBones.ActionData]"
}
,
e.prototype._onClear = function() {
null !== this.data && this.data.returnToPool(),
this.type = 0,
this.name = "",
this.bone = null,
this.slot = null,
this.data = null
}
,
e
}
)(t.BaseObject);
t.ActionData = i
}
)(r || (r = {})),
(function(t) {
var e = (function(t) {
function e() {
var e = null !== t && t.apply(this, arguments) || this;
return e.frameIndices = [],
e.cachedFrames = [],
e.armatureNames = [],
e.armatures = {},
e.userData = null,
e
}
return s(e, t),
e.toString = function() {
return "[class dragonBones.DragonBonesData]"
}
,
e.prototype._onClear = function() {
for (var t in this.armatures)
this.armatures[t].returnToPool(),
delete this.armatures[t];
null !== this.userData && this.userData.returnToPool(),
this.autoSearch = !1,
this.frameRate = 0,
this.version = "",
this.name = "",
this.stage = null,
this.frameIndices.length = 0,
this.cachedFrames.length = 0,
this.armatureNames.length = 0,
this.binary = null,
this.intArray = null,
this.floatArray = null,
this.frameIntArray = null,
this.frameFloatArray = null,
this.frameArray = null,
this.timelineArray = null,
this.userData = null
}
,
e.prototype.addArmature = function(t) {
t.name in this.armatures ? console.warn("Same armature: " + t.name) : (t.parent = this,
this.armatures[t.name] = t,
this.armatureNames.push(t.name))
}
,
e.prototype.getArmature = function(t) {
return t in this.armatures ? this.armatures[t] : null
}
,
e.prototype.dispose = function() {
console.warn("\u5df2\u5e9f\u5f03"),
this.returnToPool()
}
,
e
}
)(t.BaseObject);
t.DragonBonesData = e
}
)(r || (r = {})),
(function(t) {
var e = (function(e) {
function i() {
var i = null !== e && e.apply(this, arguments) || this;
return i.aabb = new t.Rectangle,
i.animationNames = [],
i.sortedBones = [],
i.sortedSlots = [],
i.defaultActions = [],
i.actions = [],
i.bones = {},
i.slots = {},
i.constraints = {},
i.skins = {},
i.animations = {},
i.canvas = null,
i.userData = null,
i
}
return s(i, e),
i.toString = function() {
return "[class dragonBones.ArmatureData]"
}
,
i.prototype._onClear = function() {
for (var t = 0, e = this.defaultActions; t < e.length; t++)
e[t].returnToPool();
for (var i = 0, n = this.actions; i < n.length; i++)
n[i].returnToPool();
for (var r in this.bones)
this.bones[r].returnToPool(),
delete this.bones[r];
for (var r in this.slots)
this.slots[r].returnToPool(),
delete this.slots[r];
for (var r in this.constraints)
this.constraints[r].returnToPool(),
delete this.constraints[r];
for (var r in this.skins)
this.skins[r].returnToPool(),
delete this.skins[r];
for (var r in this.animations)
this.animations[r].returnToPool(),
delete this.animations[r];
null !== this.canvas && this.canvas.returnToPool(),
null !== this.userData && this.userData.returnToPool(),
this.type = 0,
this.frameRate = 0,
this.cacheFrameRate = 0,
this.scale = 1,
this.name = "",
this.aabb.clear(),
this.animationNames.length = 0,
this.sortedBones.length = 0,
this.sortedSlots.length = 0,
this.defaultActions.length = 0,
this.actions.length = 0,
this.defaultSkin = null,
this.defaultAnimation = null,
this.canvas = null,
this.userData = null,
this.parent = null
}
,
i.prototype.sortBones = function() {
var t = this.sortedBones.length;
if (!(t <= 0)) {
var e = this.sortedBones.concat()
, i = 0
, n = 0;
for (this.sortedBones.length = 0; n < t; ) {
var r = e[i++];
if (i >= t && (i = 0),
!(this.sortedBones.indexOf(r) >= 0)) {
var s = !1;
for (var a in this.constraints) {
var o = this.constraints[a];
if (o.root === r && this.sortedBones.indexOf(o.target) < 0) {
s = !0;
break
}
}
s || null !== r.parent && this.sortedBones.indexOf(r.parent) < 0 || (this.sortedBones.push(r),
n++)
}
}
}
}
,
i.prototype.cacheFrames = function(t) {
if (!(this.cacheFrameRate > 0))
for (var e in this.cacheFrameRate = t,
this.animations)
this.animations[e].cacheFrames(this.cacheFrameRate)
}
,
i.prototype.setCacheFrame = function(t, e) {
var i = this.parent.cachedFrames
, n = i.length;
return i.length += 10,
i[n] = t.a,
i[n + 1] = t.b,
i[n + 2] = t.c,
i[n + 3] = t.d,
i[n + 4] = t.tx,
i[n + 5] = t.ty,
i[n + 6] = e.rotation,
i[n + 7] = e.skew,
i[n + 8] = e.scaleX,
i[n + 9] = e.scaleY,
n
}
,
i.prototype.getCacheFrame = function(t, e, i) {
var n = this.parent.cachedFrames;
t.a = n[i],
t.b = n[i + 1],
t.c = n[i + 2],
t.d = n[i + 3],
t.tx = n[i + 4],
t.ty = n[i + 5],
e.rotation = n[i + 6],
e.skew = n[i + 7],
e.scaleX = n[i + 8],
e.scaleY = n[i + 9],
e.x = t.tx,
e.y = t.ty
}
,
i.prototype.addBone = function(t) {
t.name in this.bones ? console.warn("Same bone: " + t.name) : (this.bones[t.name] = t,
this.sortedBones.push(t))
}
,
i.prototype.addSlot = function(t) {
t.name in this.slots ? console.warn("Same slot: " + t.name) : (this.slots[t.name] = t,
this.sortedSlots.push(t))
}
,
i.prototype.addConstraint = function(t) {
t.name in this.constraints ? console.warn("Same constraint: " + t.name) : this.constraints[t.name] = t
}
,
i.prototype.addSkin = function(t) {
t.name in this.skins ? console.warn("Same skin: " + t.name) : (t.parent = this,
this.skins[t.name] = t,
null === this.defaultSkin && (this.defaultSkin = t),
"default" === t.name && (this.defaultSkin = t))
}
,
i.prototype.addAnimation = function(t) {
t.name in this.animations ? console.warn("Same animation: " + t.name) : (t.parent = this,
this.animations[t.name] = t,
this.animationNames.push(t.name),
null === this.defaultAnimation && (this.defaultAnimation = t))
}
,
i.prototype.addAction = function(t, e) {
e ? this.defaultActions.push(t) : this.actions.push(t)
}
,
i.prototype.getBone = function(t) {
return t in this.bones ? this.bones[t] : null
}
,
i.prototype.getSlot = function(t) {
return t in this.slots ? this.slots[t] : null
}
,
i.prototype.getConstraint = function(t) {
return t in this.constraints ? this.constraints[t] : null
}
,
i.prototype.getSkin = function(t) {
return t in this.skins ? this.skins[t] : null
}
,
i.prototype.getMesh = function(t, e, i) {
var n = this.getSkin(t);
return null === n ? null : n.getDisplay(e, i)
}
,
i.prototype.getAnimation = function(t) {
return t in this.animations ? this.animations[t] : null
}
,
i
}
)(t.BaseObject);
t.ArmatureData = e;
var i = (function(e) {
function i() {
var i = null !== e && e.apply(this, arguments) || this;
return i.transform = new t.Transform,
i.userData = null,
i
}
return s(i, e),
i.toString = function() {
return "[class dragonBones.BoneData]"
}
,
i.prototype._onClear = function() {
null !== this.userData && this.userData.returnToPool(),
this.inheritTranslation = !1,
this.inheritRotation = !1,
this.inheritScale = !1,
this.inheritReflection = !1,
this.type = 0,
this.length = 0,
this.name = "",
this.transform.identity(),
this.userData = null,
this.parent = null
}
,
i
}
)(t.BaseObject);
t.BoneData = i;
var n = (function(t) {
function e() {
var e = null !== t && t.apply(this, arguments) || this;
return e.vertices = [],
e
}
return s(e, t),
e.toString = function() {
return "[class dragonBones.SurfaceData]"
}
,
e.prototype._onClear = function() {
t.prototype._onClear.call(this),
this.type = 1,
this.segmentX = 0,
this.segmentY = 0,
this.vertices.length = 0
}
,
e
}
)(i);
t.SurfaceData = n;
var r = (function(e) {
function i() {
var t = null !== e && e.apply(this, arguments) || this;
return t.color = null,
t.userData = null,
t
}
return s(i, e),
i.createColor = function() {
return new t.ColorTransform
}
,
i.toString = function() {
return "[class dragonBones.SlotData]"
}
,
i.prototype._onClear = function() {
null !== this.userData && this.userData.returnToPool(),
this.blendMode = 0,
this.displayIndex = 0,
this.zOrder = 0,
this.name = "",
this.color = null,
this.userData = null,
this.parent = null
}
,
i.DEFAULT_COLOR = new t.ColorTransform,
i
}
)(t.BaseObject);
t.SlotData = r
}
)(r || (r = {})),
(function(t) {
var e = (function(t) {
function e() {
return null !== t && t.apply(this, arguments) || this
}
return s(e, t),
e.prototype._onClear = function() {
this.order = 0,
this.name = "",
this.type = 0,
this.target = null,
this.root = null,
this.bone = null
}
,
e
}
)(t.BaseObject);
t.ConstraintData = e;
var i = (function(t) {
function e() {
return null !== t && t.apply(this, arguments) || this
}
return s(e, t),
e.toString = function() {
return "[class dragonBones.IKConstraintData]"
}
,
e.prototype._onClear = function() {
t.prototype._onClear.call(this),
this.scaleEnabled = !1,
this.bendPositive = !1,
this.weight = 1
}
,
e
}
)(e);
t.IKConstraintData = i;
var n = (function(t) {
function e() {
var e = null !== t && t.apply(this, arguments) || this;
return e.bones = [],
e
}
return s(e, t),
e.toString = function() {
return "[class dragonBones.PathConstraintData]"
}
,
e.prototype._onClear = function() {
t.prototype._onClear.call(this),
this.pathSlot = null,
this.pathDisplayData = null,
this.bones.length = 0,
this.positionMode = 0,
this.spacingMode = 1,
this.rotateMode = 1,
this.position = 0,
this.spacing = 0,
this.rotateOffset = 0,
this.rotateMix = 0,
this.translateMix = 0
}
,
e.prototype.AddBone = function(t) {
this.bones.push(t)
}
,
e
}
)(e);
t.PathConstraintData = n
}
)(r || (r = {})),
(function(t) {
var e = (function(t) {
function e() {
return null !== t && t.apply(this, arguments) || this
}
return s(e, t),
e.toString = function() {
return "[class dragonBones.CanvasData]"
}
,
e.prototype._onClear = function() {
this.hasBackground = !1,
this.color = 0,
this.x = 0,
this.y = 0,
this.width = 0,
this.height = 0
}
,
e
}
)(t.BaseObject);
t.CanvasData = e
}
)(r || (r = {})),
(function(t) {
var e = (function(t) {
function e() {
var e = null !== t && t.apply(this, arguments) || this;
return e.displays = {},
e
}
return s(e, t),
e.toString = function() {
return "[class dragonBones.SkinData]"
}
,
e.prototype._onClear = function() {
for (var t in this.displays) {
for (var e = 0, i = this.displays[t]; e < i.length; e++) {
var n = i[e];
null !== n && n.returnToPool()
}
delete this.displays[t]
}
this.name = "",
this.parent = null
}
,
e.prototype.addDisplay = function(t, e) {
t in this.displays || (this.displays[t] = []),
null !== e && (e.parent = this),
this.displays[t].push(e)
}
,
e.prototype.getDisplay = function(t, e) {
var i = this.getDisplays(t);
if (null !== i)
for (var n = 0, r = i; n < r.length; n++) {
var s = r[n];
if (null !== s && s.name === e)
return s
}
return null
}
,
e.prototype.getDisplays = function(t) {
return t in this.displays ? this.displays[t] : null
}
,
e
}
)(t.BaseObject);
t.SkinData = e
}
)(r || (r = {})),
(function(t) {
var e = (function() {
function t() {
this.weight = null
}
return t.prototype.clear = function() {
this.isShared || null === this.weight || this.weight.returnToPool(),
this.isShared = !1,
this.inheritDeform = !1,
this.offset = 0,
this.data = null,
this.weight = null
}
,
t.prototype.shareFrom = function(t) {
this.isShared = !0,
this.offset = t.offset,
this.weight = t.weight
}
,
t
}
)();
t.VerticesData = e;
var i = (function(e) {
function i() {
var i = null !== e && e.apply(this, arguments) || this;
return i.transform = new t.Transform,
i
}
return s(i, e),
i.prototype._onClear = function() {
this.name = "",
this.path = "",
this.transform.identity(),
this.parent = null
}
,
i
}
)(t.BaseObject);
t.DisplayData = i;
var n = (function(e) {
function i() {
var i = null !== e && e.apply(this, arguments) || this;
return i.pivot = new t.Point,
i
}
return s(i, e),
i.toString = function() {
return "[class dragonBones.ImageDisplayData]"
}
,
i.prototype._onClear = function() {
e.prototype._onClear.call(this),
this.type = 0,
this.pivot.clear(),
this.texture = null
}
,
i
}
)(i);
t.ImageDisplayData = n;
var r = (function(t) {
function e() {
var e = null !== t && t.apply(this, arguments) || this;
return e.actions = [],
e
}
return s(e, t),
e.toString = function() {
return "[class dragonBones.ArmatureDisplayData]"
}
,
e.prototype._onClear = function() {
t.prototype._onClear.call(this);
for (var e = 0, i = this.actions; e < i.length; e++)
i[e].returnToPool();
this.type = 1,
this.inheritAnimation = !1,
this.actions.length = 0,
this.armature = null
}
,
e.prototype.addAction = function(t) {
this.actions.push(t)
}
,
e
}
)(i);
t.ArmatureDisplayData = r;
var a = (function(t) {
function i() {
var i = null !== t && t.apply(this, arguments) || this;
return i.vertices = new e,
i
}
return s(i, t),
i.toString = function() {
return "[class dragonBones.MeshDisplayData]"
}
,
i.prototype._onClear = function() {
t.prototype._onClear.call(this),
this.type = 2,
this.vertices.clear(),
this.texture = null
}
,
i
}
)(i);
t.MeshDisplayData = a;
var o = (function(t) {
function e() {
var e = null !== t && t.apply(this, arguments) || this;
return e.boundingBox = null,
e
}
return s(e, t),
e.toString = function() {
return "[class dragonBones.BoundingBoxDisplayData]"
}
,
e.prototype._onClear = function() {
t.prototype._onClear.call(this),
null !== this.boundingBox && this.boundingBox.returnToPool(),
this.type = 3,
this.boundingBox = null
}
,
e
}
)(i);
t.BoundingBoxDisplayData = o;
var l = (function(t) {
function i() {
var i = null !== t && t.apply(this, arguments) || this;
return i.vertices = new e,
i.curveLengths = [],
i
}
return s(i, t),
i.toString = function() {
return "[class dragonBones.PathDisplayData]"
}
,
i.prototype._onClear = function() {
t.prototype._onClear.call(this),
this.type = 4,
this.closed = !1,
this.constantSpeed = !1,
this.vertices.clear(),
this.curveLengths.length = 0
}
,
i
}
)(i);
t.PathDisplayData = l;
var h = (function(t) {
function e() {
var e = null !== t && t.apply(this, arguments) || this;
return e.bones = [],
e
}
return s(e, t),
e.toString = function() {
return "[class dragonBones.WeightData]"
}
,
e.prototype._onClear = function() {
this.count = 0,
this.offset = 0,
this.bones.length = 0
}
,
e.prototype.addBone = function(t) {
this.bones.push(t)
}
,
e
}
)(t.BaseObject);
t.WeightData = h
}
)(r || (r = {})),
(function(t) {
var e = (function(t) {
function e() {
return null !== t && t.apply(this, arguments) || this
}
return s(e, t),
e.prototype._onClear = function() {
this.color = 0,
this.width = 0,
this.height = 0
}
,
e
}
)(t.BaseObject);
t.BoundingBoxData = e;
var i = (function(t) {
function e() {
return null !== t && t.apply(this, arguments) || this
}
return s(e, t),
e.toString = function() {
return "[class dragonBones.RectangleBoundingBoxData]"
}
,
e._computeOutCode = function(t, e, i, n, r, s) {
var a = 0;
return t < i ? a |= 1 : t > r && (a |= 2),
e < n ? a |= 4 : e > s && (a |= 8),
a
}
,
e.rectangleIntersectsSegment = function(t, i, n, r, s, a, o, l, h, c, u) {
void 0 === h && (h = null),
void 0 === c && (c = null),
void 0 === u && (u = null);
var _ = t > s && t < o && i > a && i < l
, f = n > s && n < o && r > a && r < l;
if (_ && f)
return -1;
for (var d = 0, p = e._computeOutCode(t, i, s, a, o, l), m = e._computeOutCode(n, r, s, a, o, l); ; ) {
if (0 == (p | m)) {
d = 2;
break
}
if (0 != (p & m))
break;
var y = 0
, v = 0
, g = 0
, A = 0 !== p ? p : m;
0 != (4 & A) ? (y = t + (n - t) * (a - i) / (r - i),
v = a,
null !== u && (g = .5 * -Math.PI)) : 0 != (8 & A) ? (y = t + (n - t) * (l - i) / (r - i),
v = l,
null !== u && (g = .5 * Math.PI)) : 0 != (2 & A) ? (v = i + (r - i) * (o - t) / (n - t),
y = o,
null !== u && (g = 0)) : 0 != (1 & A) && (v = i + (r - i) * (s - t) / (n - t),
y = s,
null !== u && (g = Math.PI)),
A === p ? (t = y,
i = v,
p = e._computeOutCode(t, i, s, a, o, l),
null !== u && (u.x = g)) : (n = y,
r = v,
m = e._computeOutCode(n, r, s, a, o, l),
null !== u && (u.y = g))
}
return d && (_ ? (d = 2,
null !== h && (h.x = n,
h.y = r),
null !== c && (c.x = n,
c.y = n),
null !== u && (u.x = u.y + Math.PI)) : f ? (d = 1,
null !== h && (h.x = t,
h.y = i),
null !== c && (c.x = t,
c.y = i),
null !== u && (u.y = u.x + Math.PI)) : (d = 3,
null !== h && (h.x = t,
h.y = i),
null !== c && (c.x = n,
c.y = r))),
d
}
,
e.prototype._onClear = function() {
t.prototype._onClear.call(this),
this.type = 0
}
,
e.prototype.containsPoint = function(t, e) {
var i = .5 * this.width;
if (t >= -i && t <= i) {
var n = .5 * this.height;
if (e >= -n && e <= n)
return !0
}
return !1
}
,
e.prototype.intersectsSegment = function(t, i, n, r, s, a, o) {
void 0 === s && (s = null),
void 0 === a && (a = null),
void 0 === o && (o = null);
var l = .5 * this.width
, h = .5 * this.height;
return e.rectangleIntersectsSegment(t, i, n, r, -l, -h, l, h, s, a, o)
}
,
e
}
)(e);
t.RectangleBoundingBoxData = i;
var n = (function(t) {
function e() {
return null !== t && t.apply(this, arguments) || this
}
return s(e, t),
e.toString = function() {
return "[class dragonBones.EllipseData]"
}
,
e.ellipseIntersectsSegment = function(t, e, i, n, r, s, a, o, l, h, c) {
void 0 === l && (l = null),
void 0 === h && (h = null),
void 0 === c && (c = null);
var u = a / o
, _ = u * u
, f = i - t
, d = (n *= u) - (e *= u)
, p = Math.sqrt(f * f + d * d)
, m = f / p
, y = d / p
, v = (r - t) * m + (s - e) * y
, g = a * a
, A = g - (t * t + e * e) + v * v
, x = 0;
if (A >= 0) {
var b = Math.sqrt(A)
, C = v - b
, T = v + b
, S = C < 0 ? -1 : C <= p ? 0 : 1
, w = T < 0 ? -1 : T <= p ? 0 : 1
, E = S * w;
if (E < 0)
return -1;
0 === E && (-1 === S ? (x = 2,
i = t + T * m,
n = (e + T * y) / u,
null !== l && (l.x = i,
l.y = n),
null !== h && (h.x = i,
h.y = n),
null !== c && (c.x = Math.atan2(n / g * _, i / g),
c.y = c.x + Math.PI)) : 1 === w ? (x = 1,
t += C * m,
e = (e + C * y) / u,
null !== l && (l.x = t,
l.y = e),
null !== h && (h.x = t,
h.y = e),
null !== c && (c.x = Math.atan2(e / g * _, t / g),
c.y = c.x + Math.PI)) : (x = 3,
null !== l && (l.x = t + C * m,
l.y = (e + C * y) / u,
null !== c && (c.x = Math.atan2(l.y / g * _, l.x / g))),
null !== h && (h.x = t + T * m,
h.y = (e + T * y) / u,
null !== c && (c.y = Math.atan2(h.y / g * _, h.x / g)))))
}
return x
}
,
e.prototype._onClear = function() {
t.prototype._onClear.call(this),
this.type = 1
}
,
e.prototype.containsPoint = function(t, e) {
var i = .5 * this.width;
if (t >= -i && t <= i) {
var n = .5 * this.height;
if (e >= -n && e <= n)
return e *= i / n,
Math.sqrt(t * t + e * e) <= i
}
return !1
}
,
e.prototype.intersectsSegment = function(t, i, n, r, s, a, o) {
return void 0 === s && (s = null),
void 0 === a && (a = null),
void 0 === o && (o = null),
e.ellipseIntersectsSegment(t, i, n, r, 0, 0, .5 * this.width, .5 * this.height, s, a, o)
}
,
e
}
)(e);
t.EllipseBoundingBoxData = n;
var r = (function(t) {
function e() {
var e = null !== t && t.apply(this, arguments) || this;
return e.vertices = [],
e
}
return s(e, t),
e.toString = function() {
return "[class dragonBones.PolygonBoundingBoxData]"
}
,
e.polygonIntersectsSegment = function(t, e, i, n, r, s, a, o) {
void 0 === s && (s = null),
void 0 === a && (a = null),
void 0 === o && (o = null),
t === i && (t = i + 1e-6),
e === n && (e = n + 1e-6);
for (var l = r.length, h = t - i, c = e - n, u = t * n - e * i, _ = 0, f = r[l - 2], d = r[l - 1], p = 0, m = 0, y = 0, v = 0, g = 0, A = 0, x = 0; x < l; x += 2) {
var b = r[x]
, C = r[x + 1];
f === b && (f = b + 1e-4),
d === C && (d = C + 1e-4);
var T = f - b
, S = d - C
, w = f * C - d * b
, E = h * S - c * T
, M = (u * T - h * w) / E;
if ((M >= f && M <= b || M >= b && M <= f) && (0 === h || M >= t && M <= i || M >= i && M <= t)) {
var D = (u * S - c * w) / E;
if ((D >= d && D <= C || D >= C && D <= d) && (0 === c || D >= e && D <= n || D >= n && D <= e)) {
if (null === a) {
y = M,
v = D,
g = M,
A = D,
_++,
null !== o && (o.x = Math.atan2(C - d, b - f) - .5 * Math.PI,
o.y = o.x);
break
}
var B = M - t;
B < 0 && (B = -B),
0 === _ ? (p = B,
m = B,
y = M,
v = D,
g = M,
A = D,
null !== o && (o.x = Math.atan2(C - d, b - f) - .5 * Math.PI,
o.y = o.x)) : (B < p && (p = B,
y = M,
v = D,
null !== o && (o.x = Math.atan2(C - d, b - f) - .5 * Math.PI)),
B > m && (m = B,
g = M,
A = D,
null !== o && (o.y = Math.atan2(C - d, b - f) - .5 * Math.PI))),
_++
}
}
f = b,
d = C
}
return 1 === _ ? (null !== s && (s.x = y,
s.y = v),
null !== a && (a.x = y,
a.y = v),
null !== o && (o.y = o.x + Math.PI)) : _ > 1 && (_++,
null !== s && (s.x = y,
s.y = v),
null !== a && (a.x = g,
a.y = A)),
_
}
,
e.prototype._onClear = function() {
t.prototype._onClear.call(this),
this.type = 2,
this.x = 0,
this.y = 0,
this.vertices.length = 0
}
,
e.prototype.containsPoint = function(t, e) {
var i = !1;
if (t >= this.x && t <= this.width && e >= this.y && e <= this.height)
for (var n = 0, r = this.vertices.length, s = r - 2; n < r; n += 2) {
var a = this.vertices[s + 1]
, o = this.vertices[n + 1];
if (o < e && a >= e || a < e && o >= e) {
var l = this.vertices[s]
, h = this.vertices[n];
(e - o) * (l - h) / (a - o) + h < t && (i = !i)
}
s = n
}
return i
}
,
e.prototype.intersectsSegment = function(t, n, r, s, a, o, l) {
void 0 === a && (a = null),
void 0 === o && (o = null),
void 0 === l && (l = null);
var h = 0;
return 0 !== i.rectangleIntersectsSegment(t, n, r, s, this.x, this.y, this.x + this.width, this.y + this.height, null, null, null) && (h = e.polygonIntersectsSegment(t, n, r, s, this.vertices, a, o, l)),
h
}
,
e
}
)(e);
t.PolygonBoundingBoxData = r
}
)(r || (r = {})),
(function(t) {
var e = (function(t) {
function e() {
var e = null !== t && t.apply(this, arguments) || this;
return e.cachedFrames = [],
e.boneTimelines = {},
e.surfaceTimelines = {},
e.slotTimelines = {},
e.constraintTimelines = {},
e.animationTimelines = {},
e.boneCachedFrameIndices = {},
e.slotCachedFrameIndices = {},
e.actionTimeline = null,
e.zOrderTimeline = null,
e
}
return s(e, t),
e.toString = function() {
return "[class dragonBones.AnimationData]"
}
,
e.prototype._onClear = function() {
for (var t in this.boneTimelines) {
for (var e = 0, i = this.boneTimelines[t]; e < i.length; e++)
i[e].returnToPool();
delete this.boneTimelines[t]
}
for (var t in this.surfaceTimelines) {
for (var n = 0, r = this.surfaceTimelines[t]; n < r.length; n++)
r[n].returnToPool();
delete this.surfaceTimelines[t]
}
for (var t in this.slotTimelines) {
for (var s = 0, a = this.slotTimelines[t]; s < a.length; s++)
a[s].returnToPool();
delete this.slotTimelines[t]
}
for (var t in this.constraintTimelines) {
for (var o = 0, l = this.constraintTimelines[t]; o < l.length; o++)
l[o].returnToPool();
delete this.constraintTimelines[t]
}
for (var t in this.animationTimelines) {
for (var h = 0, c = this.animationTimelines[t]; h < c.length; h++)
c[h].returnToPool();
delete this.animationTimelines[t]
}
for (var t in this.boneCachedFrameIndices)
delete this.boneCachedFrameIndices[t];
for (var t in this.slotCachedFrameIndices)
delete this.slotCachedFrameIndices[t];
null !== this.actionTimeline && this.actionTimeline.returnToPool(),
null !== this.zOrderTimeline && this.zOrderTimeline.returnToPool(),
this.frameIntOffset = 0,
this.frameFloatOffset = 0,
this.frameOffset = 0,
this.frameCount = 0,
this.playTimes = 0,
this.duration = 0,
this.scale = 1,
this.fadeInTime = 0,
this.cacheFrameRate = 0,
this.name = "",
this.cachedFrames.length = 0,
this.actionTimeline = null,
this.zOrderTimeline = null,
this.parent = null
}
,
e.prototype.cacheFrames = function(t) {
if (!(this.cacheFrameRate > 0)) {
this.cacheFrameRate = Math.max(Math.ceil(t * this.scale), 1);
var e = Math.ceil(this.cacheFrameRate * this.duration) + 1;
this.cachedFrames.length = e;
for (var i = 0, n = this.cacheFrames.length; i < n; ++i)
this.cachedFrames[i] = !1;
for (var r = 0, s = this.parent.sortedBones; r < s.length; r++) {
var a = s[r];
for (i = 0,
n = (h = new Array(e)).length; i < n; ++i)
h[i] = -1;
this.boneCachedFrameIndices[a.name] = h
}
for (var o = 0, l = this.parent.sortedSlots; o < l.length; o++) {
var h, c = l[o];
for (i = 0,
n = (h = new Array(e)).length; i < n; ++i)
h[i] = -1;
this.slotCachedFrameIndices[c.name] = h
}
}
}
,
e.prototype.addBoneTimeline = function(t, e) {
var i = t.name in this.boneTimelines ? this.boneTimelines[t.name] : this.boneTimelines[t.name] = [];
i.indexOf(e) < 0 && i.push(e)
}
,
e.prototype.addSurfaceTimeline = function(t, e) {
var i = t.name in this.surfaceTimelines ? this.surfaceTimelines[t.name] : this.surfaceTimelines[t.name] = [];
i.indexOf(e) < 0 && i.push(e)
}
,
e.prototype.addSlotTimeline = function(t, e) {
var i = t.name in this.slotTimelines ? this.slotTimelines[t.name] : this.slotTimelines[t.name] = [];
i.indexOf(e) < 0 && i.push(e)
}
,
e.prototype.addConstraintTimeline = function(t, e) {
var i = t.name in this.constraintTimelines ? this.constraintTimelines[t.name] : this.constraintTimelines[t.name] = [];
i.indexOf(e) < 0 && i.push(e)
}
,
e.prototype.addAnimationTimeline = function(t, e) {
var i = t in this.animationTimelines ? this.animationTimelines[t] : this.animationTimelines[t] = [];
i.indexOf(e) < 0 && i.push(e)
}
,
e.prototype.getBoneTimelines = function(t) {
return t in this.boneTimelines ? this.boneTimelines[t] : null
}
,
e.prototype.getSurfaceTimelines = function(t) {
return t in this.surfaceTimelines ? this.surfaceTimelines[t] : null
}
,
e.prototype.getSlotTimelines = function(t) {
return t in this.slotTimelines ? this.slotTimelines[t] : null
}
,
e.prototype.getConstraintTimelines = function(t) {
return t in this.constraintTimelines ? this.constraintTimelines[t] : null
}
,
e.prototype.getAnimationTimelines = function(t) {
return t in this.animationTimelines ? this.animationTimelines[t] : null
}
,
e.prototype.getBoneCachedFrameIndices = function(t) {
return t in this.boneCachedFrameIndices ? this.boneCachedFrameIndices[t] : null
}
,
e.prototype.getSlotCachedFrameIndices = function(t) {
return t in this.slotCachedFrameIndices ? this.slotCachedFrameIndices[t] : null
}
,
e
}
)(t.BaseObject);
t.AnimationData = e;
var i = (function(t) {
function e() {
return null !== t && t.apply(this, arguments) || this
}
return s(e, t),
e.toString = function() {
return "[class dragonBones.TimelineData]"
}
,
e.prototype._onClear = function() {
this.type = 10,
this.offset = 0,
this.frameIndicesOffset = -1
}
,
e
}
)(t.BaseObject);
t.TimelineData = i
}
)(r || (r = {})),
(function(t) {
var e = (function(t) {
function e() {
var e = null !== t && t.apply(this, arguments) || this;
return e.boneMask = [],
e
}
return s(e, t),
e.toString = function() {
return "[class dragonBones.AnimationConfig]"
}
,
e.prototype._onClear = function() {
this.pauseFadeOut = !0,
this.fadeOutMode = 4,
this.fadeOutTweenType = 1,
this.fadeOutTime = -1,
this.actionEnabled = !0,
this.additiveBlending = !1,
this.displayControl = !0,
this.pauseFadeIn = !0,
this.resetToPose = !0,
this.fadeInTweenType = 1,
this.playTimes = -1,
this.layer = 0,
this.position = 0,
this.duration = -1,
this.timeScale = -100,
this.weight = 1,
this.fadeInTime = -1,
this.autoFadeOutTime = -1,
this.name = "",
this.animation = "",
this.group = "",
this.boneMask.length = 0
}
,
e.prototype.clear = function() {
this._onClear()
}
,
e.prototype.copyFrom = function(t) {
this.pauseFadeOut = t.pauseFadeOut,
this.fadeOutMode = t.fadeOutMode,
this.autoFadeOutTime = t.autoFadeOutTime,
this.fadeOutTweenType = t.fadeOutTweenType,
this.actionEnabled = t.actionEnabled,
this.additiveBlending = t.additiveBlending,
this.displayControl = t.displayControl,
this.pauseFadeIn = t.pauseFadeIn,
this.resetToPose = t.resetToPose,
this.playTimes = t.playTimes,
this.layer = t.layer,
this.position = t.position,
this.duration = t.duration,
this.timeScale = t.timeScale,
this.fadeInTime = t.fadeInTime,
this.fadeOutTime = t.fadeOutTime,
this.fadeInTweenType = t.fadeInTweenType,
this.weight = t.weight,
this.name = t.name,
this.animation = t.animation,
this.group = t.group,
this.boneMask.length = t.boneMask.length;
for (var e = 0, i = this.boneMask.length; e < i; ++e)
this.boneMask[e] = t.boneMask[e]
}
,
e.prototype.containsBoneMask = function(t) {
return 0 === this.boneMask.length || this.boneMask.indexOf(t) >= 0
}
,
e.prototype.addBoneMask = function(t, e, i) {
void 0 === i && (i = !0);
var n = t.getBone(e);
if (null !== n && (this.boneMask.indexOf(e) < 0 && this.boneMask.push(e),
i))
for (var r = 0, s = t.getBones(); r < s.length; r++) {
var a = s[r];
this.boneMask.indexOf(a.name) < 0 && n.contains(a) && this.boneMask.push(a.name)
}
}
,
e.prototype.removeBoneMask = function(t, e, i) {
void 0 === i && (i = !0);
var n = this.boneMask.indexOf(e);
if (n >= 0 && this.boneMask.splice(n, 1),
i) {
var r = t.getBone(e);
if (null !== r)
if (this.boneMask.length > 0)
for (var s = 0, a = t.getBones(); s < a.length; s++) {
var o = a[s]
, l = this.boneMask.indexOf(o.name);
l >= 0 && r.contains(o) && this.boneMask.splice(l, 1)
}
else
for (var h = 0, c = t.getBones(); h < c.length; h++)
(o = c[h]) !== r && (r.contains(o) || this.boneMask.push(o.name))
}
}
,
e
}
)(t.BaseObject);
t.AnimationConfig = e
}
)(r || (r = {})),
(function(t) {
var e = (function(t) {
function e() {
var e = null !== t && t.apply(this, arguments) || this;
return e.textures = {},
e
}
return s(e, t),
e.prototype._onClear = function() {
for (var t in this.textures)
this.textures[t].returnToPool(),
delete this.textures[t];
this.autoSearch = !1,
this.width = 0,
this.height = 0,
this.scale = 1,
this.name = "",
this.imagePath = ""
}
,
e.prototype.copyFrom = function(t) {
for (var e in this.autoSearch = t.autoSearch,
this.scale = t.scale,
this.width = t.width,
this.height = t.height,
this.name = t.name,
this.imagePath = t.imagePath,
this.textures)
this.textures[e].returnToPool(),
delete this.textures[e];
for (var e in t.textures) {
var i = this.createTexture();
i.copyFrom(t.textures[e]),
this.textures[e] = i
}
}
,
e.prototype.addTexture = function(t) {
t.name in this.textures ? console.warn("Same texture: " + t.name) : (t.parent = this,
this.textures[t.name] = t)
}
,
e.prototype.getTexture = function(t) {
return t in this.textures ? this.textures[t] : null
}
,
e
}
)(t.BaseObject);
t.TextureAtlasData = e;
var i = (function(e) {
function i() {
var i = null !== e && e.apply(this, arguments) || this;
return i.region = new t.Rectangle,
i.frame = null,
i
}
return s(i, e),
i.createRectangle = function() {
return new t.Rectangle
}
,
i.prototype._onClear = function() {
this.rotated = !1,
this.name = "",
this.region.clear(),
this.parent = null,
this.frame = null
}
,
i.prototype.copyFrom = function(t) {
this.rotated = t.rotated,
this.name = t.name,
this.region.copyFrom(t.region),
this.parent = t.parent,
null === this.frame && null !== t.frame ? this.frame = i.createRectangle() : null !== this.frame && null === t.frame && (this.frame = null),
null !== this.frame && null !== t.frame && this.frame.copyFrom(t.frame)
}
,
i
}
)(t.BaseObject);
t.TextureData = i
}
)(r || (r = {})),
(function(t) {
var e = (function(t) {
function e() {
var e = null !== t && t.apply(this, arguments) || this;
return e.vertices = [],
e.bones = [],
e
}
return s(e, t),
e.toString = function() {
return "[class dragonBones.DeformVertices]"
}
,
e.prototype._onClear = function() {
this.verticesDirty = !1,
this.vertices.length = 0,
this.bones.length = 0,
this.verticesData = null
}
,
e.prototype.init = function(t, e) {
if (this.verticesData = t,
null !== this.verticesData) {
var i;
i = null !== this.verticesData.weight ? 2 * this.verticesData.weight.count : 2 * this.verticesData.data.intArray[this.verticesData.offset + 0],
this.verticesDirty = !0,
this.vertices.length = i,
this.bones.length = 0;
for (var n = 0, r = this.vertices.length; n < r; ++n)
this.vertices[n] = 0;
if (null !== this.verticesData.weight)
for (n = 0,
r = this.verticesData.weight.bones.length; n < r; ++n) {
var s = e.getBone(this.verticesData.weight.bones[n].name);
this.bones.push(s)
}
} else
this.verticesDirty = !1,
this.vertices.length = 0,
this.bones.length = 0,
this.verticesData = null
}
,
e.prototype.isBonesUpdate = function() {
for (var t = 0, e = this.bones; t < e.length; t++) {
var i = e[t];
if (null !== i && i._childrenTransformDirty)
return !0
}
return !1
}
,
e
}
)(t.BaseObject);
t.DeformVertices = e
}
)(r || (r = {})),
n = (function(t) {
function e() {
var e = null !== t && t.apply(this, arguments) || this;
return e._bones = [],
e._slots = [],
e._constraints = [],
e._actions = [],
e._animation = null,
e._proxy = null,
e._replaceTextureAtlasData = null,
e._clock = null,
e
}
return s(e, t),
e.toString = function() {
return "[class dragonBones.Armature]"
}
,
e._onSortSlots = function(t, e) {
return t._zOrder > e._zOrder ? 1 : -1
}
,
e.prototype._onClear = function() {
null !== this._clock && this._clock.remove(this);
for (var t = 0, e = this._bones; t < e.length; t++)
e[t].returnToPool();
for (var i = 0, n = this._slots; i < n.length; i++)
n[i].returnToPool();
for (var r = 0, s = this._constraints; r < s.length; r++)
s[r].returnToPool();
for (var a = 0, o = this._actions; a < o.length; a++)
o[a].returnToPool();
null !== this._animation && this._animation.returnToPool(),
null !== this._proxy && this._proxy.dbClear(),
null !== this._replaceTextureAtlasData && this._replaceTextureAtlasData.returnToPool(),
this.inheritAnimation = !0,
this.userData = null,
this._lockUpdate = !1,
this._slotsDirty = !0,
this._zOrderDirty = !1,
this._flipX = !1,
this._flipY = !1,
this._cacheFrameIndex = -1,
this._bones.length = 0,
this._slots.length = 0,
this._constraints.length = 0,
this._actions.length = 0,
this._armatureData = null,
this._animation = null,
this._proxy = null,
this._display = null,
this._replaceTextureAtlasData = null,
this._replacedTexture = null,
this._dragonBones = null,
this._clock = null,
this._parent = null
}
,
e.prototype._sortZOrder = function(t, e) {
var i = this._armatureData.sortedSlots
, n = null === t;
if (this._zOrderDirty || !n) {
for (var r = 0, s = i.length; r < s; ++r) {
var a = n ? r : t[e + r];
if (!(a < 0 || a >= s)) {
var o = i[a]
, l = this.getSlot(o.name);
null !== l && l._setZorder(r)
}
}
this._slotsDirty = !0,
this._zOrderDirty = !n
}
}
,
e.prototype._addBone = function(t) {
this._bones.indexOf(t) < 0 && this._bones.push(t)
}
,
e.prototype._addSlot = function(t) {
this._slots.indexOf(t) < 0 && this._slots.push(t)
}
,
e.prototype._addConstraint = function(t) {
this._constraints.indexOf(t) < 0 && this._constraints.push(t)
}
,
e.prototype._bufferAction = function(t, e) {
this._actions.indexOf(t) < 0 && (e ? this._actions.push(t) : this._actions.unshift(t))
}
,
e.prototype.dispose = function() {
null !== this._armatureData && (this._lockUpdate = !0,
this._dragonBones.bufferObject(this))
}
,
e.prototype.init = function(t, e, n, r) {
null === this._armatureData && (this._armatureData = t,
this._animation = i.BaseObject.borrowObject(i.Animation),
this._proxy = e,
this._display = n,
this._dragonBones = r,
this._proxy.dbInit(this),
this._animation.init(this),
this._animation.animations = this._armatureData.animations)
}
,
e.prototype.advanceTime = function(t) {
if (!this._lockUpdate)
if (null !== this._armatureData)
if (null !== this._armatureData.parent) {
var i = this._cacheFrameIndex;
if (this._animation.advanceTime(t),
this._slotsDirty && (this._slotsDirty = !1,
this._slots.sort(e._onSortSlots)),
this._cacheFrameIndex < 0 || this._cacheFrameIndex !== i) {
var n = 0
, r = 0;
for (n = 0,
r = this._bones.length; n < r; ++n)
this._bones[n].update(this._cacheFrameIndex);
for (n = 0,
r = this._slots.length; n < r; ++n)
this._slots[n].update(this._cacheFrameIndex)
}
if (this._actions.length > 0) {
this._lockUpdate = !0;
for (var s = 0, a = this._actions; s < a.length; s++) {
var o = a[s]
, l = o.actionData;
if (null !== l && 0 === l.type)
if (null !== o.slot)
null !== (u = o.slot.childArmature) && u.animation.fadeIn(l.name);
else if (null !== o.bone)
for (var h = 0, c = this.getSlots(); h < c.length; h++) {
var u, _ = c[h];
_.parent === o.bone && null !== (u = _.childArmature) && u.animation.fadeIn(l.name)
}
else
this._animation.fadeIn(l.name);
o.returnToPool()
}
this._actions.length = 0,
this._lockUpdate = !1
}
this._proxy.dbUpdate()
} else
console.warn("The armature data has been disposed.\nPlease make sure dispose armature before call factory.clear().");
else
console.warn("The armature has been disposed.")
}
,
e.prototype.invalidUpdate = function(t, e) {
if (void 0 === t && (t = null),
void 0 === e && (e = !1),
null !== t && t.length > 0) {
if (null !== (a = this.getBone(t)) && (a.invalidUpdate(),
e))
for (var i = 0, n = this._slots; i < n.length; i++)
(h = n[i]).parent === a && h.invalidUpdate()
} else {
for (var r = 0, s = this._bones; r < s.length; r++) {
var a;
(a = s[r]).invalidUpdate()
}
if (e)
for (var o = 0, l = this._slots; o < l.length; o++) {
var h;
(h = l[o]).invalidUpdate()
}
}
}
,
e.prototype.containsPoint = function(t, e) {
for (var i = 0, n = this._slots; i < n.length; i++) {
var r = n[i];
if (r.containsPoint(t, e))
return r
}
return null
}
,
e.prototype.intersectsSegment = function(t, e, i, n, r, s, a) {
void 0 === r && (r = null),
void 0 === s && (s = null),
void 0 === a && (a = null);
for (var o = t === i, l = 0, h = 0, c = 0, u = 0, _ = 0, f = 0, d = 0, p = 0, m = null, y = null, v = 0, g = this._slots; v < g.length; v++) {
var A = g[v];
if (A.intersectsSegment(t, e, i, n, r, s, a) > 0) {
if (null === r && null === s) {
m = A;
break
}
var x;
null !== r && ((x = o ? r.y - e : r.x - t) < 0 && (x = -x),
(null === m || x < l) && (l = x,
c = r.x,
u = r.y,
m = A,
a && (d = a.x))),
null !== s && ((x = s.x - t) < 0 && (x = -x),
(null === y || x > h) && (h = x,
_ = s.x,
f = s.y,
y = A,
null !== a && (p = a.y)))
}
}
return null !== m && null !== r && (r.x = c,
r.y = u,
null !== a && (a.x = d)),
null !== y && null !== s && (s.x = _,
s.y = f,
null !== a && (a.y = p)),
m
}
,
e.prototype.getBone = function(t) {
for (var e = 0, i = this._bones; e < i.length; e++) {
var n = i[e];
if (n.name === t)
return n
}
return null
}
,
e.prototype.getBoneByDisplay = function(t) {
var e = this.getSlotByDisplay(t);
return null !== e ? e.parent : null
}
,
e.prototype.getSlot = function(t) {
for (var e = 0, i = this._slots; e < i.length; e++) {
var n = i[e];
if (n.name === t)
return n
}
return null
}
,
e.prototype.getSlotByDisplay = function(t) {
if (null !== t)
for (var e = 0, i = this._slots; e < i.length; e++) {
var n = i[e];
if (n.display === t)
return n
}
return null
}
,
e.prototype.getBones = function() {
return this._bones
}
,
e.prototype.getSlots = function() {
return this._slots
}
,
Object.defineProperty(e.prototype, "flipX", {
get: function() {
return this._flipX
},
set: function(t) {
this._flipX !== t && (this._flipX = t,
this.invalidUpdate())
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(e.prototype, "flipY", {
get: function() {
return this._flipY
},
set: function(t) {
this._flipY !== t && (this._flipY = t,
this.invalidUpdate())
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(e.prototype, "cacheFrameRate", {
get: function() {
return this._armatureData.cacheFrameRate
},
set: function(t) {
if (this._armatureData.cacheFrameRate !== t) {
this._armatureData.cacheFrames(t);
for (var e = 0, i = this._slots; e < i.length; e++) {
var n = i[e].childArmature;
null !== n && (n.cacheFrameRate = t)
}
}
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(e.prototype, "name", {
get: function() {
return this._armatureData.name
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(e.prototype, "armatureData", {
get: function() {
return this._armatureData
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(e.prototype, "animation", {
get: function() {
return this._animation
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(e.prototype, "proxy", {
get: function() {
return this._proxy
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(e.prototype, "eventDispatcher", {
get: function() {
return this._proxy
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(e.prototype, "display", {
get: function() {
return this._display
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(e.prototype, "replacedTexture", {
get: function() {
return this._replacedTexture
},
set: function(t) {
if (this._replacedTexture !== t) {
null !== this._replaceTextureAtlasData && (this._replaceTextureAtlasData.returnToPool(),
this._replaceTextureAtlasData = null),
this._replacedTexture = t;
for (var e = 0, i = this._slots; e < i.length; e++) {
var n = i[e];
n.invalidUpdate(),
n.update(-1)
}
}
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(e.prototype, "clock", {
get: function() {
return this._clock
},
set: function(t) {
if (this._clock !== t) {
null !== this._clock && this._clock.remove(this),
this._clock = t,
this._clock && this._clock.add(this);
for (var e = 0, i = this._slots; e < i.length; e++) {
var n = i[e].childArmature;
null !== n && (n.clock = this._clock)
}
}
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(e.prototype, "parent", {
get: function() {
return this._parent
},
enumerable: !0,
configurable: !0
}),
e.prototype.replaceTexture = function(t) {
this.replacedTexture = t
}
,
e.prototype.hasEventListener = function(t) {
return this._proxy.hasDBEventListener(t)
}
,
e.prototype.addEventListener = function(t, e, i) {
this._proxy.addDBEventListener(t, e, i)
}
,
e.prototype.removeEventListener = function(t, e, i) {
this._proxy.removeDBEventListener(t, e, i)
}
,
e.prototype.enableAnimationCache = function(t) {
console.warn("Deprecated."),
this.cacheFrameRate = t
}
,
e.prototype.getDisplay = function() {
return this._display
}
,
e
}
)((i = r || (r = {})).BaseObject),
i.Armature = n,
(function(t) {
var e = (function(e) {
function i() {
var i = null !== e && e.apply(this, arguments) || this;
return i.globalTransformMatrix = new t.Matrix,
i.global = new t.Transform,
i.offset = new t.Transform,
i
}
return s(i, e),
i.prototype._onClear = function() {
this.globalTransformMatrix.identity(),
this.global.identity(),
this.offset.identity(),
this.origin = null,
this.userData = null,
this._globalDirty = !1,
this._armature = null
}
,
i.prototype.updateGlobalTransform = function() {
this._globalDirty && (this._globalDirty = !1,
this.global.fromMatrix(this.globalTransformMatrix))
}
,
Object.defineProperty(i.prototype, "armature", {
get: function() {
return this._armature
},
enumerable: !0,
configurable: !0
}),
i._helpMatrix = new t.Matrix,
i._helpTransform = new t.Transform,
i._helpPoint = new t.Point,
i
}
)(t.BaseObject);
t.TransformObject = e
}
)(r || (r = {})),
(function(t) {
var e = (function(e) {
function i() {
var i = null !== e && e.apply(this, arguments) || this;
return i.animationPose = new t.Transform,
i._blendState = new t.BlendState,
i
}
return s(i, e),
i.toString = function() {
return "[class dragonBones.Bone]"
}
,
i.prototype._onClear = function() {
e.prototype._onClear.call(this),
this.offsetMode = 1,
this.animationPose.identity(),
this._transformDirty = !1,
this._childrenTransformDirty = !1,
this._localDirty = !0,
this._hasConstraint = !1,
this._visible = !0,
this._cachedFrameIndex = -1,
this._blendState.clear(),
this._boneData = null,
this._parent = null,
this._cachedFrameIndices = null
}
,
i.prototype._updateGlobalTransformMatrix = function(e) {
var i = this._boneData
, n = this.global
, r = this.globalTransformMatrix
, s = this.origin
, a = this.offset
, o = this.animationPose
, l = this._parent
, h = this._armature.flipX
, c = this._armature.flipY === t.DragonBones.yDown
, u = null !== l
, _ = 0;
if (1 === this.offsetMode ? null !== s ? (n.x = s.x + a.x + o.x,
n.scaleX = s.scaleX * a.scaleX * o.scaleX,
n.scaleY = s.scaleY * a.scaleY * o.scaleY,
t.DragonBones.yDown ? (n.y = s.y + a.y + o.y,
n.skew = s.skew + a.skew + o.skew,
n.rotation = s.rotation + a.rotation + o.rotation) : (n.y = s.y - a.y + o.y,
n.skew = s.skew - a.skew + o.skew,
n.rotation = s.rotation - a.rotation + o.rotation)) : (n.copyFrom(a),
t.DragonBones.yDown || (n.y = -n.y,
n.skew = -n.skew,
n.rotation = -n.rotation),
n.add(o)) : 0 === this.offsetMode ? null !== s ? n.copyFrom(s).add(o) : n.copyFrom(o) : (u = !1,
n.copyFrom(a),
t.DragonBones.yDown || (n.y = -n.y,
n.skew = -n.skew,
n.rotation = -n.rotation)),
u) {
var f = 0 === l._boneData.type ? l.globalTransformMatrix : l._getGlobalTransformMatrix(n.x, n.y);
if (i.inheritScale)
i.inheritRotation || (l.updateGlobalTransform(),
_ = h && c ? n.rotation - (l.global.rotation + Math.PI) : h ? n.rotation + l.global.rotation + Math.PI : c ? n.rotation + l.global.rotation : n.rotation - l.global.rotation,
n.rotation = _),
n.toMatrix(r),
r.concat(f),
i.inheritTranslation ? (n.x = r.tx,
n.y = r.ty) : (r.tx = n.x,
r.ty = n.y),
e ? n.fromMatrix(r) : this._globalDirty = !0;
else {
if (i.inheritTranslation) {
var d = n.x
, p = n.y;
n.x = f.a * d + f.c * p + f.tx,
n.y = f.b * d + f.d * p + f.ty
} else
h && (n.x = -n.x),
c && (n.y = -n.y);
i.inheritRotation ? (l.updateGlobalTransform(),
_ = l.global.scaleX < 0 ? n.rotation + l.global.rotation + Math.PI : n.rotation + l.global.rotation,
f.a * f.d - f.b * f.c < 0 && (_ -= 2 * n.rotation,
(h !== c || i.inheritReflection) && (n.skew += Math.PI),
t.DragonBones.yDown || (n.skew = -n.skew)),
n.rotation = _) : (h || c) && (h && c ? _ = n.rotation + Math.PI : (_ = h ? Math.PI - n.rotation : -n.rotation,
n.skew += Math.PI),
n.rotation = _),
n.toMatrix(r)
}
} else
(h || c) && (h && (n.x = -n.x),
c && (n.y = -n.y),
h && c ? _ = n.rotation + Math.PI : (_ = h ? Math.PI - n.rotation : -n.rotation,
n.skew += Math.PI),
n.rotation = _),
n.toMatrix(r)
}
,
i.prototype.init = function(t, e) {
null === this._boneData && (this._boneData = t,
this._armature = e,
null !== this._boneData.parent && (this._parent = this._armature.getBone(this._boneData.parent.name)),
this._armature._addBone(this),
this.origin = this._boneData.transform)
}
,
i.prototype.update = function(t) {
if (this._blendState.dirty = !1,
t >= 0 && null !== this._cachedFrameIndices) {
var e = this._cachedFrameIndices[t];
if (e >= 0 && this._cachedFrameIndex === e)
this._transformDirty = !1;
else if (e >= 0)
this._transformDirty = !0,
this._cachedFrameIndex = e;
else {
if (this._hasConstraint)
for (var i = 0, n = this._armature._constraints; i < n.length; i++)
(a = n[i])._root === this && a.update();
this._transformDirty || null !== this._parent && this._parent._childrenTransformDirty ? (this._transformDirty = !0,
this._cachedFrameIndex = -1) : this._cachedFrameIndex >= 0 ? (this._transformDirty = !1,
this._cachedFrameIndices[t] = this._cachedFrameIndex) : (this._transformDirty = !0,
this._cachedFrameIndex = -1)
}
} else {
if (this._hasConstraint)
for (var r = 0, s = this._armature._constraints; r < s.length; r++) {
var a;
(a = s[r])._root === this && a.update()
}
(this._transformDirty || null !== this._parent && this._parent._childrenTransformDirty) && (t = -1,
this._transformDirty = !0,
this._cachedFrameIndex = -1)
}
if (this._transformDirty)
if (this._transformDirty = !1,
this._childrenTransformDirty = !0,
this._cachedFrameIndex < 0) {
var o = t >= 0;
this._localDirty && this._updateGlobalTransformMatrix(o),
o && null !== this._cachedFrameIndices && (this._cachedFrameIndex = this._cachedFrameIndices[t] = this._armature._armatureData.setCacheFrame(this.globalTransformMatrix, this.global))
} else
this._armature._armatureData.getCacheFrame(this.globalTransformMatrix, this.global, this._cachedFrameIndex);
else
this._childrenTransformDirty && (this._childrenTransformDirty = !1);
this._localDirty = !0
}
,
i.prototype.updateByConstraint = function() {
this._localDirty && (this._localDirty = !1,
(this._transformDirty || null !== this._parent && this._parent._childrenTransformDirty) && this._updateGlobalTransformMatrix(!0),
this._transformDirty = !0)
}
,
i.prototype.invalidUpdate = function() {
this._transformDirty = !0
}
,
i.prototype.contains = function(t) {
if (t === this)
return !1;
for (var e = t; e !== this && null !== e; )
e = e.parent;
return e === this
}
,
Object.defineProperty(i.prototype, "boneData", {
get: function() {
return this._boneData
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(i.prototype, "visible", {
get: function() {
return this._visible
},
set: function(t) {
if (this._visible !== t) {
this._visible = t;
for (var e = 0, i = this._armature.getSlots(); e < i.length; e++) {
var n = i[e];
n.parent === this && n._updateVisible()
}
}
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(i.prototype, "name", {
get: function() {
return this._boneData.name
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(i.prototype, "parent", {
get: function() {
return this._parent
},
enumerable: !0,
configurable: !0
}),
i.prototype.getBones = function() {
console.warn("Deprecated.");
for (var t = new Array, e = 0, i = this._armature.getBones(); e < i.length; e++) {
var n = i[e];
n.parent === this && t.push(n)
}
return t
}
,
i.prototype.getSlots = function() {
console.warn("Deprecated.");
for (var t = new Array, e = 0, i = this._armature.getSlots(); e < i.length; e++) {
var n = i[e];
n.parent === this && t.push(n)
}
return t
}
,
Object.defineProperty(i.prototype, "slot", {
get: function() {
console.warn("Deprecated.");
for (var t = 0, e = this._armature.getSlots(); t < e.length; t++) {
var i = e[t];
if (i.parent === this)
return i
}
return null
},
enumerable: !0,
configurable: !0
}),
i
}
)(t.TransformObject);
t.Bone = e
}
)(r || (r = {})),
(function(t) {
var e = (function(t) {
function e() {
var e = null !== t && t.apply(this, arguments) || this;
return e._vertices = [],
e._deformVertices = [],
e._hullCache = [],
e._matrixCahce = [],
e
}
return s(e, t),
e.toString = function() {
return "[class dragonBones.Surface]"
}
,
e.prototype._onClear = function() {
t.prototype._onClear.call(this),
this._dX = 0,
this._dY = 0,
this._k = 0,
this._kX = 0,
this._kY = 0,
this._vertices.length = 0,
this._deformVertices.length = 0,
this._matrixCahce.length = 0,
this._hullCache.length = 0
}
,
e.prototype._getAffineTransform = function(t, e, i, n, r, s, a, o, l, h, c, u, _) {
var f = a - r
, d = o - s
, p = l - r
, m = h - s;
c.rotation = Math.atan2(d, f),
c.skew = Math.atan2(m, p) - .5 * Math.PI - c.rotation,
_ && (c.rotation += Math.PI),
c.scaleX = Math.sqrt(f * f + d * d) / i,
c.scaleY = Math.sqrt(p * p + m * m) / n,
c.toMatrix(u),
c.x = u.tx = r - (u.a * t + u.c * e),
c.y = u.ty = s - (u.b * t + u.d * e)
}
,
e.prototype._updateVertices = function() {
var t = this._boneData.vertices
, e = this._vertices
, i = this._deformVertices;
if (null !== this._parent)
if (1 === this._parent._boneData.type)
for (var n = 0, r = t.length; n < r; n += 2) {
var s = t[n] + i[n]
, a = t[n + 1] + i[n]
, o = this._parent._getGlobalTransformMatrix(s, a);
e[n] = o.a * s + o.c * a + o.tx,
e[n + 1] = o.b * s + o.d * a + o.ty
}
else {
var l = this._parent.globalTransformMatrix;
for (n = 0,
r = t.length; n < r; n += 2)
s = t[n] + i[n],
a = t[n + 1] + i[n + 1],
e[n] = l.a * s + l.c * a + l.tx,
e[n + 1] = l.b * s + l.d * a + l.ty
}
else
for (n = 0,
r = t.length; n < r; n += 2)
e[n] = t[n] + i[n],
e[n + 1] = t[n + 1] + i[n + 1]
}
,
e.prototype._updateGlobalTransformMatrix = function() {
var t = 2 * this._boneData.segmentX
, e = this._vertices.length - 2
, i = this._vertices[0]
, n = this._vertices[1]
, r = this._vertices[t]
, s = this._vertices[t + 1]
, a = this._vertices[e]
, o = this._vertices[e + 1]
, l = this._vertices[e - t]
, h = this._vertices[e - t + 1]
, c = i + .5 * (a - i)
, u = n + .5 * (o - n)
, _ = c + .5 * (r + .5 * (l - r) - c)
, f = u + .5 * (s + .5 * (h - s) - u)
, d = r + .5 * (a - r)
, p = s + .5 * (o - s)
, m = l + .5 * (a - l)
, y = h + .5 * (o - h);
this._globalDirty = !1,
this._getAffineTransform(0, 0, 200, 200, _, f, d, p, m, y, this.global, this.globalTransformMatrix, !1)
}
,
e.prototype._getGlobalTransformMatrix = function(t, i) {
var n = 1e3;
if (t < -n || n < t || i < -n || n < i)
return this.globalTransformMatrix;
var r = !1
, s = 200
, a = this._boneData
, o = a.segmentX
, l = a.segmentY
, h = 2 * a.segmentX
, c = this._dX
, u = this._dY
, _ = Math.floor((t + s) / c)
, f = Math.floor((i + s) / u)
, d = 0
, p = _ * c - s
, m = f * u - s
, y = this._matrixCahce
, v = e._helpMatrix;
if (t < -s) {
if (i < -s || i >= s)
return this.globalTransformMatrix;
if (d = 7 * (2 * (o * (l + 1) + 2 * o + l + f) + ((r = i > this._kX * (t + s) + m) ? 1 : 0)),
this._matrixCahce[d] > 0)
v.copyFromArray(y, d + 1);
else {
var g = f * (h + 2)
, A = this._hullCache[4]
, x = this._hullCache[5]
, b = this._hullCache[2] - (l - f) * A
, C = this._hullCache[3] - (l - f) * x
, T = this._vertices;
r ? this._getAffineTransform(-s, m + u, 800, u, T[g + h + 2], T[g + h + 3], b + A, C + x, T[g], T[g + 1], e._helpTransform, v, !0) : this._getAffineTransform(-n, m, 800, u, b, C, T[g], T[g + 1], b + A, C + x, e._helpTransform, v, !1),
y[d] = 1,
y[d + 1] = v.a,
y[d + 2] = v.b,
y[d + 3] = v.c,
y[d + 4] = v.d,
y[d + 5] = v.tx,
y[d + 6] = v.ty
}
} else if (t >= s) {
if (i < -s || i >= s)
return this.globalTransformMatrix;
d = 7 * (2 * (o * (l + 1) + o + f) + ((r = i > this._kX * (t - n) + m) ? 1 : 0)),
this._matrixCahce[d] > 0 ? v.copyFromArray(y, d + 1) : (g = (f + 1) * (h + 2) - 2,
A = this._hullCache[4],
x = this._hullCache[5],
b = this._hullCache[0] + f * A,
C = this._hullCache[1] + f * x,
T = this._vertices,
r ? this._getAffineTransform(n, m + u, 800, u, b + A, C + x, T[g + h + 2], T[g + h + 3], b, C, e._helpTransform, v, !0) : this._getAffineTransform(s, m, 800, u, T[g], T[g + 1], b, C, T[g + h + 2], T[g + h + 3], e._helpTransform, v, !1),
y[d] = 1,
y[d + 1] = v.a,
y[d + 2] = v.b,
y[d + 3] = v.c,
y[d + 4] = v.d,
y[d + 5] = v.tx,
y[d + 6] = v.ty)
} else if (i < -s) {
if (t < -s || t >= s)
return this.globalTransformMatrix;
d = 7 * (o * (l + 1) + 2 * _ + ((r = i > this._kY * (t - p - c) - n) ? 1 : 0)),
this._matrixCahce[d] > 0 ? v.copyFromArray(y, d + 1) : (g = 2 * _,
A = this._hullCache[10],
x = this._hullCache[11],
b = this._hullCache[8] + _ * A,
C = this._hullCache[9] + _ * x,
T = this._vertices,
r ? this._getAffineTransform(p + c, -s, c, 800, T[g + 2], T[g + 3], T[g], T[g + 1], b + A, C + x, e._helpTransform, v, !0) : this._getAffineTransform(p, -n, c, 800, b, C, b + A, C + x, T[g], T[g + 1], e._helpTransform, v, !1),
y[d] = 1,
y[d + 1] = v.a,
y[d + 2] = v.b,
y[d + 3] = v.c,
y[d + 4] = v.d,
y[d + 5] = v.tx,
y[d + 6] = v.ty)
} else if (i >= s) {
if (t < -s || t >= s)
return this.globalTransformMatrix;
d = 7 * (2 * (o * (l + 1) + o + l + f) + ((r = i > this._kY * (t - p - c) + s) ? 1 : 0)),
this._matrixCahce[d] > 0 ? v.copyFromArray(y, d + 1) : (g = l * (h + 2) + 2 * _,
A = this._hullCache[10],
x = this._hullCache[11],
b = this._hullCache[6] - (o - _) * A,
C = this._hullCache[7] - (o - _) * x,
T = this._vertices,
r ? this._getAffineTransform(p + c, n, c, 800, b + A, C + x, b, C, T[g + 2], T[g + 3], e._helpTransform, v, !0) : this._getAffineTransform(p, s, c, 800, T[g], T[g + 1], T[g + 2], T[g + 3], b, C, e._helpTransform, v, !1),
y[d] = 1,
y[d + 1] = v.a,
y[d + 2] = v.b,
y[d + 3] = v.c,
y[d + 4] = v.d,
y[d + 5] = v.tx,
y[d + 6] = v.ty)
} else
d = 7 * (2 * (o * f + _) + ((r = i > this._k * (t - p - c) + m) ? 1 : 0)),
this._matrixCahce[d] > 0 ? v.copyFromArray(y, d + 1) : (g = 2 * _ + f * (h + 2),
T = this._vertices,
r ? this._getAffineTransform(p + c, m + u, c, u, T[g + h + 4], T[g + h + 5], T[g + h + 2], T[g + h + 3], T[g + 2], T[g + 3], e._helpTransform, v, !0) : this._getAffineTransform(p, m, c, u, T[g], T[g + 1], T[g + 2], T[g + 3], T[g + h + 2], T[g + h + 3], e._helpTransform, v, !1),
y[d] = 1,
y[d + 1] = v.a,
y[d + 2] = v.b,
y[d + 3] = v.c,
y[d + 4] = v.d,
y[d + 5] = v.tx,
y[d + 6] = v.ty);
return v
}
,
e.prototype.init = function(e, i) {
if (null === this._boneData) {
t.prototype.init.call(this, e, i);
var n = e.segmentX
, r = e.segmentY
, s = e.vertices.length;
this._dX = 400 / n,
this._dY = 400 / r,
this._k = -this._dY / this._dX,
this._kX = -this._dY / 800,
this._kY = -800 / this._dX,
this._vertices.length = s,
this._deformVertices.length = s,
this._matrixCahce.length = 14 * (n * r + 2 * n + 2 * r),
this._hullCache.length = 10;
for (var a = 0; a < s; ++a)
this._deformVertices[a] = 0
}
}
,
e.prototype.update = function(t) {
if (this._blendState.dirty = !1,
t >= 0 && null !== this._cachedFrameIndices) {
var i = this._cachedFrameIndices[t];
if (i >= 0 && this._cachedFrameIndex === i)
this._transformDirty = !1;
else if (i >= 0)
this._transformDirty = !0,
this._cachedFrameIndex = i;
else {
if (this._hasConstraint)
for (var n = 0, r = this._armature._constraints; n < r.length; n++)
(o = r[n])._root === this && o.update();
this._transformDirty || null !== this._parent && this._parent._childrenTransformDirty ? (this._transformDirty = !0,
this._cachedFrameIndex = -1) : this._cachedFrameIndex >= 0 ? (this._transformDirty = !1,
this._cachedFrameIndices[t] = this._cachedFrameIndex) : (this._transformDirty = !0,
this._cachedFrameIndex = -1)
}
} else {
if (this._hasConstraint)
for (var s = 0, a = this._armature._constraints; s < a.length; s++) {
var o;
(o = a[s])._root === this && o.update()
}
(this._transformDirty || null !== this._parent && this._parent._childrenTransformDirty) && (t = -1,
this._transformDirty = !0,
this._cachedFrameIndex = -1)
}
if (this._transformDirty) {
this._transformDirty = !1,
this._childrenTransformDirty = !0;
for (var l = 0, h = this._matrixCahce.length; l < h; l += 7)
this._matrixCahce[l] = -1;
if (this._updateVertices(),
this._cachedFrameIndex < 0) {
var c = t >= 0;
this._localDirty && this._updateGlobalTransformMatrix(c),
c && null !== this._cachedFrameIndices && (this._cachedFrameIndex = this._cachedFrameIndices[t] = this._armature._armatureData.setCacheFrame(this.globalTransformMatrix, this.global))
} else
this._armature._armatureData.getCacheFrame(this.globalTransformMatrix, this.global, this._cachedFrameIndex);
var u = 2 * this.global.x
, _ = 2 * this.global.y
, f = e._helpPoint;
this.globalTransformMatrix.transformPoint(1e3, -200, f),
this._hullCache[0] = f.x,
this._hullCache[1] = f.y,
this._hullCache[2] = u - f.x,
this._hullCache[3] = _ - f.y,
this.globalTransformMatrix.transformPoint(0, this._dY, f, !0),
this._hullCache[4] = f.x,
this._hullCache[5] = f.y,
this.globalTransformMatrix.transformPoint(200, 1e3, f),
this._hullCache[6] = f.x,
this._hullCache[7] = f.y,
this._hullCache[8] = u - f.x,
this._hullCache[9] = _ - f.y,
this.globalTransformMatrix.transformPoint(this._dX, 0, f, !0),
this._hullCache[10] = f.x,
this._hullCache[11] = f.y
} else
this._childrenTransformDirty && (this._childrenTransformDirty = !1);
this._localDirty = !0
}
,
e
}
)(t.Bone);
t.Surface = e
}
)(r || (r = {})),
(function(t) {
var e = (function(e) {
function i() {
var i = null !== e && e.apply(this, arguments) || this;
return i._localMatrix = new t.Matrix,
i._colorTransform = new t.ColorTransform,
i._displayDatas = [],
i._displayList = [],
i._deformVertices = null,
i._rawDisplay = null,
i._meshDisplay = null,
i
}
return s(i, e),
i.prototype._onClear = function() {
e.prototype._onClear.call(this);
for (var i = [], n = 0, r = this._displayList; n < r.length; n++)
null !== (o = r[n]) && o !== this._rawDisplay && o !== this._meshDisplay && i.indexOf(o) < 0 && i.push(o);
for (var s = 0, a = i; s < a.length; s++) {
var o;
(o = a[s])instanceof t.Armature ? o.dispose() : this._disposeDisplay(o, !0)
}
null !== this._deformVertices && this._deformVertices.returnToPool(),
null !== this._meshDisplay && this._meshDisplay !== this._rawDisplay && this._disposeDisplay(this._meshDisplay, !1),
null !== this._rawDisplay && this._disposeDisplay(this._rawDisplay, !1),
this.displayController = null,
this._displayDirty = !1,
this._zOrderDirty = !1,
this._blendModeDirty = !1,
this._colorDirty = !1,
this._transformDirty = !1,
this._visible = !0,
this._blendMode = 0,
this._displayIndex = -1,
this._animationDisplayIndex = -1,
this._zOrder = 0,
this._cachedFrameIndex = -1,
this._pivotX = 0,
this._pivotY = 0,
this._localMatrix.identity(),
this._colorTransform.identity(),
this._displayList.length = 0,
this._displayDatas.length = 0,
this._slotData = null,
this._rawDisplayDatas = null,
this._displayData = null,
this._boundingBoxData = null,
this._textureData = null,
this._deformVertices = null,
this._rawDisplay = null,
this._meshDisplay = null,
this._display = null,
this._childArmature = null,
this._parent = null,
this._cachedFrameIndices = null
}
,
i.prototype._getDefaultRawDisplayData = function(t) {
var e = this._armature._armatureData.defaultSkin;
if (null !== e) {
var i = e.getDisplays(this._slotData.name);
if (null !== i)
return t < i.length ? i[t] : null
}
return null
}
,
i.prototype._updateDisplayData = function() {
var e = this._displayData
, n = null !== this._deformVertices ? this._deformVertices.verticesData : null
, r = this._textureData
, s = null
, a = null;
if (this._displayData = null,
this._boundingBoxData = null,
this._textureData = null,
this._displayIndex >= 0 && (null !== this._rawDisplayDatas && (s = this._displayIndex < this._rawDisplayDatas.length ? this._rawDisplayDatas[this._displayIndex] : null),
null === s && (s = this._getDefaultRawDisplayData(this._displayIndex)),
this._displayIndex < this._displayDatas.length && (this._displayData = this._displayDatas[this._displayIndex])),
null !== this._displayData && (2 === this._displayData.type ? a = this._displayData.vertices : 4 === this._displayData.type ? a = this._displayData.vertices : null !== s && (2 === s.type ? a = s.vertices : 4 === s.type && (a = s.vertices)),
3 === this._displayData.type ? this._boundingBoxData = this._displayData.boundingBox : null !== s && 3 === s.type && (this._boundingBoxData = s.boundingBox),
0 === this._displayData.type ? this._textureData = this._displayData.texture : 2 === this._displayData.type && (this._textureData = this._displayData.texture)),
this._displayData !== e || a !== n || this._textureData !== r) {
if (null === a && null !== this._textureData) {
var o = this._displayData
, l = this._textureData.parent.scale * this._armature._armatureData.scale
, h = this._textureData.frame;
this._pivotX = o.pivot.x,
this._pivotY = o.pivot.y;
var c = null !== h ? h : this._textureData.region
, u = c.width
, _ = c.height;
this._textureData.rotated && null === h && (u = c.height,
_ = c.width),
this._pivotX *= u * l,
this._pivotY *= _ * l,
null !== h && (this._pivotX += h.x * l,
this._pivotY += h.y * l),
null !== this._displayData && null !== s && this._displayData !== s && (s.transform.toMatrix(i._helpMatrix),
i._helpMatrix.invert(),
i._helpMatrix.transformPoint(0, 0, i._helpPoint),
this._pivotX -= i._helpPoint.x,
this._pivotY -= i._helpPoint.y,
this._displayData.transform.toMatrix(i._helpMatrix),
i._helpMatrix.invert(),
i._helpMatrix.transformPoint(0, 0, i._helpPoint),
this._pivotX += i._helpPoint.x,
this._pivotY += i._helpPoint.y),
t.DragonBones.yDown || (this._pivotY = (this._textureData.rotated ? this._textureData.region.width : this._textureData.region.height) * l - this._pivotY)
} else
this._pivotX = 0,
this._pivotY = 0;
null !== s ? this.origin = s.transform : null !== this._displayData ? this.origin = this._displayData.transform : this.origin = null,
a !== n ? (null === this._deformVertices && (this._deformVertices = t.BaseObject.borrowObject(t.DeformVertices)),
this._deformVertices.init(a, this._armature)) : null !== this._deformVertices && this._textureData !== r && (this._deformVertices.verticesDirty = !0),
this._displayDirty = !0,
this._transformDirty = !0
}
}
,
i.prototype._updateDisplay = function() {
var e = null !== this._display ? this._display : this._rawDisplay
, i = this._childArmature;
this._displayIndex >= 0 && this._displayIndex < this._displayList.length ? (this._display = this._displayList[this._displayIndex],
null !== this._display && this._display instanceof t.Armature ? (this._childArmature = this._display,
this._display = this._childArmature.display) : this._childArmature = null) : (this._display = null,
this._childArmature = null);
var n = null !== this._display ? this._display : this._rawDisplay;
if (n !== e && (this._onUpdateDisplay(),
this._replaceDisplay(e),
this._transformDirty = !0,
this._visibleDirty = !0,
this._blendModeDirty = !0,
this._colorDirty = !0),
n !== this._rawDisplay && n !== this._meshDisplay || this._updateFrame(),
this._childArmature !== i && (null !== i && (i._parent = null,
i.clock = null,
i.inheritAnimation && i.animation.reset()),
null !== this._childArmature && (this._childArmature._parent = this,
this._childArmature.clock = this._armature.clock,
this._childArmature.inheritAnimation))) {
if (0 === this._childArmature.cacheFrameRate) {
var r = this._armature.cacheFrameRate;
0 !== r && (this._childArmature.cacheFrameRate = r)
}
var s = null;
if (null !== this._displayData && 1 === this._displayData.type)
s = this._displayData.actions;
else if (this._displayIndex >= 0 && null !== this._rawDisplayDatas) {
var a = this._displayIndex < this._rawDisplayDatas.length ? this._rawDisplayDatas[this._displayIndex] : null;
null === a && (a = this._getDefaultRawDisplayData(this._displayIndex)),
null !== a && 1 === a.type && (s = a.actions)
}
if (null !== s && s.length > 0)
for (var o = 0, l = s; o < l.length; o++) {
var h = l[o]
, c = t.BaseObject.borrowObject(t.EventObject);
t.EventObject.actionDataToInstance(h, c, this._armature),
c.slot = this,
this._armature._bufferAction(c, !1)
}
else
this._childArmature.animation.play()
}
}
,
i.prototype._updateGlobalTransformMatrix = function(t) {
var e = 0 === this._parent._boneData.type ? this._parent.globalTransformMatrix : this._parent._getGlobalTransformMatrix(this.global.x, this.global.y);
this.globalTransformMatrix.copyFrom(this._localMatrix),
this.globalTransformMatrix.concat(e),
t ? this.global.fromMatrix(this.globalTransformMatrix) : this._globalDirty = !0
}
,
i.prototype._setDisplayIndex = function(t, e) {
if (void 0 === e && (e = !1),
e) {
if (this._animationDisplayIndex === t)
return !1;
this._animationDisplayIndex = t
}
return this._displayIndex !== t && (this._displayIndex = t,
this._displayDirty = !0,
this._updateDisplayData(),
this._displayDirty)
}
,
i.prototype._setZorder = function(t) {
return this._zOrder,
this._zOrder = t,
this._zOrderDirty = !0,
this._zOrderDirty
}
,
i.prototype._setColor = function(t) {
return this._colorTransform.copyFrom(t),
this._colorDirty = !0,
this._colorDirty
}
,
i.prototype._setDisplayList = function(e) {
if (null !== e && e.length > 0) {
this._displayList.length !== e.length && (this._displayList.length = e.length);
for (var i = 0, n = e.length; i < n; ++i) {
var r = e[i];
null !== r && r !== this._rawDisplay && r !== this._meshDisplay && !(r instanceof t.Armature) && this._displayList.indexOf(r) < 0 && this._initDisplay(r, !0),
this._displayList[i] = r
}
} else
this._displayList.length > 0 && (this._displayList.length = 0);
return this._displayIndex >= 0 && this._displayIndex < this._displayList.length ? this._displayDirty = this._display !== this._displayList[this._displayIndex] : this._displayDirty = null !== this._display,
this._updateDisplayData(),
this._displayDirty
}
,
i.prototype.init = function(t, e, i, n) {
if (null === this._slotData) {
this._slotData = t,
this._isFromCache = !1,
this._visibleDirty = !0,
this._blendModeDirty = !0,
this._colorDirty = !0,
this._blendMode = this._slotData.blendMode,
this._zOrder = this._slotData.zOrder,
this._colorTransform.copyFrom(this._slotData.color),
this._rawDisplay = i,
this._meshDisplay = n,
this._armature = e;
var r = this._armature.getBone(this._slotData.parent.name);
null !== r && (this._parent = r),
this._armature._addSlot(this),
this._initDisplay(this._rawDisplay, !1),
this._rawDisplay !== this._meshDisplay && this._initDisplay(this._meshDisplay, !1),
this._onUpdateDisplay(),
this._addDisplay()
}
}
,
i.prototype.update = function(t) {
if (this._isFromCache = !1,
this._displayDirty && (this._displayDirty = !1,
this._updateDisplay(),
this._transformDirty && (null !== this.origin ? this.global.copyFrom(this.origin).add(this.offset).toMatrix(this._localMatrix) : this.global.copyFrom(this.offset).toMatrix(this._localMatrix))),
this._zOrderDirty && (this._zOrderDirty = !1,
this._updateZOrder()),
t >= 0 && null !== this._cachedFrameIndices) {
var e = this._cachedFrameIndices[t];
e >= 0 && this._cachedFrameIndex === e ? this._transformDirty = !1 : e >= 0 ? (this._transformDirty = !0,
this._cachedFrameIndex = e) : this._transformDirty || this._parent._childrenTransformDirty ? (this._transformDirty = !0,
this._cachedFrameIndex = -1) : this._cachedFrameIndex >= 0 ? (this._transformDirty = !1,
this._cachedFrameIndices[t] = this._cachedFrameIndex) : (this._transformDirty = !0,
this._cachedFrameIndex = -1)
} else
(this._transformDirty || this._parent._childrenTransformDirty) && (t = -1,
this._transformDirty = !0,
this._cachedFrameIndex = -1);
if (null !== this._display) {
if (this._visibleDirty && (this._visibleDirty = !1,
this._updateVisible()),
this._blendModeDirty && (this._blendModeDirty = !1,
this._updateBlendMode()),
this._colorDirty && (this._colorDirty = !1,
this._updateColor()),
null !== this._deformVertices && null !== this._deformVertices.verticesData && this._display === this._meshDisplay) {
var i = null !== this._deformVertices.verticesData.weight
, n = 0 !== this._parent._boneData.type;
if ((this._deformVertices.verticesDirty || i && this._deformVertices.isBonesUpdate() || n && this._parent._childrenTransformDirty) && (this._deformVertices.verticesDirty = !1,
this._updateMesh()),
i || n)
return
}
if (this._transformDirty) {
if (this._transformDirty = !1,
this._cachedFrameIndex < 0) {
var r = t >= 0;
this._updateGlobalTransformMatrix(r),
r && null !== this._cachedFrameIndices && (this._cachedFrameIndex = this._cachedFrameIndices[t] = this._armature._armatureData.setCacheFrame(this.globalTransformMatrix, this.global))
} else
this._isFromCache = !0,
this._armature._armatureData.getCacheFrame(this.globalTransformMatrix, this.global, this._cachedFrameIndex);
this._updateTransform()
}
}
}
,
i.prototype.updateTransformAndMatrix = function() {
this._transformDirty && (this._transformDirty = !1,
this._updateGlobalTransformMatrix(!1))
}
,
i.prototype.replaceDisplayData = function(t, e) {
if (void 0 === e && (e = -1),
e < 0 && (e = this._displayIndex < 0 ? 0 : this._displayIndex),
this._displayDatas.length <= e) {
this._displayDatas.length = e + 1;
for (var i = 0, n = this._displayDatas.length; i < n; ++i)
this._displayDatas[i] || (this._displayDatas[i] = null)
}
this._displayDatas[e] = t
}
,
i.prototype.containsPoint = function(t, e) {
return null !== this._boundingBoxData && (this.updateTransformAndMatrix(),
i._helpMatrix.copyFrom(this.globalTransformMatrix),
i._helpMatrix.invert(),
i._helpMatrix.transformPoint(t, e, i._helpPoint),
this._boundingBoxData.containsPoint(i._helpPoint.x, i._helpPoint.y))
}
,
i.prototype.intersectsSegment = function(t, e, n, r, s, a, o) {
if (void 0 === s && (s = null),
void 0 === a && (a = null),
void 0 === o && (o = null),
null === this._boundingBoxData)
return 0;
this.updateTransformAndMatrix(),
i._helpMatrix.copyFrom(this.globalTransformMatrix),
i._helpMatrix.invert(),
i._helpMatrix.transformPoint(t, e, i._helpPoint),
t = i._helpPoint.x,
e = i._helpPoint.y,
i._helpMatrix.transformPoint(n, r, i._helpPoint),
n = i._helpPoint.x,
r = i._helpPoint.y;
var l = this._boundingBoxData.intersectsSegment(t, e, n, r, s, a, o);
return l > 0 && (1 === l || 2 === l ? null !== s ? (this.globalTransformMatrix.transformPoint(s.x, s.y, s),
null !== a && (a.x = s.x,
a.y = s.y)) : null !== a && this.globalTransformMatrix.transformPoint(a.x, a.y, a) : (null !== s && this.globalTransformMatrix.transformPoint(s.x, s.y, s),
null !== a && this.globalTransformMatrix.transformPoint(a.x, a.y, a)),
null !== o && (this.globalTransformMatrix.transformPoint(Math.cos(o.x), Math.sin(o.x), i._helpPoint, !0),
o.x = Math.atan2(i._helpPoint.y, i._helpPoint.x),
this.globalTransformMatrix.transformPoint(Math.cos(o.y), Math.sin(o.y), i._helpPoint, !0),
o.y = Math.atan2(i._helpPoint.y, i._helpPoint.x))),
l
}
,
i.prototype.invalidUpdate = function() {
this._displayDirty = !0,
this._transformDirty = !0
}
,
Object.defineProperty(i.prototype, "visible", {
get: function() {
return this._visible
},
set: function(t) {
this._visible !== t && (this._visible = t,
this._updateVisible())
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(i.prototype, "displayIndex", {
get: function() {
return this._displayIndex
},
set: function(t) {
this._setDisplayIndex(t) && this.update(-1)
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(i.prototype, "name", {
get: function() {
return this._slotData.name
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(i.prototype, "displayList", {
get: function() {
return this._displayList.concat()
},
set: function(e) {
var i = this._displayList.concat()
, n = new Array;
this._setDisplayList(e) && this.update(-1);
for (var r = 0, s = i; r < s.length; r++)
null !== (l = s[r]) && l !== this._rawDisplay && l !== this._meshDisplay && this._displayList.indexOf(l) < 0 && n.indexOf(l) < 0 && n.push(l);
for (var a = 0, o = n; a < o.length; a++) {
var l;
(l = o[a])instanceof t.Armature || this._disposeDisplay(l, !0)
}
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(i.prototype, "slotData", {
get: function() {
return this._slotData
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(i.prototype, "rawDisplayDatas", {
get: function() {
return this._rawDisplayDatas
},
set: function(t) {
if (this._rawDisplayDatas !== t)
if (this._displayDirty = !0,
this._rawDisplayDatas = t,
null !== this._rawDisplayDatas) {
this._displayDatas.length = this._rawDisplayDatas.length;
for (var e = 0, i = this._displayDatas.length; e < i; ++e) {
var n = this._rawDisplayDatas[e];
null === n && (n = this._getDefaultRawDisplayData(e)),
this._displayDatas[e] = n
}
} else
this._displayDatas.length = 0
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(i.prototype, "displayData", {
get: function() {
return this._displayData
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(i.prototype, "boundingBoxData", {
get: function() {
return this._boundingBoxData
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(i.prototype, "rawDisplay", {
get: function() {
return this._rawDisplay
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(i.prototype, "meshDisplay", {
get: function() {
return this._meshDisplay
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(i.prototype, "display", {
get: function() {
return this._display
},
set: function(t) {
if (this._display !== t) {
var e = this._displayList.length;
if (this._displayIndex < 0 && 0 === e && (this._displayIndex = 0),
!(this._displayIndex < 0)) {
var i = this.displayList;
e <= this._displayIndex && (i.length = this._displayIndex + 1),
i[this._displayIndex] = t,
this.displayList = i
}
}
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(i.prototype, "childArmature", {
get: function() {
return this._childArmature
},
set: function(t) {
this._childArmature !== t && (this.display = t)
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(i.prototype, "parent", {
get: function() {
return this._parent
},
enumerable: !0,
configurable: !0
}),
i.prototype.getDisplay = function() {
return this._display
}
,
i.prototype.setDisplay = function(t) {
this.display = t
}
,
i
}
)(t.TransformObject);
t.Slot = e
}
)(r || (r = {})),
(function(t) {
var e = (function(e) {
function i() {
return null !== e && e.apply(this, arguments) || this
}
return s(i, e),
i.prototype._onClear = function() {
this._armature = null,
this._target = null,
this._root = null,
this._bone = null
}
,
Object.defineProperty(i.prototype, "name", {
get: function() {
return this._constraintData.name
},
enumerable: !0,
configurable: !0
}),
i._helpMatrix = new t.Matrix,
i._helpTransform = new t.Transform,
i._helpPoint = new t.Point,
i
}
)(t.BaseObject);
t.Constraint = e;
var i = (function(e) {
function i() {
return null !== e && e.apply(this, arguments) || this
}
return s(i, e),
i.toString = function() {
return "[class dragonBones.IKConstraint]"
}
,
i.prototype._onClear = function() {
e.prototype._onClear.call(this),
this._scaleEnabled = !1,
this._bendPositive = !1,
this._weight = 1,
this._constraintData = null
}
,
i.prototype._computeA = function() {
var e = this._target.global
, i = this._root.global
, n = this._root.globalTransformMatrix
, r = Math.atan2(e.y - i.y, e.x - i.x);
i.scaleX < 0 && (r += Math.PI),
i.rotation += t.Transform.normalizeRadian(r - i.rotation) * this._weight,
i.toMatrix(n)
}
,
i.prototype._computeB = function() {
var e = this._bone._boneData.length
, i = this._root
, n = this._target.global
, r = i.global
, s = this._bone.global
, a = this._bone.globalTransformMatrix
, o = a.a * e
, l = a.b * e
, h = o * o + l * l
, c = Math.sqrt(h)
, u = s.x - r.x
, _ = s.y - r.y
, f = u * u + _ * _
, d = Math.sqrt(f)
, p = s.rotation
, m = r.rotation
, y = Math.atan2(_, u)
, v = (u = n.x - r.x) * u + (_ = n.y - r.y) * _
, g = Math.sqrt(v)
, A = 0;
if (c + d <= g || g + c <= d || g + d <= c)
A = Math.atan2(n.y - r.y, n.x - r.x),
c + d <= g || d < c && (A += Math.PI);
else {
var x = (f - h + v) / (2 * v)
, b = Math.sqrt(f - x * x * v) / g
, C = r.x + u * x
, T = r.y + _ * x
, S = -_ * b
, w = u * b
, E = !1
, M = i.parent;
if (null !== M) {
var D = M.globalTransformMatrix;
E = D.a * D.d - D.b * D.c < 0
}
E !== this._bendPositive ? (s.x = C - S,
s.y = T - w) : (s.x = C + S,
s.y = T + w),
A = Math.atan2(s.y - r.y, s.x - r.x)
}
var B = t.Transform.normalizeRadian(A - y);
r.rotation = m + B * this._weight,
r.toMatrix(i.globalTransformMatrix);
var I = y + B * this._weight;
s.x = r.x + Math.cos(I) * d,
s.y = r.y + Math.sin(I) * d;
var P = Math.atan2(n.y - s.y, n.x - s.x);
s.scaleX < 0 && (P += Math.PI),
s.rotation = r.rotation + p - m + t.Transform.normalizeRadian(P - B - p) * this._weight,
s.toMatrix(a)
}
,
i.prototype.init = function(t, e) {
if (null === this._constraintData) {
this._constraintData = t,
this._armature = e,
this._target = this._armature.getBone(this._constraintData.target.name),
this._root = this._armature.getBone(this._constraintData.root.name),
this._bone = null !== this._constraintData.bone ? this._armature.getBone(this._constraintData.bone.name) : null;
var i = this._constraintData;
this._scaleEnabled = i.scaleEnabled,
this._bendPositive = i.bendPositive,
this._weight = i.weight,
this._root._hasConstraint = !0
}
}
,
i.prototype.update = function() {
this._root.updateByConstraint(),
null !== this._bone ? (this._bone.updateByConstraint(),
this._computeB()) : this._computeA()
}
,
i.prototype.invalidUpdate = function() {
this._root.invalidUpdate(),
null !== this._bone && this._bone.invalidUpdate()
}
,
i
}
)(e);
t.IKConstraint = i;
var n = (function(e) {
function i() {
var t = null !== e && e.apply(this, arguments) || this;
return t._bones = [],
t._spaces = [],
t._positions = [],
t._curves = [],
t._boneLengths = [],
t._pathGlobalVertices = [],
t._segments = [10],
t
}
return s(i, e),
i.toString = function() {
return "[class dragonBones.PathConstraint]"
}
,
i.prototype._onClear = function() {
e.prototype._onClear.call(this),
this.dirty = !1,
this.pathOffset = 0,
this.position = 0,
this.spacing = 0,
this.rotateOffset = 0,
this.rotateMix = 1,
this.translateMix = 1,
this._pathSlot = null,
this._bones.length = 0,
this._spaces.length = 0,
this._positions.length = 0,
this._curves.length = 0,
this._boneLengths.length = 0,
this._pathGlobalVertices.length = 0
}
,
i.prototype._updatePathVertices = function(t) {
var e = this._armature
, i = e.armatureData.parent
, n = e.armatureData.scale
, r = i.intArray
, s = i.floatArray
, a = t.offset
, o = r[a + 0]
, l = r[a + 2];
this._pathGlobalVertices.length = 2 * o;
var h = t.weight;
if (null !== h)
for (var c = this._pathSlot._deformVertices.bones, u = h.bones.length, _ = h.offset, f = r[_ + 1], d = _ + 2 + u, p = (T = 0,
0); T < o; T++) {
for (var m = 0, y = 0, v = 0, g = r[d++]; v < g; v++) {
var A = c[r[d++]];
if (null !== A) {
A.updateByConstraint(),
C = A.globalTransformMatrix;
var x = s[f++];
w = s[f++] * n,
E = s[f++] * n,
m += (C.a * w + C.c * E + C.tx) * x,
y += (C.b * w + C.d * E + C.ty) * x
}
}
this._pathGlobalVertices[p++] = m,
this._pathGlobalVertices[p++] = y
}
else {
var b = this._pathSlot.parent;
b.updateByConstraint();
for (var C = b.globalTransformMatrix, T = 0, S = l; T < o; T += 2) {
var w = s[S++] * n
, E = s[S++] * n
, M = C.a * w + C.c * E + C.tx
, D = C.b * w + C.d * E + C.ty;
this._pathGlobalVertices[T] = M,
this._pathGlobalVertices[T + 1] = D
}
}
}
,
i.prototype._computeVertices = function(t, e, i, n) {
for (var r = i, s = t; r < e; r += 2)
n[r] = this._pathGlobalVertices[s++],
n[r + 1] = this._pathGlobalVertices[s++]
}
,
i.prototype._computeBezierCurve = function(t, e, i, n, r) {
var s = this._armature.armatureData.parent.intArray[t.vertices.offset + 0]
, a = this._positions
, o = this._spaces
, l = t.closed
, h = Array()
, c = 2 * s
, u = c / 6
, _ = -1
, f = this.position;
a.length = 3 * e + 2;
var d = 0;
if (t.constantSpeed) {
l ? (c += 2,
h.length = s,
this._computeVertices(2, c - 4, 0, h),
this._computeVertices(0, 2, c - 4, h),
h[c - 2] = h[0],
h[c - 1] = h[1]) : (u--,
c -= 4,
h.length = c,
this._computeVertices(2, c, 0, h));
var p = new Array(u);
d = 0;
for (var m, y, v, g, A, x, b, C, T = h[0], S = h[1], w = 0, E = 0, M = 0, D = 0, B = 0, I = 0, P = (z = 0,
2); z < u; z++,
P += 6)
w = h[P],
E = h[P + 1],
M = h[P + 2],
D = h[P + 3],
A = 2 * (m = .1875 * (T - 2 * w + M)) + (v = .09375 * (3 * (w - M) - T + (B = h[P + 4]))),
x = 2 * (y = .1875 * (S - 2 * E + D)) + (g = .09375 * (3 * (E - D) - S + (I = h[P + 5]))),
b = .75 * (w - T) + m + .16666667 * v,
C = .75 * (E - S) + y + .16666667 * g,
d += Math.sqrt(b * b + C * C),
b += A,
C += x,
A += v,
x += g,
d += Math.sqrt(b * b + C * C),
b += A,
C += x,
d += Math.sqrt(b * b + C * C),
b += A + v,
C += x + g,
d += Math.sqrt(b * b + C * C),
p[z] = d,
T = B,
S = I;
if (n && (f *= d),
r)
for (z = 0; z < e; z++)
o[z] *= d;
for (var R = this._segments, O = 0, L = (z = 0,
H = 0,
W = 0,
0); z < e; z++,
H += 3) {
var F = f += o[z];
if (l)
(F %= d) < 0 && (F += d),
W = 0;
else {
if (F < 0)
continue;
if (F > d)
continue
}
for (; ; W++) {
var V = p[W];
if (!(F > V)) {
0 === W ? F /= V : F = (F - (G = p[W - 1])) / (V - G);
break
}
}
if (W !== _) {
_ = W;
var N = 6 * W;
for (T = h[N],
S = h[N + 1],
w = h[N + 2],
E = h[N + 3],
M = h[N + 4],
D = h[N + 5],
A = 2 * (m = .03 * (T - 2 * w + M)) + (v = .006 * (3 * (w - M) - T + (B = h[N + 6]))),
x = 2 * (y = .03 * (S - 2 * E + D)) + (g = .006 * (3 * (E - D) - S + (I = h[N + 7]))),
b = .3 * (w - T) + m + .16666667 * v,
C = .3 * (E - S) + y + .16666667 * g,
O = Math.sqrt(b * b + C * C),
R[0] = O,
N = 1; N < 8; N++)
b += A,
C += x,
A += v,
x += g,
O += Math.sqrt(b * b + C * C),
R[N] = O;
b += A,
C += x,
O += Math.sqrt(b * b + C * C),
R[8] = O,
b += A + v,
C += x + g,
O += Math.sqrt(b * b + C * C),
R[9] = O,
L = 0
}
for (F *= O; ; L++) {
var k = R[L];
if (!(F > k)) {
var G;
0 === L ? F /= k : F = L + (F - (G = R[L - 1])) / (k - G);
break
}
}
this.addCurvePosition(.1 * F, T, S, w, E, M, D, B, I, a, H, i)
}
} else {
var U = t.curveLengths;
if (d = U[u -= l ? 1 : 2],
n && (f *= d),
r)
for (var z = 0; z < e; z++)
o[z] *= d;
h.length = 8;
z = 0;
for (var H = 0, W = 0; z < e; z++,
H += 3) {
if (f += o[z],
l)
(f %= d) < 0 && (f += d),
W = 0;
else {
if (f < 0)
continue;
if (f > d)
continue
}
for (var j = 0; ; W++) {
var X = U[W];
if (!(f > X)) {
if (0 === W)
j = f / X;
else {
var Y = U[W - 1];
j = (f - Y) / (X - Y)
}
break
}
}
W !== _ && (_ = W,
l && W === u ? (this._computeVertices(c - 4, 4, 0, h),
this._computeVertices(0, 4, 4, h)) : this._computeVertices(6 * W + 2, 8, 0, h)),
this.addCurvePosition(j, h[0], h[1], h[2], h[3], h[4], h[5], h[6], h[7], a, H, i)
}
}
}
,
i.prototype.addCurvePosition = function(t, e, i, n, r, s, a, o, l, h, c, u) {
if (0 === t)
return h[c] = e,
h[c + 1] = i,
void (h[c + 2] = 0);
if (1 === t)
return h[c] = o,
h[c + 1] = l,
void (h[c + 2] = 0);
var _ = 1 - t
, f = _ * _
, d = t * t
, p = f * _
, m = f * t * 3
, y = _ * d * 3
, v = t * d
, g = p * e + m * n + y * s + v * o
, A = p * i + m * r + y * a + v * l;
h[c] = g,
h[c + 1] = A,
h[c + 2] = u ? Math.atan2(A - (p * i + m * r + y * a), g - (p * e + m * n + y * s)) : 0
}
,
i.prototype.init = function(t, e) {
this._constraintData = t,
this._armature = e;
var i = t;
this.pathOffset = i.pathDisplayData.vertices.offset,
this.position = i.position,
this.spacing = i.spacing,
this.rotateOffset = i.rotateOffset,
this.rotateMix = i.rotateMix,
this.translateMix = i.translateMix,
this._root = this._armature.getBone(i.root.name),
this._target = this._armature.getBone(i.target.name),
this._pathSlot = this._armature.getSlot(i.pathSlot.name);
for (var n = 0, r = i.bones.length; n < r; n++) {
var s = this._armature.getBone(i.bones[n].name);
null !== s && this._bones.push(s)
}
2 === i.rotateMode && (this._boneLengths.length = this._bones.length),
this._root._hasConstraint = !0
}
,
i.prototype.update = function() {
var e = this._pathSlot;
if (null !== e._deformVertices && null !== e._deformVertices.verticesData && e._deformVertices.verticesData.offset === this.pathOffset) {
var i = this._constraintData
, n = e._displayData
, r = !1
, s = e._deformVertices;
if (this._root._childrenTransformDirty ? (this._updatePathVertices(n.vertices),
r = !0) : null !== s && (s.verticesDirty || s.isBonesUpdate()) && (this._updatePathVertices(n.vertices),
s.verticesDirty = !1,
r = !0),
r || this.dirty) {
var a = i.positionMode
, o = i.spacingMode
, l = i.rotateMode
, h = this._bones
, c = 0 === o
, u = 2 === l
, _ = 0 === l
, f = h.length
, d = _ ? f : f + 1
, p = this.spacing
, m = this._spaces;
if (m.length = d,
u || c) {
m[0] = 0;
for (var y = 0, v = d - 1; y < v; y++) {
(I = h[y]).updateByConstraint();
var g = I._boneData.length
, A = g * (P = I.globalTransformMatrix).a
, x = g * P.b
, b = Math.sqrt(A * A + x * x);
u && (this._boneLengths[y] = b),
m[y + 1] = (g + p) * b / g
}
} else
for (y = 0; y < d; y++)
m[y] = p;
this._computeBezierCurve(n, d, _, 1 === a, 2 === o);
var C, T = this._positions, S = this.rotateOffset, w = T[0], E = T[1];
0 === S ? C = 1 === l : (C = !1,
null !== (I = e.parent) && (S *= (P = I.globalTransformMatrix).a * P.d - P.b * P.c > 0 ? t.Transform.DEG_RAD : -t.Transform.DEG_RAD));
for (var M = this.rotateMix, D = this.translateMix, B = (y = 0,
3); y < f; y++,
B += 3) {
var I, P;
(I = h[y]).updateByConstraint(),
(P = I.globalTransformMatrix).tx += (w - P.tx) * D,
P.ty += (E - P.ty) * D;
var R = (A = T[B]) - w
, O = (x = T[B + 1]) - E;
if (u) {
var L = this._boneLengths[y]
, F = (Math.sqrt(R * R + O * O) / L - 1) * M + 1;
P.a *= F,
P.b *= F
}
if (w = A,
E = x,
M > 0) {
var V = P.a
, N = P.b
, k = P.c
, G = P.d
, U = void 0
, z = void 0
, H = void 0;
if (U = _ ? T[B - 1] : Math.atan2(O, R),
U -= Math.atan2(N, V),
C) {
z = Math.cos(U),
H = Math.sin(U);
var W = I._boneData.length;
w += (W * (z * V - H * N) - R) * M,
E += (W * (H * V + z * N) - O) * M
} else
U += S;
U > t.Transform.PI ? U -= t.Transform.PI_D : U < -t.Transform.PI && (U += t.Transform.PI_D),
U *= M,
z = Math.cos(U),
H = Math.sin(U),
P.a = z * V - H * N,
P.b = H * V + z * N,
P.c = z * k - H * G,
P.d = H * k + z * G
}
I.global.fromMatrix(P)
}
this.dirty = !1
}
}
}
,
i.prototype.invalidUpdate = function() {}
,
i
}
)(e);
t.PathConstraint = n
}
)(r || (r = {})),
(function(t) {
var e = (function() {
function t(t) {
void 0 === t && (t = 0),
this.time = 0,
this.timeScale = 1,
this._systemTime = 0,
this._animatebles = [],
this._clock = null,
this.time = t,
this._systemTime = .001 * (new Date).getTime()
}
return t.prototype.advanceTime = function(t) {
t != t && (t = 0);
var e = .001 * Date.now();
if (t < 0 && (t = e - this._systemTime),
this._systemTime = e,
1 !== this.timeScale && (t *= this.timeScale),
0 !== t) {
t < 0 ? this.time -= t : this.time += t;
for (var i = 0, n = 0, r = this._animatebles.length; i < r; ++i) {
var s = this._animatebles[i];
null !== s ? (n > 0 && (this._animatebles[i - n] = s,
this._animatebles[i] = null),
s.advanceTime(t)) : n++
}
if (n > 0) {
for (r = this._animatebles.length; i < r; ++i) {
var a = this._animatebles[i];
null !== a ? this._animatebles[i - n] = a : n++
}
this._animatebles.length -= n
}
}
}
,
t.prototype.contains = function(t) {
if (t === this)
return !1;
for (var e = t; e !== this && null !== e; )
e = e.clock;
return e === this
}
,
t.prototype.add = function(t) {
this._animatebles.indexOf(t) < 0 && (this._animatebles.push(t),
t.clock = this)
}
,
t.prototype.remove = function(t) {
var e = this._animatebles.indexOf(t);
e >= 0 && (this._animatebles[e] = null,
t.clock = null)
}
,
t.prototype.clear = function() {
for (var t = 0, e = this._animatebles; t < e.length; t++) {
var i = e[t];
null !== i && (i.clock = null)
}
}
,
Object.defineProperty(t.prototype, "clock", {
get: function() {
return this._clock
},
set: function(t) {
this._clock !== t && (null !== this._clock && this._clock.remove(this),
this._clock = t,
null !== this._clock && this._clock.add(this))
},
enumerable: !0,
configurable: !0
}),
t.clock = new t,
t
}
)();
t.WorldClock = e
}
)(r || (r = {})),
(function(t) {
var e = (function(e) {
function i() {
var t = null !== e && e.apply(this, arguments) || this;
return t._animationNames = [],
t._animationStates = [],
t._animations = {},
t._animationConfig = null,
t
}
return s(i, e),
i.toString = function() {
return "[class dragonBones.Animation]"
}
,
i.prototype._onClear = function() {
for (var t = 0, e = this._animationStates; t < e.length; t++)
e[t].returnToPool();
for (var i in this._animations)
delete this._animations[i];
null !== this._animationConfig && this._animationConfig.returnToPool(),
this.timeScale = 1,
this._lockUpdate = !1,
this._animationDirty = !1,
this._inheritTimeScale = 1,
this._animationNames.length = 0,
this._animationStates.length = 0,
this._armature = null,
this._animationConfig = null,
this._lastAnimationState = null
}
,
i.prototype._fadeOut = function(t) {
switch (t.fadeOutMode) {
case 1:
for (var e = 0, i = this._animationStates; e < i.length; e++)
null === (h = i[e])._parent && h.layer === t.layer && h.fadeOut(t.fadeOutTime, t.pauseFadeOut);
break;
case 2:
for (var n = 0, r = this._animationStates; n < r.length; n++)
null === (h = r[n])._parent && h.group === t.group && h.fadeOut(t.fadeOutTime, t.pauseFadeOut);
break;
case 3:
for (var s = 0, a = this._animationStates; s < a.length; s++)
null === (h = a[s])._parent && h.layer === t.layer && h.group === t.group && h.fadeOut(t.fadeOutTime, t.pauseFadeOut);
break;
case 4:
for (var o = 0, l = this._animationStates; o < l.length; o++) {
var h;
null === (h = l[o])._parent && h.fadeOut(t.fadeOutTime, t.pauseFadeOut)
}
}
}
,
i.prototype.init = function(e) {
null === this._armature && (this._armature = e,
this._animationConfig = t.BaseObject.borrowObject(t.AnimationConfig))
}
,
i.prototype.advanceTime = function(t) {
t < 0 && (t = -t),
this._armature.inheritAnimation && null !== this._armature._parent ? this._inheritTimeScale = this._armature._parent._armature.animation._inheritTimeScale * this.timeScale : this._inheritTimeScale = this.timeScale,
1 !== this._inheritTimeScale && (t *= this._inheritTimeScale);
var e = this._animationStates.length;
if (1 === e)
if ((d = this._animationStates[0])._fadeState > 0 && d._subFadeState > 0)
this._armature._dragonBones.bufferObject(d),
this._animationStates.length = 0,
this._lastAnimationState = null;
else {
var i = d._animationData
, n = i.cacheFrameRate;
if (this._animationDirty && n > 0) {
this._animationDirty = !1;
for (var r = 0, s = this._armature.getBones(); r < s.length; r++) {
var a = s[r];
a._cachedFrameIndices = i.getBoneCachedFrameIndices(a.name)
}
for (var o = 0, l = this._armature.getSlots(); o < l.length; o++) {
var h = l[o]
, c = h.rawDisplayDatas;
if (null !== c && c.length > 0) {
var u = c[0];
if (null !== u && u.parent === this._armature.armatureData.defaultSkin) {
h._cachedFrameIndices = i.getSlotCachedFrameIndices(h.name);
continue
}
}
h._cachedFrameIndices = null
}
}
d.advanceTime(t, n)
}
else if (e > 1) {
for (var _ = 0, f = 0; _ < e; ++_) {
var d;
(d = this._animationStates[_])._fadeState > 0 && d._subFadeState > 0 ? (f++,
this._armature._dragonBones.bufferObject(d),
this._animationDirty = !0,
this._lastAnimationState === d && (this._lastAnimationState = null)) : (f > 0 && (this._animationStates[_ - f] = d),
d.advanceTime(t, 0)),
_ === e - 1 && f > 0 && (this._animationStates.length -= f,
null === this._lastAnimationState && this._animationStates.length > 0 && (this._lastAnimationState = this._animationStates[this._animationStates.length - 1]))
}
this._armature._cacheFrameIndex = -1
} else
this._armature._cacheFrameIndex = -1
}
,
i.prototype.reset = function() {
for (var t = 0, e = this._animationStates; t < e.length; t++)
e[t].returnToPool();
this._animationDirty = !1,
this._animationConfig.clear(),
this._animationStates.length = 0,
this._lastAnimationState = null
}
,
i.prototype.stop = function(t) {
if (void 0 === t && (t = null),
null !== t)
null !== (n = this.getState(t)) && n.stop();
else
for (var e = 0, i = this._animationStates; e < i.length; e++) {
var n;
(n = i[e]).stop()
}
}
,
i.prototype.playConfig = function(e) {
var i = e.animation;
if (!(i in this._animations))
return console.warn("Non-existent animation.\n", "DragonBones name: " + this._armature.armatureData.parent.name, "Armature name: " + this._armature.name, "Animation name: " + i),
null;
var n = this._animations[i];
if (5 === e.fadeOutMode)
for (var r = 0, s = this._animationStates; r < s.length; r++) {
var a = s[r];
if (a._animationData === n)
return a
}
0 === this._animationStates.length ? e.fadeInTime = 0 : e.fadeInTime < 0 && (e.fadeInTime = n.fadeInTime),
e.fadeOutTime < 0 && (e.fadeOutTime = e.fadeInTime),
e.timeScale <= -100 && (e.timeScale = 1 / n.scale),
n.frameCount > 1 ? (e.position < 0 ? (e.position %= n.duration,
e.position = n.duration - e.position) : e.position === n.duration ? e.position -= 1e-6 : e.position > n.duration && (e.position %= n.duration),
e.duration > 0 && e.position + e.duration > n.duration && (e.duration = n.duration - e.position),
e.playTimes < 0 && (e.playTimes = n.playTimes)) : (e.playTimes = 1,
e.position = 0,
e.duration > 0 && (e.duration = 0)),
0 === e.duration && (e.duration = -1),
this._fadeOut(e);
var o = t.BaseObject.borrowObject(t.AnimationState);
if (o.init(this._armature, n, e),
this._animationDirty = !0,
this._armature._cacheFrameIndex = -1,
this._animationStates.length > 0) {
for (var l = !1, h = 0, c = this._animationStates.length; h < c; ++h) {
if (o.layer > this._animationStates[h].layer) {
l = !0,
this._animationStates.splice(h, 0, o);
break
}
if (h !== c - 1 && o.layer > this._animationStates[h + 1].layer) {
l = !0,
this._animationStates.splice(h + 1, 0, o);
break
}
}
l || this._animationStates.push(o)
} else
this._animationStates.push(o);
for (var u = 0, _ = this._armature.getSlots(); u < _.length; u++) {
var f = _[u].childArmature;
null !== f && f.inheritAnimation && f.animation.hasAnimation(i) && null === f.animation.getState(i) && f.animation.fadeIn(i)
}
var d = !1;
for (var p in n.animationTimelines) {
this._lockUpdate || (d = !0,
this._lockUpdate = !0);
var m = this.fadeIn(p, e.fadeInTime, 1, o.layer, null, 0);
null !== m && (m.resetToPose = !1,
m._parent = o,
m.stop())
}
return d && (this._lockUpdate = !1),
this._lockUpdate || (e.fadeInTime <= 0 && this._armature.advanceTime(0),
this._lastAnimationState = o),
o
}
,
i.prototype.play = function(t, e) {
if (void 0 === t && (t = null),
void 0 === e && (e = -1),
this._animationConfig.clear(),
this._animationConfig.resetToPose = !0,
this._animationConfig.playTimes = e,
this._animationConfig.fadeInTime = 0,
this._animationConfig.animation = null !== t ? t : "",
null !== t && t.length > 0)
this.playConfig(this._animationConfig);
else if (null === this._lastAnimationState) {
var i = this._armature.armatureData.defaultAnimation;
null !== i && (this._animationConfig.animation = i.name,
this.playConfig(this._animationConfig))
} else
this._lastAnimationState.isPlaying || this._lastAnimationState.isCompleted ? (this._animationConfig.animation = this._lastAnimationState.name,
this.playConfig(this._animationConfig)) : this._lastAnimationState.play();
return this._lastAnimationState
}
,
i.prototype.fadeIn = function(t, e, i, n, r, s) {
return void 0 === e && (e = -1),
void 0 === i && (i = -1),
void 0 === n && (n = 0),
void 0 === r && (r = null),
void 0 === s && (s = 3),
this._animationConfig.clear(),
this._animationConfig.fadeOutMode = s,
this._animationConfig.playTimes = i,
this._animationConfig.layer = n,
this._animationConfig.fadeInTime = e,
this._animationConfig.animation = t,
this._animationConfig.group = null !== r ? r : "",
this.playConfig(this._animationConfig)
}
,
i.prototype.gotoAndPlayByTime = function(t, e, i) {
return void 0 === e && (e = 0),
void 0 === i && (i = -1),
this._animationConfig.clear(),
this._animationConfig.resetToPose = !0,
this._animationConfig.playTimes = i,
this._animationConfig.position = e,
this._animationConfig.fadeInTime = 0,
this._animationConfig.animation = t,
this.playConfig(this._animationConfig)
}
,
i.prototype.gotoAndPlayByFrame = function(t, e, i) {
void 0 === e && (e = 0),
void 0 === i && (i = -1),
this._animationConfig.clear(),
this._animationConfig.resetToPose = !0,
this._animationConfig.playTimes = i,
this._animationConfig.fadeInTime = 0,
this._animationConfig.animation = t;
var n = t in this._animations ? this._animations[t] : null;
return null !== n && (this._animationConfig.position = n.duration * e / n.frameCount),
this.playConfig(this._animationConfig)
}
,
i.prototype.gotoAndPlayByProgress = function(t, e, i) {
void 0 === e && (e = 0),
void 0 === i && (i = -1),
this._animationConfig.clear(),
this._animationConfig.resetToPose = !0,
this._animationConfig.playTimes = i,
this._animationConfig.fadeInTime = 0,
this._animationConfig.animation = t;
var n = t in this._animations ? this._animations[t] : null;
return null !== n && (this._animationConfig.position = n.duration * (e > 0 ? e : 0)),
this.playConfig(this._animationConfig)
}
,
i.prototype.gotoAndStopByTime = function(t, e) {
void 0 === e && (e = 0);
var i = this.gotoAndPlayByTime(t, e, 1);
return null !== i && i.stop(),
i
}
,
i.prototype.gotoAndStopByFrame = function(t, e) {
void 0 === e && (e = 0);
var i = this.gotoAndPlayByFrame(t, e, 1);
return null !== i && i.stop(),
i
}
,
i.prototype.gotoAndStopByProgress = function(t, e) {
void 0 === e && (e = 0);
var i = this.gotoAndPlayByProgress(t, e, 1);
return null !== i && i.stop(),
i
}
,
i.prototype.getState = function(t) {
for (var e = this._animationStates.length; e--; ) {
var i = this._animationStates[e];
if (i.name === t)
return i
}
return null
}
,
i.prototype.hasAnimation = function(t) {
return t in this._animations
}
,
i.prototype.getStates = function() {
return this._animationStates
}
,
Object.defineProperty(i.prototype, "isPlaying", {
get: function() {
for (var t = 0, e = this._animationStates; t < e.length; t++)
if (e[t].isPlaying)
return !0;
return !1
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(i.prototype, "isCompleted", {
get: function() {
for (var t = 0, e = this._animationStates; t < e.length; t++)
if (!e[t].isCompleted)
return !1;
return this._animationStates.length > 0
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(i.prototype, "lastAnimationName", {
get: function() {
return null !== this._lastAnimationState ? this._lastAnimationState.name : ""
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(i.prototype, "animationNames", {
get: function() {
return this._animationNames
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(i.prototype, "animations", {
get: function() {
return this._animations
},
set: function(t) {
if (this._animations !== t) {
for (var e in this._animationNames.length = 0,
this._animations)
delete this._animations[e];
for (var e in t)
this._animationNames.push(e),
this._animations[e] = t[e]
}
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(i.prototype, "animationConfig", {
get: function() {
return this._animationConfig.clear(),
this._animationConfig
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(i.prototype, "lastAnimationState", {
get: function() {
return this._lastAnimationState
},
enumerable: !0,
configurable: !0
}),
i.prototype.gotoAndPlay = function(t, e, i, n, r, s, a, o, l) {
void 0 === e && (e = -1),
void 0 === i && (i = -1),
void 0 === n && (n = -1),
void 0 === r && (r = 0),
void 0 === s && (s = null),
void 0 === a && (a = 3),
void 0 === o && (o = !0),
void 0 === l && (l = !0),
console.warn("Deprecated."),
this._animationConfig.clear(),
this._animationConfig.resetToPose = !0,
this._animationConfig.fadeOutMode = a,
this._animationConfig.playTimes = n,
this._animationConfig.layer = r,
this._animationConfig.fadeInTime = e,
this._animationConfig.animation = t,
this._animationConfig.group = null !== s ? s : "";
var h = this._animations[t];
return h && i > 0 && (this._animationConfig.timeScale = h.duration / i),
this.playConfig(this._animationConfig)
}
,
i.prototype.gotoAndStop = function(t, e) {
return void 0 === e && (e = 0),
console.warn("Deprecated."),
this.gotoAndStopByTime(t, e)
}
,
Object.defineProperty(i.prototype, "animationList", {
get: function() {
return console.warn("Deprecated."),
this._animationNames
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(i.prototype, "animationDataList", {
get: function() {
console.warn("Deprecated.");
for (var t = [], e = 0, i = this._animationNames.length; e < i; ++e)
t.push(this._animations[this._animationNames[e]]);
return t
},
enumerable: !0,
configurable: !0
}),
i
}
)(t.BaseObject);
t.Animation = e
}
)(r || (r = {})),
(function(t) {
var e = (function(e) {
function r() {
var t = null !== e && e.apply(this, arguments) || this;
return t._blendState = new n,
t._boneMask = [],
t._boneTimelines = [],
t._surfaceTimelines = [],
t._slotTimelines = [],
t._constraintTimelines = [],
t._animationTimelines = [],
t._poseTimelines = [],
t._bonePoses = {},
t._actionTimeline = null,
t._zOrderTimeline = null,
t._parent = null,
t
}
return s(r, e),
r.toString = function() {
return "[class dragonBones.AnimationState]"
}
,
r.prototype._onClear = function() {
for (var t = 0, e = this._boneTimelines; t < e.length; t++)
e[t].returnToPool();
for (var i = 0, n = this._surfaceTimelines; i < n.length; i++)
n[i].returnToPool();
for (var r = 0, s = this._slotTimelines; r < s.length; r++)
s[r].returnToPool();
for (var a = 0, o = this._constraintTimelines; a < o.length; a++)
o[a].returnToPool();
for (var l = 0, h = this._animationTimelines; l < h.length; l++)
h[l].returnToPool();
for (var c in this._bonePoses)
this._bonePoses[c].returnToPool(),
delete this._bonePoses[c];
null !== this._actionTimeline && this._actionTimeline.returnToPool(),
null !== this._zOrderTimeline && this._zOrderTimeline.returnToPool(),
this.actionEnabled = !1,
this.additiveBlending = !1,
this.displayControl = !1,
this.resetToPose = !1,
this.playTimes = 1,
this.layer = 0,
this.timeScale = 1,
this.weight = 1,
this.autoFadeOutTime = 0,
this.fadeTotalTime = 0,
this.name = "",
this.group = "",
this._timelineDirty = 2,
this._playheadState = 0,
this._fadeState = -1,
this._subFadeState = -1,
this._position = 0,
this._duration = 0,
this._fadeTime = 0,
this._time = 0,
this._fadeProgress = 0,
this._weightResult = 0,
this._blendState.clear(),
this._boneMask.length = 0,
this._boneTimelines.length = 0,
this._surfaceTimelines.length = 0,
this._slotTimelines.length = 0,
this._constraintTimelines.length = 0,
this._animationTimelines.length = 0,
this._poseTimelines.length = 0,
this._animationData = null,
this._armature = null,
this._actionTimeline = null,
this._zOrderTimeline = null,
this._parent = null
}
,
r.prototype._updateTimelines = function() {
for (var e = 0, i = this._armature._constraints; e < i.length; e++) {
var n = i[e];
if (null !== (l = this._animationData.getConstraintTimelines(n.name)))
for (var r = 0, s = l; r < s.length; r++)
switch ((_ = s[r]).type) {
case 30:
(f = t.BaseObject.borrowObject(t.IKConstraintTimelineState)).constraint = n,
f.init(this._armature, this, _),
this._constraintTimelines.push(f)
}
else
this.resetToPose && ((f = t.BaseObject.borrowObject(t.IKConstraintTimelineState)).constraint = n,
f.init(this._armature, this, null),
this._constraintTimelines.push(f),
this._poseTimelines.push(f))
}
for (var a = 0, o = this._armature.animation.getStates(); a < o.length; a++) {
var l, h = o[a];
if (h._parent === this && null !== (l = this._animationData.getAnimationTimelines(h.name)))
for (var c = 0, u = l; c < u.length; c++) {
var _;
switch ((_ = u[c]).type) {
case 40:
var f;
(f = t.BaseObject.borrowObject(t.AnimationTimelineState)).animationState = h,
f.init(this._armature, this, _),
this._animationTimelines.push(f)
}
}
}
}
,
r.prototype._updateBoneAndSlotTimelines = function() {
for (var e = {}, n = 0, r = this._boneTimelines; n < r.length; n++)
(l = (v = r[n]).bone.name)in e || (e[l] = []),
e[l].push(v);
for (var s = 0, a = this._armature.getBones(); s < a.length; s++) {
var o = a[s]
, l = o.name;
if (this.containsBoneMask(l))
if (l in e)
delete e[l];
else if (0 === o._boneData.type) {
var h = this._animationData.getBoneTimelines(l)
, c = l in this._bonePoses ? this._bonePoses[l] : this._bonePoses[l] = t.BaseObject.borrowObject(i);
if (null !== h)
for (var u = 0, _ = h; u < _.length; u++)
switch ((I = _[u]).type) {
case 10:
(v = t.BaseObject.borrowObject(t.BoneAllTimelineState)).bone = o,
v.bonePose = c,
v.init(this._armature, this, I),
this._boneTimelines.push(v);
break;
case 11:
(v = t.BaseObject.borrowObject(t.BoneTranslateTimelineState)).bone = o,
v.bonePose = c,
v.init(this._armature, this, I),
this._boneTimelines.push(v);
break;
case 12:
(v = t.BaseObject.borrowObject(t.BoneRotateTimelineState)).bone = o,
v.bonePose = c,
v.init(this._armature, this, I),
this._boneTimelines.push(v);
break;
case 13:
(v = t.BaseObject.borrowObject(t.BoneScaleTimelineState)).bone = o,
v.bonePose = c,
v.init(this._armature, this, I),
this._boneTimelines.push(v)
}
else
this.resetToPose && ((v = t.BaseObject.borrowObject(t.BoneAllTimelineState)).bone = o,
v.bonePose = c,
v.init(this._armature, this, null),
this._boneTimelines.push(v),
this._poseTimelines.push(v))
} else if (1 === o._boneData.type)
if (null !== (h = this._animationData.getSurfaceTimelines(l)))
for (var f = 0, d = h; f < d.length; f++)
switch ((I = d[f]).type) {
case 50:
(v = t.BaseObject.borrowObject(t.SurfaceTimelineState)).surface = o,
v.init(this._armature, this, I),
this._surfaceTimelines.push(v)
}
else
this.resetToPose && ((v = t.BaseObject.borrowObject(t.SurfaceTimelineState)).surface = o,
v.init(this._armature, this, null),
this._surfaceTimelines.push(v),
this._poseTimelines.push(v))
}
for (var p in e)
for (var m = 0, y = e[p]; m < y.length; m++) {
var v = y[m];
this._boneTimelines.splice(this._boneTimelines.indexOf(v), 1),
v.returnToPool()
}
for (var g = {}, A = [], x = 0, b = this._slotTimelines; x < b.length; x++)
(l = (v = b[x]).slot.name)in g || (g[l] = []),
g[l].push(v);
for (var C = 0, T = this._armature.getSlots(); C < T.length; C++) {
var S = T[C]
, w = S.parent.name;
if (this.containsBoneMask(w))
if (l = S.name,
h = this._animationData.getSlotTimelines(l),
l in g)
delete g[l];
else {
var E = !1
, M = !1;
if (A.length = 0,
null !== h)
for (var D = 0, B = h; D < B.length; D++) {
var I;
switch ((I = B[D]).type) {
case 20:
(v = t.BaseObject.borrowObject(t.SlotDislayTimelineState)).slot = S,
v.init(this._armature, this, I),
this._slotTimelines.push(v),
E = !0;
break;
case 21:
(v = t.BaseObject.borrowObject(t.SlotColorTimelineState)).slot = S,
v.init(this._armature, this, I),
this._slotTimelines.push(v),
M = !0;
break;
case 22:
(v = t.BaseObject.borrowObject(t.DeformTimelineState)).slot = S,
v.init(this._armature, this, I),
this._slotTimelines.push(v),
A.push(v.vertexOffset)
}
}
if (this.resetToPose && (E || ((v = t.BaseObject.borrowObject(t.SlotDislayTimelineState)).slot = S,
v.init(this._armature, this, null),
this._slotTimelines.push(v),
this._poseTimelines.push(v)),
M || ((v = t.BaseObject.borrowObject(t.SlotColorTimelineState)).slot = S,
v.init(this._armature, this, null),
this._slotTimelines.push(v),
this._poseTimelines.push(v)),
null !== S.rawDisplayDatas))
for (var P = 0, R = S.rawDisplayDatas; P < R.length; P++) {
var O = R[P];
if (null !== O && 2 === O.type) {
var L = O.vertices.offset;
A.indexOf(L) < 0 && ((v = t.BaseObject.borrowObject(t.DeformTimelineState)).vertexOffset = L,
v.slot = S,
v.init(this._armature, this, null),
this._slotTimelines.push(v),
this._poseTimelines.push(v))
}
}
}
}
for (var p in g)
for (var F = 0, V = g[p]; F < V.length; F++)
v = V[F],
this._slotTimelines.splice(this._slotTimelines.indexOf(v), 1),
v.returnToPool()
}
,
r.prototype._advanceFadeTime = function(e) {
var i, n = this._fadeState > 0;
if (this._subFadeState < 0) {
this._subFadeState = 0;
var r = n ? t.EventObject.FADE_OUT : t.EventObject.FADE_IN;
this._armature.eventDispatcher.hasDBEventListener(r) && ((i = t.BaseObject.borrowObject(t.EventObject)).type = r,
i.armature = this._armature,
i.animationState = this,
this._armature._dragonBones.bufferEvent(i))
}
(e < 0 && (e = -e),
this._fadeTime += e,
this._fadeTime >= this.fadeTotalTime ? (this._subFadeState = 1,
this._fadeProgress = n ? 0 : 1) : this._fadeTime > 0 ? this._fadeProgress = n ? 1 - this._fadeTime / this.fadeTotalTime : this._fadeTime / this.fadeTotalTime : this._fadeProgress = n ? 1 : 0,
this._subFadeState > 0) && (n || (this._playheadState |= 1,
this._fadeState = 0),
r = n ? t.EventObject.FADE_OUT_COMPLETE : t.EventObject.FADE_IN_COMPLETE,
this._armature.eventDispatcher.hasDBEventListener(r) && ((i = t.BaseObject.borrowObject(t.EventObject)).type = r,
i.armature = this._armature,
i.animationState = this,
this._armature._dragonBones.bufferEvent(i)))
}
,
r.prototype.init = function(e, i, n) {
if (null === this._armature) {
if (this._armature = e,
this._animationData = i,
this.resetToPose = n.resetToPose,
this.additiveBlending = n.additiveBlending,
this.displayControl = n.displayControl,
this.actionEnabled = n.actionEnabled,
this.layer = n.layer,
this.playTimes = n.playTimes,
this.timeScale = n.timeScale,
this.fadeTotalTime = n.fadeInTime,
this.autoFadeOutTime = n.autoFadeOutTime,
this.weight = n.weight,
this.name = n.name.length > 0 ? n.name : n.animation,
this.group = n.group,
n.pauseFadeIn ? this._playheadState = 2 : this._playheadState = 3,
n.duration < 0 ? (this._position = 0,
this._duration = this._animationData.duration,
0 !== n.position ? this.timeScale >= 0 ? this._time = n.position : this._time = n.position - this._duration : this._time = 0) : (this._position = n.position,
this._duration = n.duration,
this._time = 0),
this.timeScale < 0 && 0 === this._time && (this._time = -1e-6),
this.fadeTotalTime <= 0 && (this._fadeProgress = .999999),
n.boneMask.length > 0) {
this._boneMask.length = n.boneMask.length;
for (var r = 0, s = this._boneMask.length; r < s; ++r)
this._boneMask[r] = n.boneMask[r]
}
this._actionTimeline = t.BaseObject.borrowObject(t.ActionTimelineState),
this._actionTimeline.init(this._armature, this, this._animationData.actionTimeline),
this._actionTimeline.currentTime = this._time,
this._actionTimeline.currentTime < 0 && (this._actionTimeline.currentTime = this._duration - this._actionTimeline.currentTime),
null !== this._animationData.zOrderTimeline && (this._zOrderTimeline = t.BaseObject.borrowObject(t.ZOrderTimelineState),
this._zOrderTimeline.init(this._armature, this, this._animationData.zOrderTimeline))
}
}
,
r.prototype.advanceTime = function(e, i) {
if (this._blendState.dirty = !1,
0 === this._fadeState && 0 === this._subFadeState || this._advanceFadeTime(e),
3 === this._playheadState && (1 !== this.timeScale && (e *= this.timeScale),
this._time += e),
0 !== this._timelineDirty && (2 === this._timelineDirty && this._updateTimelines(),
this._timelineDirty = 0,
this._updateBoneAndSlotTimelines()),
0 !== this.weight) {
var n = 0 === this._fadeState && i > 0
, r = !0
, s = !0
, a = this._time;
if (this._weightResult = this.weight * this._fadeProgress,
null !== this._parent && (this._weightResult *= this._parent._weightResult / this._parent._fadeProgress),
this._actionTimeline.playState <= 0 && this._actionTimeline.update(a),
n) {
var o = 2 * i;
this._actionTimeline.currentTime = Math.floor(this._actionTimeline.currentTime * o) / o
}
if (null !== this._zOrderTimeline && this._zOrderTimeline.playState <= 0 && this._zOrderTimeline.update(a),
n) {
var l = Math.floor(this._actionTimeline.currentTime * i);
this._armature._cacheFrameIndex === l ? (r = !1,
s = !1) : (this._armature._cacheFrameIndex = l,
this._animationData.cachedFrames[l] ? s = !1 : this._animationData.cachedFrames[l] = !0)
}
if (r) {
if (s)
for (var h = 0, c = this._boneTimelines.length; h < c; ++h)
(p = this._boneTimelines[h]).playState <= 0 && p.update(a),
(h === c - 1 || p.bone !== this._boneTimelines[h + 1].bone) && 0 !== (u = p.bone._blendState.update(this._weightResult, this.layer)) && p.blend(u);
for (h = 0,
c = this._surfaceTimelines.length; h < c; ++h) {
var u = (p = this._surfaceTimelines[h]).surface._blendState.update(this._weightResult, this.layer);
p.playState <= 0 && p.update(a),
0 !== u && p.blend(u)
}
if (this.displayControl)
for (h = 0,
c = this._slotTimelines.length; h < c; ++h) {
var _ = (p = this._slotTimelines[h]).slot.displayController;
null !== _ && _ !== this.name && _ !== this.group || p.playState <= 0 && p.update(a)
}
for (h = 0,
c = this._constraintTimelines.length; h < c; ++h)
(p = this._constraintTimelines[h]).playState <= 0 && p.update(a);
for (h = 0,
c = this._animationTimelines.length; h < c; ++h)
u = (p = this._animationTimelines[h]).animationState._blendState.update(this._weightResult, this.layer),
p.playState <= 0 && p.update(a),
0 !== u && p.blend(u)
}
if (0 === this._fadeState) {
if (this._subFadeState > 0 && (this._subFadeState = 0,
this._poseTimelines.length > 0)) {
for (var f = 0, d = this._poseTimelines; f < d.length; f++) {
var p;
(p = d[f])instanceof t.BoneTimelineState ? this._boneTimelines.splice(this._boneTimelines.indexOf(p), 1) : p instanceof t.SurfaceTimelineState ? this._surfaceTimelines.splice(this._surfaceTimelines.indexOf(p), 1) : p instanceof t.SlotTimelineState ? this._slotTimelines.splice(this._slotTimelines.indexOf(p), 1) : p instanceof t.ConstraintTimelineState && this._constraintTimelines.splice(this._constraintTimelines.indexOf(p), 1),
p.returnToPool()
}
this._poseTimelines.length = 0
}
this._actionTimeline.playState > 0 && this.autoFadeOutTime >= 0 && this.fadeOut(this.autoFadeOutTime)
}
}
}
,
r.prototype.play = function() {
this._playheadState = 3
}
,
r.prototype.stop = function() {
this._playheadState &= 1
}
,
r.prototype.fadeOut = function(t, e) {
if (void 0 === e && (e = !0),
t < 0 && (t = 0),
e && (this._playheadState &= 2),
this._fadeState > 0) {
if (t > this.fadeTotalTime - this._fadeTime)
return
} else {
this._fadeState = 1,
this._subFadeState = -1,
(t <= 0 || this._fadeProgress <= 0) && (this._fadeProgress = 1e-6);
for (var i = 0, n = this._boneTimelines; i < n.length; i++)
(_ = n[i]).fadeOut();
for (var r = 0, s = this._surfaceTimelines; r < s.length; r++)
(_ = s[r]).fadeOut();
for (var a = 0, o = this._slotTimelines; a < o.length; a++)
(_ = o[a]).fadeOut();
for (var l = 0, h = this._constraintTimelines; l < h.length; l++)
(_ = h[l]).fadeOut();
for (var c = 0, u = this._animationTimelines; c < u.length; c++) {
var _;
(_ = u[c]).animationState.fadeOut(t, e),
_.fadeOut()
}
}
this.displayControl = !1,
this.fadeTotalTime = this._fadeProgress > 1e-6 ? t / this._fadeProgress : 0,
this._fadeTime = this.fadeTotalTime * (1 - this._fadeProgress)
}
,
r.prototype.containsBoneMask = function(t) {
return 0 === this._boneMask.length || this._boneMask.indexOf(t) >= 0
}
,
r.prototype.addBoneMask = function(t, e) {
void 0 === e && (e = !0);
var i = this._armature.getBone(t);
if (null !== i) {
if (this._boneMask.indexOf(t) < 0 && this._boneMask.push(t),
e)
for (var n = 0, r = this._armature.getBones(); n < r.length; n++) {
var s = r[n];
this._boneMask.indexOf(s.name) < 0 && i.contains(s) && this._boneMask.push(s.name)
}
this._timelineDirty = 1
}
}
,
r.prototype.removeBoneMask = function(t, e) {
void 0 === e && (e = !0);
var i = this._boneMask.indexOf(t);
if (i >= 0 && this._boneMask.splice(i, 1),
e) {
var n = this._armature.getBone(t);
if (null !== n) {
var r = this._armature.getBones();
if (this._boneMask.length > 0)
for (var s = 0, a = r; s < a.length; s++) {
var o = a[s]
, l = this._boneMask.indexOf(o.name);
l >= 0 && n.contains(o) && this._boneMask.splice(l, 1)
}
else
for (var h = 0, c = r; h < c.length; h++)
(o = c[h]) !== n && (n.contains(o) || this._boneMask.push(o.name))
}
}
this._timelineDirty = 1
}
,
r.prototype.removeAllBoneMask = function() {
this._boneMask.length = 0,
this._timelineDirty = 1
}
,
Object.defineProperty(r.prototype, "isFadeIn", {
get: function() {
return this._fadeState < 0
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(r.prototype, "isFadeOut", {
get: function() {
return this._fadeState > 0
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(r.prototype, "isFadeComplete", {
get: function() {
return 0 === this._fadeState
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(r.prototype, "isPlaying", {
get: function() {
return 0 != (2 & this._playheadState) && this._actionTimeline.playState <= 0
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(r.prototype, "isCompleted", {
get: function() {
return this._actionTimeline.playState > 0
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(r.prototype, "currentPlayTimes", {
get: function() {
return this._actionTimeline.currentPlayTimes
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(r.prototype, "totalTime", {
get: function() {
return this._duration
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(r.prototype, "currentTime", {
get: function() {
return this._actionTimeline.currentTime
},
set: function(t) {
var e = this._actionTimeline.currentPlayTimes - (this._actionTimeline.playState > 0 ? 1 : 0);
if ((t < 0 || this._duration < t) && (t = t % this._duration + e * this._duration) < 0 && (t += this._duration),
this.playTimes > 0 && e === this.playTimes - 1 && t === this._duration && (t = this._duration - 1e-6),
this._time !== t) {
this._time = t,
this._actionTimeline.setCurrentTime(this._time),
null !== this._zOrderTimeline && (this._zOrderTimeline.playState = -1);
for (var i = 0, n = this._boneTimelines; i < n.length; i++)
n[i].playState = -1;
for (var r = 0, s = this._slotTimelines; r < s.length; r++)
s[r].playState = -1
}
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(r.prototype, "animationData", {
get: function() {
return this._animationData
},
enumerable: !0,
configurable: !0
}),
r
}
)(t.BaseObject);
t.AnimationState = e;
var i = (function(e) {
function i() {
var i = null !== e && e.apply(this, arguments) || this;
return i.current = new t.Transform,
i.delta = new t.Transform,
i.result = new t.Transform,
i
}
return s(i, e),
i.toString = function() {
return "[class dragonBones.BonePose]"
}
,
i.prototype._onClear = function() {
this.current.identity(),
this.delta.identity(),
this.result.identity()
}
,
i
}
)(t.BaseObject);
t.BonePose = i;
var n = (function() {
function t() {}
return t.prototype.update = function(t, e) {
if (this.dirty) {
if (!(this.leftWeight > 0))
return 0;
if (this.layer !== e) {
if (this.layerWeight >= this.leftWeight)
return this.leftWeight = 0,
0;
this.layer = e,
this.leftWeight -= this.layerWeight,
this.layerWeight = 0
}
return t *= this.leftWeight,
this.layerWeight += t,
this.blendWeight = t,
2
}
return this.dirty = !0,
this.layer = e,
this.layerWeight = t,
this.leftWeight = 1,
this.blendWeight = t,
1
}
,
t.prototype.clear = function() {
this.dirty = !1,
this.layer = 0,
this.leftWeight = 0,
this.layerWeight = 0,
this.blendWeight = 0
}
,
t
}
)();
t.BlendState = n
}
)(r || (r = {})),
(function(t) {
var e = (function(t) {
function e() {
return null !== t && t.apply(this, arguments) || this
}
return s(e, t),
e.prototype._onClear = function() {
this.playState = -1,
this.currentPlayTimes = -1,
this.currentTime = -1,
this._tweenState = 0,
this._frameRate = 0,
this._frameValueOffset = 0,
this._frameCount = 0,
this._frameOffset = 0,
this._frameIndex = -1,
this._frameRateR = 0,
this._position = 0,
this._duration = 0,
this._timeScale = 1,
this._timeOffset = 0,
this._dragonBonesData = null,
this._animationData = null,
this._timelineData = null,
this._armature = null,
this._animationState = null,
this._actionTimeline = null,
this._frameArray = null,
this._frameIntArray = null,
this._frameFloatArray = null,
this._timelineArray = null,
this._frameIndices = null
}
,
e.prototype._setCurrentTime = function(t) {
var e = this.playState
, i = this.currentPlayTimes
, n = this.currentTime;
if (null !== this._actionTimeline && this._frameCount <= 1)
this.playState = this._actionTimeline.playState >= 0 ? 1 : -1,
this.currentPlayTimes = 1,
this.currentTime = this._actionTimeline.currentTime;
else if (null === this._actionTimeline || 1 !== this._timeScale || 0 !== this._timeOffset) {
var r = this._animationState.playTimes
, s = r * this._duration;
t *= this._timeScale,
0 !== this._timeOffset && (t += this._timeOffset * this._animationData.duration),
r > 0 && (t >= s || t <= -s) ? (this.playState <= 0 && 3 === this._animationState._playheadState && (this.playState = 1),
this.currentPlayTimes = r,
this.currentTime = t < 0 ? 0 : this._duration + 1e-6) : (0 !== this.playState && 3 === this._animationState._playheadState && (this.playState = 0),
t < 0 ? (t = -t,
this.currentPlayTimes = Math.floor(t / this._duration),
this.currentTime = this._duration - t % this._duration) : (this.currentPlayTimes = Math.floor(t / this._duration),
this.currentTime = t % this._duration)),
this.currentTime += this._position
} else
this.playState = this._actionTimeline.playState,
this.currentPlayTimes = this._actionTimeline.currentPlayTimes,
this.currentTime = this._actionTimeline.currentTime;
return (this.currentPlayTimes !== i || this.currentTime !== n) && ((e < 0 && this.playState !== e || this.playState <= 0 && this.currentPlayTimes !== i) && (this._frameIndex = -1),
!0)
}
,
e.prototype.init = function(t, e, i) {
this._armature = t,
this._animationState = e,
this._timelineData = i,
this._actionTimeline = this._animationState._actionTimeline,
this === this._actionTimeline && (this._actionTimeline = null),
this._animationData = this._animationState._animationData,
this._frameRate = this._animationData.parent.frameRate,
this._frameRateR = 1 / this._frameRate,
this._position = this._animationState._position,
this._duration = this._animationState._duration,
this._dragonBonesData = this._animationData.parent.parent,
null !== this._timelineData && (this._frameIntArray = this._dragonBonesData.frameIntArray,
this._frameFloatArray = this._dragonBonesData.frameFloatArray,
this._frameArray = this._dragonBonesData.frameArray,
this._timelineArray = this._dragonBonesData.timelineArray,
this._frameIndices = this._dragonBonesData.frameIndices,
this._frameCount = this._timelineArray[this._timelineData.offset + 2],
this._frameValueOffset = this._timelineArray[this._timelineData.offset + 4],
this._timeScale = 100 / this._timelineArray[this._timelineData.offset + 0],
this._timeOffset = .01 * this._timelineArray[this._timelineData.offset + 1])
}
,
e.prototype.fadeOut = function() {}
,
e.prototype.update = function(t) {
if (this._setCurrentTime(t)) {
if (this._frameCount > 1) {
var e = Math.floor(this.currentTime * this._frameRate)
, i = this._frameIndices[this._timelineData.frameIndicesOffset + e];
this._frameIndex !== i && (this._frameIndex = i,
this._frameOffset = this._animationData.frameOffset + this._timelineArray[this._timelineData.offset + 5 + this._frameIndex],
this._onArriveAtFrame())
} else
this._frameIndex < 0 && (this._frameIndex = 0,
null !== this._timelineData && (this._frameOffset = this._animationData.frameOffset + this._timelineArray[this._timelineData.offset + 5]),
this._onArriveAtFrame());
0 !== this._tweenState && this._onUpdateFrame()
}
}
,
e
}
)(t.BaseObject);
t.TimelineState = e;
var i = (function(t) {
function e() {
return null !== t && t.apply(this, arguments) || this
}
return s(e, t),
e._getEasingValue = function(t, e, i) {
var n = e;
switch (t) {
case 3:
n = Math.pow(e, 2);
break;
case 4:
n = 1 - Math.pow(1 - e, 2);
break;
case 5:
n = .5 * (1 - Math.cos(e * Math.PI))
}
return (n - e) * i + e
}
,
e._getEasingCurveValue = function(t, e, i, n) {
if (t <= 0)
return 0;
if (t >= 1)
return 1;
var r = i + 1
, s = Math.floor(t * r)
, a = 0 === s ? 0 : e[n + s - 1];
return 1e-4 * (a + ((s === r - 1 ? 1e4 : e[n + s]) - a) * (t * r - s))
}
,
e.prototype._onClear = function() {
t.prototype._onClear.call(this),
this._tweenType = 0,
this._curveCount = 0,
this._framePosition = 0,
this._frameDurationR = 0,
this._tweenProgress = 0,
this._tweenEasing = 0
}
,
e.prototype._onArriveAtFrame = function() {
if (this._frameCount > 1 && (this._frameIndex !== this._frameCount - 1 || 0 === this._animationState.playTimes || this._animationState.currentPlayTimes < this._animationState.playTimes - 1))
if (this._tweenType = this._frameArray[this._frameOffset + 1],
this._tweenState = 0 === this._tweenType ? 1 : 2,
2 === this._tweenType ? this._curveCount = this._frameArray[this._frameOffset + 2] : 0 !== this._tweenType && 1 !== this._tweenType && (this._tweenEasing = .01 * this._frameArray[this._frameOffset + 2]),
this._framePosition = this._frameArray[this._frameOffset] * this._frameRateR,
this._frameIndex === this._frameCount - 1)
this._frameDurationR = 1 / (this._animationData.duration - this._framePosition);
else {
var t = this._animationData.frameOffset + this._timelineArray[this._timelineData.offset + 5 + this._frameIndex + 1]
, e = this._frameArray[t] * this._frameRateR - this._framePosition;
this._frameDurationR = e > 0 ? 1 / e : 0
}
else
this._tweenState = 1
}
,
e.prototype._onUpdateFrame = function() {
2 === this._tweenState ? (this._tweenProgress = (this.currentTime - this._framePosition) * this._frameDurationR,
2 === this._tweenType ? this._tweenProgress = e._getEasingCurveValue(this._tweenProgress, this._frameArray, this._curveCount, this._frameOffset + 3) : 1 !== this._tweenType && (this._tweenProgress = e._getEasingValue(this._tweenType, this._tweenProgress, this._tweenEasing))) : this._tweenProgress = 0
}
,
e
}
)(e);
t.TweenTimelineState = i;
var n = (function(t) {
function e() {
return null !== t && t.apply(this, arguments) || this
}
return s(e, t),
e.prototype._onClear = function() {
t.prototype._onClear.call(this),
this.bone = null,
this.bonePose = null
}
,
e.prototype.blend = function(t) {
var e = this.bone._blendState.blendWeight
, i = this.bone.animationPose
, n = this.bonePose.result;
2 === t ? (i.x += n.x * e,
i.y += n.y * e,
i.rotation += n.rotation * e,
i.skew += n.skew * e,
i.scaleX += (n.scaleX - 1) * e,
i.scaleY += (n.scaleY - 1) * e) : 1 !== e ? (i.x = n.x * e,
i.y = n.y * e,
i.rotation = n.rotation * e,
i.skew = n.skew * e,
i.scaleX = (n.scaleX - 1) * e + 1,
i.scaleY = (n.scaleY - 1) * e + 1) : (i.x = n.x,
i.y = n.y,
i.rotation = n.rotation,
i.skew = n.skew,
i.scaleX = n.scaleX,
i.scaleY = n.scaleY),
0 === this._animationState._fadeState && 0 === this._animationState._subFadeState || (this.bone._transformDirty = !0)
}
,
e
}
)(i);
t.BoneTimelineState = n;
var r = (function(t) {
function e() {
return null !== t && t.apply(this, arguments) || this
}
return s(e, t),
e.prototype._onClear = function() {
t.prototype._onClear.call(this),
this.slot = null
}
,
e
}
)(i);
t.SlotTimelineState = r;
var a = (function(t) {
function e() {
return null !== t && t.apply(this, arguments) || this
}
return s(e, t),
e.prototype._onClear = function() {
t.prototype._onClear.call(this),
this.constraint = null
}
,
e
}
)(i);
t.ConstraintTimelineState = a
}
)(r || (r = {})),
(function(t) {
var e = (function(e) {
function i() {
return null !== e && e.apply(this, arguments) || this
}
return s(i, e),
i.toString = function() {
return "[class dragonBones.ActionTimelineState]"
}
,
i.prototype._onCrossFrame = function(e) {
var i = this._armature.eventDispatcher;
if (this._animationState.actionEnabled)
for (var n = this._animationData.frameOffset + this._timelineArray[this._timelineData.offset + 5 + e], r = this._frameArray[n + 1], s = this._animationData.parent.actions, a = 0; a < r; ++a) {
var o = s[this._frameArray[n + 2 + a]];
if (0 === o.type)
(l = t.BaseObject.borrowObject(t.EventObject)).time = this._frameArray[n] / this._frameRate,
l.animationState = this._animationState,
t.EventObject.actionDataToInstance(o, l, this._armature),
this._armature._bufferAction(l, !0);
else {
var l, h = 10 === o.type ? t.EventObject.FRAME_EVENT : t.EventObject.SOUND_EVENT;
(11 === o.type || i.hasDBEventListener(h)) && ((l = t.BaseObject.borrowObject(t.EventObject)).time = this._frameArray[n] / this._frameRate,
l.animationState = this._animationState,
t.EventObject.actionDataToInstance(o, l, this._armature),
this._armature._dragonBones.bufferEvent(l))
}
}
}
,
i.prototype._onArriveAtFrame = function() {}
,
i.prototype._onUpdateFrame = function() {}
,
i.prototype.update = function(e) {
var i = this.playState
, n = this.currentPlayTimes
, r = this.currentTime;
if (this._setCurrentTime(e)) {
var s = this._armature.eventDispatcher;
if (i < 0) {
if (this.playState === i)
return;
if (this._animationState.displayControl && this._animationState.resetToPose && this._armature._sortZOrder(null, 0),
n = this.currentPlayTimes,
s.hasDBEventListener(t.EventObject.START)) {
var a = t.BaseObject.borrowObject(t.EventObject);
a.type = t.EventObject.START,
a.armature = this._armature,
a.animationState = this._animationState,
this._armature._dragonBones.bufferEvent(a)
}
}
var o = this._animationState.timeScale < 0
, l = null
, h = null;
if (this.currentPlayTimes !== n && (s.hasDBEventListener(t.EventObject.LOOP_COMPLETE) && ((l = t.BaseObject.borrowObject(t.EventObject)).type = t.EventObject.LOOP_COMPLETE,
l.armature = this._armature,
l.animationState = this._animationState),
this.playState > 0 && s.hasDBEventListener(t.EventObject.COMPLETE) && ((h = t.BaseObject.borrowObject(t.EventObject)).type = t.EventObject.COMPLETE,
h.armature = this._armature,
h.animationState = this._animationState)),
this._frameCount > 1) {
var c = this._timelineData
, u = Math.floor(this.currentTime * this._frameRate)
, _ = this._frameIndices[c.frameIndicesOffset + u];
if (this._frameIndex !== _) {
var f = this._frameIndex;
if (this._frameIndex = _,
null !== this._timelineArray)
if (this._frameOffset = this._animationData.frameOffset + this._timelineArray[c.offset + 5 + this._frameIndex],
o) {
if (f < 0) {
var d = Math.floor(r * this._frameRate);
f = this._frameIndices[c.frameIndicesOffset + d],
this.currentPlayTimes === n && f === _ && (f = -1)
}
for (; f >= 0; ) {
var p = this._animationData.frameOffset + this._timelineArray[c.offset + 5 + f]
, m = this._frameArray[p] / this._frameRate;
if (this._position <= m && m <= this._position + this._duration && this._onCrossFrame(f),
null !== l && 0 === f && (this._armature._dragonBones.bufferEvent(l),
l = null),
f > 0 ? f-- : f = this._frameCount - 1,
f === _)
break
}
} else
for (f < 0 && (d = Math.floor(r * this._frameRate),
f = this._frameIndices[c.frameIndicesOffset + d],
p = this._animationData.frameOffset + this._timelineArray[c.offset + 5 + f],
m = this._frameArray[p] / this._frameRate,
this.currentPlayTimes === n && (r <= m ? f > 0 ? f-- : f = this._frameCount - 1 : f === _ && (f = -1))); f >= 0 && (f < this._frameCount - 1 ? f++ : f = 0,
p = this._animationData.frameOffset + this._timelineArray[c.offset + 5 + f],
m = this._frameArray[p] / this._frameRate,
this._position <= m && m <= this._position + this._duration && this._onCrossFrame(f),
null !== l && 0 === f && (this._armature._dragonBones.bufferEvent(l),
l = null),
f !== _); )
;
}
} else
this._frameIndex < 0 && (this._frameIndex = 0,
null !== this._timelineData) && (this._frameOffset = this._animationData.frameOffset + this._timelineArray[this._timelineData.offset + 5],
m = this._frameArray[this._frameOffset] / this._frameRate,
this.currentPlayTimes === n ? r <= m && this._onCrossFrame(this._frameIndex) : this._position <= m && (o || null === l || (this._armature._dragonBones.bufferEvent(l),
l = null),
this._onCrossFrame(this._frameIndex)));
null !== l && this._armature._dragonBones.bufferEvent(l),
null !== h && this._armature._dragonBones.bufferEvent(h)
}
}
,
i.prototype.setCurrentTime = function(t) {
this._setCurrentTime(t),
this._frameIndex = -1
}
,
i
}
)(t.TimelineState);
t.ActionTimelineState = e;
var i = (function(t) {
function e() {
return null !== t && t.apply(this, arguments) || this
}
return s(e, t),
e.toString = function() {
return "[class dragonBones.ZOrderTimelineState]"
}
,
e.prototype._onArriveAtFrame = function() {
this.playState >= 0 && (this._frameArray[this._frameOffset + 1] > 0 ? this._armature._sortZOrder(this._frameArray, this._frameOffset + 2) : this._armature._sortZOrder(null, 0))
}
,
e.prototype._onUpdateFrame = function() {}
,
e
}
)(t.TimelineState);
t.ZOrderTimelineState = i;
var n = (function(e) {
function i() {
return null !== e && e.apply(this, arguments) || this
}
return s(i, e),
i.toString = function() {
return "[class dragonBones.BoneAllTimelineState]"
}
,
i.prototype._onArriveAtFrame = function() {
if (e.prototype._onArriveAtFrame.call(this),
null !== this._timelineData) {
var t = this._animationData.frameFloatOffset + this._frameValueOffset + 6 * this._frameIndex
, i = this._armature._armatureData.scale
, n = this._frameFloatArray
, r = this.bonePose.current
, s = this.bonePose.delta;
r.x = n[t++] * i,
r.y = n[t++] * i,
r.rotation = n[t++],
r.skew = n[t++],
r.scaleX = n[t++],
r.scaleY = n[t++],
2 === this._tweenState ? (this._frameIndex === this._frameCount - 1 && (t = this._animationData.frameFloatOffset + this._frameValueOffset),
s.x = n[t++] * i - r.x,
s.y = n[t++] * i - r.y,
s.rotation = n[t++] - r.rotation,
s.skew = n[t++] - r.skew,
s.scaleX = n[t++] - r.scaleX,
s.scaleY = n[t++] - r.scaleY) : (s.x = 0,
s.y = 0,
s.rotation = 0,
s.skew = 0,
s.scaleX = 0,
s.scaleY = 0)
} else
r = this.bonePose.current,
s = this.bonePose.delta,
r.x = 0,
r.y = 0,
r.rotation = 0,
r.skew = 0,
r.scaleX = 1,
r.scaleY = 1,
s.x = 0,
s.y = 0,
s.rotation = 0,
s.skew = 0,
s.scaleX = 0,
s.scaleY = 0
}
,
i.prototype._onUpdateFrame = function() {
e.prototype._onUpdateFrame.call(this);
var t = this.bonePose.current
, i = this.bonePose.delta
, n = this.bonePose.result;
this.bone._transformDirty = !0,
2 !== this._tweenState && (this._tweenState = 0),
n.x = t.x + i.x * this._tweenProgress,
n.y = t.y + i.y * this._tweenProgress,
n.rotation = t.rotation + i.rotation * this._tweenProgress,
n.skew = t.skew + i.skew * this._tweenProgress,
n.scaleX = t.scaleX + i.scaleX * this._tweenProgress,
n.scaleY = t.scaleY + i.scaleY * this._tweenProgress
}
,
i.prototype.fadeOut = function() {
var e = this.bonePose.result;
e.rotation = t.Transform.normalizeRadian(e.rotation),
e.skew = t.Transform.normalizeRadian(e.skew)
}
,
i
}
)(t.BoneTimelineState);
t.BoneAllTimelineState = n;
var r = (function(t) {
function e() {
return null !== t && t.apply(this, arguments) || this
}
return s(e, t),
e.toString = function() {
return "[class dragonBones.BoneTranslateTimelineState]"
}
,
e.prototype._onArriveAtFrame = function() {
if (t.prototype._onArriveAtFrame.call(this),
null !== this._timelineData) {
var e = this._animationData.frameFloatOffset + this._frameValueOffset + 2 * this._frameIndex
, i = this._armature._armatureData.scale
, n = this._frameFloatArray
, r = this.bonePose.current
, s = this.bonePose.delta;
r.x = n[e++] * i,
r.y = n[e++] * i,
2 === this._tweenState ? (this._frameIndex === this._frameCount - 1 && (e = this._animationData.frameFloatOffset + this._frameValueOffset),
s.x = n[e++] * i - r.x,
s.y = n[e++] * i - r.y) : (s.x = 0,
s.y = 0)
} else
r = this.bonePose.current,
s = this.bonePose.delta,
r.x = 0,
r.y = 0,
s.x = 0,
s.y = 0
}
,
e.prototype._onUpdateFrame = function() {
t.prototype._onUpdateFrame.call(this);
var e = this.bonePose.current
, i = this.bonePose.delta
, n = this.bonePose.result;
this.bone._transformDirty = !0,
2 !== this._tweenState && (this._tweenState = 0),
n.x = e.x + i.x * this._tweenProgress,
n.y = e.y + i.y * this._tweenProgress
}
,
e
}
)(t.BoneTimelineState);
t.BoneTranslateTimelineState = r;
var a = (function(e) {
function i() {
return null !== e && e.apply(this, arguments) || this
}
return s(i, e),
i.toString = function() {
return "[class dragonBones.BoneRotateTimelineState]"
}
,
i.prototype._onArriveAtFrame = function() {
if (e.prototype._onArriveAtFrame.call(this),
null !== this._timelineData) {
var i = this._animationData.frameFloatOffset + this._frameValueOffset + 2 * this._frameIndex
, n = this._frameFloatArray
, r = this.bonePose.current
, s = this.bonePose.delta;
r.rotation = n[i++],
r.skew = n[i++],
2 === this._tweenState ? (this._frameIndex === this._frameCount - 1 ? (i = this._animationData.frameFloatOffset + this._frameValueOffset,
s.rotation = t.Transform.normalizeRadian(n[i++] - r.rotation)) : s.rotation = n[i++] - r.rotation,
s.skew = n[i++] - r.skew) : (s.rotation = 0,
s.skew = 0)
} else
r = this.bonePose.current,
s = this.bonePose.delta,
r.rotation = 0,
r.skew = 0,
s.rotation = 0,
s.skew = 0
}
,
i.prototype._onUpdateFrame = function() {
e.prototype._onUpdateFrame.call(this);
var t = this.bonePose.current
, i = this.bonePose.delta
, n = this.bonePose.result;
this.bone._transformDirty = !0,
2 !== this._tweenState && (this._tweenState = 0),
n.rotation = t.rotation + i.rotation * this._tweenProgress,
n.skew = t.skew + i.skew * this._tweenProgress
}
,
i.prototype.fadeOut = function() {
var e = this.bonePose.result;
e.rotation = t.Transform.normalizeRadian(e.rotation),
e.skew = t.Transform.normalizeRadian(e.skew)
}
,
i
}
)(t.BoneTimelineState);
t.BoneRotateTimelineState = a;
var o = (function(t) {
function e() {
return null !== t && t.apply(this, arguments) || this
}
return s(e, t),
e.toString = function() {
return "[class dragonBones.BoneScaleTimelineState]"
}
,
e.prototype._onArriveAtFrame = function() {
if (t.prototype._onArriveAtFrame.call(this),
null !== this._timelineData) {
var e = this._animationData.frameFloatOffset + this._frameValueOffset + 2 * this._frameIndex
, i = this._frameFloatArray
, n = this.bonePose.current
, r = this.bonePose.delta;
n.scaleX = i[e++],
n.scaleY = i[e++],
2 === this._tweenState ? (this._frameIndex === this._frameCount - 1 && (e = this._animationData.frameFloatOffset + this._frameValueOffset),
r.scaleX = i[e++] - n.scaleX,
r.scaleY = i[e++] - n.scaleY) : (r.scaleX = 0,
r.scaleY = 0)
} else
n = this.bonePose.current,
r = this.bonePose.delta,
n.scaleX = 1,
n.scaleY = 1,
r.scaleX = 0,
r.scaleY = 0
}
,
e.prototype._onUpdateFrame = function() {
t.prototype._onUpdateFrame.call(this);
var e = this.bonePose.current
, i = this.bonePose.delta
, n = this.bonePose.result;
this.bone._transformDirty = !0,
2 !== this._tweenState && (this._tweenState = 0),
n.scaleX = e.scaleX + i.scaleX * this._tweenProgress,
n.scaleY = e.scaleY + i.scaleY * this._tweenProgress
}
,
e
}
)(t.BoneTimelineState);
t.BoneScaleTimelineState = o;
var l = (function(t) {
function e() {
var e = null !== t && t.apply(this, arguments) || this;
return e._current = [],
e._delta = [],
e._result = [],
e
}
return s(e, t),
e.toString = function() {
return "[class dragonBones.SurfaceTimelineState]"
}
,
e.prototype._onClear = function() {
t.prototype._onClear.call(this),
this.surface = null,
this._frameFloatOffset = 0,
this._valueCount = 0,
this._deformCount = 0,
this._valueOffset = 0,
this._current.length = 0,
this._delta.length = 0,
this._result.length = 0
}
,
e.prototype._onArriveAtFrame = function() {
if (t.prototype._onArriveAtFrame.call(this),
null !== this._timelineData) {
var e = this._animationData.frameFloatOffset + this._frameValueOffset + this._frameIndex * this._valueCount
, i = this._armature._armatureData.scale
, n = this._frameFloatArray;
if (2 === this._tweenState) {
var r = e + this._valueCount;
this._frameIndex === this._frameCount - 1 && (r = this._animationData.frameFloatOffset + this._frameValueOffset);
for (var s = 0; s < this._valueCount; ++s)
this._delta[s] = n[r + s] * i - (this._current[s] = n[e + s] * i)
} else
for (s = 0; s < this._valueCount; ++s)
this._current[s] = n[e + s] * i
} else
for (s = 0; s < this._valueCount; ++s)
this._current[s] = 0
}
,
e.prototype._onUpdateFrame = function() {
t.prototype._onUpdateFrame.call(this),
this.surface._transformDirty = !0,
2 !== this._tweenState && (this._tweenState = 0);
for (var e = 0; e < this._valueCount; ++e)
this._result[e] = this._current[e] + this._delta[e] * this._tweenProgress
}
,
e.prototype.init = function(e, i, n) {
if (t.prototype.init.call(this, e, i, n),
null !== this._timelineData) {
var r = this._animationData.frameIntOffset + this._timelineArray[this._timelineData.offset + 3];
this._deformCount = this._frameIntArray[r + 1],
this._valueCount = this._frameIntArray[r + 2],
this._valueOffset = this._frameIntArray[r + 3],
this._frameFloatOffset = this._frameIntArray[r + 4] + this._animationData.frameFloatOffset
} else
this._deformCount = this.surface._deformVertices.length,
this._valueCount = this._deformCount,
this._valueOffset = 0,
this._frameFloatOffset = 0;
this._current.length = this._valueCount,
this._delta.length = this._valueCount,
this._result.length = this._valueCount;
for (var s = 0; s < this._valueCount; ++s)
this._delta[s] = 0
}
,
e.prototype.blend = function(t) {
for (var e = this.surface._blendState.blendWeight, i = this.surface._deformVertices, n = 0; n < this._deformCount; ++n) {
var r;
r = n < this._valueOffset ? this._frameFloatArray[this._frameFloatOffset + n] : n < this._valueOffset + this._valueCount ? this._result[n - this._valueOffset] : this._frameFloatArray[this._frameFloatOffset + n - this._valueCount],
2 === t ? i[n] += r * e : i[n] = 1 !== e ? r * e : r
}
0 === this._animationState._fadeState && 0 === this._animationState._subFadeState || (this.surface._transformDirty = !0)
}
,
e
}
)(t.TweenTimelineState);
t.SurfaceTimelineState = l;
var h = (function(t) {
function e() {
return null !== t && t.apply(this, arguments) || this
}
return s(e, t),
e.toString = function() {
return "[class dragonBones.SlotDislayTimelineState]"
}
,
e.prototype._onArriveAtFrame = function() {
if (this.playState >= 0) {
var t = null !== this._timelineData ? this._frameArray[this._frameOffset + 1] : this.slot._slotData.displayIndex;
this.slot.displayIndex !== t && this.slot._setDisplayIndex(t, !0)
}
}
,
e
}
)(t.SlotTimelineState);
t.SlotDislayTimelineState = h;
var c = (function(t) {
function e() {
var e = null !== t && t.apply(this, arguments) || this;
return e._current = [0, 0, 0, 0, 0, 0, 0, 0],
e._delta = [0, 0, 0, 0, 0, 0, 0, 0],
e._result = [0, 0, 0, 0, 0, 0, 0, 0],
e
}
return s(e, t),
e.toString = function() {
return "[class dragonBones.SlotColorTimelineState]"
}
,
e.prototype._onClear = function() {
t.prototype._onClear.call(this),
this._dirty = !1
}
,
e.prototype._onArriveAtFrame = function() {
if (t.prototype._onArriveAtFrame.call(this),
null !== this._timelineData) {
var e = this._dragonBonesData.intArray
, i = this._frameIntArray
, n = this._animationData.frameIntOffset + this._frameValueOffset + 1 * this._frameIndex
, r = i[n];
r < 0 && (r += 65536),
this._current[0] = e[r++],
this._current[1] = e[r++],
this._current[2] = e[r++],
this._current[3] = e[r++],
this._current[4] = e[r++],
this._current[5] = e[r++],
this._current[6] = e[r++],
this._current[7] = e[r++],
2 === this._tweenState && ((r = this._frameIndex === this._frameCount - 1 ? i[this._animationData.frameIntOffset + this._frameValueOffset] : i[n + 1]) < 0 && (r += 65536),
this._delta[0] = e[r++] - this._current[0],
this._delta[1] = e[r++] - this._current[1],
this._delta[2] = e[r++] - this._current[2],
this._delta[3] = e[r++] - this._current[3],
this._delta[4] = e[r++] - this._current[4],
this._delta[5] = e[r++] - this._current[5],
this._delta[6] = e[r++] - this._current[6],
this._delta[7] = e[r++] - this._current[7])
} else {
var s = this.slot._slotData.color;
this._current[0] = 100 * s.alphaMultiplier,
this._current[1] = 100 * s.redMultiplier,
this._current[2] = 100 * s.greenMultiplier,
this._current[3] = 100 * s.blueMultiplier,
this._current[4] = s.alphaOffset,
this._current[5] = s.redOffset,
this._current[6] = s.greenOffset,
this._current[7] = s.blueOffset
}
}
,
e.prototype._onUpdateFrame = function() {
t.prototype._onUpdateFrame.call(this),
this._dirty = !0,
2 !== this._tweenState && (this._tweenState = 0),
this._result[0] = .01 * (this._current[0] + this._delta[0] * this._tweenProgress),
this._result[1] = .01 * (this._current[1] + this._delta[1] * this._tweenProgress),
this._result[2] = .01 * (this._current[2] + this._delta[2] * this._tweenProgress),
this._result[3] = .01 * (this._current[3] + this._delta[3] * this._tweenProgress),
this._result[4] = this._current[4] + this._delta[4] * this._tweenProgress,
this._result[5] = this._current[5] + this._delta[5] * this._tweenProgress,
this._result[6] = this._current[6] + this._delta[6] * this._tweenProgress,
this._result[7] = this._current[7] + this._delta[7] * this._tweenProgress
}
,
e.prototype.fadeOut = function() {
this._tweenState = 0,
this._dirty = !1
}
,
e.prototype.update = function(e) {
if (t.prototype.update.call(this, e),
0 !== this._tweenState || this._dirty) {
var i = this.slot._colorTransform;
if (0 !== this._animationState._fadeState || 0 !== this._animationState._subFadeState) {
if (i.alphaMultiplier !== this._result[0] || i.redMultiplier !== this._result[1] || i.greenMultiplier !== this._result[2] || i.blueMultiplier !== this._result[3] || i.alphaOffset !== this._result[4] || i.redOffset !== this._result[5] || i.greenOffset !== this._result[6] || i.blueOffset !== this._result[7]) {
var n = Math.pow(this._animationState._fadeProgress, 4);
i.alphaMultiplier += (this._result[0] - i.alphaMultiplier) * n,
i.redMultiplier += (this._result[1] - i.redMultiplier) * n,
i.greenMultiplier += (this._result[2] - i.greenMultiplier) * n,
i.blueMultiplier += (this._result[3] - i.blueMultiplier) * n,
i.alphaOffset += (this._result[4] - i.alphaOffset) * n,
i.redOffset += (this._result[5] - i.redOffset) * n,
i.greenOffset += (this._result[6] - i.greenOffset) * n,
i.blueOffset += (this._result[7] - i.blueOffset) * n,
this.slot._colorDirty = !0
}
} else
this._dirty && (this._dirty = !1,
i.alphaMultiplier === this._result[0] && i.redMultiplier === this._result[1] && i.greenMultiplier === this._result[2] && i.blueMultiplier === this._result[3] && i.alphaOffset === this._result[4] && i.redOffset === this._result[5] && i.greenOffset === this._result[6] && i.blueOffset === this._result[7] || (i.alphaMultiplier = this._result[0],
i.redMultiplier = this._result[1],
i.greenMultiplier = this._result[2],
i.blueMultiplier = this._result[3],
i.alphaOffset = this._result[4],
i.redOffset = this._result[5],
i.greenOffset = this._result[6],
i.blueOffset = this._result[7],
this.slot._colorDirty = !0))
}
}
,
e
}
)(t.SlotTimelineState);
t.SlotColorTimelineState = c;
var u = (function(t) {
function e() {
var e = null !== t && t.apply(this, arguments) || this;
return e._current = [],
e._delta = [],
e._result = [],
e
}
return s(e, t),
e.toString = function() {
return "[class dragonBones.DeformTimelineState]"
}
,
e.prototype._onClear = function() {
t.prototype._onClear.call(this),
this.vertexOffset = 0,
this._dirty = !1,
this._frameFloatOffset = 0,
this._valueCount = 0,
this._deformCount = 0,
this._valueOffset = 0,
this._current.length = 0,
this._delta.length = 0,
this._result.length = 0
}
,
e.prototype._onArriveAtFrame = function() {
if (t.prototype._onArriveAtFrame.call(this),
null !== this._timelineData) {
var e = this._animationData.frameFloatOffset + this._frameValueOffset + this._frameIndex * this._valueCount
, i = this._armature._armatureData.scale
, n = this._frameFloatArray;
if (2 === this._tweenState) {
var r = e + this._valueCount;
this._frameIndex === this._frameCount - 1 && (r = this._animationData.frameFloatOffset + this._frameValueOffset);
for (var s = 0; s < this._valueCount; ++s)
this._delta[s] = n[r + s] * i - (this._current[s] = n[e + s] * i)
} else
for (s = 0; s < this._valueCount; ++s)
this._current[s] = n[e + s] * i
} else
for (s = 0; s < this._valueCount; ++s)
this._current[s] = 0
}
,
e.prototype._onUpdateFrame = function() {
t.prototype._onUpdateFrame.call(this),
this._dirty = !0,
2 !== this._tweenState && (this._tweenState = 0);
for (var e = 0; e < this._valueCount; ++e)
this._result[e] = this._current[e] + this._delta[e] * this._tweenProgress
}
,
e.prototype.init = function(e, i, n) {
if (t.prototype.init.call(this, e, i, n),
null !== this._timelineData) {
var r = this._animationData.frameIntOffset + this._timelineArray[this._timelineData.offset + 3];
this.vertexOffset = this._frameIntArray[r + 0],
this.vertexOffset < 0 && (this.vertexOffset += 65536),
this._deformCount = this._frameIntArray[r + 1],
this._valueCount = this._frameIntArray[r + 2],
this._valueOffset = this._frameIntArray[r + 3],
this._frameFloatOffset = this._frameIntArray[r + 4] + this._animationData.frameFloatOffset
} else {
var s = this.slot._deformVertices;
this._deformCount = null !== s ? s.vertices.length : 0,
this._valueCount = this._deformCount,
this._valueOffset = 0,
this._frameFloatOffset = 0
}
this._current.length = this._valueCount,
this._delta.length = this._valueCount,
this._result.length = this._valueCount;
for (var a = 0; a < this._valueCount; ++a)
this._delta[a] = 0
}
,
e.prototype.fadeOut = function() {
this._tweenState = 0,
this._dirty = !1
}
,
e.prototype.update = function(e) {
var i = this.slot._deformVertices;
if (null !== i && null !== i.verticesData && i.verticesData.offset === this.vertexOffset && (t.prototype.update.call(this, e),
0 !== this._tweenState || this._dirty)) {
var n = i.vertices;
if (0 !== this._animationState._fadeState || 0 !== this._animationState._subFadeState) {
for (var r = Math.pow(this._animationState._fadeProgress, 2), s = 0; s < this._deformCount; ++s)
s < this._valueOffset ? n[s] += (this._frameFloatArray[this._frameFloatOffset + s] - n[s]) * r : s < this._valueOffset + this._valueCount ? n[s] += (this._result[s - this._valueOffset] - n[s]) * r : n[s] += (this._frameFloatArray[this._frameFloatOffset + s - this._valueCount] - n[s]) * r;
i.verticesDirty = !0
} else if (this._dirty) {
for (this._dirty = !1,
s = 0; s < this._deformCount; ++s)
s < this._valueOffset ? n[s] = this._frameFloatArray[this._frameFloatOffset + s] : s < this._valueOffset + this._valueCount ? n[s] = this._result[s - this._valueOffset] : n[s] = this._frameFloatArray[this._frameFloatOffset + s - this._valueCount];
i.verticesDirty = !0
}
}
}
,
e
}
)(t.SlotTimelineState);
t.DeformTimelineState = u;
var _ = (function(t) {
function e() {
return null !== t && t.apply(this, arguments) || this
}
return s(e, t),
e.toString = function() {
return "[class dragonBones.IKConstraintTimelineState]"
}
,
e.prototype._onClear = function() {
t.prototype._onClear.call(this),
this._current = 0,
this._delta = 0
}
,
e.prototype._onArriveAtFrame = function() {
t.prototype._onArriveAtFrame.call(this);
var e = this.constraint;
if (null !== this._timelineData) {
var i = this._animationData.frameIntOffset + this._frameValueOffset + 2 * this._frameIndex
, n = this._frameIntArray
, r = 0 !== n[i++];
this._current = .01 * n[i++],
2 === this._tweenState ? (this._frameIndex === this._frameCount - 1 && (i = this._animationData.frameIntOffset + this._frameValueOffset),
this._delta = .01 * n[i + 1] - this._current) : this._delta = 0,
e._bendPositive = r
} else {
var s = e._constraintData;
this._current = s.weight,
this._delta = 0,
e._bendPositive = s.bendPositive
}
e.invalidUpdate()
}
,
e.prototype._onUpdateFrame = function() {
t.prototype._onUpdateFrame.call(this),
2 !== this._tweenState && (this._tweenState = 0);
var e = this.constraint;
e._weight = this._current + this._delta * this._tweenProgress,
e.invalidUpdate()
}
,
e
}
)(t.ConstraintTimelineState);
t.IKConstraintTimelineState = _;
var f = (function(t) {
function e() {
var e = null !== t && t.apply(this, arguments) || this;
return e._floats = [0, 0, 0, 0, 0, 0],
e
}
return s(e, t),
e.toString = function() {
return "[class dragonBones.AnimationTimelineState]"
}
,
e.prototype._onClear = function() {
t.prototype._onClear.call(this),
this.animationState = null
}
,
e.prototype._onArriveAtFrame = function() {
if (t.prototype._onArriveAtFrame.call(this),
null !== this._timelineData) {
var e = this._animationData.frameIntOffset + this._frameValueOffset + 2 * this._frameIndex
, i = 1 / this.animationState._animationData.parent.frameRate
, n = this._frameIntArray;
this._floats[0] = n[e++] * i,
this._floats[3] = .01 * n[e++],
2 === this._tweenState ? (this._frameIndex === this._frameCount - 1 && (e = this._animationData.frameIntOffset + this._frameValueOffset),
this._floats[1] = n[e++] * i - this._floats[0],
this._floats[4] = .01 * n[e++] - this._floats[3]) : (this._floats[1] = 0,
this._floats[4] = 0)
}
}
,
e.prototype._onUpdateFrame = function() {
t.prototype._onUpdateFrame.call(this),
2 !== this._tweenState && (this._tweenState = 0),
this._floats[0] >= 0 && (this._floats[2] = this._floats[0] + this._floats[1] * this._tweenProgress),
this._floats[5] = this._floats[3] + this._floats[4] * this._tweenProgress
}
,
e.prototype.blend = function(t) {
var e = this.animationState
, i = e._blendState.blendWeight;
2 === t ? (e.weight += this._floats[5] * i,
e.currentTime += this._floats[2] * i) : (e.weight = this._floats[5] * i,
e.currentTime = this._floats[2] * i)
}
,
e
}
)(t.TweenTimelineState);
t.AnimationTimelineState = f
}
)(r || (r = {})),
(function(t) {
var e = (function(t) {
function e() {
return null !== t && t.apply(this, arguments) || this
}
return s(e, t),
e.actionDataToInstance = function(t, i, n) {
0 === t.type ? i.type = e.FRAME_EVENT : i.type = 10 === t.type ? e.FRAME_EVENT : e.SOUND_EVENT,
i.name = t.name,
i.armature = n,
i.actionData = t,
i.data = t.data,
null !== t.bone && (i.bone = n.getBone(t.bone.name)),
null !== t.slot && (i.slot = n.getSlot(t.slot.name))
}
,
e.toString = function() {
return "[class dragonBones.EventObject]"
}
,
e.prototype._onClear = function() {
this.time = 0,
this.type = "",
this.name = "",
this.armature = null,
this.bone = null,
this.slot = null,
this.animationState = null,
this.actionData = null,
this.data = null
}
,
e.START = "start",
e.LOOP_COMPLETE = "loopComplete",
e.COMPLETE = "complete",
e.FADE_IN = "fadeIn",
e.FADE_IN_COMPLETE = "fadeInComplete",
e.FADE_OUT = "fadeOut",
e.FADE_OUT_COMPLETE = "fadeOutComplete",
e.FRAME_EVENT = "frameEvent",
e.SOUND_EVENT = "soundEvent",
e
}
)(t.BaseObject);
t.EventObject = e
}
)(r || (r = {})),
(function(t) {
var e = (function() {
function e() {}
return e._getArmatureType = function(t) {
switch (t.toLowerCase()) {
case "stage":
return 2;
case "armature":
return 0;
case "movieclip":
return 1;
default:
return 0
}
}
,
e._getBoneType = function(t) {
switch (t.toLowerCase()) {
case "bone":
return 0;
case "surface":
return 1;
default:
return 0
}
}
,
e._getDisplayType = function(t) {
switch (t.toLowerCase()) {
case "image":
return 0;
case "mesh":
return 2;
case "armature":
return 1;
case "boundingbox":
return 3;
case "path":
return 4;
default:
return 0
}
}
,
e._getBoundingBoxType = function(t) {
switch (t.toLowerCase()) {
case "rectangle":
return 0;
case "ellipse":
return 1;
case "polygon":
return 2;
default:
return 0
}
}
,
e._getActionType = function(t) {
switch (t.toLowerCase()) {
case "play":
return 0;
case "frame":
return 10;
case "sound":
return 11;
default:
return 0
}
}
,
e._getBlendMode = function(t) {
switch (t.toLowerCase()) {
case "normal":
return 0;
case "add":
return 1;
case "alpha":
return 2;
case "darken":
return 3;
case "difference":
return 4;
case "erase":
return 5;
case "hardlight":
return 6;
case "invert":
return 7;
case "layer":
return 8;
case "lighten":
return 9;
case "multiply":
return 10;
case "overlay":
return 11;
case "screen":
return 12;
case "subtract":
return 13;
default:
return 0
}
}
,
e._getPositionMode = function(t) {
switch (t.toLocaleLowerCase()) {
case "percent":
return 1;
case "fixed":
return 0;
default:
return 1
}
}
,
e._getSpacingMode = function(t) {
switch (t.toLocaleLowerCase()) {
case "length":
return 0;
case "percent":
return 2;
case "fixed":
return 1;
default:
return 0
}
}
,
e._getRotateMode = function(t) {
switch (t.toLocaleLowerCase()) {
case "tangent":
return 0;
case "chain":
return 1;
case "chainscale":
return 2;
default:
return 0
}
}
,
e.parseDragonBonesData = function(e) {
return console.warn("Deprecated."),
e instanceof ArrayBuffer ? t.BinaryDataParser.getInstance().parseDragonBonesData(e) : t.ObjectDataParser.getInstance().parseDragonBonesData(e)
}
,
e.parseTextureAtlasData = function(i, n) {
void 0 === n && (n = 1),
console.warn("\u5df2\u5e9f\u5f03");
for (var r = {}, s = i[e.SUB_TEXTURE], a = 0, o = s.length; a < o; a++) {
var l = s[a]
, h = l[e.NAME]
, c = new t.Rectangle
, u = null;
c.x = l[e.X] / n,
c.y = l[e.Y] / n,
c.width = l[e.WIDTH] / n,
c.height = l[e.HEIGHT] / n,
e.FRAME_WIDTH in l && ((u = new t.Rectangle).x = l[e.FRAME_X] / n,
u.y = l[e.FRAME_Y] / n,
u.width = l[e.FRAME_WIDTH] / n,
u.height = l[e.FRAME_HEIGHT] / n),
r[h] = {
region: c,
frame: u,
rotated: !1
}
}
return r
}
,
e.DATA_VERSION_2_3 = "2.3",
e.DATA_VERSION_3_0 = "3.0",
e.DATA_VERSION_4_0 = "4.0",
e.DATA_VERSION_4_5 = "4.5",
e.DATA_VERSION_5_0 = "5.0",
e.DATA_VERSION_5_5 = "5.5",
e.DATA_VERSION = e.DATA_VERSION_5_5,
e.DATA_VERSIONS = [e.DATA_VERSION_4_0, e.DATA_VERSION_4_5, e.DATA_VERSION_5_0, e.DATA_VERSION_5_5],
e.TEXTURE_ATLAS = "textureAtlas",
e.SUB_TEXTURE = "SubTexture",
e.FORMAT = "format",
e.IMAGE_PATH = "imagePath",
e.WIDTH = "width",
e.HEIGHT = "height",
e.ROTATED = "rotated",
e.FRAME_X = "frameX",
e.FRAME_Y = "frameY",
e.FRAME_WIDTH = "frameWidth",
e.FRAME_HEIGHT = "frameHeight",
e.DRADON_BONES = "dragonBones",
e.USER_DATA = "userData",
e.ARMATURE = "armature",
e.BONE = "bone",
e.SURFACE = "surface",
e.SLOT = "slot",
e.CONSTRAINT = "constraint",
e.IK = "ik",
e.PATH_CONSTRAINT = "path",
e.SKIN = "skin",
e.DISPLAY = "display",
e.ANIMATION = "animation",
e.Z_ORDER = "zOrder",
e.FFD = "ffd",
e.FRAME = "frame",
e.TRANSLATE_FRAME = "translateFrame",
e.ROTATE_FRAME = "rotateFrame",
e.SCALE_FRAME = "scaleFrame",
e.DISPLAY_FRAME = "displayFrame",
e.COLOR_FRAME = "colorFrame",
e.DEFAULT_ACTIONS = "defaultActions",
e.ACTIONS = "actions",
e.EVENTS = "events",
e.INTS = "ints",
e.FLOATS = "floats",
e.STRINGS = "strings",
e.CANVAS = "canvas",
e.TRANSFORM = "transform",
e.PIVOT = "pivot",
e.AABB = "aabb",
e.COLOR = "color",
e.VERSION = "version",
e.COMPATIBLE_VERSION = "compatibleVersion",
e.FRAME_RATE = "frameRate",
e.TYPE = "type",
e.SUB_TYPE = "subType",
e.NAME = "name",
e.PARENT = "parent",
e.TARGET = "target",
e.STAGE = "stage",
e.SHARE = "share",
e.PATH = "path",
e.LENGTH = "length",
e.DISPLAY_INDEX = "displayIndex",
e.BLEND_MODE = "blendMode",
e.INHERIT_TRANSLATION = "inheritTranslation",
e.INHERIT_ROTATION = "inheritRotation",
e.INHERIT_SCALE = "inheritScale",
e.INHERIT_REFLECTION = "inheritReflection",
e.INHERIT_ANIMATION = "inheritAnimation",
e.INHERIT_DEFORM = "inheritDeform",
e.SEGMENT_X = "segmentX",
e.SEGMENT_Y = "segmentY",
e.BEND_POSITIVE = "bendPositive",
e.CHAIN = "chain",
e.WEIGHT = "weight",
e.FADE_IN_TIME = "fadeInTime",
e.PLAY_TIMES = "playTimes",
e.SCALE = "scale",
e.OFFSET = "offset",
e.POSITION = "position",
e.DURATION = "duration",
e.TWEEN_EASING = "tweenEasing",
e.TWEEN_ROTATE = "tweenRotate",
e.TWEEN_SCALE = "tweenScale",
e.CLOCK_WISE = "clockwise",
e.CURVE = "curve",
e.SOUND = "sound",
e.EVENT = "event",
e.ACTION = "action",
e.X = "x",
e.Y = "y",
e.SKEW_X = "skX",
e.SKEW_Y = "skY",
e.SCALE_X = "scX",
e.SCALE_Y = "scY",
e.VALUE = "value",
e.ROTATE = "rotate",
e.SKEW = "skew",
e.ALPHA_OFFSET = "aO",
e.RED_OFFSET = "rO",
e.GREEN_OFFSET = "gO",
e.BLUE_OFFSET = "bO",
e.ALPHA_MULTIPLIER = "aM",
e.RED_MULTIPLIER = "rM",
e.GREEN_MULTIPLIER = "gM",
e.BLUE_MULTIPLIER = "bM",
e.UVS = "uvs",
e.VERTICES = "vertices",
e.TRIANGLES = "triangles",
e.WEIGHTS = "weights",
e.SLOT_POSE = "slotPose",
e.BONE_POSE = "bonePose",
e.GLUE_WEIGHTS = "glueWeights",
e.GLUE_MESHES = "glueMeshes",
e.BONES = "bones",
e.POSITION_MODE = "positionMode",
e.SPACING_MODE = "spacingMode",
e.ROTATE_MODE = "rotateMode",
e.SPACING = "spacing",
e.ROTATE_OFFSET = "rotateOffset",
e.ROTATE_MIX = "rotateMix",
e.TRANSLATE_MIX = "translateMix",
e.TARGET_DISPLAY = "targetDisplay",
e.CLOSED = "closed",
e.CONSTANT_SPEED = "constantSpeed",
e.VERTEX_COUNT = "vertexCount",
e.LENGTHS = "lengths",
e.GOTO_AND_PLAY = "gotoAndPlay",
e.DEFAULT_NAME = "default",
e
}
)();
t.DataParser = e
}
)(r || (r = {})),
(function(t) {
var e = (function(e) {
function n() {
var i = null !== e && e.apply(this, arguments) || this;
return i._rawTextureAtlasIndex = 0,
i._rawBones = [],
i._data = null,
i._armature = null,
i._bone = null,
i._surface = null,
i._slot = null,
i._skin = null,
i._mesh = null,
i._animation = null,
i._timeline = null,
i._rawTextureAtlases = null,
i._defaultColorOffset = -1,
i._prevClockwise = 0,
i._prevRotation = 0,
i._helpMatrixA = new t.Matrix,
i._helpMatrixB = new t.Matrix,
i._helpTransform = new t.Transform,
i._helpColorTransform = new t.ColorTransform,
i._helpPoint = new t.Point,
i._helpArray = [],
i._intArray = [],
i._floatArray = [],
i._frameIntArray = [],
i._frameFloatArray = [],
i._frameArray = [],
i._timelineArray = [],
i._cacheRawMeshes = [],
i._cacheMeshes = [],
i._actionFrames = [],
i._weightSlotPose = {},
i._weightBonePoses = {},
i._cacheBones = {},
i._slotChildActions = {},
i
}
return s(n, e),
n._getBoolean = function(t, e, i) {
if (e in t) {
var n = t[e]
, r = typeof n;
if ("boolean" === r)
return n;
if ("string" !== r)
return !!n;
switch (n) {
case "0":
case "NaN":
case "":
case "false":
case "null":
case "undefined":
return !1;
default:
return !0
}
}
return i
}
,
n._getNumber = function(t, e, i) {
if (e in t) {
var n = t[e];
return null === n || "NaN" === n ? i : +n || 0
}
return i
}
,
n._getString = function(e, i, n) {
if (i in e) {
var r = e[i];
if ("string" == typeof r) {
if (t.DragonBones.webAssembly)
for (var s = 0, a = r.length; s < a; ++s)
if (r.charCodeAt(s) > 255)
return encodeURI(r);
return r
}
return String(r)
}
return n
}
,
n.prototype._getCurvePoint = function(t, e, i, n, r, s, a, o, l, h) {
var c = 1 - l
, u = c * c
, _ = l * l
, f = c * u
, d = 3 * l * u
, p = 3 * c * _
, m = l * _;
h.x = f * t + d * i + p * r + m * a,
h.y = f * e + d * n + p * s + m * o
}
,
n.prototype._samplingEasingCurve = function(t, e) {
for (var i = t.length, n = -2, r = 0, s = e.length; r < s; ++r) {
for (var a = (r + 1) / (s + 1); (n + 6 < i ? t[n + 6] : 1) < a; )
n += 6;
for (var o = n >= 0 && n + 6 < i, l = o ? t[n] : 0, h = o ? t[n + 1] : 0, c = t[n + 2], u = t[n + 3], _ = t[n + 4], f = t[n + 5], d = o ? t[n + 6] : 1, p = o ? t[n + 7] : 1, m = 0, y = 1; y - m > 1e-4; ) {
var v = .5 * (y + m);
this._getCurvePoint(l, h, c, u, _, f, d, p, v, this._helpPoint),
a - this._helpPoint.x > 0 ? m = v : y = v
}
e[r] = this._helpPoint.y
}
}
,
n.prototype._parseActionDataInFrame = function(e, i, n, r) {
t.DataParser.EVENT in e && this._mergeActionFrame(e[t.DataParser.EVENT], i, 10, n, r),
t.DataParser.SOUND in e && this._mergeActionFrame(e[t.DataParser.SOUND], i, 11, n, r),
t.DataParser.ACTION in e && this._mergeActionFrame(e[t.DataParser.ACTION], i, 0, n, r),
t.DataParser.EVENTS in e && this._mergeActionFrame(e[t.DataParser.EVENTS], i, 10, n, r),
t.DataParser.ACTIONS in e && this._mergeActionFrame(e[t.DataParser.ACTIONS], i, 0, n, r)
}
,
n.prototype._mergeActionFrame = function(e, n, r, s, a) {
for (var o = t.DragonBones.webAssembly ? this._armature.actions.size() : this._armature.actions.length, l = this._parseActionData(e, r, s, a), h = 0, c = null, u = 0, _ = l; u < _.length; u++) {
var f = _[u];
this._armature.addAction(f, !1)
}
0 === this._actionFrames.length && ((c = new i).frameStart = 0,
this._actionFrames.push(c),
c = null);
for (var d = 0, p = this._actionFrames; d < p.length; d++) {
var m = p[d];
if (m.frameStart === n) {
c = m;
break
}
if (m.frameStart > n)
break;
h++
}
null === c && ((c = new i).frameStart = n,
this._actionFrames.splice(h + 1, 0, c));
for (var y = 0; y < l.length; ++y)
c.actions.push(o + y)
}
,
n.prototype._parseArmature = function(e, i) {
var r = t.BaseObject.borrowObject(t.ArmatureData);
if (r.name = n._getString(e, t.DataParser.NAME, ""),
r.frameRate = n._getNumber(e, t.DataParser.FRAME_RATE, this._data.frameRate),
r.scale = i,
t.DataParser.TYPE in e && "string" == typeof e[t.DataParser.TYPE] ? r.type = t.DataParser._getArmatureType(e[t.DataParser.TYPE]) : r.type = n._getNumber(e, t.DataParser.TYPE, 0),
0 === r.frameRate && (r.frameRate = 24),
this._armature = r,
t.DataParser.CANVAS in e) {
var s = e[t.DataParser.CANVAS]
, a = t.BaseObject.borrowObject(t.CanvasData);
t.DataParser.COLOR in s ? a.hasBackground = !0 : a.hasBackground = !1,
a.color = n._getNumber(s, t.DataParser.COLOR, 0),
a.x = n._getNumber(s, t.DataParser.X, 0) * r.scale,
a.y = n._getNumber(s, t.DataParser.Y, 0) * r.scale,
a.width = n._getNumber(s, t.DataParser.WIDTH, 0) * r.scale,
a.height = n._getNumber(s, t.DataParser.HEIGHT, 0) * r.scale,
r.canvas = a
}
if (t.DataParser.AABB in e) {
var o = e[t.DataParser.AABB];
r.aabb.x = n._getNumber(o, t.DataParser.X, 0) * r.scale,
r.aabb.y = n._getNumber(o, t.DataParser.Y, 0) * r.scale,
r.aabb.width = n._getNumber(o, t.DataParser.WIDTH, 0) * r.scale,
r.aabb.height = n._getNumber(o, t.DataParser.HEIGHT, 0) * r.scale
}
if (t.DataParser.BONE in e)
for (var l = 0, h = e[t.DataParser.BONE]; l < h.length; l++) {
var c = h[l]
, u = n._getString(c, t.DataParser.PARENT, "")
, _ = this._parseBone(c);
if (u.length > 0) {
var f = r.getBone(u);
null !== f ? _.parent = f : (u in this._cacheBones || (this._cacheBones[u] = []),
this._cacheBones[u].push(_))
}
if (_.name in this._cacheBones) {
for (var d = 0, p = this._cacheBones[_.name]; d < p.length; d++)
p[d].parent = _;
delete this._cacheBones[_.name]
}
r.addBone(_),
this._rawBones.push(_)
}
if (t.DataParser.IK in e)
for (var m = 0, y = e[t.DataParser.IK]; m < y.length; m++) {
var v = y[m];
(M = this._parseIKConstraint(v)) && r.addConstraint(M)
}
if (r.sortBones(),
t.DataParser.SLOT in e)
for (var g = 0, A = 0, x = e[t.DataParser.SLOT]; A < x.length; A++) {
var b = x[A];
r.addSlot(this._parseSlot(b, g++))
}
if (t.DataParser.SKIN in e)
for (var C = 0, T = e[t.DataParser.SKIN]; C < T.length; C++) {
var S = T[C];
r.addSkin(this._parseSkin(S))
}
if (t.DataParser.PATH_CONSTRAINT in e)
for (var w = 0, E = e[t.DataParser.PATH_CONSTRAINT]; w < E.length; w++) {
var M, D = E[w];
(M = this._parsePathConstraint(D)) && r.addConstraint(M)
}
for (var B = 0, I = this._cacheRawMeshes.length; B < I; ++B) {
var P = this._cacheRawMeshes[B];
t.DataParser.GLUE_WEIGHTS in P && t.DataParser.GLUE_MESHES in P && this._parseMeshGlue(P, this._cacheMeshes[B])
}
for (B = 0,
I = this._cacheRawMeshes.length; B < I; ++B) {
var R = this._cacheRawMeshes[B]
, O = n._getString(R, t.DataParser.SHARE, "");
if (0 !== O.length) {
var L = n._getString(R, t.DataParser.SKIN, t.DataParser.DEFAULT_NAME);
0 === L.length && (L = t.DataParser.DEFAULT_NAME);
var F = r.getMesh(L, "", O);
null !== F && this._cacheMeshes[B].vertices.shareFrom(F.vertices)
}
}
if (t.DataParser.ANIMATION in e)
for (var V = 0, N = e[t.DataParser.ANIMATION]; V < N.length; V++) {
var k = N[V]
, G = this._parseAnimation(k);
r.addAnimation(G)
}
if (t.DataParser.DEFAULT_ACTIONS in e)
for (var U = 0, z = this._parseActionData(e[t.DataParser.DEFAULT_ACTIONS], 0, null, null); U < z.length; U++) {
var H = z[U];
r.addAction(H, !0),
0 === H.type && null !== (G = r.getAnimation(H.name)) && (r.defaultAnimation = G)
}
if (t.DataParser.ACTIONS in e)
for (var W = 0, j = this._parseActionData(e[t.DataParser.ACTIONS], 0, null, null); W < j.length; W++)
H = j[W],
r.addAction(H, !1);
for (var X in this._rawBones.length = 0,
this._cacheRawMeshes.length = 0,
this._cacheMeshes.length = 0,
this._armature = null,
this._weightSlotPose)
delete this._weightSlotPose[X];
for (var X in this._weightBonePoses)
delete this._weightBonePoses[X];
for (var X in this._cacheBones)
delete this._cacheBones[X];
for (var X in this._slotChildActions)
delete this._slotChildActions[X];
return r
}
,
n.prototype._parseBone = function(e) {
var i = this._armature.scale;
if (0 === (t.DataParser.TYPE in e && "string" == typeof e[t.DataParser.TYPE] ? t.DataParser._getBoneType(e[t.DataParser.TYPE]) : n._getNumber(e, t.DataParser.TYPE, 0))) {
var r = t.BaseObject.borrowObject(t.BoneData);
return r.inheritTranslation = n._getBoolean(e, t.DataParser.INHERIT_TRANSLATION, !0),
r.inheritRotation = n._getBoolean(e, t.DataParser.INHERIT_ROTATION, !0),
r.inheritScale = n._getBoolean(e, t.DataParser.INHERIT_SCALE, !0),
r.inheritReflection = n._getBoolean(e, t.DataParser.INHERIT_REFLECTION, !0),
r.length = n._getNumber(e, t.DataParser.LENGTH, 0) * i,
r.name = n._getString(e, t.DataParser.NAME, ""),
t.DataParser.TRANSFORM in e && this._parseTransform(e[t.DataParser.TRANSFORM], r.transform, i),
r
}
var s = t.BaseObject.borrowObject(t.SurfaceData);
if (s.name = n._getString(e, t.DataParser.NAME, ""),
s.segmentX = n._getNumber(e, t.DataParser.SEGMENT_X, 0),
s.segmentY = n._getNumber(e, t.DataParser.SEGMENT_Y, 0),
s.vertices.length = (s.segmentX + 1) * (s.segmentY + 1) * 2,
t.DataParser.VERTICES in e)
for (var a = e[t.DataParser.VERTICES], o = 0, l = s.vertices.length; o < l; ++o)
o < a.length ? s.vertices[o] = a[o] * i : s.vertices[o] = 0;
return s
}
,
n.prototype._parseIKConstraint = function(e) {
var i = this._armature.getBone(n._getString(e, t.DataParser.BONE, ""));
if (null === i)
return null;
var r = this._armature.getBone(n._getString(e, t.DataParser.TARGET, ""));
if (null === r)
return null;
var s = t.BaseObject.borrowObject(t.IKConstraintData);
return s.scaleEnabled = n._getBoolean(e, t.DataParser.SCALE, !1),
s.bendPositive = n._getBoolean(e, t.DataParser.BEND_POSITIVE, !0),
s.weight = n._getNumber(e, t.DataParser.WEIGHT, 1),
s.name = n._getString(e, t.DataParser.NAME, ""),
s.type = 0,
s.target = r,
n._getNumber(e, t.DataParser.CHAIN, 0) > 0 && null !== i.parent ? (s.root = i.parent,
s.bone = i) : (s.root = i,
s.bone = null),
s
}
,
n.prototype._parsePathConstraint = function(e) {
var i = this._armature.getSlot(n._getString(e, t.DataParser.TARGET, ""));
if (null === i)
return null;
var r = this._armature.defaultSkin;
if (null === r)
return null;
var s = r.getDisplay(i.name, n._getString(e, t.DataParser.TARGET_DISPLAY, i.name));
if (null === s || !(s instanceof t.PathDisplayData))
return null;
var a = e[t.DataParser.BONES];
if (null === a || 0 === a.length)
return null;
var o = t.BaseObject.borrowObject(t.PathConstraintData);
o.name = n._getString(e, t.DataParser.NAME, ""),
o.type = 1,
o.pathSlot = i,
o.pathDisplayData = s,
o.target = i.parent,
o.positionMode = t.DataParser._getPositionMode(n._getString(e, t.DataParser.POSITION_MODE, "")),
o.spacingMode = t.DataParser._getSpacingMode(n._getString(e, t.DataParser.SPACING_MODE, "")),
o.rotateMode = t.DataParser._getRotateMode(n._getString(e, t.DataParser.ROTATE_MODE, "")),
o.position = n._getNumber(e, t.DataParser.POSITION, 0),
o.spacing = n._getNumber(e, t.DataParser.SPACING, 0),
o.rotateOffset = n._getNumber(e, t.DataParser.ROTATE_OFFSET, 0),
o.rotateMix = n._getNumber(e, t.DataParser.ROTATE_MIX, 1),
o.translateMix = n._getNumber(e, t.DataParser.TRANSLATE_MIX, 1);
for (var l = 0, h = a; l < h.length; l++) {
var c = h[l]
, u = this._armature.getBone(c);
null !== u && (o.AddBone(u),
null === o.root && (o.root = u))
}
return o
}
,
n.prototype._parseSlot = function(e, i) {
var r = t.BaseObject.borrowObject(t.SlotData);
return r.displayIndex = n._getNumber(e, t.DataParser.DISPLAY_INDEX, 0),
r.zOrder = i,
r.name = n._getString(e, t.DataParser.NAME, ""),
r.parent = this._armature.getBone(n._getString(e, t.DataParser.PARENT, "")),
t.DataParser.BLEND_MODE in e && "string" == typeof e[t.DataParser.BLEND_MODE] ? r.blendMode = t.DataParser._getBlendMode(e[t.DataParser.BLEND_MODE]) : r.blendMode = n._getNumber(e, t.DataParser.BLEND_MODE, 0),
t.DataParser.COLOR in e ? (r.color = t.SlotData.createColor(),
this._parseColorTransform(e[t.DataParser.COLOR], r.color)) : r.color = t.SlotData.DEFAULT_COLOR,
t.DataParser.ACTIONS in e && (this._slotChildActions[r.name] = this._parseActionData(e[t.DataParser.ACTIONS], 0, null, null)),
r
}
,
n.prototype._parseSkin = function(e) {
var i = t.BaseObject.borrowObject(t.SkinData);
if (i.name = n._getString(e, t.DataParser.NAME, t.DataParser.DEFAULT_NAME),
0 === i.name.length && (i.name = t.DataParser.DEFAULT_NAME),
t.DataParser.SLOT in e) {
var r = e[t.DataParser.SLOT];
this._skin = i;
for (var s = 0, a = r; s < a.length; s++) {
var o = a[s]
, l = n._getString(o, t.DataParser.NAME, "")
, h = this._armature.getSlot(l);
if (null !== h) {
if (this._slot = h,
t.DataParser.DISPLAY in o)
for (var c = 0, u = o[t.DataParser.DISPLAY]; c < u.length; c++) {
var _ = u[c];
_ ? i.addDisplay(l, this._parseDisplay(_)) : i.addDisplay(l, null)
}
this._slot = null
}
}
this._skin = null
}
return i
}
,
n.prototype._parseDisplay = function(e) {
var i = n._getString(e, t.DataParser.NAME, "")
, r = n._getString(e, t.DataParser.PATH, "")
, s = 0
, a = null;
switch (s = t.DataParser.TYPE in e && "string" == typeof e[t.DataParser.TYPE] ? t.DataParser._getDisplayType(e[t.DataParser.TYPE]) : n._getNumber(e, t.DataParser.TYPE, s)) {
case 0:
var o = a = t.BaseObject.borrowObject(t.ImageDisplayData);
o.name = i,
o.path = r.length > 0 ? r : i,
this._parsePivot(e, o);
break;
case 1:
var l = a = t.BaseObject.borrowObject(t.ArmatureDisplayData);
if (l.name = i,
l.path = r.length > 0 ? r : i,
l.inheritAnimation = !0,
t.DataParser.ACTIONS in e)
for (var h = 0, c = this._parseActionData(e[t.DataParser.ACTIONS], 0, null, null); h < c.length; h++) {
var u = c[h];
l.addAction(u)
}
else if (this._slot.name in this._slotChildActions) {
var _ = this._skin.getDisplays(this._slot.name);
if (null === _ ? 0 === this._slot.displayIndex : this._slot.displayIndex === _.length) {
for (var f = 0, d = this._slotChildActions[this._slot.name]; f < d.length; f++)
u = d[f],
l.addAction(u);
delete this._slotChildActions[this._slot.name]
}
}
break;
case 2:
var p = a = t.BaseObject.borrowObject(t.MeshDisplayData);
p.vertices.inheritDeform = n._getBoolean(e, t.DataParser.INHERIT_DEFORM, !0),
p.name = i,
p.path = r.length > 0 ? r : i,
p.vertices.data = this._data,
t.DataParser.SHARE in e ? (this._cacheRawMeshes.push(e),
this._cacheMeshes.push(p)) : this._parseMesh(e, p),
t.DataParser.GLUE_WEIGHTS in e && t.DataParser.GLUE_MESHES in e && (this._cacheRawMeshes.push(e),
this._cacheMeshes.push(p));
break;
case 3:
var m = this._parseBoundingBox(e);
if (null !== m) {
var y = a = t.BaseObject.borrowObject(t.BoundingBoxDisplayData);
y.name = i,
y.path = r.length > 0 ? r : i,
y.boundingBox = m
}
break;
case 4:
var v = e[t.DataParser.LENGTHS]
, g = a = t.BaseObject.borrowObject(t.PathDisplayData);
g.closed = n._getBoolean(e, t.DataParser.CLOSED, !1),
g.constantSpeed = n._getBoolean(e, t.DataParser.CONSTANT_SPEED, !1),
g.name = i,
g.path = r.length > 0 ? r : i,
g.vertices.data = this._data,
g.curveLengths.length = v.length;
for (var A = 0, x = v.length; A < x; ++A)
g.curveLengths[A] = v[A];
this._parsePath(e, g)
}
return null !== a && t.DataParser.TRANSFORM in e && this._parseTransform(e[t.DataParser.TRANSFORM], a.transform, this._armature.scale),
a
}
,
n.prototype._parsePath = function(e, i) {
var r = e[t.DataParser.VERTICES]
, s = n._getNumber(e, t.DataParser.VERTEX_COUNT, 0)
, a = this._floatArray.length
, o = this._intArray.length;
if (i.vertices.offset = o,
this._intArray.length += 2,
this._intArray[o + 0] = s,
this._intArray[o + 2] = a,
t.DataParser.WEIGHTS in e) {
var l = e[t.DataParser.WEIGHTS]
, h = e[t.DataParser.BONES]
, c = h.length
, u = Math.floor(l.length - s) / 2
, _ = this._intArray.length
, f = this._floatArray.length
, d = this._armature.sortedBones
, p = t.BaseObject.borrowObject(t.WeightData);
for (p.count = u,
p.offset = _,
this._intArray.length += 2 + c + s + u,
this._intArray[_ + 0] = c,
this._intArray[_ + 1] = f,
M = 0; M < c; M++) {
var m = h[M]
, y = this._rawBones[m];
p.addBone(y),
this._intArray[_ + 2 + M] = d.indexOf(y)
}
this._floatArray.length += 3 * u,
M = 0;
for (var v = 0, g = 0, A = _ + 2 + c, x = f; M < u; M++) {
var b = l[v++];
this._intArray[A++] = b;
for (var C = 0; C < b; C++) {
var T = l[v++]
, S = l[v++]
, w = r[g++]
, E = r[g++];
this._intArray[A++] = h.indexOf(T),
this._floatArray[x++] = S,
this._floatArray[x++] = w,
this._floatArray[x++] = E
}
}
i.vertices.weight = p
} else {
this._floatArray.length += r.length;
for (var M = 0, D = r.length; M < D; ++M)
this._floatArray[a + M] = r[M]
}
}
,
n.prototype._parsePivot = function(e, i) {
if (t.DataParser.PIVOT in e) {
var r = e[t.DataParser.PIVOT];
i.pivot.x = n._getNumber(r, t.DataParser.X, 0),
i.pivot.y = n._getNumber(r, t.DataParser.Y, 0)
} else
i.pivot.x = .5,
i.pivot.y = .5
}
,
n.prototype._parseMesh = function(e, i) {
var n = e[t.DataParser.VERTICES]
, r = e[t.DataParser.UVS]
, s = e[t.DataParser.TRIANGLES]
, a = Math.floor(n.length / 2)
, o = Math.floor(s.length / 3)
, l = this._floatArray.length
, h = l + 2 * a
, c = this._intArray.length
, u = this._skin.name + "_" + this._slot.name + "_" + i.name;
i.vertices.offset = c,
this._intArray.length += 4 + 3 * o,
this._intArray[c + 0] = a,
this._intArray[c + 1] = o,
this._intArray[c + 2] = l;
for (var _ = 0, f = 3 * o; _ < f; ++_)
this._intArray[c + 4 + _] = s[_];
for (this._floatArray.length += 2 * a + 2 * a,
_ = 0,
f = 2 * a; _ < f; ++_)
this._floatArray[l + _] = n[_],
this._floatArray[h + _] = r[_];
if (t.DataParser.WEIGHTS in e) {
var d = e[t.DataParser.WEIGHTS]
, p = e[t.DataParser.SLOT_POSE]
, m = e[t.DataParser.BONE_POSE]
, y = this._armature.sortedBones
, v = new Array
, g = Math.floor(m.length / 7)
, A = this._floatArray.length
, x = Math.floor(d.length - a) / 2
, b = this._intArray.length
, C = t.BaseObject.borrowObject(t.WeightData);
for (C.count = x,
C.offset = b,
v.length = g,
this._intArray.length += 2 + g + a + x,
this._intArray[b + 1] = A,
_ = 0; _ < g; ++_) {
var T = m[7 * _]
, S = this._rawBones[T];
C.addBone(S),
v[_] = T,
this._intArray[b + 2 + _] = y.indexOf(S)
}
this._floatArray.length += 3 * x,
this._helpMatrixA.copyFromArray(p, 0),
_ = 0;
for (var w = 0, E = b + 2 + g, M = A; _ < a; ++_) {
var D = 2 * _
, B = this._intArray[E++] = d[w++]
, I = this._floatArray[l + D]
, P = this._floatArray[l + D + 1];
this._helpMatrixA.transformPoint(I, P, this._helpPoint),
I = this._helpPoint.x,
P = this._helpPoint.y;
for (var R = 0; R < B; ++R) {
T = d[w++];
var O = v.indexOf(T);
this._helpMatrixB.copyFromArray(m, 7 * O + 1),
this._helpMatrixB.invert(),
this._helpMatrixB.transformPoint(I, P, this._helpPoint),
this._intArray[E++] = O,
this._floatArray[M++] = d[w++],
this._floatArray[M++] = this._helpPoint.x,
this._floatArray[M++] = this._helpPoint.y
}
}
i.vertices.weight = C,
this._weightSlotPose[u] = p,
this._weightBonePoses[u] = m
}
}
,
n.prototype._parseMeshGlue = function() {}
,
n.prototype._parseBoundingBox = function(e) {
var i = null
, r = 0;
switch (r = t.DataParser.SUB_TYPE in e && "string" == typeof e[t.DataParser.SUB_TYPE] ? t.DataParser._getBoundingBoxType(e[t.DataParser.SUB_TYPE]) : n._getNumber(e, t.DataParser.SUB_TYPE, r)) {
case 0:
i = t.BaseObject.borrowObject(t.RectangleBoundingBoxData);
break;
case 1:
i = t.BaseObject.borrowObject(t.EllipseBoundingBoxData);
break;
case 2:
i = this._parsePolygonBoundingBox(e)
}
return null !== i && (i.color = n._getNumber(e, t.DataParser.COLOR, 0),
0 !== i.type && 1 !== i.type || (i.width = n._getNumber(e, t.DataParser.WIDTH, 0),
i.height = n._getNumber(e, t.DataParser.HEIGHT, 0))),
i
}
,
n.prototype._parsePolygonBoundingBox = function(e) {
var i = t.BaseObject.borrowObject(t.PolygonBoundingBoxData);
if (t.DataParser.VERTICES in e) {
var n = this._armature.scale
, r = e[t.DataParser.VERTICES]
, s = i.vertices;
t.DragonBones.webAssembly ? s.resize(r.length, 0) : s.length = r.length;
for (var a = 0, o = r.length; a < o; a += 2) {
var l = r[a] * n
, h = r[a + 1] * n;
t.DragonBones.webAssembly ? (s.set(a, l),
s.set(a + 1, h)) : (s[a] = l,
s[a + 1] = h),
0 === a ? (i.x = l,
i.y = h,
i.width = l,
i.height = h) : (l < i.x ? i.x = l : l > i.width && (i.width = l),
h < i.y ? i.y = h : h > i.height && (i.height = h))
}
i.width -= i.x,
i.height -= i.y
} else
console.warn("Data error.\n Please reexport DragonBones Data to fixed the bug.");
return i
}
,
n.prototype._parseAnimation = function(e) {
var i = t.BaseObject.borrowObject(t.AnimationData);
if (i.frameCount = Math.max(n._getNumber(e, t.DataParser.DURATION, 1), 1),
i.playTimes = n._getNumber(e, t.DataParser.PLAY_TIMES, 1),
i.duration = i.frameCount / this._armature.frameRate,
i.fadeInTime = n._getNumber(e, t.DataParser.FADE_IN_TIME, 0),
i.scale = n._getNumber(e, t.DataParser.SCALE, 1),
i.name = n._getString(e, t.DataParser.NAME, t.DataParser.DEFAULT_NAME),
0 === i.name.length && (i.name = t.DataParser.DEFAULT_NAME),
i.frameIntOffset = this._frameIntArray.length,
i.frameFloatOffset = this._frameFloatArray.length,
i.frameOffset = this._frameArray.length,
this._animation = i,
t.DataParser.FRAME in e) {
var r = e[t.DataParser.FRAME]
, s = r.length;
if (s > 0)
for (var a = 0, o = 0; a < s; ++a) {
var l = r[a];
this._parseActionDataInFrame(l, o, null, null),
o += n._getNumber(l, t.DataParser.DURATION, 1)
}
}
if (t.DataParser.Z_ORDER in e && (this._animation.zOrderTimeline = this._parseTimeline(e[t.DataParser.Z_ORDER], null, t.DataParser.FRAME, 1, !1, !1, 0, this._parseZOrderFrame)),
t.DataParser.BONE in e)
for (var h = 0, c = e[t.DataParser.BONE]; h < c.length; h++) {
var u = c[h];
this._parseBoneTimeline(u)
}
if (t.DataParser.SURFACE in e)
for (var _ = 0, f = e[t.DataParser.SURFACE]; _ < f.length; _++) {
u = f[_];
var d = n._getString(u, t.DataParser.NAME, "");
this._surface = this._armature.getBone(d),
null !== this._surface && (null !== (M = this._parseTimeline(u, null, t.DataParser.FRAME, 50, !1, !0, 0, this._parseSurfaceFrame)) && this._animation.addSurfaceTimeline(this._surface, M),
this._surface = null)
}
if (t.DataParser.SLOT in e)
for (var p = 0, m = e[t.DataParser.SLOT]; p < m.length; p++)
u = m[p],
this._parseSlotTimeline(u);
if (t.DataParser.FFD in e)
for (var y = 0, v = e[t.DataParser.FFD]; y < v.length; y++) {
u = v[y];
var g = n._getString(u, t.DataParser.SKIN, t.DataParser.DEFAULT_NAME)
, A = n._getString(u, t.DataParser.SLOT, "")
, x = n._getString(u, t.DataParser.NAME, "");
0 === g.length && (g = t.DataParser.DEFAULT_NAME),
this._slot = this._armature.getSlot(A),
this._mesh = this._armature.getMesh(g, A, x),
null !== this._slot && null !== this._mesh && (null !== (M = this._parseTimeline(u, null, t.DataParser.FRAME, 22, !1, !0, 0, this._parseSlotFFDFrame)) && this._animation.addSlotTimeline(this._slot, M),
this._slot = null,
this._mesh = null)
}
if (t.DataParser.IK in e)
for (var b = 0, C = e[t.DataParser.IK]; b < C.length; b++) {
u = C[b];
var T = n._getString(u, t.DataParser.NAME, "")
, S = this._armature.getConstraint(T);
null !== S && null !== (M = this._parseTimeline(u, null, t.DataParser.FRAME, 30, !0, !1, 2, this._parseIKConstraintFrame)) && this._animation.addConstraintTimeline(S, M)
}
if (t.DataParser.ANIMATION in e)
for (var w = 0, E = e[t.DataParser.ANIMATION]; w < E.length; w++) {
u = E[w];
var M, D = n._getString(u, t.DataParser.NAME, "");
null !== (M = this._parseTimeline(u, null, t.DataParser.FRAME, 40, !0, !1, 2, this._parseAnimationFrame)) && this._animation.addAnimationTimeline(D, M)
}
return this._actionFrames.length > 0 && (this._animation.actionTimeline = this._parseTimeline(null, this._actionFrames, "", 0, !1, !1, 0, this._parseActionFrame),
this._actionFrames.length = 0),
this._animation = null,
i
}
,
n.prototype._parseTimeline = function(e, r, s, a, o, l, h, c) {
if (null !== e && s.length > 0 && s in e && (r = e[s]),
null === r)
return null;
var u = r.length;
if (0 === u)
return null;
var _ = this._frameIntArray.length
, f = this._frameFloatArray.length
, d = t.BaseObject.borrowObject(t.TimelineData)
, p = this._timelineArray.length;
if (this._timelineArray.length += 5 + u,
null !== e ? (this._timelineArray[p + 0] = Math.round(100 * n._getNumber(e, t.DataParser.SCALE, 1)),
this._timelineArray[p + 1] = Math.round(100 * n._getNumber(e, t.DataParser.OFFSET, 0))) : (this._timelineArray[p + 0] = 100,
this._timelineArray[p + 1] = 0),
this._timelineArray[p + 2] = u,
this._timelineArray[p + 3] = h,
this._timelineArray[p + 4] = o ? _ - this._animation.frameIntOffset : l ? f - this._animation.frameFloatOffset : 0,
this._timeline = d,
d.type = a,
d.offset = p,
1 === u)
d.frameIndicesOffset = -1,
this._timelineArray[p + 5 + 0] = c.call(this, r[0], 0, 0) - this._animation.frameOffset;
else {
var m = this._animation.frameCount + 1
, y = this._data.frameIndices
, v = 0;
t.DragonBones.webAssembly ? (v = y.size(),
y.resize(v + m, 0)) : (v = y.length,
y.length += m),
d.frameIndicesOffset = v;
for (var g = 0, A = 0, x = 0, b = 0; g < m; ++g) {
if (x + b <= g && A < u) {
var C = r[A];
x = g,
b = A === u - 1 ? this._animation.frameCount - x : C instanceof i ? this._actionFrames[A + 1].frameStart - x : n._getNumber(C, t.DataParser.DURATION, 1),
this._timelineArray[p + 5 + A] = c.call(this, C, x, b) - this._animation.frameOffset,
A++
}
t.DragonBones.webAssembly ? y.set(v + g, A - 1) : y[v + g] = A - 1
}
}
return this._timeline = null,
d
}
,
n.prototype._parseBoneTimeline = function(e) {
var i, r = this._armature.getBone(n._getString(e, t.DataParser.NAME, ""));
null !== r && (this._bone = r,
this._slot = this._armature.getSlot(this._bone.name),
t.DataParser.TRANSLATE_FRAME in e && null !== (i = this._parseTimeline(e, null, t.DataParser.TRANSLATE_FRAME, 11, !1, !0, 2, this._parseBoneTranslateFrame)) && this._animation.addBoneTimeline(r, i),
t.DataParser.ROTATE_FRAME in e && null !== (i = this._parseTimeline(e, null, t.DataParser.ROTATE_FRAME, 12, !1, !0, 2, this._parseBoneRotateFrame)) && this._animation.addBoneTimeline(r, i),
t.DataParser.SCALE_FRAME in e && null !== (i = this._parseTimeline(e, null, t.DataParser.SCALE_FRAME, 13, !1, !0, 2, this._parseBoneScaleFrame)) && this._animation.addBoneTimeline(r, i),
t.DataParser.FRAME in e && null !== (i = this._parseTimeline(e, null, t.DataParser.FRAME, 10, !1, !0, 6, this._parseBoneAllFrame)) && this._animation.addBoneTimeline(r, i),
this._bone = null,
this._slot = null)
}
,
n.prototype._parseSlotTimeline = function(e) {
var i = this._armature.getSlot(n._getString(e, t.DataParser.NAME, ""));
if (null !== i) {
this._slot = i;
var r;
null !== (r = t.DataParser.DISPLAY_FRAME in e ? this._parseTimeline(e, null, t.DataParser.DISPLAY_FRAME, 20, !1, !1, 0, this._parseSlotDisplayFrame) : this._parseTimeline(e, null, t.DataParser.FRAME, 20, !1, !1, 0, this._parseSlotDisplayFrame)) && this._animation.addSlotTimeline(i, r);
var s;
null !== (s = t.DataParser.COLOR_FRAME in e ? this._parseTimeline(e, null, t.DataParser.COLOR_FRAME, 21, !0, !1, 1, this._parseSlotColorFrame) : this._parseTimeline(e, null, t.DataParser.FRAME, 21, !0, !1, 1, this._parseSlotColorFrame)) && this._animation.addSlotTimeline(i, s),
this._slot = null
}
}
,
n.prototype._parseFrame = function(t, e) {
var i = this._frameArray.length;
return this._frameArray.length += 1,
this._frameArray[i + 0] = e,
i
}
,
n.prototype._parseTweenFrame = function(e, i, r) {
var s = this._parseFrame(e, i, r);
if (r > 0)
if (t.DataParser.CURVE in e) {
var a = r + 1;
this._helpArray.length = a,
this._samplingEasingCurve(e[t.DataParser.CURVE], this._helpArray),
this._frameArray.length += 2 + this._helpArray.length,
this._frameArray[s + 1] = 2,
this._frameArray[s + 2] = a;
for (var o = 0; o < a; ++o)
this._frameArray[s + 3 + o] = Math.round(1e4 * this._helpArray[o])
} else {
var l = -2;
t.DataParser.TWEEN_EASING in e && (l = n._getNumber(e, t.DataParser.TWEEN_EASING, -2)),
-2 === l ? (this._frameArray.length += 1,
this._frameArray[s + 1] = 0) : 0 === l ? (this._frameArray.length += 1,
this._frameArray[s + 1] = 1) : l < 0 ? (this._frameArray.length += 2,
this._frameArray[s + 1] = 3,
this._frameArray[s + 2] = Math.round(100 * -l)) : l <= 1 ? (this._frameArray.length += 2,
this._frameArray[s + 1] = 4,
this._frameArray[s + 2] = Math.round(100 * l)) : (this._frameArray.length += 2,
this._frameArray[s + 1] = 5,
this._frameArray[s + 2] = Math.round(100 * l - 100))
}
else
this._frameArray.length += 1,
this._frameArray[s + 1] = 0;
return s
}
,
n.prototype._parseActionFrame = function(t, e) {
var i = this._frameArray.length
, n = t.actions.length;
this._frameArray.length += 2 + n,
this._frameArray[i + 0] = e,
this._frameArray[i + 0 + 1] = n;
for (var r = 0; r < n; ++r)
this._frameArray[i + 0 + 2 + r] = t.actions[r];
return i
}
,
n.prototype._parseZOrderFrame = function(e, i, n) {
var r = this._parseFrame(e, i, n);
if (t.DataParser.Z_ORDER in e) {
var s = e[t.DataParser.Z_ORDER];
if (s.length > 0) {
for (var a = this._armature.sortedSlots.length, o = new Array(a - s.length / 2), l = new Array(a), h = 0; h < o.length; ++h)
o[h] = 0;
for (var c = 0; c < a; ++c)
l[c] = -1;
for (var u = 0, _ = 0, f = 0, d = s.length; f < d; f += 2) {
for (var p = s[f], m = s[f + 1]; u !== p; )
o[_++] = u++;
l[u + m] = u++
}
for (; u < a; )
o[_++] = u++;
this._frameArray.length += 1 + a,
this._frameArray[r + 1] = a;
for (var y = a; y--; )
-1 === l[y] ? this._frameArray[r + 2 + y] = o[--_] || 0 : this._frameArray[r + 2 + y] = l[y] || 0;
return r
}
}
return this._frameArray.length += 1,
this._frameArray[r + 1] = 0,
r
}
,
n.prototype._parseBoneAllFrame = function(e, i, r) {
this._helpTransform.identity(),
t.DataParser.TRANSFORM in e && this._parseTransform(e[t.DataParser.TRANSFORM], this._helpTransform, 1);
var s = this._helpTransform.rotation;
0 !== i && (0 === this._prevClockwise ? s = this._prevRotation + t.Transform.normalizeRadian(s - this._prevRotation) : ((this._prevClockwise > 0 ? s >= this._prevRotation : s <= this._prevRotation) && (this._prevClockwise = this._prevClockwise > 0 ? this._prevClockwise - 1 : this._prevClockwise + 1),
s = this._prevRotation + s - this._prevRotation + t.Transform.PI_D * this._prevClockwise)),
this._prevClockwise = n._getNumber(e, t.DataParser.TWEEN_ROTATE, 0),
this._prevRotation = s;
var a = this._parseTweenFrame(e, i, r)
, o = this._frameFloatArray.length;
return this._frameFloatArray.length += 6,
this._frameFloatArray[o++] = this._helpTransform.x,
this._frameFloatArray[o++] = this._helpTransform.y,
this._frameFloatArray[o++] = s,
this._frameFloatArray[o++] = this._helpTransform.skew,
this._frameFloatArray[o++] = this._helpTransform.scaleX,
this._frameFloatArray[o++] = this._helpTransform.scaleY,
this._parseActionDataInFrame(e, i, this._bone, this._slot),
a
}
,
n.prototype._parseBoneTranslateFrame = function(e, i, r) {
var s = this._parseTweenFrame(e, i, r)
, a = this._frameFloatArray.length;
return this._frameFloatArray.length += 2,
this._frameFloatArray[a++] = n._getNumber(e, t.DataParser.X, 0),
this._frameFloatArray[a++] = n._getNumber(e, t.DataParser.Y, 0),
s
}
,
n.prototype._parseBoneRotateFrame = function(e, i, r) {
var s = n._getNumber(e, t.DataParser.ROTATE, 0) * t.Transform.DEG_RAD;
0 !== i && (0 === this._prevClockwise ? s = this._prevRotation + t.Transform.normalizeRadian(s - this._prevRotation) : ((this._prevClockwise > 0 ? s >= this._prevRotation : s <= this._prevRotation) && (this._prevClockwise = this._prevClockwise > 0 ? this._prevClockwise - 1 : this._prevClockwise + 1),
s = this._prevRotation + s - this._prevRotation + t.Transform.PI_D * this._prevClockwise)),
this._prevClockwise = n._getNumber(e, t.DataParser.CLOCK_WISE, 0),
this._prevRotation = s;
var a = this._parseTweenFrame(e, i, r)
, o = this._frameFloatArray.length;
return this._frameFloatArray.length += 2,
this._frameFloatArray[o++] = s,
this._frameFloatArray[o++] = n._getNumber(e, t.DataParser.SKEW, 0) * t.Transform.DEG_RAD,
a
}
,
n.prototype._parseBoneScaleFrame = function(e, i, r) {
var s = this._parseTweenFrame(e, i, r)
, a = this._frameFloatArray.length;
return this._frameFloatArray.length += 2,
this._frameFloatArray[a++] = n._getNumber(e, t.DataParser.X, 1),
this._frameFloatArray[a++] = n._getNumber(e, t.DataParser.Y, 1),
s
}
,
n.prototype._parseSurfaceFrame = function(e, i, r) {
var s = this._frameFloatArray.length
, a = this._parseTweenFrame(e, i, r)
, o = e[t.DataParser.VERTICES]
, l = n._getNumber(e, t.DataParser.OFFSET, 0)
, h = this._surface.vertices.length / 2
, c = 0
, u = 0;
this._frameFloatArray.length += 2 * h;
for (var _ = 0; _ < 2 * h; _ += 2)
c = _ < l || _ - l >= o.length ? 0 : o[_ - l],
u = _ + 1 < l || _ + 1 - l >= o.length ? 0 : o[_ + 1 - l],
this._frameFloatArray[s + _] = c,
this._frameFloatArray[s + _ + 1] = u;
if (0 === i) {
var f = this._frameIntArray.length;
this._frameIntArray.length += 5,
this._frameIntArray[f + 0] = 0,
this._frameIntArray[f + 1] = this._frameFloatArray.length - s,
this._frameIntArray[f + 2] = this._frameFloatArray.length - s,
this._frameIntArray[f + 3] = 0,
this._frameIntArray[f + 4] = s - this._animation.frameFloatOffset,
this._timelineArray[this._timeline.offset + 3] = f - this._animation.frameIntOffset
}
return a
}
,
n.prototype._parseSlotDisplayFrame = function(e, i, r) {
var s = this._parseFrame(e, i, r);
return this._frameArray.length += 1,
t.DataParser.VALUE in e ? this._frameArray[s + 1] = n._getNumber(e, t.DataParser.VALUE, 0) : this._frameArray[s + 1] = n._getNumber(e, t.DataParser.DISPLAY_INDEX, 0),
this._parseActionDataInFrame(e, i, this._slot.parent, this._slot),
s
}
,
n.prototype._parseSlotColorFrame = function(e, i, n) {
var r = this._parseTweenFrame(e, i, n)
, s = -1;
if (t.DataParser.VALUE in e || t.DataParser.COLOR in e) {
var a = t.DataParser.VALUE in e ? e[t.DataParser.VALUE] : e[t.DataParser.COLOR];
for (var o in a) {
this._parseColorTransform(a, this._helpColorTransform),
s = this._intArray.length,
this._intArray.length += 8,
this._intArray[s++] = Math.round(100 * this._helpColorTransform.alphaMultiplier),
this._intArray[s++] = Math.round(100 * this._helpColorTransform.redMultiplier),
this._intArray[s++] = Math.round(100 * this._helpColorTransform.greenMultiplier),
this._intArray[s++] = Math.round(100 * this._helpColorTransform.blueMultiplier),
this._intArray[s++] = Math.round(this._helpColorTransform.alphaOffset),
this._intArray[s++] = Math.round(this._helpColorTransform.redOffset),
this._intArray[s++] = Math.round(this._helpColorTransform.greenOffset),
this._intArray[s++] = Math.round(this._helpColorTransform.blueOffset),
s -= 8;
break
}
}
s < 0 && (this._defaultColorOffset < 0 && (this._defaultColorOffset = s = this._intArray.length,
this._intArray.length += 8,
this._intArray[s++] = 100,
this._intArray[s++] = 100,
this._intArray[s++] = 100,
this._intArray[s++] = 100,
this._intArray[s++] = 0,
this._intArray[s++] = 0,
this._intArray[s++] = 0,
this._intArray[s++] = 0),
s = this._defaultColorOffset);
var l = this._frameIntArray.length;
return this._frameIntArray.length += 1,
this._frameIntArray[l] = s,
r
}
,
n.prototype._parseSlotFFDFrame = function(e, i, r) {
var s = this._frameFloatArray.length
, a = this._parseTweenFrame(e, i, r)
, o = t.DataParser.VERTICES in e ? e[t.DataParser.VERTICES] : null
, l = n._getNumber(e, t.DataParser.OFFSET, 0)
, h = this._intArray[this._mesh.vertices.offset + 0]
, c = this._mesh.parent.name + "_" + this._slot.name + "_" + this._mesh.name
, u = this._mesh.vertices.weight
, _ = 0
, f = 0
, d = 0
, p = 0;
if (null !== u) {
var m = this._weightSlotPose[c];
this._helpMatrixA.copyFromArray(m, 0),
this._frameFloatArray.length += 2 * u.count,
d = u.offset + 2 + u.bones.length
} else
this._frameFloatArray.length += 2 * h;
for (var y = 0; y < 2 * h; y += 2)
if (null === o ? (_ = 0,
f = 0) : (_ = y < l || y - l >= o.length ? 0 : o[y - l],
f = y + 1 < l || y + 1 - l >= o.length ? 0 : o[y + 1 - l]),
null !== u) {
var v = this._weightBonePoses[c]
, g = this._intArray[d++];
this._helpMatrixA.transformPoint(_, f, this._helpPoint, !0),
_ = this._helpPoint.x,
f = this._helpPoint.y;
for (var A = 0; A < g; ++A) {
var x = this._intArray[d++];
this._helpMatrixB.copyFromArray(v, 7 * x + 1),
this._helpMatrixB.invert(),
this._helpMatrixB.transformPoint(_, f, this._helpPoint, !0),
this._frameFloatArray[s + p++] = this._helpPoint.x,
this._frameFloatArray[s + p++] = this._helpPoint.y
}
} else
this._frameFloatArray[s + y] = _,
this._frameFloatArray[s + y + 1] = f;
if (0 === i) {
var b = this._frameIntArray.length;
this._frameIntArray.length += 5,
this._frameIntArray[b + 0] = this._mesh.vertices.offset,
this._frameIntArray[b + 1] = this._frameFloatArray.length - s,
this._frameIntArray[b + 2] = this._frameFloatArray.length - s,
this._frameIntArray[b + 3] = 0,
this._frameIntArray[b + 4] = s - this._animation.frameFloatOffset,
this._timelineArray[this._timeline.offset + 3] = b - this._animation.frameIntOffset
}
return a
}
,
n.prototype._parseIKConstraintFrame = function(e, i, r) {
var s = this._parseTweenFrame(e, i, r)
, a = this._frameIntArray.length;
return this._frameIntArray.length += 2,
this._frameIntArray[a++] = n._getBoolean(e, t.DataParser.BEND_POSITIVE, !0) ? 1 : 0,
this._frameIntArray[a++] = Math.round(100 * n._getNumber(e, t.DataParser.WEIGHT, 1)),
s
}
,
n.prototype._parseAnimationFrame = function(e, i, r) {
var s = this._parseTweenFrame(e, i, r)
, a = this._frameIntArray.length;
return this._frameIntArray.length += 2,
this._frameIntArray[a++] = n._getNumber(e, t.DataParser.VALUE, 0),
this._frameIntArray[a++] = Math.round(100 * n._getNumber(e, t.DataParser.WEIGHT, 1)),
s
}
,
n.prototype._parseActionData = function(e, i, r, s) {
var a = new Array;
if ("string" == typeof e)
(c = t.BaseObject.borrowObject(t.ActionData)).type = i,
c.name = e,
c.bone = r,
c.slot = s,
a.push(c);
else if (e instanceof Array)
for (var o = 0, l = e; o < l.length; o++) {
var h = l[o]
, c = t.BaseObject.borrowObject(t.ActionData);
if (t.DataParser.GOTO_AND_PLAY in h ? (c.type = 0,
c.name = n._getString(h, t.DataParser.GOTO_AND_PLAY, "")) : (t.DataParser.TYPE in h && "string" == typeof h[t.DataParser.TYPE] ? c.type = t.DataParser._getActionType(h[t.DataParser.TYPE]) : c.type = n._getNumber(h, t.DataParser.TYPE, i),
c.name = n._getString(h, t.DataParser.NAME, "")),
t.DataParser.BONE in h) {
var u = n._getString(h, t.DataParser.BONE, "");
c.bone = this._armature.getBone(u)
} else
c.bone = r;
if (t.DataParser.SLOT in h) {
var _ = n._getString(h, t.DataParser.SLOT, "");
c.slot = this._armature.getSlot(_)
} else
c.slot = s;
var f = null;
if (t.DataParser.INTS in h) {
null === f && (f = t.BaseObject.borrowObject(t.UserData));
for (var d = 0, p = h[t.DataParser.INTS]; d < p.length; d++) {
var m = p[d];
f.addInt(m)
}
}
if (t.DataParser.FLOATS in h) {
null === f && (f = t.BaseObject.borrowObject(t.UserData));
for (var y = 0, v = h[t.DataParser.FLOATS]; y < v.length; y++)
m = v[y],
f.addFloat(m)
}
if (t.DataParser.STRINGS in h) {
null === f && (f = t.BaseObject.borrowObject(t.UserData));
for (var g = 0, A = h[t.DataParser.STRINGS]; g < A.length; g++)
m = A[g],
f.addString(m)
}
c.data = f,
a.push(c)
}
return a
}
,
n.prototype._parseTransform = function(e, i, r) {
i.x = n._getNumber(e, t.DataParser.X, 0) * r,
i.y = n._getNumber(e, t.DataParser.Y, 0) * r,
t.DataParser.ROTATE in e || t.DataParser.SKEW in e ? (i.rotation = t.Transform.normalizeRadian(n._getNumber(e, t.DataParser.ROTATE, 0) * t.Transform.DEG_RAD),
i.skew = t.Transform.normalizeRadian(n._getNumber(e, t.DataParser.SKEW, 0) * t.Transform.DEG_RAD)) : (t.DataParser.SKEW_X in e || t.DataParser.SKEW_Y in e) && (i.rotation = t.Transform.normalizeRadian(n._getNumber(e, t.DataParser.SKEW_Y, 0) * t.Transform.DEG_RAD),
i.skew = t.Transform.normalizeRadian(n._getNumber(e, t.DataParser.SKEW_X, 0) * t.Transform.DEG_RAD) - i.rotation),
i.scaleX = n._getNumber(e, t.DataParser.SCALE_X, 1),
i.scaleY = n._getNumber(e, t.DataParser.SCALE_Y, 1)
}
,
n.prototype._parseColorTransform = function(e, i) {
i.alphaMultiplier = .01 * n._getNumber(e, t.DataParser.ALPHA_MULTIPLIER, 100),
i.redMultiplier = .01 * n._getNumber(e, t.DataParser.RED_MULTIPLIER, 100),
i.greenMultiplier = .01 * n._getNumber(e, t.DataParser.GREEN_MULTIPLIER, 100),
i.blueMultiplier = .01 * n._getNumber(e, t.DataParser.BLUE_MULTIPLIER, 100),
i.alphaOffset = n._getNumber(e, t.DataParser.ALPHA_OFFSET, 0),
i.redOffset = n._getNumber(e, t.DataParser.RED_OFFSET, 0),
i.greenOffset = n._getNumber(e, t.DataParser.GREEN_OFFSET, 0),
i.blueOffset = n._getNumber(e, t.DataParser.BLUE_OFFSET, 0)
}
,
n.prototype._parseArray = function() {
this._intArray.length = 0,
this._floatArray.length = 0,
this._frameIntArray.length = 0,
this._frameFloatArray.length = 0,
this._frameArray.length = 0,
this._timelineArray.length = 0
}
,
n.prototype._modifyArray = function() {
this._intArray.length % Int16Array.BYTES_PER_ELEMENT != 0 && this._intArray.push(0),
this._frameIntArray.length % Int16Array.BYTES_PER_ELEMENT != 0 && this._frameIntArray.push(0),
this._frameArray.length % Int16Array.BYTES_PER_ELEMENT != 0 && this._frameArray.push(0),
this._timelineArray.length % Uint16Array.BYTES_PER_ELEMENT != 0 && this._timelineArray.push(0);
var e = this._intArray.length * Int16Array.BYTES_PER_ELEMENT
, i = this._floatArray.length * Float32Array.BYTES_PER_ELEMENT
, n = this._frameIntArray.length * Int16Array.BYTES_PER_ELEMENT
, r = this._frameFloatArray.length * Float32Array.BYTES_PER_ELEMENT
, s = this._frameArray.length * Int16Array.BYTES_PER_ELEMENT
, a = this._timelineArray.length * Uint16Array.BYTES_PER_ELEMENT
, o = e + i + n + r + s + a;
if (t.DragonBones.webAssembly) {
for (var l = t.webAssemblyModule.HEAP16.buffer, h = t.webAssemblyModule._malloc(o), c = new Int16Array(l,h,this._intArray.length), u = new Float32Array(l,h + e,this._floatArray.length), _ = new Int16Array(l,h + e + i,this._frameIntArray.length), f = new Float32Array(l,h + e + i + n,this._frameFloatArray.length), d = new Int16Array(l,h + e + i + n + r,this._frameArray.length), p = new Uint16Array(l,h + e + i + n + r + s,this._timelineArray.length), m = 0, y = this._intArray.length; m < y; ++m)
c[m] = this._intArray[m];
for (m = 0,
y = this._floatArray.length; m < y; ++m)
u[m] = this._floatArray[m];
for (m = 0,
y = this._frameIntArray.length; m < y; ++m)
_[m] = this._frameIntArray[m];
for (m = 0,
y = this._frameFloatArray.length; m < y; ++m)
f[m] = this._frameFloatArray[m];
for (m = 0,
y = this._frameArray.length; m < y; ++m)
d[m] = this._frameArray[m];
for (m = 0,
y = this._timelineArray.length; m < y; ++m)
p[m] = this._timelineArray[m];
t.webAssemblyModule.setDataBinary(this._data, h, e, i, n, r, s, a)
} else {
var v = new ArrayBuffer(o);
for (c = new Int16Array(v,0,this._intArray.length),
u = new Float32Array(v,e,this._floatArray.length),
_ = new Int16Array(v,e + i,this._frameIntArray.length),
f = new Float32Array(v,e + i + n,this._frameFloatArray.length),
d = new Int16Array(v,e + i + n + r,this._frameArray.length),
p = new Uint16Array(v,e + i + n + r + s,this._timelineArray.length),
m = 0,
y = this._intArray.length; m < y; ++m)
c[m] = this._intArray[m];
for (m = 0,
y = this._floatArray.length; m < y; ++m)
u[m] = this._floatArray[m];
for (m = 0,
y = this._frameIntArray.length; m < y; ++m)
_[m] = this._frameIntArray[m];
for (m = 0,
y = this._frameFloatArray.length; m < y; ++m)
f[m] = this._frameFloatArray[m];
for (m = 0,
y = this._frameArray.length; m < y; ++m)
d[m] = this._frameArray[m];
for (m = 0,
y = this._timelineArray.length; m < y; ++m)
p[m] = this._timelineArray[m];
this._data.binary = v,
this._data.intArray = c,
this._data.floatArray = u,
this._data.frameIntArray = _,
this._data.frameFloatArray = f,
this._data.frameArray = d,
this._data.timelineArray = p
}
this._defaultColorOffset = -1
}
,
n.prototype.parseDragonBonesData = function(e, i) {
void 0 === i && (i = 1),
console.assert(null != e, "Data error.");
var r = n._getString(e, t.DataParser.VERSION, "")
, s = n._getString(e, t.DataParser.COMPATIBLE_VERSION, "");
if (t.DataParser.DATA_VERSIONS.indexOf(r) >= 0 || t.DataParser.DATA_VERSIONS.indexOf(s) >= 0) {
var a = t.BaseObject.borrowObject(t.DragonBonesData);
if (a.version = r,
a.name = n._getString(e, t.DataParser.NAME, ""),
a.frameRate = n._getNumber(e, t.DataParser.FRAME_RATE, 24),
0 === a.frameRate && (a.frameRate = 24),
t.DataParser.ARMATURE in e) {
this._data = a,
this._parseArray(e);
for (var o = 0, l = e[t.DataParser.ARMATURE]; o < l.length; o++) {
var h = l[o];
a.addArmature(this._parseArmature(h, i))
}
this._data.binary || this._modifyArray(),
t.DataParser.STAGE in e ? a.stage = a.getArmature(n._getString(e, t.DataParser.STAGE, "")) : a.armatureNames.length > 0 && (a.stage = a.getArmature(a.armatureNames[0])),
this._data = null
}
return t.DataParser.TEXTURE_ATLAS in e && (this._rawTextureAtlases = e[t.DataParser.TEXTURE_ATLAS]),
a
}
return console.assert(!1, "Nonsupport data version: " + r + "\nPlease convert DragonBones data to support version.\nRead more: https://github.com/DragonBones/Tools/"),
null
}
,
n.prototype.parseTextureAtlasData = function(e, i, r) {
if (void 0 === r && (r = 1),
console.assert(void 0 !== e),
null === e) {
if (null === this._rawTextureAtlases || 0 === this._rawTextureAtlases.length)
return !1;
var s = this._rawTextureAtlases[this._rawTextureAtlasIndex++];
return this.parseTextureAtlasData(s, i, r),
this._rawTextureAtlasIndex >= this._rawTextureAtlases.length && (this._rawTextureAtlasIndex = 0,
this._rawTextureAtlases = null),
!0
}
if (i.width = n._getNumber(e, t.DataParser.WIDTH, 0),
i.height = n._getNumber(e, t.DataParser.HEIGHT, 0),
i.scale = 1 === r ? 1 / n._getNumber(e, t.DataParser.SCALE, 1) : r,
i.name = n._getString(e, t.DataParser.NAME, ""),
i.imagePath = n._getString(e, t.DataParser.IMAGE_PATH, ""),
t.DataParser.SUB_TEXTURE in e)
for (var a = e[t.DataParser.SUB_TEXTURE], o = 0, l = a.length; o < l; ++o) {
var h = a[o]
, c = i.createTexture();
c.rotated = n._getBoolean(h, t.DataParser.ROTATED, !1),
c.name = n._getString(h, t.DataParser.NAME, ""),
c.region.x = n._getNumber(h, t.DataParser.X, 0),
c.region.y = n._getNumber(h, t.DataParser.Y, 0),
c.region.width = n._getNumber(h, t.DataParser.WIDTH, 0),
c.region.height = n._getNumber(h, t.DataParser.HEIGHT, 0);
var u = n._getNumber(h, t.DataParser.FRAME_WIDTH, -1)
, _ = n._getNumber(h, t.DataParser.FRAME_HEIGHT, -1);
u > 0 && _ > 0 && (c.frame = t.TextureData.createRectangle(),
c.frame.x = n._getNumber(h, t.DataParser.FRAME_X, 0),
c.frame.y = n._getNumber(h, t.DataParser.FRAME_Y, 0),
c.frame.width = u,
c.frame.height = _),
i.addTexture(c)
}
return !0
}
,
n.getInstance = function() {
return null === n._objectDataParserInstance && (n._objectDataParserInstance = new n),
n._objectDataParserInstance
}
,
n._objectDataParserInstance = null,
n
}
)(t.DataParser);
t.ObjectDataParser = e;
var i = function() {
this.frameStart = 0,
this.actions = []
};
t.ActionFrame = i
}
)(r || (r = {})),
(function(t) {
var e = (function(e) {
function i() {
return null !== e && e.apply(this, arguments) || this
}
return s(i, e),
i.prototype._inRange = function(t, e, i) {
return e <= t && t <= i
}
,
i.prototype._decodeUTF8 = function(t) {
for (var e, i = 0, n = "", r = 0, s = 0, a = 0, o = 0; t.length > i; ) {
var l = t[i++];
if (-1 === l)
e = 0 !== s ? 65533 : -1;
else if (0 === s)
this._inRange(l, 0, 127) ? e = l : (this._inRange(l, 194, 223) ? (s = 1,
o = 128,
r = l - 192) : this._inRange(l, 224, 239) ? (s = 2,
o = 2048,
r = l - 224) : this._inRange(l, 240, 244) && (s = 3,
o = 65536,
r = l - 240),
r *= Math.pow(64, s),
e = null);
else if (this._inRange(l, 128, 191))
if (a += 1,
r += (l - 128) * Math.pow(64, s - a),
a !== s)
e = null;
else {
var h = r
, c = o;
r = 0,
s = 0,
a = 0,
o = 0,
e = this._inRange(h, c, 1114111) && !this._inRange(h, 55296, 57343) ? h : l
}
else
r = 0,
s = 0,
a = 0,
o = 0,
i--,
e = l;
null !== e && -1 !== e && (e <= 65535 ? e > 0 && (n += String.fromCharCode(e)) : (e -= 65536,
n += String.fromCharCode(55296 + (e >> 10 & 1023)),
n += String.fromCharCode(56320 + (1023 & e))))
}
return n
}
,
i.prototype._getUTF16Key = function(t) {
for (var e = 0, i = t.length; e < i; ++e)
if (t.charCodeAt(e) > 255)
return encodeURI(t);
return t
}
,
i.prototype._parseBinaryTimeline = function(e, i, n) {
void 0 === n && (n = null);
var r = null !== n ? n : t.BaseObject.borrowObject(t.TimelineData);
r.type = e,
r.offset = i,
this._timeline = r;
var s = this._timelineArrayBuffer[r.offset + 2];
if (1 === s)
r.frameIndicesOffset = -1;
else {
var a = 0
, o = this._animation.frameCount + 1
, l = this._data.frameIndices;
t.DragonBones.webAssembly ? (a = l.size(),
l.resize(a + o, 0)) : (a = l.length,
l.length += o),
r.frameIndicesOffset = a;
for (var h = 0, c = 0, u = 0, _ = 0; h < o; ++h)
u + _ <= h && c < s && (u = this._frameArrayBuffer[this._animation.frameOffset + this._timelineArrayBuffer[r.offset + 5 + c]],
_ = c === s - 1 ? this._animation.frameCount - u : this._frameArrayBuffer[this._animation.frameOffset + this._timelineArrayBuffer[r.offset + 5 + c + 1]] - u,
c++),
t.DragonBones.webAssembly ? l.set(a + h, c - 1) : l[a + h] = c - 1
}
return this._timeline = null,
r
}
,
i.prototype._parseVertices = function(e, i) {
i.offset = e[t.DataParser.OFFSET];
var n = this._intArrayBuffer[i.offset + 3];
if (n >= 0) {
var r = t.BaseObject.borrowObject(t.WeightData)
, s = this._intArrayBuffer[i.offset + 0]
, a = this._intArrayBuffer[n + 0];
r.offset = n;
for (var o = 0; o < a; ++o) {
var l = this._intArrayBuffer[n + 2 + o];
r.addBone(this._rawBones[l])
}
for (var h = n + 2 + a, c = 0, u = (o = 0,
s); o < u; ++o) {
var _ = this._intArrayBuffer[h++];
c += _,
h += _
}
r.count = c,
i.weight = r
}
}
,
i.prototype._parseMesh = function(t, e) {
this._parseVertices(t, e.vertices)
}
,
i.prototype._parsePath = function(t, e) {
this._parseVertices(t, e.vertices)
}
,
i.prototype._parseAnimation = function(e) {
var i = t.BaseObject.borrowObject(t.AnimationData);
i.frameCount = Math.max(t.ObjectDataParser._getNumber(e, t.DataParser.DURATION, 1), 1),
i.playTimes = t.ObjectDataParser._getNumber(e, t.DataParser.PLAY_TIMES, 1),
i.duration = i.frameCount / this._armature.frameRate,
i.fadeInTime = t.ObjectDataParser._getNumber(e, t.DataParser.FADE_IN_TIME, 0),
i.scale = t.ObjectDataParser._getNumber(e, t.DataParser.SCALE, 1),
i.name = t.ObjectDataParser._getString(e, t.DataParser.NAME, t.DataParser.DEFAULT_NAME),
0 === i.name.length && (i.name = t.DataParser.DEFAULT_NAME);
var n = e[t.DataParser.OFFSET];
if (i.frameIntOffset = n[0],
i.frameFloatOffset = n[1],
i.frameOffset = n[2],
this._animation = i,
t.DataParser.ACTION in e && (i.actionTimeline = this._parseBinaryTimeline(0, e[t.DataParser.ACTION])),
t.DataParser.Z_ORDER in e && (i.zOrderTimeline = this._parseBinaryTimeline(1, e[t.DataParser.Z_ORDER])),
t.DataParser.BONE in e) {
var r = e[t.DataParser.BONE];
for (var s in r) {
var a = r[s];
t.DragonBones.webAssembly && (s = this._getUTF16Key(s));
var o = this._armature.getBone(s);
if (null !== o)
for (var l = 0, h = a.length; l < h; l += 2) {
var c = a[l]
, u = a[l + 1]
, _ = this._parseBinaryTimeline(c, u);
this._animation.addBoneTimeline(o, _)
}
}
}
if (t.DataParser.SURFACE in e)
for (var s in r = e[t.DataParser.SURFACE]) {
a = r[s],
t.DragonBones.webAssembly && (s = this._getUTF16Key(s));
var f = this._armature.getBone(s);
if (null !== f)
for (l = 0,
h = a.length; l < h; l += 2)
c = a[l],
u = a[l + 1],
_ = this._parseBinaryTimeline(c, u),
this._animation.addSurfaceTimeline(f, _)
}
if (t.DataParser.SLOT in e)
for (var s in r = e[t.DataParser.SLOT]) {
a = r[s],
t.DragonBones.webAssembly && (s = this._getUTF16Key(s));
var d = this._armature.getSlot(s);
if (null !== d)
for (l = 0,
h = a.length; l < h; l += 2)
c = a[l],
u = a[l + 1],
_ = this._parseBinaryTimeline(c, u),
this._animation.addSlotTimeline(d, _)
}
if (t.DataParser.CONSTRAINT in e)
for (var s in r = e[t.DataParser.CONSTRAINT]) {
a = r[s],
t.DragonBones.webAssembly && (s = this._getUTF16Key(s));
var p = this._armature.getConstraint(s);
if (null !== p)
for (l = 0,
h = a.length; l < h; l += 2)
c = a[l],
u = a[l + 1],
_ = this._parseBinaryTimeline(c, u),
this._animation.addConstraintTimeline(p, _)
}
if (t.DataParser.ANIMATION in e)
for (var s in r = e[t.DataParser.ANIMATION])
for (a = r[s],
t.DragonBones.webAssembly && (s = this._getUTF16Key(s)),
l = 0,
h = a.length; l < h; l += 2)
c = a[l],
u = a[l + 1],
_ = this._parseBinaryTimeline(c, u),
this._animation.addAnimationTimeline(s, _);
return this._animation = null,
i
}
,
i.prototype._parseArray = function(e) {
var i = e[t.DataParser.OFFSET]
, n = i[1]
, r = i[3]
, s = i[5]
, a = i[7]
, o = i[9]
, l = i[11]
, h = new Int16Array(this._binary,this._binaryOffset + i[0],n / Int16Array.BYTES_PER_ELEMENT)
, c = new Float32Array(this._binary,this._binaryOffset + i[2],r / Float32Array.BYTES_PER_ELEMENT)
, u = new Int16Array(this._binary,this._binaryOffset + i[4],s / Int16Array.BYTES_PER_ELEMENT)
, _ = new Float32Array(this._binary,this._binaryOffset + i[6],a / Float32Array.BYTES_PER_ELEMENT)
, f = new Int16Array(this._binary,this._binaryOffset + i[8],o / Int16Array.BYTES_PER_ELEMENT)
, d = new Uint16Array(this._binary,this._binaryOffset + i[10],l / Uint16Array.BYTES_PER_ELEMENT);
if (t.DragonBones.webAssembly) {
for (var p = n + r + s + a + o + l, m = t.webAssemblyModule._malloc(p), y = new Uint8Array(this._binary,this._binaryOffset,p / Uint8Array.BYTES_PER_ELEMENT), v = new Uint8Array(t.webAssemblyModule.HEAP16.buffer,m,y.length), g = 0, A = y.length; g < A; ++g)
v[g] = y[g];
t.webAssemblyModule.setDataBinary(this._data, m, n, r, s, a, o, l),
this._intArrayBuffer = h,
this._floatArrayBuffer = c,
this._frameIntArrayBuffer = u,
this._frameFloatArrayBuffer = _,
this._frameArrayBuffer = f,
this._timelineArrayBuffer = d
} else
this._data.binary = this._binary,
this._data.intArray = this._intArrayBuffer = h,
this._data.floatArray = this._floatArrayBuffer = c,
this._data.frameIntArray = this._frameIntArrayBuffer = u,
this._data.frameFloatArray = this._frameFloatArrayBuffer = _,
this._data.frameArray = this._frameArrayBuffer = f,
this._data.timelineArray = this._timelineArrayBuffer = d
}
,
i.prototype.parseDragonBonesData = function(t, i) {
void 0 === i && (i = 1),
console.assert(null != t && t instanceof ArrayBuffer, "Data error.");
var n = new Uint8Array(t,0,8);
if (n[0] !== "D".charCodeAt(0) || n[1] !== "B".charCodeAt(0) || n[2] !== "D".charCodeAt(0) || n[3] !== "T".charCodeAt(0))
return console.assert(!1, "Nonsupport data."),
null;
var r = new Uint32Array(t,8,1)[0]
, s = new Uint8Array(t,12,r)
, a = this._decodeUTF8(s)
, o = JSON.parse(a);
return this._binaryOffset = 12 + r,
this._binary = t,
e.prototype.parseDragonBonesData.call(this, o, i)
}
,
i.getInstance = function() {
return null === i._binaryDataParserInstance && (i._binaryDataParserInstance = new i),
i._binaryDataParserInstance
}
,
i._binaryDataParserInstance = null,
i
}
)(t.ObjectDataParser);
t.BinaryDataParser = e
}
)(r || (r = {})),
(function(t) {
var e = (function() {
function e(i) {
void 0 === i && (i = null),
this.autoSearch = !1,
this._dragonBonesDataMap = {},
this._textureAtlasDataMap = {},
this._dragonBones = null,
this._dataParser = null,
null === e._objectParser && (e._objectParser = new t.ObjectDataParser),
null === e._binaryParser && (e._binaryParser = new t.BinaryDataParser),
this._dataParser = null !== i ? i : e._objectParser
}
return e.prototype._isSupportMesh = function() {
return !0
}
,
e.prototype._getTextureData = function(t, e) {
if (t in this._textureAtlasDataMap)
for (var i = 0, n = this._textureAtlasDataMap[t]; i < n.length; i++)
if (null !== (l = (o = n[i]).getTexture(e)))
return l;
if (this.autoSearch)
for (var r in this._textureAtlasDataMap)
for (var s = 0, a = this._textureAtlasDataMap[r]; s < a.length; s++) {
var o, l;
if ((o = a[s]).autoSearch && null !== (l = o.getTexture(e)))
return l
}
return null
}
,
e.prototype._fillBuildArmaturePackage = function(t, e, i, n, r) {
var s = null
, a = null;
if (e.length > 0 && e in this._dragonBonesDataMap && (a = (s = this._dragonBonesDataMap[e]).getArmature(i)),
null === a && (0 === e.length || this.autoSearch))
for (var o in this._dragonBonesDataMap)
if (s = this._dragonBonesDataMap[o],
(0 === e.length || s.autoSearch) && null !== (a = s.getArmature(i))) {
e = o;
break
}
if (null !== a) {
if (t.dataName = e,
t.textureAtlasName = r,
t.data = s,
t.armature = a,
t.skin = null,
n.length > 0 && (t.skin = a.getSkin(n),
null === t.skin && this.autoSearch))
for (var o in this._dragonBonesDataMap) {
var l = this._dragonBonesDataMap[o].getArmature(n);
if (null !== l) {
t.skin = l.defaultSkin;
break
}
}
return null === t.skin && (t.skin = a.defaultSkin),
!0
}
return !1
}
,
e.prototype._buildBones = function(e, i) {
for (var n = 0, r = e.armature.sortedBones; n < r.length; n++) {
var s = r[n];
t.BaseObject.borrowObject(0 === s.type ? t.Bone : t.Surface).init(s, i)
}
}
,
e.prototype._buildSlots = function(e, i) {
var n = e.skin
, r = e.armature.defaultSkin;
if (null !== n && null !== r) {
var s = {};
for (var a in r.displays) {
var o = r.getDisplays(a);
s[a] = o
}
if (n !== r)
for (var a in n.displays)
o = n.getDisplays(a),
s[a] = o;
for (var l = 0, h = e.armature.sortedSlots; l < h.length; l++) {
var c = h[l]
, u = c.name in s ? s[c.name] : null
, _ = this._buildSlot(e, c, i);
if (_.rawDisplayDatas = u,
null !== u) {
for (var f = new Array, d = 0, p = t.DragonBones.webAssembly ? u.size() : u.length; d < p; ++d) {
var m = t.DragonBones.webAssembly ? u.get(d) : u[d];
null !== m ? f.push(this._getSlotDisplay(e, m, null, _)) : f.push(null)
}
_._setDisplayList(f)
}
_._setDisplayIndex(c.displayIndex, !0)
}
}
}
,
e.prototype._buildConstraints = function(e, i) {
var n = e.armature.constraints;
for (var r in n) {
var s = n[r];
switch (s.type) {
case 0:
var a = t.BaseObject.borrowObject(t.IKConstraint);
a.init(s, i),
i._addConstraint(a);
break;
case 1:
var o = t.BaseObject.borrowObject(t.PathConstraint);
o.init(s, i),
i._addConstraint(o);
break;
default:
var l = t.BaseObject.borrowObject(t.IKConstraint);
l.init(s, i),
i._addConstraint(l)
}
}
}
,
e.prototype._buildChildArmature = function(t, e, i) {
return this.buildArmature(i.path, null !== t ? t.dataName : "", "", null !== t ? t.textureAtlasName : "")
}
,
e.prototype._getSlotDisplay = function(e, i, n, r) {
var s = null !== e ? e.dataName : i.parent.parent.parent.name
, a = null;
switch (i.type) {
case 0:
var o = i;
null !== e && e.textureAtlasName.length > 0 && (o.texture = this._getTextureData(e.textureAtlasName, i.path)),
null === o.texture && (o.texture = this._getTextureData(s, i.path)),
a = null !== n && 2 === n.type && this._isSupportMesh() ? r.meshDisplay : r.rawDisplay;
break;
case 2:
var l = i;
null !== e && e.textureAtlasName.length > 0 && (l.texture = this._getTextureData(e.textureAtlasName, l.path)),
null === l.texture && (l.texture = this._getTextureData(s, l.path)),
a = this._isSupportMesh() ? r.meshDisplay : r.rawDisplay;
break;
case 1:
var h = i
, c = this._buildChildArmature(e, r, i);
if (null !== c) {
if (c.inheritAnimation = h.inheritAnimation,
!c.inheritAnimation) {
var u = h.actions.length > 0 ? h.actions : c.armatureData.defaultActions;
if (u.length > 0)
for (var _ = 0, f = u; _ < f.length; _++) {
var d = f[_]
, p = t.BaseObject.borrowObject(t.EventObject);
t.EventObject.actionDataToInstance(d, p, r.armature),
p.slot = r,
r.armature._bufferAction(p, !1)
}
else
c.animation.play()
}
h.armature = c.armatureData
}
a = c
}
return a
}
,
e.prototype.parseDragonBonesData = function(t, i, n) {
void 0 === i && (i = null),
void 0 === n && (n = 1);
for (var r = t instanceof ArrayBuffer ? e._binaryParser : this._dataParser, s = r.parseDragonBonesData(t, n); ; ) {
var a = this._buildTextureAtlasData(null, null);
if (!r.parseTextureAtlasData(null, a, n)) {
a.returnToPool();
break
}
this.addTextureAtlasData(a, i)
}
return null !== s && this.addDragonBonesData(s, i),
s
}
,
e.prototype.parseTextureAtlasData = function(t, e, i, n) {
void 0 === i && (i = null),
void 0 === n && (n = 1);
var r = this._buildTextureAtlasData(null, null);
return this._dataParser.parseTextureAtlasData(t, r, n),
this._buildTextureAtlasData(r, e || null),
this.addTextureAtlasData(r, i),
r
}
,
e.prototype.updateTextureAtlasData = function(t, e) {
var i = this.getTextureAtlasData(t);
if (null !== i)
for (var n = 0, r = i.length; n < r; ++n)
n < e.length && this._buildTextureAtlasData(i[n], e[n])
}
,
e.prototype.getDragonBonesData = function(t) {
return t in this._dragonBonesDataMap ? this._dragonBonesDataMap[t] : null
}
,
e.prototype.addDragonBonesData = function(t, e) {
if (void 0 === e && (e = null),
(e = null !== e ? e : t.name)in this._dragonBonesDataMap) {
if (this._dragonBonesDataMap[e] === t)
return;
console.warn("Can not add same name data: " + e)
} else
this._dragonBonesDataMap[e] = t
}
,
e.prototype.removeDragonBonesData = function(t, e) {
void 0 === e && (e = !0),
t in this._dragonBonesDataMap && (e && this._dragonBones.bufferObject(this._dragonBonesDataMap[t]),
delete this._dragonBonesDataMap[t])
}
,
e.prototype.getTextureAtlasData = function(t) {
return t in this._textureAtlasDataMap ? this._textureAtlasDataMap[t] : null
}
,
e.prototype.addTextureAtlasData = function(t, e) {
void 0 === e && (e = null);
var i = (e = null !== e ? e : t.name)in this._textureAtlasDataMap ? this._textureAtlasDataMap[e] : this._textureAtlasDataMap[e] = [];
i.indexOf(t) < 0 && i.push(t)
}
,
e.prototype.removeTextureAtlasData = function(t, e) {
if (void 0 === e && (e = !0),
t in this._textureAtlasDataMap) {
var i = this._textureAtlasDataMap[t];
if (e)
for (var n = 0, r = i; n < r.length; n++) {
var s = r[n];
this._dragonBones.bufferObject(s)
}
delete this._textureAtlasDataMap[t]
}
}
,
e.prototype.getArmatureData = function(t, e) {
void 0 === e && (e = "");
var n = new i;
return this._fillBuildArmaturePackage(n, e, t, "", "") ? n.armature : null
}
,
e.prototype.clear = function(t) {
for (var e in void 0 === t && (t = !0),
this._dragonBonesDataMap)
t && this._dragonBones.bufferObject(this._dragonBonesDataMap[e]),
delete this._dragonBonesDataMap[e];
for (var e in this._textureAtlasDataMap) {
if (t)
for (var i = 0, n = this._textureAtlasDataMap[e]; i < n.length; i++) {
var r = n[i];
this._dragonBones.bufferObject(r)
}
delete this._textureAtlasDataMap[e]
}
}
,
e.prototype.buildArmature = function(t, e, n, r) {
void 0 === e && (e = ""),
void 0 === n && (n = ""),
void 0 === r && (r = "");
var s = new i;
if (!this._fillBuildArmaturePackage(s, e || "", t, n || "", r || ""))
return console.warn("No armature data: " + t + ", " + (null !== e ? e : "")),
null;
var a = this._buildArmature(s);
return this._buildBones(s, a),
this._buildSlots(s, a),
this._buildConstraints(s, a),
a.invalidUpdate(null, !0),
a.advanceTime(0),
a
}
,
e.prototype.replaceDisplay = function(e, i, n) {
void 0 === n && (n = -1),
n < 0 && (n = e.displayIndex),
n < 0 && (n = 0),
e.replaceDisplayData(i, n);
var r = e.displayList;
if (r.length <= n) {
r.length = n + 1;
for (var s = 0, a = r.length; s < a; ++s)
r[s] || (r[s] = null)
}
if (null !== i) {
var o = e.rawDisplayDatas
, l = null;
o && (t.DragonBones.webAssembly ? n < o.size() && (l = o.get(n)) : n < o.length && (l = o[n])),
r[n] = this._getSlotDisplay(null, i, l, e)
} else
r[n] = null;
e.displayList = r
}
,
e.prototype.replaceSlotDisplay = function(t, e, i, n, r, s) {
void 0 === s && (s = -1);
var a = this.getArmatureData(e, t || "");
if (!a || !a.defaultSkin)
return !1;
var o = a.defaultSkin.getDisplay(i, n);
return !!o && (this.replaceDisplay(r, o, s),
!0)
}
,
e.prototype.replaceSlotDisplayList = function(e, i, n, r) {
var s = this.getArmatureData(i, e || "");
if (!s || !s.defaultSkin)
return !1;
var a = s.defaultSkin.getDisplays(n);
if (!a)
return !1;
for (var o = 0, l = 0, h = t.DragonBones.webAssembly ? a.size() : a.length; l < h; ++l) {
var c = t.DragonBones.webAssembly ? a.get(l) : a[l];
this.replaceDisplay(r, c, o++)
}
return !0
}
,
e.prototype.replaceSkin = function(e, i, n, r) {
void 0 === n && (n = !1),
void 0 === r && (r = null);
for (var s = !1, a = i.parent.defaultSkin, o = 0, l = e.getSlots(); o < l.length; o++) {
var h = l[o];
if (!(null !== r && r.indexOf(h.name) >= 0)) {
var c = i.getDisplays(h.name);
if (c || (null !== a && i !== a && (c = a.getDisplays(h.name)),
c)) {
var u = t.DragonBones.webAssembly ? c.size() : c.length
, _ = h.displayList;
_.length = u;
for (var f = 0, d = u; f < d; ++f) {
var p = t.DragonBones.webAssembly ? c.get(f) : c[f];
_[f] = null !== p ? this._getSlotDisplay(null, p, null, h) : null
}
s = !0,
h.rawDisplayDatas = c,
h.displayList = _
} else
n && (h.rawDisplayDatas = null,
h.displayList = [])
}
}
return s
}
,
e.prototype.replaceAnimation = function(e, i, n) {
void 0 === n && (n = !0);
var r = i.defaultSkin;
if (null === r)
return !1;
if (n)
e.animation.animations = i.animations;
else {
var s = e.animation.animations
, a = {};
for (var o in s)
a[o] = s[o];
for (var o in i.animations)
a[o] = i.animations[o];
e.animation.animations = a
}
for (var l = 0, h = e.getSlots(); l < h.length; l++)
for (var c = h[l], u = 0, _ = 0, f = c.displayList; _ < f.length; _++) {
var d = f[_];
if (d instanceof t.Armature) {
var p = r.getDisplays(c.name);
if (null !== p && u < (t.DragonBones.webAssembly ? p.size() : p.length)) {
var m = t.DragonBones.webAssembly ? p.get(u) : p[u];
if (null !== m && 1 === m.type) {
var y = this.getArmatureData(m.path, m.parent.parent.parent.name);
y && this.replaceAnimation(d, y, n)
}
}
}
u++
}
return !0
}
,
e.prototype.getAllDragonBonesData = function() {
return this._dragonBonesDataMap
}
,
e.prototype.getAllTextureAtlasData = function() {
return this._textureAtlasDataMap
}
,
Object.defineProperty(e.prototype, "clock", {
get: function() {
return this._dragonBones.clock
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(e.prototype, "dragonBones", {
get: function() {
return this._dragonBones
},
enumerable: !0,
configurable: !0
}),
e.prototype.changeSkin = function(t, e, i) {
return void 0 === i && (i = null),
this.replaceSkin(t, e, !1, i)
}
,
e.prototype.copyAnimationsToArmature = function(t, e, i, n, r) {
void 0 === i && (i = ""),
void 0 === n && (n = ""),
void 0 === r && (r = !0);
var s = this.getArmatureData(e, n);
return !!s && this.replaceAnimation(t, s, r)
}
,
e._objectParser = null,
e._binaryParser = null,
e
}
)();
t.BaseFactory = e;
var i = function() {
this.dataName = "",
this.textureAtlasName = "",
this.skin = null
};
t.BuildArmaturePackage = i
}
)(r || (r = {})),
e.exports = r
}
), {}],
366: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n = s(t("../../cocos2d/core/renderer/assembler"))
, r = s(t("../../cocos2d/core/value-types/mat4"));
function s(t) {
return t && t.__esModule ? t : {
default: t
}
}
function a(t, e) {
return (a = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
var o, l, h, c, u, _, f, d, p, m, y, v, g, A, x, b, C, T, S, w, E, M, D, B, I, P, R, O, L, F, V = t("./ArmatureDisplay"), N = t("../../cocos2d/core/renderer/render-flow"), k = cc.gfx, G = cc.color(255, 0, 0, 255), U = cc.color(0, 0, 255, 255), z = cc.color(0, 255, 0, 255);
function H(t, e) {
if (!t)
return null;
var i, n;
switch (e) {
case 1:
i = u ? 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 = u ? cc.macro.ONE : cc.macro.SRC_ALPHA,
n = cc.macro.ONE_MINUS_SRC_ALPHA
}
var r = !y.enableBatch
, s = y._materials[0];
if (!s)
return null;
var a = y._materialCache
, o = t.getId() + i + n + r
, l = a[o];
return l || (a.baseMaterial ? l = cc.MaterialVariant.create(s) : (l = s,
a.baseMaterial = s),
l.define("CC_USE_MODEL", r),
l.setProperty("texture", t),
l.setBlend(!0, k.BLEND_FUNC_ADD, i, n, k.BLEND_FUNC_ADD, i, n),
a[o] = l),
l
}
function W(t, e) {
D = t.a * e * c,
_ = u ? D / 255 : 1,
w = t.r * o * _,
E = t.g * l * _,
M = t.b * h * _,
S = (D << 24 >>> 0) + (M << 16) + (E << 8) + w
}
var j = (function(t) {
var e, i;
function n() {
return t.apply(this, arguments) || this
}
i = t,
(e = n).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
a(e, i);
var s = n.prototype;
return s.updateRenderData = function() {}
,
s.realTimeTraverse = function(t, e, i) {
for (var n, s, a, o, l, h, c, u, _, y, w = t._slots, E = 0, M = w.length; E < M; E++)
if (c = (u = w[E])._color,
u._visible && u._displayData)
if (e ? u._mulMat(u._worldMatrix, e, u._matrix) : r.default.copy(u._worldMatrix, u._matrix),
u.childArmature)
this.realTimeTraverse(u.childArmature, u._worldMatrix, i * c.a / 255);
else if (o = H(u.getTexture(), u._blendMode)) {
(f || o.getHash() !== m.material.getHash()) && (f = !1,
m._flush(),
m.node = p,
m.material = o),
W(c, i),
_ = u._worldMatrix.m,
l = u._localVertices,
x = l.length >> 2,
h = u._indices,
b = h.length,
y = d.request(x, b),
g = y.indiceOffset,
v = y.byteOffset >> 2,
A = y.vertexOffset,
n = d._vData,
s = d._iData,
a = d._uintVData,
I = _[0],
P = _[4],
R = _[12],
O = _[1],
L = _[5],
F = _[13];
for (var D = 0, B = l.length; D < B; )
C = l[D++],
T = l[D++],
n[v++] = C * I + T * P + R,
n[v++] = C * O + T * L + F,
n[v++] = l[D++],
n[v++] = l[D++],
a[v++] = S;
for (var V = 0, N = h.length; V < N; V++)
s[g++] = A + h[V]
}
}
,
s.cacheTraverse = function(t, e) {
if (t) {
var i = t.segments;
if (0 != i.length) {
var n, r, s, a, o, l = t.vertices, h = t.indices, c = 0, u = 0, _ = 0;
if (e) {
var y = e.m;
I = y[0],
O = y[1],
P = y[4],
L = y[5],
R = y[12],
F = y[13]
}
var w = 16 & B
, E = w && 1 === I && 0 === O && 0 === P && 1 === L
, M = 0
, D = t.colors
, V = D[M++]
, N = V.vfOffset;
W(V, 1);
for (var k = 0, G = i.length; k < G; k++) {
var U = i[k];
a = H(U.tex, U.blendMode),
(f || a.getHash() !== m.material.getHash()) && (f = !1,
m._flush(),
m.node = p,
m.material = a),
x = U.vertexCount,
b = U.indexCount,
o = d.request(x, b),
g = o.indiceOffset,
A = o.vertexOffset,
v = o.byteOffset >> 2,
n = d._vData,
r = d._iData,
s = d._uintVData;
for (var z = g, j = g + b; z < j; z++)
r[z] = A + h[u++];
if (_ = U.vfCount,
n.set(l.subarray(c, c + _), v),
c += _,
E)
for (var X = v, Y = v + _; X < Y; X += 5)
n[X] += R,
n[X + 1] += F;
else if (w)
for (var q = v, J = v + _; q < J; q += 5)
C = n[q],
T = n[q + 1],
n[q] = C * I + T * P + R,
n[q + 1] = C * O + T * L + F;
if (1 & B)
for (var Z = c - _, K = v + 4, Q = v + 4 + _; K < Q; K += 5,
Z += 5)
Z >= N && (W(V = D[M++], 1),
N = V.vfOffset),
s[K] = S
}
}
}
}
,
s.fillBuffers = function(t, e) {
t.node._renderFlag |= N.FLAG_UPDATE_RENDER_DATA;
var i = t._armature;
if (i) {
f = !0,
u = t.premultipliedAlpha,
p = t.node,
d = e._meshBuffer,
m = e,
y = t,
B = 0;
var n = p._color;
o = n.r / 255,
l = n.g / 255,
h = n.b / 255,
c = n.a / 255,
4294967295 !== n._val && (B |= 1);
var r = void 0;
if (y.enableBatch && (r = p._worldMatrix,
f = !1,
B |= 16),
t.isAnimationCached())
this.cacheTraverse(t._curFrame, r);
else {
this.realTimeTraverse(i, r, 1);
var s = t._debugDraw;
if (t.debugBones && s) {
s.clear(),
s.lineWidth = 5,
s.strokeColor = G,
s.fillColor = U;
for (var a = i.getBones(), _ = 0, v = a.length; _ < v; _++) {
var g = a[_]
, A = Math.max(g.boneData.length, 5)
, x = g.globalTransformMatrix.tx
, b = g.globalTransformMatrix.ty
, C = x + g.globalTransformMatrix.a * A
, T = b + g.globalTransformMatrix.b * A;
s.moveTo(x, b),
s.lineTo(C, T),
s.stroke(),
s.circle(x, b, 2 * Math.PI),
s.fill(),
0 === _ && (s.fillColor = z)
}
}
}
e.worldMatDirty++,
t.attachUtil._syncAttachedNode(),
p = void 0,
d = void 0,
m = void 0,
y = void 0
}
}
,
s.postFillBuffers = function(t, e) {
e.worldMatDirty--
}
,
n
}
)(n.default);
i.default = j,
n.default.register(V, j),
e.exports = i.default
}
), {
"../../cocos2d/core/renderer/assembler": 221,
"../../cocos2d/core/renderer/render-flow": 225,
"../../cocos2d/core/value-types/mat4": 284,
"./ArmatureDisplay": 356
}],
367: [(function(t, e) {
"use strict";
var i, n = (i = t("../../cocos2d/core/value-types/mat4")) && i.__esModule ? i : {
default: i
}, r = t("../../cocos2d/core/renderer/render-flow").FLAG_TRANSFORM, s = function() {}, a = function(t) {
Object.defineProperty(t, "_worldMatDirty", {
get: function() {
return !0
},
set: function() {}
}),
t._calculWorldMatrix = s,
t._mulMat = s
}, o = new n.default, l = cc.Class({
name: "sp.AttachUtil",
ctor: function() {
this._inited = !1,
this._skeleton = null,
this._skeletonNode = null,
this._skeletonComp = null,
this._attachedRootNode = null,
this._attachedNodeArray = [],
this._boneIndexToNode = {}
},
init: function(t) {
this._inited = !0,
this._skeleton = t._skeleton,
this._skeletonNode = t.node,
this._skeletonComp = t
},
reset: function() {
this._inited = !1,
this._skeleton = null,
this._skeletonNode = null,
this._skeletonComp = null
},
_prepareAttachNode: function() {
if (this._skeleton) {
var t = this._skeletonNode.getChildByName("ATTACHED_NODE_TREE");
return t && t.isValid || (t = new cc.Node("ATTACHED_NODE_TREE"),
a(t),
this._skeletonNode.addChild(t)),
this._skeletonComp.isAnimationCached() && this._skeletonComp._frameCache && this._skeletonComp._frameCache.enableCacheAttachedInfo(),
this._attachedRootNode = t,
t
}
},
_buildBoneAttachedNode: function(t, e) {
var i = "ATTACHED_NODE:" + t.data.name
, n = new cc.Node(i);
return this._buildBoneRelation(n, t, e),
n
},
_buildBoneRelation: function(t, e, i) {
a(t),
t._bone = e,
t._boneIndex = i,
this._attachedNodeArray.push(t),
this._boneIndexToNode[i] = t
},
getAttachedRootNode: function() {
return this._attachedRootNode
},
getAttachedNodes: function(t) {
var e = this._attachedNodeArray
, i = [];
if (!this._inited)
return i;
for (var n = 0, r = e.length; n < r; n++) {
var s = e[n];
s && s.isValid && s.name === "ATTACHED_NODE:" + t && i.push(s)
}
return i
},
_rebuildNodeArray: function() {
for (var t = this._boneIndexToNode = {}, e = this._attachedNodeArray, i = this._attachedNodeArray = [], n = 0, r = e.length; n < r; n++) {
var s = e[n];
s && s.isValid && !s._toRemove && (i.push(s),
t[s._boneIndex] = s)
}
},
_sortNodeArray: function() {
this._attachedNodeArray.sort((function(t, e) {
return t._boneIndex < e._boneIndex ? -1 : 1
}
))
},
_getNodeByBoneIndex: function(t) {
var e = this._boneIndexToNode[t];
return e && e.isValid ? e : null
},
destroyAttachedNodes: function(t) {
if (this._inited) {
for (var e = this._attachedNodeArray, i = function t(e) {
for (var i = e.children, n = 0, r = i.length; n < r; n++) {
var s = i[n];
s && t(s)
}
e._toRemove = !0
}, n = 0, r = e.length; n < r; n++) {
var s = e[n];
s && s.isValid && s.name.split("ATTACHED_NODE:")[1] === t && (i(s),
s.removeFromParent(!0),
s.destroy(),
e[n] = null)
}
this._rebuildNodeArray()
}
},
generateAttachedNodes: function(t) {
var e = [];
if (!this._inited)
return e;
var i = this._prepareAttachNode();
if (!i)
return e;
for (var n = [], r = this._skeleton.bones, s = 0, a = r.length; s < a; s++) {
var o = r[s];
o.data.name == t && n.push(o)
}
for (var l = function(t) {
if (t) {
var e = t.data
, n = this._getNodeByBoneIndex(e.index);
if (n)
return n;
n = this._buildBoneAttachedNode(t, e.index);
var r = l(t.parent) || i;
return n.parent = r,
n
}
}
.bind(this), h = 0, c = n.length; h < c; h++) {
var u = l(n[h]);
e.push(u)
}
return this._sortNodeArray(),
e
},
destroyAllAttachedNodes: function() {
if (this._attachedRootNode = null,
this._attachedNodeArray.length = 0,
this._boneIndexToNode = {},
this._inited) {
var t = this._skeletonNode.getChildByName("ATTACHED_NODE_TREE");
t && (t.removeFromParent(!0),
t.destroy(),
t = null)
}
},
generateAllAttachedNodes: function() {
if (this._inited) {
this._boneIndexToNode = {},
this._attachedNodeArray.length = 0;
var t = this._prepareAttachNode();
if (t) {
for (var e = this._skeleton.bones, i = 0, n = e.length; i < n; i++) {
var r = e[i]
, s = r.data
, a = null;
if (r.parent) {
var o = r.parent.data.index;
a = this._boneIndexToNode[o]
} else
a = t;
if (a) {
var l = a.getChildByName("ATTACHED_NODE:" + s.name);
l && l.isValid ? this._buildBoneRelation(l, r, s.index) : (l = this._buildBoneAttachedNode(r, s.index),
a.addChild(l))
}
}
return t
}
}
},
_hasAttachedNode: function() {
return !!this._inited && !!this._skeletonNode.getChildByName("ATTACHED_NODE_TREE")
},
_associateAttachedNode: function() {
if (this._inited) {
var t = this._skeletonNode.getChildByName("ATTACHED_NODE_TREE");
if (t && t.isValid) {
this._attachedRootNode = t,
this._boneIndexToNode = {},
this._attachedNodeArray.length = 0,
a(t),
this._skeletonComp.isAnimationCached() && this._skeletonComp._frameCache && this._skeletonComp._frameCache.enableCacheAttachedInfo();
for (var e = this._skeleton.bones, i = 0, n = e.length; i < n; i++) {
var r = e[i]
, s = r.data
, o = null;
if (r.parent) {
var l = r.parent.data.index;
o = this._boneIndexToNode[l]
} else
o = t;
if (o) {
var h = o.getChildByName("ATTACHED_NODE:" + s.name);
h && h.isValid && this._buildBoneRelation(h, r, s.index)
}
}
}
}
},
_syncAttachedNode: function() {
if (this._inited) {
var t = this._attachedRootNode
, e = this._attachedNodeArray;
if (!t || !t.isValid)
return this._attachedRootNode = null,
void (e.length = 0);
var i = this._skeletonNode._worldMatrix;
n.default.copy(t._worldMatrix, i),
t._renderFlag &= ~r;
var s;
if (s = this._skeletonComp.isAnimationCached() ? this._skeletonComp._curFrame && this._skeletonComp._curFrame.boneInfos : this._skeleton.bones) {
for (var a = this._skeletonNode._mulMat, l = function(t, e, i) {
var n = o.m;
n[0] = i.a,
n[1] = i.c,
n[4] = i.b,
n[5] = i.d,
n[12] = i.worldX,
n[13] = i.worldY,
a(t, e, o)
}, h = !1, c = 0, u = e.length; c < u; c++) {
var _ = e[c];
if (_ && _.isValid) {
var f = s[_._boneIndex];
f ? (l(_._worldMatrix, t._worldMatrix, f),
_._renderFlag &= ~r) : (_.removeFromParent(!0),
_.destroy(),
e[c] = null,
h = !0)
} else
e[c] = null,
h = !0
}
h && this._rebuildNodeArray()
}
}
}
});
e.exports = sp.AttachUtil = l
}
), {
"../../cocos2d/core/renderer/render-flow": 225,
"../../cocos2d/core/value-types/mat4": 284
}],
368: [(function(t, e) {
"use strict";
var i = t("./track-entry-listeners")
, n = t("../../cocos2d/core/components/CCRenderComponent")
, r = t("./lib/spine")
, s = t("../../cocos2d/core/graphics/graphics")
, a = t("../../cocos2d/core/renderer/render-flow").FLAG_POST_RENDER
, o = t("./skeleton-cache")
, l = t("./AttachUtil")
, h = cc.Enum({
default: -1
})
, c = cc.Enum({
"<None>": 0
})
, u = cc.Enum({
REALTIME: 0,
SHARED_CACHE: 1,
PRIVATE_CACHE: 2
});
sp.Skeleton = cc.Class({
name: "sp.Skeleton",
extends: n,
editor: !1,
statics: {
AnimationCacheMode: u
},
properties: {
paused: {
default: !1,
visible: !1
},
skeletonData: {
default: null,
type: sp.SkeletonData,
notify: function() {
this.defaultSkin = "",
this.defaultAnimation = "",
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,
t ? this.setAnimation(0, t, this.loop) : this.isAnimationCached() || (this.clearTrack(0),
this.setToSetupPose())
},
visible: !1
},
_defaultSkinIndex: {
get: function() {
if (this.skeletonData) {
var t = this.skeletonData.getSkinsEnum();
if (t)
if ("" === this.defaultSkin) {
if (t.hasOwnProperty(0))
return this._defaultSkinIndex = 0,
0
} else {
var e = t[this.defaultSkin];
if (void 0 !== e)
return e
}
}
return 0
},
set: function(t) {
var e;
if (this.skeletonData && (e = this.skeletonData.getSkinsEnum()),
!e)
return cc.errorID("", this.name);
var i = e[t];
void 0 !== i ? (this.defaultSkin = i,
this.setSkin(this.defaultSkin)) : cc.errorID(7501, this.name)
},
type: h,
visible: !0,
animatable: !1,
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;
if (this.skeletonData && (e = this.skeletonData.getAnimsEnum()),
!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: c,
visible: !0,
animatable: !1,
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()
}
},
debugMesh: {
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._effectDelegate = null,
this._skeleton = null,
this._rootBone = null,
this._listener = null,
this._materialCache = {},
this._debugRenderer = null,
this._startSlotIndex = -1,
this._endSlotIndex = -1,
this._startEntry = {
animation: {
name: ""
},
trackIndex: 0
},
this._endEntry = {
animation: {
name: ""
},
trackIndex: 0
},
this.attachUtil = new l
},
_getDefaultMaterial: function() {
return cc.Material.getBuiltinMaterial("2d-spine")
},
_updateMaterial: function() {
var t = this.useTint || this.isAnimationCached() && !0
, e = this.getMaterial(0);
if (e) {
e.define("USE_TINT", t),
e.define("CC_USE_MODEL", !this.enableBatch);
var i = this.premultipliedAlpha ? cc.gfx.BLEND_ONE : cc.gfx.BLEND_SRC_ALPHA
, n = cc.gfx.BLEND_ONE_MINUS_SRC_ALPHA;
e.setBlend(!0, cc.gfx.BLEND_FUNC_ADD, i, i, cc.gfx.BLEND_FUNC_ADD, n, n)
}
this._materialCache = {}
},
disableRender: function() {
this._super(),
this.node._renderFlag &= ~a
},
markForRender: function(t) {
this._super(t),
t ? this.node._renderFlag |= a : this.node._renderFlag &= ~a
},
_updateUseTint: function() {
var t = this.getMaterial(0);
if (t) {
var e = this.useTint || this.isAnimationCached() && !0;
t.define("USE_TINT", e)
}
this._materialCache = {}
},
_updateBatch: function() {
var t = this.getMaterial(0);
t && t.define("CC_USE_MODEL", !this.enableBatch),
this._materialCache = {}
},
_validateRender: function() {
var t = this.skeletonData;
t && t.isTexturesLoaded() ? this._super() : this.disableRender()
},
setSkeletonData: function(t) {
if (null != t.width && null != t.height && this.node.setContentSize(t.width, t.height),
this._cacheMode === u.SHARED_CACHE ? this._skeletonCache = o.sharedCache : this._cacheMode === u.PRIVATE_CACHE && (this._skeletonCache = new o,
this._skeletonCache.enablePrivateMode()),
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 r.Skeleton(t),
this._clipper = new r.SkeletonClipping,
this._rootBone = this._skeleton.getRootBone();
this.markForRender(!0)
},
setSlotsRange: function(t, e) {
this.isAnimationCached() ? cc.warn("Slots visible range can not be modified in cached mode.") : (this._startSlotIndex = t,
this._endSlotIndex = e)
},
setAnimationStateData: function(t) {
if (this.isAnimationCached())
cc.warn("'setAnimationStateData' interface can not be invoked in cached mode.");
else {
var e = new r.AnimationState(t);
this._listener && (this._state && this._state.removeListener(this._listener),
e.addListener(this._listener)),
this._state = e
}
},
__preload: function() {
this._super();
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._updateSkeletonData(),
this._updateDebugDraw(),
this._updateUseTint(),
this._updateBatch()
},
setAnimationCacheMode: function(t) {
this._preCacheMode !== t && (this._cacheMode = t,
this._updateSkeletonData(),
this._updateUseTint())
},
isAnimationCached: function() {
return this._cacheMode !== u.REALTIME
},
update: function(t) {
if (!this.paused)
if (t *= this.timeScale * sp.timeScale,
this.isAnimationCached()) {
if (this._isAniComplete) {
if (0 === this._animationQueue.length && !this._headAniInfo) {
var e = this._frameCache;
if (e && e.isInvalid()) {
e.updateToFrame();
var i = e.frames;
this._curFrame = i[i.length - 1]
}
return
}
if (this._headAniInfo || (this._headAniInfo = this._animationQueue.shift()),
this._accTime += t,
this._accTime > this._headAniInfo.delay) {
var n = this._headAniInfo;
this._headAniInfo = null,
this.setAnimation(0, n.animationName, n.loop)
}
return
}
this._updateCache(t)
} else
this._updateRealtime(t)
},
_emitCacheCompleteEvent: function() {
this._listener && (this._endEntry.animation.name = this._animationName,
this._listener.complete && this._listener.complete(this._endEntry),
this._listener.end && this._listener.end(this._endEntry))
},
_updateCache: function(t) {
var e = this._frameCache;
if (e.isInited()) {
var i = e.frames
, n = o.FrameTime;
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);
if (e.isCompleted || e.updateToFrame(r),
e.isCompleted && r >= i.length) {
if (this._playCount++,
this._playTimes > 0 && this._playCount >= this._playTimes)
return this._curFrame = i[i.length - 1],
this._accTime = 0,
this._playCount = 0,
this._isAniComplete = !0,
void this._emitCacheCompleteEvent();
this._accTime = 0,
r = 0,
this._emitCacheCompleteEvent()
}
this._curFrame = i[r]
}
},
_updateRealtime: function(t) {
var e = this._skeleton
, i = this._state;
e && (e.update(t),
i && (i.update(t),
i.apply(e)))
},
setVertexEffectDelegate: function(t) {
this._effectDelegate = t
},
updateWorldTransform: function() {
this.isAnimationCached() && this._skeleton && this._skeleton.updateWorldTransform()
},
setToSetupPose: function() {
this._skeleton && this._skeleton.setToSetupPose()
},
setBonesToSetupPose: function() {
this._skeleton && this._skeleton.setBonesToSetupPose()
},
setSlotsToSetupPose: function() {
this._skeleton && this._skeleton.setSlotsToSetupPose()
},
updateAnimationCache: function(t) {
if (this.isAnimationCached()) {
var e = this.skeletonData._uuid;
this._skeletonCache && this._skeletonCache.updateAnimationCache(e, t)
}
},
invalidAnimationCache: function() {
this.isAnimationCached() && this._skeletonCache && this._skeletonCache.invalidAnimationCache(this.skeletonData._uuid)
},
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) {
this._skeleton && (this._skeleton.setSkinByName(t),
this._skeleton.setSlotsToSetupPose()),
this.invalidAnimationCache()
},
getAttachment: function(t, e) {
return this._skeleton ? this._skeleton.getAttachmentByName(t, e) : null
},
setAttachment: function(t, e) {
this._skeleton && this._skeleton.setAttachment(t, e),
this.invalidAnimationCache()
},
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) {
if (this._playTimes = i ? 0 : 1,
this._animationName = e,
this.isAnimationCached()) {
if (0 !== t && cc.warn("Track index can not greater than 0 in cached mode."),
!this._skeletonCache)
return null;
var n = this._skeletonCache.getAnimationCache(this.skeletonData._uuid, e);
n || (n = this._skeletonCache.initAnimationCache(this.skeletonData._uuid, e)),
n && (this._isAniComplete = !1,
this._accTime = 0,
this._playCount = 0,
this._frameCache = n,
this.attachUtil._hasAttachedNode() && this._frameCache.enableCacheAttachedInfo(),
this._frameCache.updateToFrame(0),
this._curFrame = this._frameCache.frames[0])
} else if (this._skeleton) {
var r = this._skeleton.data.findAnimation(e);
if (!r)
return cc.logID(7509, e),
null;
var s = this._state.setAnimationWith(t, r, i);
return this._state.apply(this._skeleton),
s
}
return null
},
addAnimation: function(t, e, i, n) {
if (n = n || 0,
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);
return r ? this._state.addAnimationWith(t, r, i, n) : (cc.logID(7510, e),
null)
}
return null
},
findAnimation: function(t) {
return this._skeleton ? this._skeleton.data.findAnimation(t) : null
},
getCurrent: function(t) {
if (this.isAnimationCached())
cc.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() ? cc.warn("'clearTracks' interface can not be invoked in cached mode.") : this._state && this._state.clearTracks()
},
clearTrack: function(t) {
this.isAnimationCached() ? cc.warn("'clearTrack' interface can not be invoked in cached mode.") : this._state && this._state.clearTrack(t)
},
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) {
i.getListeners(t).start = e
},
setTrackInterruptListener: function(t, e) {
i.getListeners(t).interrupt = e
},
setTrackEndListener: function(t, e) {
i.getListeners(t).end = e
},
setTrackDisposeListener: function(t, e) {
i.getListeners(t).dispose = e
},
setTrackCompleteListener: function(t, e) {
i.getListeners(t).complete = function(t) {
var i = Math.floor(t.trackTime / t.animationEnd);
e(t, i)
}
},
setTrackEventListener: function(t, e) {
i.getListeners(t).event = e
},
getState: function() {
return this._state
},
_updateAnimEnum: !1,
_updateSkinEnum: !1,
_ensureListener: function() {
this._listener || (this._listener = new i,
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 r.AnimationStateData(this._skeleton.data)),
this.defaultSkin && this.setSkin(this.defaultSkin)
} catch (e) {
cc.warn(e)
}
this.attachUtil.init(this),
this.attachUtil._associateAttachedNode(),
this._preCacheMode = this._cacheMode,
this.animation = this.defaultAnimation
} else
this.disableRender()
} else
this.disableRender()
},
_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(s);
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/components/CCRenderComponent": 115,
"../../cocos2d/core/graphics/graphics": 156,
"../../cocos2d/core/renderer/render-flow": 225,
"./AttachUtil": 367,
"./lib/spine": 370,
"./skeleton-cache": 371,
"./track-entry-listeners": 375
}],
369: [(function(t) {
"use strict";
var e = "undefined" == typeof window ? global : window;
e.spine = t("./lib/spine"),
e.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 = e.spine,
t("./skeleton-texture"),
t("./skeleton-data"),
t("./vertex-effect-delegate"),
t("./Skeleton"),
t("./spine-assembler")
}
), {
"./Skeleton": 368,
"./lib/spine": 370,
"./skeleton-data": 372,
"./skeleton-texture": 373,
"./spine-assembler": 374,
"./vertex-effect-delegate": 376
}],
370: [(function(t, e) {
"use strict";
var i, n, r, s = (i = function(t, e) {
return (i = 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])
}
)(t, e)
}
,
function(t, e) {
function n() {
this.constructor = t
}
i(t, e),
t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype,
new n)
}
);
(function(t) {
var e, i, n, r = (function() {
function t(t, e, i) {
if (null == t)
throw new Error("name cannot be null.");
if (null == e)
throw new Error("timelines cannot be null.");
this.name = t,
this.timelines = e,
this.timelineIds = [];
for (var n = 0; n < e.length; n++)
this.timelineIds[e[n].getPropertyId()] = !0;
this.duration = i
}
return t.prototype.hasTimeline = function(t) {
return 1 == this.timelineIds[t]
}
,
t.prototype.apply = function(t, e, i, n, r, s, a, o) {
if (null == t)
throw new Error("skeleton cannot be null.");
n && 0 != this.duration && (i %= this.duration,
e > 0 && (e %= this.duration));
for (var l = this.timelines, h = 0, c = l.length; h < c; h++)
l[h].apply(t, e, i, r, s, a, o)
}
,
t.binarySearch = function(t, e, i) {
void 0 === i && (i = 1);
var n = 0
, r = t.length / i - 2;
if (0 == r)
return i;
for (var s = r >>> 1; ; ) {
if (t[(s + 1) * i] <= e ? n = s + 1 : r = s,
n == r)
return (n + 1) * i;
s = n + r >>> 1
}
}
,
t.linearSearch = function(t, e, i) {
for (var n = 0, r = t.length - i; n <= r; n += i)
if (t[n] > e)
return n;
return -1
}
,
t
}
)();
t.Animation = r,
(function(t) {
t[t.setup = 0] = "setup",
t[t.first = 1] = "first",
t[t.replace = 2] = "replace",
t[t.add = 3] = "add"
}
)(e = t.MixBlend || (t.MixBlend = {})),
(function(t) {
t[t.mixIn = 0] = "mixIn",
t[t.mixOut = 1] = "mixOut"
}
)(i = t.MixDirection || (t.MixDirection = {})),
(function(t) {
t[t.rotate = 0] = "rotate",
t[t.translate = 1] = "translate",
t[t.scale = 2] = "scale",
t[t.shear = 3] = "shear",
t[t.attachment = 4] = "attachment",
t[t.color = 5] = "color",
t[t.deform = 6] = "deform",
t[t.event = 7] = "event",
t[t.drawOrder = 8] = "drawOrder",
t[t.ikConstraint = 9] = "ikConstraint",
t[t.transformConstraint = 10] = "transformConstraint",
t[t.pathConstraintPosition = 11] = "pathConstraintPosition",
t[t.pathConstraintSpacing = 12] = "pathConstraintSpacing",
t[t.pathConstraintMix = 13] = "pathConstraintMix",
t[t.twoColor = 14] = "twoColor"
}
)(n = t.TimelineType || (t.TimelineType = {}));
var a = (function() {
function e(i) {
if (i <= 0)
throw new Error("frameCount must be > 0: " + i);
this.curves = t.Utils.newFloatArray((i - 1) * e.BEZIER_SIZE)
}
return e.prototype.getFrameCount = function() {
return this.curves.length / e.BEZIER_SIZE + 1
}
,
e.prototype.setLinear = function(t) {
this.curves[t * e.BEZIER_SIZE] = e.LINEAR
}
,
e.prototype.setStepped = function(t) {
this.curves[t * e.BEZIER_SIZE] = e.STEPPED
}
,
e.prototype.getCurveType = function(t) {
var i = t * e.BEZIER_SIZE;
if (i == this.curves.length)
return e.LINEAR;
var n = this.curves[i];
return n == e.LINEAR ? e.LINEAR : n == e.STEPPED ? e.STEPPED : e.BEZIER
}
,
e.prototype.setCurve = function(t, i, n, r, s) {
var a = .03 * (2 * -i + r)
, o = .03 * (2 * -n + s)
, l = .006 * (3 * (i - r) + 1)
, h = .006 * (3 * (n - s) + 1)
, c = 2 * a + l
, u = 2 * o + h
, _ = .3 * i + a + .16666667 * l
, f = .3 * n + o + .16666667 * h
, d = t * e.BEZIER_SIZE
, p = this.curves;
p[d++] = e.BEZIER;
for (var m = _, y = f, v = d + e.BEZIER_SIZE - 1; d < v; d += 2)
p[d] = m,
p[d + 1] = y,
_ += c,
f += u,
c += l,
u += h,
m += _,
y += f
}
,
e.prototype.getCurvePercent = function(i, n) {
n = t.MathUtils.clamp(n, 0, 1);
var r = this.curves
, s = i * e.BEZIER_SIZE
, a = r[s];
if (a == e.LINEAR)
return n;
if (a == e.STEPPED)
return 0;
for (var o = 0, l = ++s, h = s + e.BEZIER_SIZE - 1; s < h; s += 2)
if ((o = r[s]) >= n) {
var c = void 0
, u = void 0;
return s == l ? (c = 0,
u = 0) : (c = r[s - 2],
u = r[s - 1]),
u + (r[s + 1] - u) * (n - c) / (o - c)
}
var _ = r[s - 1];
return _ + (1 - _) * (n - o) / (1 - o)
}
,
e.LINEAR = 0,
e.STEPPED = 1,
e.BEZIER = 2,
e.BEZIER_SIZE = 19,
e
}
)();
t.CurveTimeline = a;
var o = (function(i) {
function a(e) {
var n = i.call(this, e) || this;
return n.frames = t.Utils.newFloatArray(e << 1),
n
}
return s(a, i),
a.prototype.getPropertyId = function() {
return (n.rotate << 24) + this.boneIndex
}
,
a.prototype.setFrame = function(t, e, i) {
t <<= 1,
this.frames[t] = e,
this.frames[t + a.ROTATION] = i
}
,
a.prototype.apply = function(t, i, n, s, o, l) {
var h = this.frames
, c = t.bones[this.boneIndex];
if (c.active)
if (n < h[0])
switch (l) {
case e.setup:
return void (c.rotation = c.data.rotation);
case e.first:
var u = c.data.rotation - c.rotation;
c.rotation += (u - 360 * (16384 - (16384.499999999996 - u / 360 | 0))) * o
}
else if (n >= h[h.length - a.ENTRIES]) {
var _ = h[h.length + a.PREV_ROTATION];
switch (l) {
case e.setup:
c.rotation = c.data.rotation + _ * o;
break;
case e.first:
case e.replace:
_ += c.data.rotation - c.rotation,
_ -= 360 * (16384 - (16384.499999999996 - _ / 360 | 0));
case e.add:
c.rotation += _ * o
}
} else {
var f = r.binarySearch(h, n, a.ENTRIES)
, d = h[f + a.PREV_ROTATION]
, p = h[f]
, m = this.getCurvePercent((f >> 1) - 1, 1 - (n - p) / (h[f + a.PREV_TIME] - p))
, y = h[f + a.ROTATION] - d;
switch (y = d + (y - 360 * (16384 - (16384.499999999996 - y / 360 | 0))) * m,
l) {
case e.setup:
c.rotation = c.data.rotation + (y - 360 * (16384 - (16384.499999999996 - y / 360 | 0))) * o;
break;
case e.first:
case e.replace:
y += c.data.rotation - c.rotation;
case e.add:
c.rotation += (y - 360 * (16384 - (16384.499999999996 - y / 360 | 0))) * o
}
}
}
,
a.ENTRIES = 2,
a.PREV_TIME = -2,
a.PREV_ROTATION = -1,
a.ROTATION = 1,
a
}
)(a);
t.RotateTimeline = o;
var l = (function(i) {
function a(e) {
var n = i.call(this, e) || this;
return n.frames = t.Utils.newFloatArray(e * a.ENTRIES),
n
}
return s(a, i),
a.prototype.getPropertyId = function() {
return (n.translate << 24) + this.boneIndex
}
,
a.prototype.setFrame = function(t, e, i, n) {
t *= a.ENTRIES,
this.frames[t] = e,
this.frames[t + a.X] = i,
this.frames[t + a.Y] = n
}
,
a.prototype.apply = function(t, i, n, s, o, l) {
var h = this.frames
, c = t.bones[this.boneIndex];
if (c.active)
if (n < h[0])
switch (l) {
case e.setup:
return c.x = c.data.x,
void (c.y = c.data.y);
case e.first:
c.x += (c.data.x - c.x) * o,
c.y += (c.data.y - c.y) * o
}
else {
var u = 0
, _ = 0;
if (n >= h[h.length - a.ENTRIES])
u = h[h.length + a.PREV_X],
_ = h[h.length + a.PREV_Y];
else {
var f = r.binarySearch(h, n, a.ENTRIES);
u = h[f + a.PREV_X],
_ = h[f + a.PREV_Y];
var d = h[f]
, p = this.getCurvePercent(f / a.ENTRIES - 1, 1 - (n - d) / (h[f + a.PREV_TIME] - d));
u += (h[f + a.X] - u) * p,
_ += (h[f + a.Y] - _) * p
}
switch (l) {
case e.setup:
c.x = c.data.x + u * o,
c.y = c.data.y + _ * o;
break;
case e.first:
case e.replace:
c.x += (c.data.x + u - c.x) * o,
c.y += (c.data.y + _ - c.y) * o;
break;
case e.add:
c.x += u * o,
c.y += _ * o
}
}
}
,
a.ENTRIES = 3,
a.PREV_TIME = -3,
a.PREV_X = -2,
a.PREV_Y = -1,
a.X = 1,
a.Y = 2,
a
}
)(a);
t.TranslateTimeline = l;
var h = (function(a) {
function o(t) {
return a.call(this, t) || this
}
return s(o, a),
o.prototype.getPropertyId = function() {
return (n.scale << 24) + this.boneIndex
}
,
o.prototype.apply = function(n, s, a, l, h, c, u) {
var _ = this.frames
, f = n.bones[this.boneIndex];
if (f.active)
if (a < _[0])
switch (c) {
case e.setup:
return f.scaleX = f.data.scaleX,
void (f.scaleY = f.data.scaleY);
case e.first:
f.scaleX += (f.data.scaleX - f.scaleX) * h,
f.scaleY += (f.data.scaleY - f.scaleY) * h
}
else {
var d = 0
, p = 0;
if (a >= _[_.length - o.ENTRIES])
d = _[_.length + o.PREV_X] * f.data.scaleX,
p = _[_.length + o.PREV_Y] * f.data.scaleY;
else {
var m = r.binarySearch(_, a, o.ENTRIES);
d = _[m + o.PREV_X],
p = _[m + o.PREV_Y];
var y = _[m]
, v = this.getCurvePercent(m / o.ENTRIES - 1, 1 - (a - y) / (_[m + o.PREV_TIME] - y));
d = (d + (_[m + o.X] - d) * v) * f.data.scaleX,
p = (p + (_[m + o.Y] - p) * v) * f.data.scaleY
}
if (1 == h)
c == e.add ? (f.scaleX += d - f.data.scaleX,
f.scaleY += p - f.data.scaleY) : (f.scaleX = d,
f.scaleY = p);
else {
var g = 0
, A = 0;
if (u == i.mixOut)
switch (c) {
case e.setup:
g = f.data.scaleX,
A = f.data.scaleY,
f.scaleX = g + (Math.abs(d) * t.MathUtils.signum(g) - g) * h,
f.scaleY = A + (Math.abs(p) * t.MathUtils.signum(A) - A) * h;
break;
case e.first:
case e.replace:
g = f.scaleX,
A = f.scaleY,
f.scaleX = g + (Math.abs(d) * t.MathUtils.signum(g) - g) * h,
f.scaleY = A + (Math.abs(p) * t.MathUtils.signum(A) - A) * h;
break;
case e.add:
g = f.scaleX,
A = f.scaleY,
f.scaleX = g + (Math.abs(d) * t.MathUtils.signum(g) - f.data.scaleX) * h,
f.scaleY = A + (Math.abs(p) * t.MathUtils.signum(A) - f.data.scaleY) * h
}
else
switch (c) {
case e.setup:
g = Math.abs(f.data.scaleX) * t.MathUtils.signum(d),
A = Math.abs(f.data.scaleY) * t.MathUtils.signum(p),
f.scaleX = g + (d - g) * h,
f.scaleY = A + (p - A) * h;
break;
case e.first:
case e.replace:
g = Math.abs(f.scaleX) * t.MathUtils.signum(d),
A = Math.abs(f.scaleY) * t.MathUtils.signum(p),
f.scaleX = g + (d - g) * h,
f.scaleY = A + (p - A) * h;
break;
case e.add:
g = t.MathUtils.signum(d),
A = t.MathUtils.signum(p),
f.scaleX = Math.abs(f.scaleX) * g + (d - Math.abs(f.data.scaleX) * g) * h,
f.scaleY = Math.abs(f.scaleY) * A + (p - Math.abs(f.data.scaleY) * A) * h
}
}
}
}
,
o
}
)(l);
t.ScaleTimeline = h;
var c = (function(t) {
function i(e) {
return t.call(this, e) || this
}
return s(i, t),
i.prototype.getPropertyId = function() {
return (n.shear << 24) + this.boneIndex
}
,
i.prototype.apply = function(t, n, s, a, o, l) {
var h = this.frames
, c = t.bones[this.boneIndex];
if (c.active)
if (s < h[0])
switch (l) {
case e.setup:
return c.shearX = c.data.shearX,
void (c.shearY = c.data.shearY);
case e.first:
c.shearX += (c.data.shearX - c.shearX) * o,
c.shearY += (c.data.shearY - c.shearY) * o
}
else {
var u = 0
, _ = 0;
if (s >= h[h.length - i.ENTRIES])
u = h[h.length + i.PREV_X],
_ = h[h.length + i.PREV_Y];
else {
var f = r.binarySearch(h, s, i.ENTRIES);
u = h[f + i.PREV_X],
_ = h[f + i.PREV_Y];
var d = h[f]
, p = this.getCurvePercent(f / i.ENTRIES - 1, 1 - (s - d) / (h[f + i.PREV_TIME] - d));
u += (h[f + i.X] - u) * p,
_ += (h[f + i.Y] - _) * p
}
switch (l) {
case e.setup:
c.shearX = c.data.shearX + u * o,
c.shearY = c.data.shearY + _ * o;
break;
case e.first:
case e.replace:
c.shearX += (c.data.shearX + u - c.shearX) * o,
c.shearY += (c.data.shearY + _ - c.shearY) * o;
break;
case e.add:
c.shearX += u * o,
c.shearY += _ * o
}
}
}
,
i
}
)(l);
t.ShearTimeline = c;
var u = (function(i) {
function a(e) {
var n = i.call(this, e) || this;
return n.frames = t.Utils.newFloatArray(e * a.ENTRIES),
n
}
return s(a, i),
a.prototype.getPropertyId = function() {
return (n.color << 24) + this.slotIndex
}
,
a.prototype.setFrame = function(t, e, i, n, r, s) {
t *= a.ENTRIES,
this.frames[t] = e,
this.frames[t + a.R] = i,
this.frames[t + a.G] = n,
this.frames[t + a.B] = r,
this.frames[t + a.A] = s
}
,
a.prototype.apply = function(t, i, n, s, o, l) {
var h = t.slots[this.slotIndex];
if (h.bone.active) {
var c = this.frames;
if (n < c[0])
switch (l) {
case e.setup:
return void h.color.setFromColor(h.data.color);
case e.first:
var u = h.color
, _ = h.data.color;
u.add((_.r - u.r) * o, (_.g - u.g) * o, (_.b - u.b) * o, (_.a - u.a) * o)
}
else {
var f = 0
, d = 0
, p = 0
, m = 0;
if (n >= c[c.length - a.ENTRIES]) {
var y = c.length;
f = c[y + a.PREV_R],
d = c[y + a.PREV_G],
p = c[y + a.PREV_B],
m = c[y + a.PREV_A]
} else {
var v = r.binarySearch(c, n, a.ENTRIES);
f = c[v + a.PREV_R],
d = c[v + a.PREV_G],
p = c[v + a.PREV_B],
m = c[v + a.PREV_A];
var g = c[v]
, A = this.getCurvePercent(v / a.ENTRIES - 1, 1 - (n - g) / (c[v + a.PREV_TIME] - g));
f += (c[v + a.R] - f) * A,
d += (c[v + a.G] - d) * A,
p += (c[v + a.B] - p) * A,
m += (c[v + a.A] - m) * A
}
1 == o ? h.color.set(f, d, p, m) : (u = h.color,
l == e.setup && u.setFromColor(h.data.color),
u.add((f - u.r) * o, (d - u.g) * o, (p - u.b) * o, (m - u.a) * o))
}
}
}
,
a.ENTRIES = 5,
a.PREV_TIME = -5,
a.PREV_R = -4,
a.PREV_G = -3,
a.PREV_B = -2,
a.PREV_A = -1,
a.R = 1,
a.G = 2,
a.B = 3,
a.A = 4,
a
}
)(a);
t.ColorTimeline = u;
var _ = (function(i) {
function a(e) {
var n = i.call(this, e) || this;
return n.frames = t.Utils.newFloatArray(e * a.ENTRIES),
n
}
return s(a, i),
a.prototype.getPropertyId = function() {
return (n.twoColor << 24) + this.slotIndex
}
,
a.prototype.setFrame = function(t, e, i, n, r, s, o, l, h) {
t *= a.ENTRIES,
this.frames[t] = e,
this.frames[t + a.R] = i,
this.frames[t + a.G] = n,
this.frames[t + a.B] = r,
this.frames[t + a.A] = s,
this.frames[t + a.R2] = o,
this.frames[t + a.G2] = l,
this.frames[t + a.B2] = h
}
,
a.prototype.apply = function(t, i, n, s, o, l) {
var h = t.slots[this.slotIndex];
if (h.bone.active) {
var c = this.frames;
if (n < c[0])
switch (l) {
case e.setup:
return h.color.setFromColor(h.data.color),
void h.darkColor.setFromColor(h.data.darkColor);
case e.first:
var u = h.color
, _ = h.darkColor
, f = h.data.color
, d = h.data.darkColor;
u.add((f.r - u.r) * o, (f.g - u.g) * o, (f.b - u.b) * o, (f.a - u.a) * o),
_.add((d.r - _.r) * o, (d.g - _.g) * o, (d.b - _.b) * o, 0)
}
else {
var p = 0
, m = 0
, y = 0
, v = 0
, g = 0
, A = 0
, x = 0;
if (n >= c[c.length - a.ENTRIES]) {
var b = c.length;
p = c[b + a.PREV_R],
m = c[b + a.PREV_G],
y = c[b + a.PREV_B],
v = c[b + a.PREV_A],
g = c[b + a.PREV_R2],
A = c[b + a.PREV_G2],
x = c[b + a.PREV_B2]
} else {
var C = r.binarySearch(c, n, a.ENTRIES);
p = c[C + a.PREV_R],
m = c[C + a.PREV_G],
y = c[C + a.PREV_B],
v = c[C + a.PREV_A],
g = c[C + a.PREV_R2],
A = c[C + a.PREV_G2],
x = c[C + a.PREV_B2];
var T = c[C]
, S = this.getCurvePercent(C / a.ENTRIES - 1, 1 - (n - T) / (c[C + a.PREV_TIME] - T));
p += (c[C + a.R] - p) * S,
m += (c[C + a.G] - m) * S,
y += (c[C + a.B] - y) * S,
v += (c[C + a.A] - v) * S,
g += (c[C + a.R2] - g) * S,
A += (c[C + a.G2] - A) * S,
x += (c[C + a.B2] - x) * S
}
1 == o ? (h.color.set(p, m, y, v),
h.darkColor.set(g, A, x, 1)) : (u = h.color,
_ = h.darkColor,
l == e.setup && (u.setFromColor(h.data.color),
_.setFromColor(h.data.darkColor)),
u.add((p - u.r) * o, (m - u.g) * o, (y - u.b) * o, (v - u.a) * o),
_.add((g - _.r) * o, (A - _.g) * o, (x - _.b) * o, 0))
}
}
}
,
a.ENTRIES = 8,
a.PREV_TIME = -8,
a.PREV_R = -7,
a.PREV_G = -6,
a.PREV_B = -5,
a.PREV_A = -4,
a.PREV_R2 = -3,
a.PREV_G2 = -2,
a.PREV_B2 = -1,
a.R = 1,
a.G = 2,
a.B = 3,
a.A = 4,
a.R2 = 5,
a.G2 = 6,
a.B2 = 7,
a
}
)(a);
t.TwoColorTimeline = _;
var f = (function() {
function s(e) {
this.frames = t.Utils.newFloatArray(e),
this.attachmentNames = new Array(e)
}
return s.prototype.getPropertyId = function() {
return (n.attachment << 24) + this.slotIndex
}
,
s.prototype.getFrameCount = function() {
return this.frames.length
}
,
s.prototype.setFrame = function(t, e, i) {
this.frames[t] = e,
this.attachmentNames[t] = i
}
,
s.prototype.apply = function(t, n, s, a, o, l, h) {
var c = t.slots[this.slotIndex];
if (c.bone.active)
if (h != i.mixOut || l != e.setup) {
var u = this.frames;
if (s < u[0]) {
if (l == e.setup || l == e.first) {
var _ = c.data.attachmentName;
c.setAttachment(null == _ ? null : t.getAttachment(this.slotIndex, _))
}
} else {
var f;
f = s >= u[u.length - 1] ? u.length - 1 : r.binarySearch(u, s, 1) - 1;
var d = this.attachmentNames[f];
t.slots[this.slotIndex].setAttachment(null == d ? null : t.getAttachment(this.slotIndex, d))
}
} else {
var p = c.data.attachmentName;
c.setAttachment(null == p ? null : t.getAttachment(this.slotIndex, p))
}
}
,
s
}
)();
t.AttachmentTimeline = f;
var d = null
, p = (function(i) {
function a(e) {
var n = i.call(this, e) || this;
return n.frames = t.Utils.newFloatArray(e),
n.frameVertices = new Array(e),
null == d && (d = t.Utils.newFloatArray(64)),
n
}
return s(a, i),
a.prototype.getPropertyId = function() {
return (n.deform << 27) + +this.attachment.id + this.slotIndex
}
,
a.prototype.setFrame = function(t, e, i) {
this.frames[t] = e,
this.frameVertices[t] = i
}
,
a.prototype.apply = function(i, n, s, a, o, l) {
var h = i.slots[this.slotIndex];
if (h.bone.active) {
var c = h.getAttachment();
if (c instanceof t.VertexAttachment && c.deformAttachment == this.attachment) {
var u = h.deform;
0 == u.length && (l = e.setup);
var _ = this.frameVertices
, f = _[0].length
, d = this.frames;
if (s < d[0]) {
var p = c;
switch (l) {
case e.setup:
return void (u.length = 0);
case e.first:
if (1 == o) {
u.length = 0;
break
}
var m = t.Utils.setArraySize(u, f);
if (null == p.bones)
for (var y = p.vertices, v = 0; v < f; v++)
m[v] += (y[v] - m[v]) * o;
else
for (o = 1 - o,
v = 0; v < f; v++)
m[v] *= o
}
} else {
var g = t.Utils.setArraySize(u, f);
if (s >= d[d.length - 1]) {
var A = _[d.length - 1];
if (1 == o)
if (l == e.add)
if (null == (p = c).bones) {
y = p.vertices;
for (var x = 0; x < f; x++)
g[x] += A[x] - y[x]
} else
for (var b = 0; b < f; b++)
g[b] += A[b];
else
t.Utils.arrayCopy(A, 0, g, 0, f);
else
switch (l) {
case e.setup:
var C = c;
if (null == C.bones) {
y = C.vertices;
for (var T = 0; T < f; T++) {
var S = y[T];
g[T] = S + (A[T] - S) * o
}
} else
for (var w = 0; w < f; w++)
g[w] = A[w] * o;
break;
case e.first:
case e.replace:
for (var E = 0; E < f; E++)
g[E] += (A[E] - g[E]) * o;
case e.add:
if (null == (p = c).bones) {
y = p.vertices;
for (var M = 0; M < f; M++)
g[M] += (A[M] - y[M]) * o
} else
for (var D = 0; D < f; D++)
g[D] += A[D] * o
}
} else {
var B = r.binarySearch(d, s)
, I = _[B - 1]
, P = _[B]
, R = d[B]
, O = this.getCurvePercent(B - 1, 1 - (s - R) / (d[B - 1] - R));
if (1 == o)
if (l == e.add)
if (null == (p = c).bones) {
y = p.vertices;
for (var L = 0; L < f; L++) {
var F = I[L];
g[L] += F + (P[L] - F) * O - y[L]
}
} else
for (var V = 0; V < f; V++)
F = I[V],
g[V] += F + (P[V] - F) * O;
else
for (var N = 0; N < f; N++)
F = I[N],
g[N] = F + (P[N] - F) * O;
else
switch (l) {
case e.setup:
var k = c;
if (null == k.bones) {
y = k.vertices;
for (var G = 0; G < f; G++)
F = I[G],
S = y[G],
g[G] = S + (F + (P[G] - F) * O - S) * o
} else
for (var U = 0; U < f; U++)
F = I[U],
g[U] = (F + (P[U] - F) * O) * o;
break;
case e.first:
case e.replace:
for (var z = 0; z < f; z++)
F = I[z],
g[z] += (F + (P[z] - F) * O - g[z]) * o;
break;
case e.add:
if (null == (p = c).bones) {
y = p.vertices;
for (var H = 0; H < f; H++)
F = I[H],
g[H] += (F + (P[H] - F) * O - y[H]) * o
} else
for (var W = 0; W < f; W++)
F = I[W],
g[W] += (F + (P[W] - F) * O) * o
}
}
}
}
}
}
,
a
}
)(a);
t.DeformTimeline = p;
var m = (function() {
function e(e) {
this.frames = t.Utils.newFloatArray(e),
this.events = new Array(e)
}
return e.prototype.getPropertyId = function() {
return n.event << 24
}
,
e.prototype.getFrameCount = function() {
return this.frames.length
}
,
e.prototype.setFrame = function(t, e) {
this.frames[t] = e.time,
this.events[t] = e
}
,
e.prototype.apply = function(t, e, i, n, s, a, o) {
if (null != n) {
var l = this.frames
, h = this.frames.length;
if (e > i)
this.apply(t, e, Number.MAX_VALUE, n, s, a, o),
e = -1;
else if (e >= l[h - 1])
return;
if (!(i < l[0])) {
var c = 0;
if (e < l[0])
c = 0;
else
for (var u = l[c = r.binarySearch(l, e)]; c > 0 && l[c - 1] == u; )
c--;
for (; c < h && i >= l[c]; c++)
n.push(this.events[c])
}
}
}
,
e
}
)();
t.EventTimeline = m;
var y = (function() {
function s(e) {
this.frames = t.Utils.newFloatArray(e),
this.drawOrders = new Array(e)
}
return s.prototype.getPropertyId = function() {
return n.drawOrder << 24
}
,
s.prototype.getFrameCount = function() {
return this.frames.length
}
,
s.prototype.setFrame = function(t, e, i) {
this.frames[t] = e,
this.drawOrders[t] = i
}
,
s.prototype.apply = function(n, s, a, o, l, h, c) {
var u = n.drawOrder
, _ = n.slots;
if (c != i.mixOut || h != e.setup) {
var f = this.frames;
if (a < f[0])
h != e.setup && h != e.first || t.Utils.arrayCopy(n.slots, 0, n.drawOrder, 0, n.slots.length);
else {
var d;
d = a >= f[f.length - 1] ? f.length - 1 : r.binarySearch(f, a) - 1;
var p = this.drawOrders[d];
if (null == p)
t.Utils.arrayCopy(_, 0, u, 0, _.length);
else
for (var m = 0, y = p.length; m < y; m++)
u[m] = _[p[m]]
}
} else
t.Utils.arrayCopy(n.slots, 0, n.drawOrder, 0, n.slots.length)
}
,
s
}
)();
t.DrawOrderTimeline = y;
var v = (function(a) {
function o(e) {
var i = a.call(this, e) || this;
return i.frames = t.Utils.newFloatArray(e * o.ENTRIES),
i
}
return s(o, a),
o.prototype.getPropertyId = function() {
return (n.ikConstraint << 24) + this.ikConstraintIndex
}
,
o.prototype.setFrame = function(t, e, i, n, r, s, a) {
t *= o.ENTRIES,
this.frames[t] = e,
this.frames[t + o.MIX] = i,
this.frames[t + o.SOFTNESS] = n,
this.frames[t + o.BEND_DIRECTION] = r,
this.frames[t + o.COMPRESS] = s ? 1 : 0,
this.frames[t + o.STRETCH] = a ? 1 : 0
}
,
o.prototype.apply = function(t, n, s, a, l, h, c) {
var u = this.frames
, _ = t.ikConstraints[this.ikConstraintIndex];
if (_.active)
if (s < u[0])
switch (h) {
case e.setup:
return _.mix = _.data.mix,
_.softness = _.data.softness,
_.bendDirection = _.data.bendDirection,
_.compress = _.data.compress,
void (_.stretch = _.data.stretch);
case e.first:
_.mix += (_.data.mix - _.mix) * l,
_.softness += (_.data.softness - _.softness) * l,
_.bendDirection = _.data.bendDirection,
_.compress = _.data.compress,
_.stretch = _.data.stretch
}
else if (s >= u[u.length - o.ENTRIES])
h == e.setup ? (_.mix = _.data.mix + (u[u.length + o.PREV_MIX] - _.data.mix) * l,
_.softness = _.data.softness + (u[u.length + o.PREV_SOFTNESS] - _.data.softness) * l,
c == i.mixOut ? (_.bendDirection = _.data.bendDirection,
_.compress = _.data.compress,
_.stretch = _.data.stretch) : (_.bendDirection = u[u.length + o.PREV_BEND_DIRECTION],
_.compress = 0 != u[u.length + o.PREV_COMPRESS],
_.stretch = 0 != u[u.length + o.PREV_STRETCH])) : (_.mix += (u[u.length + o.PREV_MIX] - _.mix) * l,
_.softness += (u[u.length + o.PREV_SOFTNESS] - _.softness) * l,
c == i.mixIn && (_.bendDirection = u[u.length + o.PREV_BEND_DIRECTION],
_.compress = 0 != u[u.length + o.PREV_COMPRESS],
_.stretch = 0 != u[u.length + o.PREV_STRETCH]));
else {
var f = r.binarySearch(u, s, o.ENTRIES)
, d = u[f + o.PREV_MIX]
, p = u[f + o.PREV_SOFTNESS]
, m = u[f]
, y = this.getCurvePercent(f / o.ENTRIES - 1, 1 - (s - m) / (u[f + o.PREV_TIME] - m));
h == e.setup ? (_.mix = _.data.mix + (d + (u[f + o.MIX] - d) * y - _.data.mix) * l,
_.softness = _.data.softness + (p + (u[f + o.SOFTNESS] - p) * y - _.data.softness) * l,
c == i.mixOut ? (_.bendDirection = _.data.bendDirection,
_.compress = _.data.compress,
_.stretch = _.data.stretch) : (_.bendDirection = u[f + o.PREV_BEND_DIRECTION],
_.compress = 0 != u[f + o.PREV_COMPRESS],
_.stretch = 0 != u[f + o.PREV_STRETCH])) : (_.mix += (d + (u[f + o.MIX] - d) * y - _.mix) * l,
_.softness += (p + (u[f + o.SOFTNESS] - p) * y - _.softness) * l,
c == i.mixIn && (_.bendDirection = u[f + o.PREV_BEND_DIRECTION],
_.compress = 0 != u[f + o.PREV_COMPRESS],
_.stretch = 0 != u[f + o.PREV_STRETCH]))
}
}
,
o.ENTRIES = 6,
o.PREV_TIME = -6,
o.PREV_MIX = -5,
o.PREV_SOFTNESS = -4,
o.PREV_BEND_DIRECTION = -3,
o.PREV_COMPRESS = -2,
o.PREV_STRETCH = -1,
o.MIX = 1,
o.SOFTNESS = 2,
o.BEND_DIRECTION = 3,
o.COMPRESS = 4,
o.STRETCH = 5,
o
}
)(a);
t.IkConstraintTimeline = v;
var g = (function(i) {
function a(e) {
var n = i.call(this, e) || this;
return n.frames = t.Utils.newFloatArray(e * a.ENTRIES),
n
}
return s(a, i),
a.prototype.getPropertyId = function() {
return (n.transformConstraint << 24) + this.transformConstraintIndex
}
,
a.prototype.setFrame = function(t, e, i, n, r, s) {
t *= a.ENTRIES,
this.frames[t] = e,
this.frames[t + a.ROTATE] = i,
this.frames[t + a.TRANSLATE] = n,
this.frames[t + a.SCALE] = r,
this.frames[t + a.SHEAR] = s
}
,
a.prototype.apply = function(t, i, n, s, o, l) {
var h = this.frames
, c = t.transformConstraints[this.transformConstraintIndex];
if (c.active)
if (n < h[0]) {
var u = c.data;
switch (l) {
case e.setup:
return c.rotateMix = u.rotateMix,
c.translateMix = u.translateMix,
c.scaleMix = u.scaleMix,
void (c.shearMix = u.shearMix);
case e.first:
c.rotateMix += (u.rotateMix - c.rotateMix) * o,
c.translateMix += (u.translateMix - c.translateMix) * o,
c.scaleMix += (u.scaleMix - c.scaleMix) * o,
c.shearMix += (u.shearMix - c.shearMix) * o
}
} else {
var _ = 0
, f = 0
, d = 0
, p = 0;
if (n >= h[h.length - a.ENTRIES]) {
var m = h.length;
_ = h[m + a.PREV_ROTATE],
f = h[m + a.PREV_TRANSLATE],
d = h[m + a.PREV_SCALE],
p = h[m + a.PREV_SHEAR]
} else {
var y = r.binarySearch(h, n, a.ENTRIES);
_ = h[y + a.PREV_ROTATE],
f = h[y + a.PREV_TRANSLATE],
d = h[y + a.PREV_SCALE],
p = h[y + a.PREV_SHEAR];
var v = h[y]
, g = this.getCurvePercent(y / a.ENTRIES - 1, 1 - (n - v) / (h[y + a.PREV_TIME] - v));
_ += (h[y + a.ROTATE] - _) * g,
f += (h[y + a.TRANSLATE] - f) * g,
d += (h[y + a.SCALE] - d) * g,
p += (h[y + a.SHEAR] - p) * g
}
l == e.setup ? (u = c.data,
c.rotateMix = u.rotateMix + (_ - u.rotateMix) * o,
c.translateMix = u.translateMix + (f - u.translateMix) * o,
c.scaleMix = u.scaleMix + (d - u.scaleMix) * o,
c.shearMix = u.shearMix + (p - u.shearMix) * o) : (c.rotateMix += (_ - c.rotateMix) * o,
c.translateMix += (f - c.translateMix) * o,
c.scaleMix += (d - c.scaleMix) * o,
c.shearMix += (p - c.shearMix) * o)
}
}
,
a.ENTRIES = 5,
a.PREV_TIME = -5,
a.PREV_ROTATE = -4,
a.PREV_TRANSLATE = -3,
a.PREV_SCALE = -2,
a.PREV_SHEAR = -1,
a.ROTATE = 1,
a.TRANSLATE = 2,
a.SCALE = 3,
a.SHEAR = 4,
a
}
)(a);
t.TransformConstraintTimeline = g;
var A = (function(i) {
function a(e) {
var n = i.call(this, e) || this;
return n.frames = t.Utils.newFloatArray(e * a.ENTRIES),
n
}
return s(a, i),
a.prototype.getPropertyId = function() {
return (n.pathConstraintPosition << 24) + this.pathConstraintIndex
}
,
a.prototype.setFrame = function(t, e, i) {
t *= a.ENTRIES,
this.frames[t] = e,
this.frames[t + a.VALUE] = i
}
,
a.prototype.apply = function(t, i, n, s, o, l) {
var h = this.frames
, c = t.pathConstraints[this.pathConstraintIndex];
if (c.active)
if (n < h[0])
switch (l) {
case e.setup:
return void (c.position = c.data.position);
case e.first:
c.position += (c.data.position - c.position) * o
}
else {
var u = 0;
if (n >= h[h.length - a.ENTRIES])
u = h[h.length + a.PREV_VALUE];
else {
var _ = r.binarySearch(h, n, a.ENTRIES);
u = h[_ + a.PREV_VALUE];
var f = h[_]
, d = this.getCurvePercent(_ / a.ENTRIES - 1, 1 - (n - f) / (h[_ + a.PREV_TIME] - f));
u += (h[_ + a.VALUE] - u) * d
}
l == e.setup ? c.position = c.data.position + (u - c.data.position) * o : c.position += (u - c.position) * o
}
}
,
a.ENTRIES = 2,
a.PREV_TIME = -2,
a.PREV_VALUE = -1,
a.VALUE = 1,
a
}
)(a);
t.PathConstraintPositionTimeline = A;
var x = (function(t) {
function i(e) {
return t.call(this, e) || this
}
return s(i, t),
i.prototype.getPropertyId = function() {
return (n.pathConstraintSpacing << 24) + this.pathConstraintIndex
}
,
i.prototype.apply = function(t, n, s, a, o, l) {
var h = this.frames
, c = t.pathConstraints[this.pathConstraintIndex];
if (c.active)
if (s < h[0])
switch (l) {
case e.setup:
return void (c.spacing = c.data.spacing);
case e.first:
c.spacing += (c.data.spacing - c.spacing) * o
}
else {
var u = 0;
if (s >= h[h.length - i.ENTRIES])
u = h[h.length + i.PREV_VALUE];
else {
var _ = r.binarySearch(h, s, i.ENTRIES);
u = h[_ + i.PREV_VALUE];
var f = h[_]
, d = this.getCurvePercent(_ / i.ENTRIES - 1, 1 - (s - f) / (h[_ + i.PREV_TIME] - f));
u += (h[_ + i.VALUE] - u) * d
}
l == e.setup ? c.spacing = c.data.spacing + (u - c.data.spacing) * o : c.spacing += (u - c.spacing) * o
}
}
,
i
}
)(A);
t.PathConstraintSpacingTimeline = x;
var b = (function(i) {
function a(e) {
var n = i.call(this, e) || this;
return n.frames = t.Utils.newFloatArray(e * a.ENTRIES),
n
}
return s(a, i),
a.prototype.getPropertyId = function() {
return (n.pathConstraintMix << 24) + this.pathConstraintIndex
}
,
a.prototype.setFrame = function(t, e, i, n) {
t *= a.ENTRIES,
this.frames[t] = e,
this.frames[t + a.ROTATE] = i,
this.frames[t + a.TRANSLATE] = n
}
,
a.prototype.apply = function(t, i, n, s, o, l) {
var h = this.frames
, c = t.pathConstraints[this.pathConstraintIndex];
if (c.active)
if (n < h[0])
switch (l) {
case e.setup:
return c.rotateMix = c.data.rotateMix,
void (c.translateMix = c.data.translateMix);
case e.first:
c.rotateMix += (c.data.rotateMix - c.rotateMix) * o,
c.translateMix += (c.data.translateMix - c.translateMix) * o
}
else {
var u = 0
, _ = 0;
if (n >= h[h.length - a.ENTRIES])
u = h[h.length + a.PREV_ROTATE],
_ = h[h.length + a.PREV_TRANSLATE];
else {
var f = r.binarySearch(h, n, a.ENTRIES);
u = h[f + a.PREV_ROTATE],
_ = h[f + a.PREV_TRANSLATE];
var d = h[f]
, p = this.getCurvePercent(f / a.ENTRIES - 1, 1 - (n - d) / (h[f + a.PREV_TIME] - d));
u += (h[f + a.ROTATE] - u) * p,
_ += (h[f + a.TRANSLATE] - _) * p
}
l == e.setup ? (c.rotateMix = c.data.rotateMix + (u - c.data.rotateMix) * o,
c.translateMix = c.data.translateMix + (_ - c.data.translateMix) * o) : (c.rotateMix += (u - c.rotateMix) * o,
c.translateMix += (_ - c.translateMix) * o)
}
}
,
a.ENTRIES = 3,
a.PREV_TIME = -3,
a.PREV_ROTATE = -2,
a.PREV_TRANSLATE = -1,
a.ROTATE = 1,
a.TRANSLATE = 2,
a
}
)(a);
t.PathConstraintMixTimeline = b
}
)(r || (r = {})),
(function(t) {
var e = (function() {
function e(e) {
this.tracks = new Array,
this.timeScale = 1,
this.events = new Array,
this.listeners = new Array,
this.queue = new r(this),
this.propertyIDs = new t.IntSet,
this.animationsChanged = !1,
this.trackEntryPool = new t.Pool(function() {
return new i
}
),
this.data = e
}
return e.prototype.update = function(t) {
t *= this.timeScale;
for (var e = this.tracks, i = 0, n = e.length; i < n; i++) {
var r = e[i];
if (null != r) {
r.animationLast = r.nextAnimationLast,
r.trackLast = r.nextTrackLast;
var s = t * r.timeScale;
if (r.delay > 0) {
if (r.delay -= s,
r.delay > 0)
continue;
s = -r.delay,
r.delay = 0
}
var a = r.next;
if (null != a) {
var o = r.trackLast - a.delay;
if (o >= 0) {
for (a.delay = 0,
a.trackTime += 0 == r.timeScale ? 0 : (o / r.timeScale + t) * a.timeScale,
r.trackTime += s,
this.setCurrent(i, a, !0); null != a.mixingFrom; )
a.mixTime += t,
a = a.mixingFrom;
continue
}
} else if (r.trackLast >= r.trackEnd && null == r.mixingFrom) {
e[i] = null,
this.queue.end(r),
this.disposeNext(r);
continue
}
if (null != r.mixingFrom && this.updateMixingFrom(r, t)) {
var l = r.mixingFrom;
for (r.mixingFrom = null,
null != l && (l.mixingTo = null); null != l; )
this.queue.end(l),
l = l.mixingFrom
}
r.trackTime += s
}
}
this.queue.drain()
}
,
e.prototype.updateMixingFrom = function(t, e) {
var i = t.mixingFrom;
if (null == i)
return !0;
var n = this.updateMixingFrom(i, e);
return i.animationLast = i.nextAnimationLast,
i.trackLast = i.nextTrackLast,
t.mixTime > 0 && t.mixTime >= t.mixDuration ? (0 != i.totalAlpha && 0 != t.mixDuration || (t.mixingFrom = i.mixingFrom,
null != i.mixingFrom && (i.mixingFrom.mixingTo = t),
t.interruptAlpha = i.interruptAlpha,
this.queue.end(i)),
n) : (i.trackTime += e * i.timeScale,
t.mixTime += e,
!1)
}
,
e.prototype.apply = function(i) {
if (null == i)
throw new Error("skeleton cannot be null.");
this.animationsChanged && this._animationsChanged();
for (var n = this.events, r = this.tracks, s = !1, a = 0, o = r.length; a < o; a++) {
var l = r[a];
if (!(null == l || l.delay > 0)) {
s = !0;
var h = 0 == a ? t.MixBlend.first : l.mixBlend
, c = l.alpha;
null != l.mixingFrom ? c *= this.applyMixingFrom(l, i, h) : l.trackTime >= l.trackEnd && null == l.next && (c = 0);
var u = l.animationLast
, _ = l.getAnimationTime()
, f = l.animation.timelines.length
, d = l.animation.timelines;
if (0 == a && 1 == c || h == t.MixBlend.add)
for (var p = 0; p < f; p++)
t.Utils.webkit602BugfixHelper(c, h),
d[p].apply(i, u, _, n, c, h, t.MixDirection.mixIn);
else {
var m = l.timelineMode
, y = 0 == l.timelinesRotation.length;
y && t.Utils.setArraySize(l.timelinesRotation, f << 1, null);
var v = l.timelinesRotation;
for (p = 0; p < f; p++) {
var g = d[p]
, A = (m[p] & e.NOT_LAST - 1) == e.SUBSEQUENT ? h : t.MixBlend.setup;
g instanceof t.RotateTimeline ? this.applyRotateTimeline(g, i, _, c, A, v, p << 1, y) : (t.Utils.webkit602BugfixHelper(c, h),
g.apply(i, u, _, n, c, A, t.MixDirection.mixIn))
}
}
this.queueEvents(l, _),
n.length = 0,
l.nextAnimationLast = _,
l.nextTrackLast = l.trackTime
}
}
return this.queue.drain(),
s
}
,
e.prototype.applyMixingFrom = function(i, n, r) {
var s = i.mixingFrom;
null != s.mixingFrom && this.applyMixingFrom(s, n, r);
var a = 0;
0 == i.mixDuration ? (a = 1,
r == t.MixBlend.first && (r = t.MixBlend.setup)) : ((a = i.mixTime / i.mixDuration) > 1 && (a = 1),
r != t.MixBlend.first && (r = s.mixBlend));
var o = a < s.eventThreshold ? this.events : null
, l = a < s.attachmentThreshold
, h = a < s.drawOrderThreshold
, c = s.animationLast
, u = s.getAnimationTime()
, _ = s.animation.timelines.length
, f = s.animation.timelines
, d = s.alpha * i.interruptAlpha
, p = d * (1 - a);
if (r == t.MixBlend.add)
for (var m = 0; m < _; m++)
f[m].apply(n, c, u, o, p, r, t.MixDirection.mixOut);
else {
var y = s.timelineMode
, v = s.timelineHoldMix
, g = 0 == s.timelinesRotation.length;
g && t.Utils.setArraySize(s.timelinesRotation, _ << 1, null);
var A = s.timelinesRotation;
for (s.totalAlpha = 0,
m = 0; m < _; m++) {
var x = f[m]
, b = t.MixDirection.mixOut
, C = void 0
, T = 0;
switch (y[m] & e.NOT_LAST - 1) {
case e.SUBSEQUENT:
if (C = r,
!l && x instanceof t.AttachmentTimeline) {
if ((y[m] & e.NOT_LAST) == e.NOT_LAST)
continue;
C = t.MixBlend.setup
}
if (!h && x instanceof t.DrawOrderTimeline)
continue;
T = p;
break;
case e.FIRST:
C = t.MixBlend.setup,
T = p;
break;
case e.HOLD:
C = t.MixBlend.setup,
T = d;
break;
default:
C = t.MixBlend.setup;
var S = v[m];
T = d * Math.max(0, 1 - S.mixTime / S.mixDuration)
}
s.totalAlpha += T,
x instanceof t.RotateTimeline ? this.applyRotateTimeline(x, n, u, T, C, A, m << 1, g) : (t.Utils.webkit602BugfixHelper(T, r),
C == t.MixBlend.setup && (x instanceof t.AttachmentTimeline ? (l || (y[m] & e.NOT_LAST) == e.NOT_LAST) && (b = t.MixDirection.mixIn) : x instanceof t.DrawOrderTimeline && h && (b = t.MixDirection.mixIn)),
x.apply(n, c, u, o, T, C, b))
}
}
return i.mixDuration > 0 && this.queueEvents(s, u),
this.events.length = 0,
s.nextAnimationLast = u,
s.nextTrackLast = s.trackTime,
a
}
,
e.prototype.applyRotateTimeline = function(e, i, n, r, s, a, o, l) {
if (l && (a[o] = 0),
1 != r) {
var h = e
, c = h.frames
, u = i.bones[h.boneIndex];
if (u.active) {
var _ = 0
, f = 0;
if (n < c[0])
switch (s) {
case t.MixBlend.setup:
u.rotation = u.data.rotation;
default:
return;
case t.MixBlend.first:
_ = u.rotation,
f = u.data.rotation
}
else if (_ = s == t.MixBlend.setup ? u.data.rotation : u.rotation,
n >= c[c.length - t.RotateTimeline.ENTRIES])
f = u.data.rotation + c[c.length + t.RotateTimeline.PREV_ROTATION];
else {
var d = t.Animation.binarySearch(c, n, t.RotateTimeline.ENTRIES)
, p = c[d + t.RotateTimeline.PREV_ROTATION]
, m = c[d]
, y = h.getCurvePercent((d >> 1) - 1, 1 - (n - m) / (c[d + t.RotateTimeline.PREV_TIME] - m));
f = c[d + t.RotateTimeline.ROTATION] - p,
f = p + (f -= 360 * (16384 - (16384.499999999996 - f / 360 | 0))) * y + u.data.rotation,
f -= 360 * (16384 - (16384.499999999996 - f / 360 | 0))
}
var v = 0
, g = f - _;
if (0 == (g -= 360 * (16384 - (16384.499999999996 - g / 360 | 0))))
v = a[o];
else {
var A = 0
, x = 0;
l ? (A = 0,
x = g) : (A = a[o],
x = a[o + 1]);
var b = g > 0
, C = A >= 0;
t.MathUtils.signum(x) != t.MathUtils.signum(g) && Math.abs(x) <= 90 && (Math.abs(A) > 180 && (A += 360 * t.MathUtils.signum(A)),
C = b),
v = g + A - A % 360,
C != b && (v += 360 * t.MathUtils.signum(A)),
a[o] = v
}
a[o + 1] = g,
_ += v * r,
u.rotation = _ - 360 * (16384 - (16384.499999999996 - _ / 360 | 0))
}
} else
e.apply(i, 0, n, null, 1, s, t.MixDirection.mixIn)
}
,
e.prototype.queueEvents = function(t, e) {
for (var i = t.animationStart, n = t.animationEnd, r = n - i, s = t.trackLast % r, a = this.events, o = 0, l = a.length; o < l; o++) {
var h = a[o];
if (h.time < s)
break;
h.time > n || this.queue.event(t, h)
}
for ((t.loop ? 0 == r || s > t.trackTime % r : e >= n && t.animationLast < n) && this.queue.complete(t); o < l; o++)
a[o].time < i || this.queue.event(t, a[o])
}
,
e.prototype.clearTracks = function() {
var t = this.queue.drainDisabled;
this.queue.drainDisabled = !0;
for (var e = 0, i = this.tracks.length; e < i; e++)
this.clearTrack(e);
this.tracks.length = 0,
this.queue.drainDisabled = t,
this.queue.drain()
}
,
e.prototype.clearTrack = function(t) {
if (!(t >= this.tracks.length)) {
var e = this.tracks[t];
if (null != e) {
this.queue.end(e),
this.disposeNext(e);
for (var i = e; ; ) {
var n = i.mixingFrom;
if (null == n)
break;
this.queue.end(n),
i.mixingFrom = null,
i.mixingTo = null,
i = n
}
this.tracks[e.trackIndex] = null,
this.queue.drain()
}
}
}
,
e.prototype.setCurrent = function(t, e, i) {
var n = this.expandToIndex(t);
this.tracks[t] = e,
null != n && (i && this.queue.interrupt(n),
e.mixingFrom = n,
n.mixingTo = e,
e.mixTime = 0,
null != n.mixingFrom && n.mixDuration > 0 && (e.interruptAlpha *= Math.min(1, n.mixTime / n.mixDuration)),
n.timelinesRotation.length = 0),
this.queue.start(e)
}
,
e.prototype.setAnimation = function(t, e, i) {
var n = this.data.skeletonData.findAnimation(e);
if (null == n)
throw new Error("Animation not found: " + e);
return this.setAnimationWith(t, n, i)
}
,
e.prototype.setAnimationWith = function(t, e, i) {
if (null == e)
throw new Error("animation cannot be null.");
var n = !0
, r = this.expandToIndex(t);
null != r && (-1 == r.nextTrackLast ? (this.tracks[t] = r.mixingFrom,
this.queue.interrupt(r),
this.queue.end(r),
this.disposeNext(r),
r = r.mixingFrom,
n = !1) : this.disposeNext(r));
var s = this.trackEntry(t, e, i, r);
return this.setCurrent(t, s, n),
this.queue.drain(),
s
}
,
e.prototype.addAnimation = function(t, e, i, n) {
var r = this.data.skeletonData.findAnimation(e);
if (null == r)
throw new Error("Animation not found: " + e);
return this.addAnimationWith(t, r, i, n)
}
,
e.prototype.addAnimationWith = function(t, e, i, n) {
if (null == e)
throw new Error("animation cannot be null.");
var r = this.expandToIndex(t);
if (null != r)
for (; null != r.next; )
r = r.next;
var s = this.trackEntry(t, e, i, r);
if (null == r)
this.setCurrent(t, s, !0),
this.queue.drain();
else if (r.next = s,
n <= 0) {
var a = r.animationEnd - r.animationStart;
0 != a ? (r.loop ? n += a * (1 + (r.trackTime / a | 0)) : n += Math.max(a, r.trackTime),
n -= this.data.getMix(r.animation, e)) : n = r.trackTime
}
return s.delay = n,
s
}
,
e.prototype.setEmptyAnimation = function(t, i) {
var n = this.setAnimationWith(t, e.emptyAnimation, !1);
return n.mixDuration = i,
n.trackEnd = i,
n
}
,
e.prototype.addEmptyAnimation = function(t, i, n) {
n <= 0 && (n -= i);
var r = this.addAnimationWith(t, e.emptyAnimation, !1, n);
return r.mixDuration = i,
r.trackEnd = i,
r
}
,
e.prototype.setEmptyAnimations = function(t) {
var e = this.queue.drainDisabled;
this.queue.drainDisabled = !0;
for (var i = 0, n = this.tracks.length; i < n; i++) {
var r = this.tracks[i];
null != r && this.setEmptyAnimation(r.trackIndex, t)
}
this.queue.drainDisabled = e,
this.queue.drain()
}
,
e.prototype.expandToIndex = function(e) {
return e < this.tracks.length ? this.tracks[e] : (t.Utils.ensureArrayCapacity(this.tracks, e + 1, null),
this.tracks.length = e + 1,
null)
}
,
e.prototype.trackEntry = function(t, e, i, n) {
var r = this.trackEntryPool.obtain();
return r.trackIndex = t,
r.animation = e,
r.loop = i,
r.holdPrevious = !1,
r.eventThreshold = 0,
r.attachmentThreshold = 0,
r.drawOrderThreshold = 0,
r.animationStart = 0,
r.animationEnd = e.duration,
r.animationLast = -1,
r.nextAnimationLast = -1,
r.delay = 0,
r.trackTime = 0,
r.trackLast = -1,
r.nextTrackLast = -1,
r.trackEnd = Number.MAX_VALUE,
r.timeScale = 1,
r.alpha = 1,
r.interruptAlpha = 1,
r.mixTime = 0,
r.mixDuration = null == n ? 0 : this.data.getMix(n.animation, e),
r
}
,
e.prototype.disposeNext = function(t) {
for (var e = t.next; null != e; )
this.queue.dispose(e),
e = e.next;
t.next = null
}
,
e.prototype._animationsChanged = function() {
this.animationsChanged = !1,
this.propertyIDs.clear();
for (var e = 0, i = this.tracks.length; e < i; e++)
if (null != (n = this.tracks[e])) {
for (; null != n.mixingFrom; )
n = n.mixingFrom;
do {
null != n.mixingFrom && n.mixBlend == t.MixBlend.add || this.computeHold(n),
n = n.mixingTo
} while (null != n)
}
for (this.propertyIDs.clear(),
e = this.tracks.length - 1; e >= 0; e--)
for (var n = this.tracks[e]; null != n; )
this.computeNotLast(n),
n = n.mixingFrom
}
,
e.prototype.computeHold = function(i) {
var n = i.mixingTo
, r = i.animation.timelines
, s = i.animation.timelines.length
, a = t.Utils.setArraySize(i.timelineMode, s);
i.timelineHoldMix.length = 0;
var o = t.Utils.setArraySize(i.timelineHoldMix, s)
, l = this.propertyIDs;
if (null != n && n.holdPrevious)
for (var h = 0; h < s; h++)
l.add(r[h].getPropertyId()),
a[h] = e.HOLD;
else
t: for (h = 0; h < s; h++) {
var c = r[h]
, u = c.getPropertyId();
if (l.add(u))
if (null == n || c instanceof t.AttachmentTimeline || c instanceof t.DrawOrderTimeline || c instanceof t.EventTimeline || !n.animation.hasTimeline(u))
a[h] = e.FIRST;
else {
for (var _ = n.mixingTo; null != _; _ = _.mixingTo)
if (!_.animation.hasTimeline(u)) {
if (i.mixDuration > 0) {
a[h] = e.HOLD_MIX,
o[h] = _;
continue t
}
break
}
a[h] = e.HOLD
}
else
a[h] = e.SUBSEQUENT
}
}
,
e.prototype.computeNotLast = function(i) {
for (var n = i.animation.timelines, r = i.animation.timelines.length, s = i.timelineMode, a = this.propertyIDs, o = 0; o < r; o++)
if (n[o]instanceof t.AttachmentTimeline) {
var l = n[o];
a.add(l.slotIndex) || (s[o] |= e.NOT_LAST)
}
}
,
e.prototype.getCurrent = function(t) {
return t >= this.tracks.length ? null : this.tracks[t]
}
,
e.prototype.addListener = function(t) {
if (null == t)
throw new Error("listener cannot be null.");
this.listeners.push(t)
}
,
e.prototype.removeListener = function(t) {
var e = this.listeners.indexOf(t);
e >= 0 && this.listeners.splice(e, 1)
}
,
e.prototype.clearListeners = function() {
this.listeners.length = 0
}
,
e.prototype.clearListenerNotifications = function() {
this.queue.clear()
}
,
e.emptyAnimation = new t.Animation("<empty>",[],0),
e.SUBSEQUENT = 0,
e.FIRST = 1,
e.HOLD = 2,
e.HOLD_MIX = 3,
e.NOT_LAST = 4,
e
}
)();
t.AnimationState = e;
var i = (function() {
function e() {
this.mixBlend = t.MixBlend.replace,
this.timelineMode = new Array,
this.timelineHoldMix = new Array,
this.timelinesRotation = new Array
}
return e.prototype.reset = function() {
this.next = null,
this.mixingFrom = null,
this.mixingTo = null,
this.animation = null,
this.listener = null,
this.timelineMode.length = 0,
this.timelineHoldMix.length = 0,
this.timelinesRotation.length = 0
}
,
e.prototype.getAnimationTime = function() {
if (this.loop) {
var t = this.animationEnd - this.animationStart;
return 0 == t ? this.animationStart : this.trackTime % t + this.animationStart
}
return Math.min(this.trackTime + this.animationStart, this.animationEnd)
}
,
e.prototype.setAnimationLast = function(t) {
this.animationLast = t,
this.nextAnimationLast = t
}
,
e.prototype.isComplete = function() {
return this.trackTime >= this.animationEnd - this.animationStart
}
,
e.prototype.resetRotationDirections = function() {
this.timelinesRotation.length = 0
}
,
e
}
)();
t.TrackEntry = i;
var n, r = (function() {
function t(t) {
this.objects = [],
this.drainDisabled = !1,
this.animState = t
}
return t.prototype.start = function(t) {
this.objects.push(n.start),
this.objects.push(t),
this.animState.animationsChanged = !0
}
,
t.prototype.interrupt = function(t) {
this.objects.push(n.interrupt),
this.objects.push(t)
}
,
t.prototype.end = function(t) {
this.objects.push(n.end),
this.objects.push(t),
this.animState.animationsChanged = !0
}
,
t.prototype.dispose = function(t) {
this.objects.push(n.dispose),
this.objects.push(t)
}
,
t.prototype.complete = function(t) {
this.objects.push(n.complete),
this.objects.push(t)
}
,
t.prototype.event = function(t, e) {
this.objects.push(n.event),
this.objects.push(t),
this.objects.push(e)
}
,
t.prototype.drain = function() {
if (!this.drainDisabled) {
this.drainDisabled = !0;
for (var t = this.objects, e = this.animState.listeners, i = 0; i < t.length; i += 2) {
var r = t[i]
, s = t[i + 1];
switch (r) {
case n.start:
null != s.listener && s.listener.start && s.listener.start(s);
for (var a = 0; a < e.length; a++)
e[a].start && e[a].start(s);
break;
case n.interrupt:
for (null != s.listener && s.listener.interrupt && s.listener.interrupt(s),
a = 0; a < e.length; a++)
e[a].interrupt && e[a].interrupt(s);
break;
case n.end:
for (null != s.listener && s.listener.end && s.listener.end(s),
a = 0; a < e.length; a++)
e[a].end && e[a].end(s);
case n.dispose:
for (null != s.listener && s.listener.dispose && s.listener.dispose(s),
a = 0; a < e.length; a++)
e[a].dispose && e[a].dispose(s);
this.animState.trackEntryPool.free(s);
break;
case n.complete:
for (null != s.listener && s.listener.complete && s.listener.complete(s),
a = 0; a < e.length; a++)
e[a].complete && e[a].complete(s);
break;
case n.event:
var o = t[2 + i++];
for (null != s.listener && s.listener.event && s.listener.event(s, o),
a = 0; a < e.length; a++)
e[a].event && e[a].event(s, o)
}
}
this.clear(),
this.drainDisabled = !1
}
}
,
t.prototype.clear = function() {
this.objects.length = 0
}
,
t
}
)();
t.EventQueue = r,
(function(t) {
t[t.start = 0] = "start",
t[t.interrupt = 1] = "interrupt",
t[t.end = 2] = "end",
t[t.dispose = 3] = "dispose",
t[t.complete = 4] = "complete",
t[t.event = 5] = "event"
}
)(n = t.EventType || (t.EventType = {}));
var s = (function() {
function t() {}
return t.prototype.start = function() {}
,
t.prototype.interrupt = function() {}
,
t.prototype.end = function() {}
,
t.prototype.dispose = function() {}
,
t.prototype.complete = function() {}
,
t.prototype.event = function() {}
,
t
}
)();
t.AnimationStateAdapter = s
}
)(r || (r = {})),
(function(t) {
var e = (function() {
function t(t) {
if (this.animationToMixTime = {},
this.defaultMix = 0,
null == t)
throw new Error("skeletonData cannot be null.");
this.skeletonData = t
}
return t.prototype.setMix = function(t, e, i) {
var n = this.skeletonData.findAnimation(t);
if (null == n)
throw new Error("Animation not found: " + t);
var r = this.skeletonData.findAnimation(e);
if (null == r)
throw new Error("Animation not found: " + e);
this.setMixWith(n, r, i)
}
,
t.prototype.setMixWith = function(t, e, i) {
if (null == t)
throw new Error("from cannot be null.");
if (null == e)
throw new Error("to cannot be null.");
var n = t.name + "." + e.name;
this.animationToMixTime[n] = i
}
,
t.prototype.getMix = function(t, e) {
var i = t.name + "." + e.name
, n = this.animationToMixTime[i];
return void 0 === n ? this.defaultMix : n
}
,
t
}
)();
t.AnimationStateData = e
}
)(r || (r = {})),
(function(t) {
var e = (function() {
function e(t, e) {
void 0 === e && (e = ""),
this.assets = {},
this.errors = {},
this.toLoad = 0,
this.loaded = 0,
this.textureLoader = t,
this.pathPrefix = e
}
return e.downloadText = function(t, e, i) {
var n = new XMLHttpRequest;
n.open("GET", t, !0),
n.onload = function() {
200 == n.status ? e(n.responseText) : i(n.status, n.responseText)
}
,
n.onerror = function() {
i(n.status, n.responseText)
}
,
n.send()
}
,
e.downloadBinary = function(t, e, i) {
var n = new XMLHttpRequest;
n.open("GET", t, !0),
n.responseType = "arraybuffer",
n.onload = function() {
200 == n.status ? e(new Uint8Array(n.response)) : i(n.status, n.responseText)
}
,
n.onerror = function() {
i(n.status, n.responseText)
}
,
n.send()
}
,
e.prototype.loadBinary = function(t, i, n) {
var r = this;
void 0 === i && (i = null),
void 0 === n && (n = null),
t = this.pathPrefix + t,
this.toLoad++,
e.downloadBinary(t, (function(e) {
r.assets[t] = e,
i && i(t, e),
r.toLoad--,
r.loaded++
}
), (function(e, i) {
r.errors[t] = "Couldn't load binary " + t + ": status " + status + ", " + i,
n && n(t, "Couldn't load binary " + t + ": status " + status + ", " + i),
r.toLoad--,
r.loaded++
}
))
}
,
e.prototype.loadText = function(t, i, n) {
var r = this;
void 0 === i && (i = null),
void 0 === n && (n = null),
t = this.pathPrefix + t,
this.toLoad++,
e.downloadText(t, (function(e) {
r.assets[t] = e,
i && i(t, e),
r.toLoad--,
r.loaded++
}
), (function(e, i) {
r.errors[t] = "Couldn't load text " + t + ": status " + status + ", " + i,
n && n(t, "Couldn't load text " + t + ": status " + status + ", " + i),
r.toLoad--,
r.loaded++
}
))
}
,
e.prototype.loadTexture = function(t, e, i) {
var n = this;
void 0 === e && (e = null),
void 0 === i && (i = null),
t = this.pathPrefix + t,
this.toLoad++;
var r = new Image;
r.crossOrigin = "anonymous",
r.onload = function() {
var i = n.textureLoader(r);
n.assets[t] = i,
n.toLoad--,
n.loaded++,
e && e(t, r)
}
,
r.onerror = function() {
n.errors[t] = "Couldn't load image " + t,
n.toLoad--,
n.loaded++,
i && i(t, "Couldn't load image " + t)
}
,
r.src = t
}
,
e.prototype.loadTextureData = function(t, e, i, n) {
var r = this;
void 0 === i && (i = null),
void 0 === n && (n = null),
t = this.pathPrefix + t,
this.toLoad++;
var s = new Image;
s.onload = function() {
var e = r.textureLoader(s);
r.assets[t] = e,
r.toLoad--,
r.loaded++,
i && i(t, s)
}
,
s.onerror = function() {
r.errors[t] = "Couldn't load image " + t,
r.toLoad--,
r.loaded++,
n && n(t, "Couldn't load image " + t)
}
,
s.src = e
}
,
e.prototype.loadTextureAtlas = function(i, n, r) {
var s = this;
void 0 === n && (n = null),
void 0 === r && (r = null);
var a = i.lastIndexOf("/") >= 0 ? i.substring(0, i.lastIndexOf("/")) : "";
i = this.pathPrefix + i,
this.toLoad++,
e.downloadText(i, (function(e) {
var o = {
count: 0
}
, l = new Array;
try {
new t.TextureAtlas(e,function(e) {
l.push(a + "/" + e);
var i = document.createElement("img");
return i.width = 16,
i.height = 16,
new t.FakeTexture(i)
}
)
} catch (f) {
var h = f;
return s.errors[i] = "Couldn't load texture atlas " + i + ": " + h.message,
r && r(i, "Couldn't load texture atlas " + i + ": " + h.message),
s.toLoad--,
void s.loaded++
}
for (var c = function(h) {
var c = !1;
s.loadTexture(h, (function(h) {
if (o.count++,
o.count == l.length)
if (c)
s.errors[i] = "Couldn't load texture atlas page " + h + "} of atlas " + i,
r && r(i, "Couldn't load texture atlas page " + h + " of atlas " + i),
s.toLoad--,
s.loaded++;
else
try {
var u = new t.TextureAtlas(e,function(t) {
return s.get(a + "/" + t)
}
);
s.assets[i] = u,
n && n(i, u),
s.toLoad--,
s.loaded++
} catch (f) {
var _ = f;
s.errors[i] = "Couldn't load texture atlas " + i + ": " + _.message,
r && r(i, "Couldn't load texture atlas " + i + ": " + _.message),
s.toLoad--,
s.loaded++
}
}
), (function(t) {
c = !0,
o.count++,
o.count == l.length && (s.errors[i] = "Couldn't load texture atlas page " + t + "} of atlas " + i,
r && r(i, "Couldn't load texture atlas page " + t + " of atlas " + i),
s.toLoad--,
s.loaded++)
}
))
}, u = 0, _ = l; u < _.length; u++)
c(_[u])
}
), (function(t, e) {
s.errors[i] = "Couldn't load texture atlas " + i + ": status " + status + ", " + e,
r && r(i, "Couldn't load texture atlas " + i + ": status " + status + ", " + e),
s.toLoad--,
s.loaded++
}
))
}
,
e.prototype.get = function(t) {
return t = this.pathPrefix + t,
this.assets[t]
}
,
e.prototype.remove = function(t) {
t = this.pathPrefix + t;
var e = this.assets[t];
e.dispose && e.dispose(),
this.assets[t] = null
}
,
e.prototype.removeAll = function() {
for (var t in this.assets) {
var e = this.assets[t];
e.dispose && e.dispose()
}
this.assets = {}
}
,
e.prototype.isLoadingComplete = function() {
return 0 == this.toLoad
}
,
e.prototype.getToLoad = function() {
return this.toLoad
}
,
e.prototype.getLoaded = function() {
return this.loaded
}
,
e.prototype.dispose = function() {
this.removeAll()
}
,
e.prototype.hasErrors = function() {
return Object.keys(this.errors).length > 0
}
,
e.prototype.getErrors = function() {
return this.errors
}
,
e
}
)();
t.AssetManager = e
}
)(r || (r = {})),
(function(t) {
var e = (function() {
function e(t) {
this.atlas = t
}
return e.prototype.newRegionAttachment = function(e, i, n) {
var r = this.atlas.findRegion(n);
if (null == r)
return null;
r.renderObject = r;
var s = new t.RegionAttachment(i);
return s.setRegion(r),
s
}
,
e.prototype.newMeshAttachment = function(e, i, n) {
var r = this.atlas.findRegion(n);
if (null == r)
return null;
r.renderObject = r;
var s = new t.MeshAttachment(i);
return s.region = r,
s
}
,
e.prototype.newBoundingBoxAttachment = function(e, i) {
return new t.BoundingBoxAttachment(i)
}
,
e.prototype.newPathAttachment = function(e, i) {
return new t.PathAttachment(i)
}
,
e.prototype.newPointAttachment = function(e, i) {
return new t.PointAttachment(i)
}
,
e.prototype.newClippingAttachment = function(e, i) {
return new t.ClippingAttachment(i)
}
,
e
}
)();
t.AtlasAttachmentLoader = e
}
)(r || (r = {})),
(function(t) {
(function(t) {
t[t.Normal = 0] = "Normal",
t[t.Additive = 1] = "Additive",
t[t.Multiply = 2] = "Multiply",
t[t.Screen = 3] = "Screen"
}
)(t.BlendMode || (t.BlendMode = {}))
}
)(r || (r = {})),
(function(t) {
var e = (function() {
function e(t, e, i) {
if (this.children = new Array,
this.x = 0,
this.y = 0,
this.rotation = 0,
this.scaleX = 0,
this.scaleY = 0,
this.shearX = 0,
this.shearY = 0,
this.ax = 0,
this.ay = 0,
this.arotation = 0,
this.ascaleX = 0,
this.ascaleY = 0,
this.ashearX = 0,
this.ashearY = 0,
this.appliedValid = !1,
this.a = 0,
this.b = 0,
this.c = 0,
this.d = 0,
this.worldY = 0,
this.worldX = 0,
this.sorted = !1,
this.active = !1,
null == t)
throw new Error("data cannot be null.");
if (null == e)
throw new Error("skeleton cannot be null.");
this.data = t,
this.skeleton = e,
this.parent = i,
this.setToSetupPose()
}
return e.prototype.isActive = function() {
return this.active
}
,
e.prototype.update = function() {
this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY)
}
,
e.prototype.updateWorldTransform = function() {
this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY)
}
,
e.prototype.updateWorldTransformWith = function(e, i, n, r, s, a, o) {
this.ax = e,
this.ay = i,
this.arotation = n,
this.ascaleX = r,
this.ascaleY = s,
this.ashearX = a,
this.ashearY = o,
this.appliedValid = !0;
var l = this.parent;
if (null == l) {
var h = this.skeleton
, c = n + 90 + o
, u = h.scaleX
, _ = h.scaleY;
return this.a = t.MathUtils.cosDeg(n + a) * r * u,
this.b = t.MathUtils.cosDeg(c) * s * u,
this.c = t.MathUtils.sinDeg(n + a) * r * _,
this.d = t.MathUtils.sinDeg(c) * s * _,
this.worldX = e * u + h.x,
void (this.worldY = i * _ + h.y)
}
var f = l.a
, d = l.b
, p = l.c
, m = l.d;
switch (this.worldX = f * e + d * i + l.worldX,
this.worldY = p * e + m * i + l.worldY,
this.data.transformMode) {
case t.TransformMode.Normal:
c = n + 90 + o;
var y = t.MathUtils.cosDeg(n + a) * r
, v = t.MathUtils.cosDeg(c) * s
, g = t.MathUtils.sinDeg(n + a) * r
, A = t.MathUtils.sinDeg(c) * s;
return this.a = f * y + d * g,
this.b = f * v + d * A,
this.c = p * y + m * g,
void (this.d = p * v + m * A);
case t.TransformMode.OnlyTranslation:
c = n + 90 + o,
this.a = t.MathUtils.cosDeg(n + a) * r,
this.b = t.MathUtils.cosDeg(c) * s,
this.c = t.MathUtils.sinDeg(n + a) * r,
this.d = t.MathUtils.sinDeg(c) * s;
break;
case t.TransformMode.NoRotationOrReflection:
var x = 0;
(T = f * f + p * p) > 1e-4 ? (d = p * (T = Math.abs(f * m - d * p) / T),
m = f * T,
x = Math.atan2(p, f) * t.MathUtils.radDeg) : (f = 0,
p = 0,
x = 90 - Math.atan2(m, d) * t.MathUtils.radDeg);
var b = n + a - x
, C = n + o - x + 90;
y = t.MathUtils.cosDeg(b) * r,
v = t.MathUtils.cosDeg(C) * s,
g = t.MathUtils.sinDeg(b) * r,
A = t.MathUtils.sinDeg(C) * s,
this.a = f * y - d * g,
this.b = f * v - d * A,
this.c = p * y + m * g,
this.d = p * v + m * A;
break;
case t.TransformMode.NoScale:
case t.TransformMode.NoScaleOrReflection:
var T, S = t.MathUtils.cosDeg(n), w = t.MathUtils.sinDeg(n), E = (f * S + d * w) / this.skeleton.scaleX, M = (p * S + m * w) / this.skeleton.scaleY;
(T = Math.sqrt(E * E + M * M)) > 1e-5 && (T = 1 / T),
E *= T,
M *= T,
T = Math.sqrt(E * E + M * M),
this.data.transformMode == t.TransformMode.NoScale && f * m - d * p < 0 != (this.skeleton.scaleX < 0 != this.skeleton.scaleY < 0) && (T = -T);
var D = Math.PI / 2 + Math.atan2(M, E)
, B = Math.cos(D) * T
, I = Math.sin(D) * T;
y = t.MathUtils.cosDeg(a) * r,
v = t.MathUtils.cosDeg(90 + o) * s,
g = t.MathUtils.sinDeg(a) * r,
A = t.MathUtils.sinDeg(90 + o) * s,
this.a = E * y + B * g,
this.b = E * v + B * A,
this.c = M * y + I * g,
this.d = M * v + I * A
}
this.a *= this.skeleton.scaleX,
this.b *= this.skeleton.scaleX,
this.c *= this.skeleton.scaleY,
this.d *= this.skeleton.scaleY
}
,
e.prototype.setToSetupPose = function() {
var t = this.data;
this.x = t.x,
this.y = t.y,
this.rotation = t.rotation,
this.scaleX = t.scaleX,
this.scaleY = t.scaleY,
this.shearX = t.shearX,
this.shearY = t.shearY
}
,
e.prototype.getWorldRotationX = function() {
return Math.atan2(this.c, this.a) * t.MathUtils.radDeg
}
,
e.prototype.getWorldRotationY = function() {
return Math.atan2(this.d, this.b) * t.MathUtils.radDeg
}
,
e.prototype.getWorldScaleX = function() {
return Math.sqrt(this.a * this.a + this.c * this.c)
}
,
e.prototype.getWorldScaleY = function() {
return Math.sqrt(this.b * this.b + this.d * this.d)
}
,
e.prototype.updateAppliedTransform = function() {
this.appliedValid = !0;
var e = this.parent;
if (null == e)
return this.ax = this.worldX,
this.ay = this.worldY,
this.arotation = Math.atan2(this.c, this.a) * t.MathUtils.radDeg,
this.ascaleX = Math.sqrt(this.a * this.a + this.c * this.c),
this.ascaleY = Math.sqrt(this.b * this.b + this.d * this.d),
this.ashearX = 0,
void (this.ashearY = Math.atan2(this.a * this.b + this.c * this.d, this.a * this.d - this.b * this.c) * t.MathUtils.radDeg);
var i = e.a
, n = e.b
, r = e.c
, s = e.d
, a = 1 / (i * s - n * r)
, o = this.worldX - e.worldX
, l = this.worldY - e.worldY;
this.ax = o * s * a - l * n * a,
this.ay = l * i * a - o * r * a;
var h = a * s
, c = a * i
, u = a * n
, _ = a * r
, f = h * this.a - u * this.c
, d = h * this.b - u * this.d
, p = c * this.c - _ * this.a
, m = c * this.d - _ * this.b;
if (this.ashearX = 0,
this.ascaleX = Math.sqrt(f * f + p * p),
this.ascaleX > 1e-4) {
var y = f * m - d * p;
this.ascaleY = y / this.ascaleX,
this.ashearY = Math.atan2(f * d + p * m, y) * t.MathUtils.radDeg,
this.arotation = Math.atan2(p, f) * t.MathUtils.radDeg
} else
this.ascaleX = 0,
this.ascaleY = Math.sqrt(d * d + m * m),
this.ashearY = 0,
this.arotation = 90 - Math.atan2(m, d) * t.MathUtils.radDeg
}
,
e.prototype.worldToLocal = function(t) {
var e = this.a
, i = this.b
, n = this.c
, r = this.d
, s = 1 / (e * r - i * n)
, a = t.x - this.worldX
, o = t.y - this.worldY;
return t.x = a * r * s - o * i * s,
t.y = o * e * s - a * n * s,
t
}
,
e.prototype.localToWorld = function(t) {
var e = t.x
, i = t.y;
return t.x = e * this.a + i * this.b + this.worldX,
t.y = e * this.c + i * this.d + this.worldY,
t
}
,
e.prototype.worldToLocalRotation = function(e) {
var i = t.MathUtils.sinDeg(e)
, n = t.MathUtils.cosDeg(e);
return Math.atan2(this.a * i - this.c * n, this.d * n - this.b * i) * t.MathUtils.radDeg + this.rotation - this.shearX
}
,
e.prototype.localToWorldRotation = function(e) {
e -= this.rotation - this.shearX;
var i = t.MathUtils.sinDeg(e)
, n = t.MathUtils.cosDeg(e);
return Math.atan2(n * this.c + i * this.d, n * this.a + i * this.b) * t.MathUtils.radDeg
}
,
e.prototype.rotateWorld = function(e) {
var i = this.a
, n = this.b
, r = this.c
, s = this.d
, a = t.MathUtils.cosDeg(e)
, o = t.MathUtils.sinDeg(e);
this.a = a * i - o * r,
this.b = a * n - o * s,
this.c = o * i + a * r,
this.d = o * n + a * s,
this.appliedValid = !1
}
,
e
}
)();
t.Bone = e
}
)(r || (r = {})),
(function(t) {
var e;
t.BoneData = function(i, n, r) {
if (this.x = 0,
this.y = 0,
this.rotation = 0,
this.scaleX = 1,
this.scaleY = 1,
this.shearX = 0,
this.shearY = 0,
this.transformMode = e.Normal,
this.skinRequired = !1,
this.color = new t.Color,
i < 0)
throw new Error("index must be >= 0.");
if (null == n)
throw new Error("name cannot be null.");
this.index = i,
this.name = n,
this.parent = r
}
,
(function(t) {
t[t.Normal = 0] = "Normal",
t[t.OnlyTranslation = 1] = "OnlyTranslation",
t[t.NoRotationOrReflection = 2] = "NoRotationOrReflection",
t[t.NoScale = 3] = "NoScale",
t[t.NoScaleOrReflection = 4] = "NoScaleOrReflection"
}
)(e = t.TransformMode || (t.TransformMode = {}))
}
)(r || (r = {})),
(function(t) {
t.ConstraintData = function(t, e, i) {
this.name = t,
this.order = e,
this.skinRequired = i
}
}
)(r || (r = {})),
(function(t) {
t.Event = function(t, e) {
if (null == e)
throw new Error("data cannot be null.");
this.time = t,
this.data = e
}
}
)(r || (r = {})),
(function(t) {
t.EventData = function(t) {
this.name = t
}
}
)(r || (r = {})),
(function(t) {
var e = (function() {
function e(t, e) {
if (this.bendDirection = 0,
this.compress = !1,
this.stretch = !1,
this.mix = 1,
this.softness = 0,
this.active = !1,
null == t)
throw new Error("data cannot be null.");
if (null == e)
throw new Error("skeleton cannot be null.");
this.data = t,
this.mix = t.mix,
this.softness = t.softness,
this.bendDirection = t.bendDirection,
this.compress = t.compress,
this.stretch = t.stretch,
this.bones = new Array;
for (var i = 0; i < t.bones.length; i++)
this.bones.push(e.findBone(t.bones[i].name));
this.target = e.findBone(t.target.name)
}
return e.prototype.isActive = function() {
return this.active
}
,
e.prototype.apply = function() {
this.update()
}
,
e.prototype.update = function() {
var t = this.target
, e = this.bones;
switch (e.length) {
case 1:
this.apply1(e[0], t.worldX, t.worldY, this.compress, this.stretch, this.data.uniform, this.mix);
break;
case 2:
this.apply2(e[0], e[1], t.worldX, t.worldY, this.bendDirection, this.stretch, this.softness, this.mix)
}
}
,
e.prototype.apply1 = function(e, i, n, r, s, a, o) {
e.appliedValid || e.updateAppliedTransform();
var l = e.parent
, h = 1 / (l.a * l.d - l.b * l.c)
, c = i - l.worldX
, u = n - l.worldY
, _ = (c * l.d - u * l.b) * h - e.ax
, f = (u * l.a - c * l.c) * h - e.ay
, d = Math.atan2(f, _) * t.MathUtils.radDeg - e.ashearX - e.arotation;
e.ascaleX < 0 && (d += 180),
d > 180 ? d -= 360 : d < -180 && (d += 360);
var p = e.ascaleX
, m = e.ascaleY;
if (r || s) {
var y = e.data.length * p
, v = Math.sqrt(_ * _ + f * f);
if (r && v < y || s && v > y && y > 1e-4) {
var g = (v / y - 1) * o + 1;
p *= g,
a && (m *= g)
}
}
e.updateWorldTransformWith(e.ax, e.ay, e.arotation + d * o, p, m, e.ashearX, e.ashearY)
}
,
e.prototype.apply2 = function(e, i, n, r, s, a, o, l) {
if (0 != l) {
e.appliedValid || e.updateAppliedTransform(),
i.appliedValid || i.updateAppliedTransform();
var h = e.ax
, c = e.ay
, u = e.ascaleX
, _ = u
, f = e.ascaleY
, d = i.ascaleX
, p = 0
, m = 0
, y = 0;
u < 0 ? (u = -u,
p = 180,
y = -1) : (p = 0,
y = 1),
f < 0 && (f = -f,
y = -y),
d < 0 ? (d = -d,
m = 180) : m = 0;
var v = i.ax
, g = 0
, A = 0
, x = 0
, b = e.a
, C = e.b
, T = e.c
, S = e.d
, w = Math.abs(u - f) <= 1e-4;
w ? (A = b * v + C * (g = i.ay) + e.worldX,
x = T * v + S * g + e.worldY) : (g = 0,
A = b * v + e.worldX,
x = T * v + e.worldY);
var E = e.parent;
b = E.a,
C = E.b,
T = E.c;
var M, D, B = 1 / (b * (S = E.d) - C * T), I = A - E.worldX, P = x - E.worldY, R = (I * S - P * C) * B - h, O = (P * b - I * T) * B - c, L = Math.sqrt(R * R + O * O), F = i.data.length * d;
if (L < 1e-4)
return this.apply1(e, n, r, !1, a, !1, l),
void i.updateWorldTransformWith(v, g, 0, i.ascaleX, i.ascaleY, i.ashearX, i.ashearY);
var V = ((I = n - E.worldX) * S - (P = r - E.worldY) * C) * B - h
, N = (P * b - I * T) * B - c
, k = V * V + N * N;
if (0 != o) {
o *= u * (d + 1) / 2;
var G = Math.sqrt(k)
, U = G - L - F * u + o;
if (U > 0) {
var z = Math.min(1, U / (2 * o)) - 1;
k = (V -= (z = (U - o * (1 - z * z)) / G) * V) * V + (N -= z * N) * N
}
}
t: if (w) {
var H = (k - L * L - (F *= u) * F) / (2 * L * F);
H < -1 ? H = -1 : H > 1 && (H = 1,
a && (_ *= (Math.sqrt(k) / (L + F) - 1) * l + 1)),
D = Math.acos(H) * s,
b = L + F * H,
C = F * Math.sin(D),
M = Math.atan2(N * b - V * C, V * b + N * C)
} else {
var W = (b = u * F) * b
, j = (C = f * F) * C
, X = Math.atan2(N, V)
, Y = -2 * j * L
, q = j - W;
if ((S = Y * Y - 4 * q * (T = j * L * L + W * k - W * j)) >= 0) {
var J = Math.sqrt(S);
Y < 0 && (J = -J);
var Z = (J = -(Y + J) / 2) / q
, K = T / J
, Q = Math.abs(Z) < Math.abs(K) ? Z : K;
if (Q * Q <= k) {
P = Math.sqrt(k - Q * Q) * s,
M = X - Math.atan2(P, Q),
D = Math.atan2(P / f, (Q - L) / u);
break t
}
}
var $ = t.MathUtils.PI
, tt = L - b
, et = tt * tt
, it = 0
, nt = 0
, rt = L + b
, st = rt * rt
, at = 0;
(T = -b * L / (W - j)) >= -1 && T <= 1 && (T = Math.acos(T),
(S = (I = b * Math.cos(T) + L) * I + (P = C * Math.sin(T)) * P) < et && ($ = T,
et = S,
tt = I,
it = P),
S > st && (nt = T,
st = S,
rt = I,
at = P)),
k <= (et + st) / 2 ? (M = X - Math.atan2(it * s, tt),
D = $ * s) : (M = X - Math.atan2(at * s, rt),
D = nt * s)
}
var ot = Math.atan2(g, v) * y
, lt = e.arotation;
(M = (M - ot) * t.MathUtils.radDeg + p - lt) > 180 ? M -= 360 : M < -180 && (M += 360),
e.updateWorldTransformWith(h, c, lt + M * l, _, e.ascaleY, 0, 0),
lt = i.arotation,
(D = ((D + ot) * t.MathUtils.radDeg - i.ashearX) * y + m - lt) > 180 ? D -= 360 : D < -180 && (D += 360),
i.updateWorldTransformWith(v, g, lt + D * l, i.ascaleX, i.ascaleY, i.ashearX, i.ashearY)
} else
i.updateWorldTransform()
}
,
e
}
)();
t.IkConstraint = e
}
)(r || (r = {})),
(function(t) {
var e = (function(t) {
function e(e) {
var i = t.call(this, e, 0, !1) || this;
return i.bones = new Array,
i.bendDirection = 1,
i.compress = !1,
i.stretch = !1,
i.uniform = !1,
i.mix = 1,
i.softness = 0,
i
}
return s(e, t),
e
}
)(t.ConstraintData);
t.IkConstraintData = e
}
)(r || (r = {})),
(function(t) {
var e = (function() {
function e(t, e) {
if (this.position = 0,
this.spacing = 0,
this.rotateMix = 0,
this.translateMix = 0,
this.spaces = new Array,
this.positions = new Array,
this.world = new Array,
this.curves = new Array,
this.lengths = new Array,
this.segments = new Array,
this.active = !1,
null == t)
throw new Error("data cannot be null.");
if (null == e)
throw new Error("skeleton cannot be null.");
this.data = t,
this.bones = new Array;
for (var i = 0, n = t.bones.length; i < n; i++)
this.bones.push(e.findBone(t.bones[i].name));
this.target = e.findSlot(t.target.name),
this.position = t.position,
this.spacing = t.spacing,
this.rotateMix = t.rotateMix,
this.translateMix = t.translateMix
}
return e.prototype.isActive = function() {
return this.active
}
,
e.prototype.apply = function() {
this.update()
}
,
e.prototype.update = function() {
var i = this.target.getAttachment();
if (i instanceof t.PathAttachment) {
var n = this.rotateMix
, r = this.translateMix
, s = n > 0;
if (r > 0 || s) {
var a = this.data
, o = a.spacingMode == t.SpacingMode.Percent
, l = a.rotateMode
, h = l == t.RotateMode.Tangent
, c = l == t.RotateMode.ChainScale
, u = this.bones.length
, _ = h ? u : u + 1
, f = this.bones
, d = t.Utils.setArraySize(this.spaces, _)
, p = null
, m = this.spacing;
if (c || !o) {
c && (p = t.Utils.setArraySize(this.lengths, u));
for (var y = a.spacingMode == t.SpacingMode.Length, v = 0, g = _ - 1; v < g; ) {
var A = (I = f[v]).data.length;
if (A < e.epsilon)
c && (p[v] = 0),
d[++v] = 0;
else if (o) {
if (c) {
var x = A * I.a
, b = A * I.c
, C = Math.sqrt(x * x + b * b);
p[v] = C
}
d[++v] = m
} else {
x = A * I.a,
b = A * I.c;
var T = Math.sqrt(x * x + b * b);
c && (p[v] = T),
d[++v] = (y ? A + m : m) * T / A
}
}
} else
for (v = 1; v < _; v++)
d[v] = m;
var S = this.computeWorldPositions(i, _, h, a.positionMode == t.PositionMode.Percent, o)
, w = S[0]
, E = S[1]
, M = a.offsetRotation
, D = !1;
0 == M ? D = l == t.RotateMode.Chain : (D = !1,
M *= (B = this.target.bone).a * B.d - B.b * B.c > 0 ? t.MathUtils.degRad : -t.MathUtils.degRad),
v = 0;
for (var B = 3; v < u; v++,
B += 3) {
var I;
(I = f[v]).worldX += (w - I.worldX) * r,
I.worldY += (E - I.worldY) * r;
var P = (x = S[B]) - w
, R = (b = S[B + 1]) - E;
if (c) {
var O = p[v];
if (0 != O) {
var L = (Math.sqrt(P * P + R * R) / O - 1) * n + 1;
I.a *= L,
I.c *= L
}
}
if (w = x,
E = b,
s) {
var F = I.a
, V = I.b
, N = I.c
, k = I.d
, G = 0
, U = 0
, z = 0;
if (G = h ? S[B - 1] : 0 == d[v + 1] ? S[B + 2] : Math.atan2(R, P),
G -= Math.atan2(N, F),
D) {
U = Math.cos(G),
z = Math.sin(G);
var H = I.data.length;
w += (H * (U * F - z * N) - P) * n,
E += (H * (z * F + U * N) - R) * n
} else
G += M;
G > t.MathUtils.PI ? G -= t.MathUtils.PI2 : G < -t.MathUtils.PI && (G += t.MathUtils.PI2),
G *= n,
U = Math.cos(G),
z = Math.sin(G),
I.a = U * F - z * N,
I.b = U * V - z * k,
I.c = z * F + U * N,
I.d = z * V + U * k
}
I.appliedValid = !1
}
}
}
}
,
e.prototype.computeWorldPositions = function(i, n, r, s, a) {
var o = this.target
, l = this.position
, h = this.spaces
, c = t.Utils.setArraySize(this.positions, 3 * n + 2)
, u = null
, _ = i.closed
, f = i.worldVerticesLength
, d = f / 6
, p = e.NONE;
if (!i.constantSpeed) {
var m = i.lengths
, y = m[d -= _ ? 1 : 2];
if (s && (l *= y),
a)
for (var v = 1; v < n; v++)
h[v] *= y;
u = t.Utils.setArraySize(this.world, 8),
v = 0;
for (var g = 0, A = 0; v < n; v++,
g += 3) {
var x = l += j = h[v];
if (_)
(x %= y) < 0 && (x += y),
A = 0;
else {
if (x < 0) {
p != e.BEFORE && (p = e.BEFORE,
i.computeWorldVertices(o, 2, 4, u, 0, 2)),
this.addBeforePosition(x, u, 0, c, g);
continue
}
if (x > y) {
p != e.AFTER && (p = e.AFTER,
i.computeWorldVertices(o, f - 6, 4, u, 0, 2)),
this.addAfterPosition(x - y, u, 0, c, g);
continue
}
}
for (; ; A++) {
var b = m[A];
if (!(x > b)) {
0 == A ? x /= b : x = (x - (J = m[A - 1])) / (b - J);
break
}
}
A != p && (p = A,
_ && A == d ? (i.computeWorldVertices(o, f - 4, 4, u, 0, 2),
i.computeWorldVertices(o, 0, 4, u, 4, 2)) : i.computeWorldVertices(o, 6 * A + 2, 8, u, 0, 2)),
this.addCurvePosition(x, u[0], u[1], u[2], u[3], u[4], u[5], u[6], u[7], c, g, r || v > 0 && 0 == j)
}
return c
}
_ ? (f += 2,
u = t.Utils.setArraySize(this.world, f),
i.computeWorldVertices(o, 2, f - 4, u, 0, 2),
i.computeWorldVertices(o, 0, 2, u, f - 4, 2),
u[f - 2] = u[0],
u[f - 1] = u[1]) : (d--,
f -= 4,
u = t.Utils.setArraySize(this.world, f),
i.computeWorldVertices(o, 2, f, u, 0, 2));
for (var C = t.Utils.setArraySize(this.curves, d), T = 0, S = u[0], w = u[1], E = 0, M = 0, D = 0, B = 0, I = 0, P = 0, R = 0, O = 0, L = 0, F = 0, V = 0, N = 0, k = 0, G = 0, U = (v = 0,
2); v < d; v++,
U += 6)
E = u[U],
M = u[U + 1],
D = u[U + 2],
B = u[U + 3],
V = 2 * (R = .1875 * (S - 2 * E + D)) + (L = .09375 * (3 * (E - D) - S + (I = u[U + 4]))),
N = 2 * (O = .1875 * (w - 2 * M + B)) + (F = .09375 * (3 * (M - B) - w + (P = u[U + 5]))),
k = .75 * (E - S) + R + .16666667 * L,
G = .75 * (M - w) + O + .16666667 * F,
T += Math.sqrt(k * k + G * G),
k += V,
G += N,
V += L,
N += F,
T += Math.sqrt(k * k + G * G),
k += V,
G += N,
T += Math.sqrt(k * k + G * G),
k += V + L,
G += N + F,
T += Math.sqrt(k * k + G * G),
C[v] = T,
S = I,
w = P;
if (l *= s ? T : T / i.lengths[d - 1],
a)
for (v = 1; v < n; v++)
h[v] *= T;
for (var z = this.segments, H = 0, W = (v = 0,
g = 0,
A = 0,
0); v < n; v++,
g += 3) {
var j;
if (x = l += j = h[v],
_)
(x %= T) < 0 && (x += T),
A = 0;
else {
if (x < 0) {
this.addBeforePosition(x, u, 0, c, g);
continue
}
if (x > T) {
this.addAfterPosition(x - T, u, f - 4, c, g);
continue
}
}
for (; ; A++) {
var X = C[A];
if (!(x > X)) {
0 == A ? x /= X : x = (x - (J = C[A - 1])) / (X - J);
break
}
}
if (A != p) {
p = A;
var Y = 6 * A;
for (S = u[Y],
w = u[Y + 1],
E = u[Y + 2],
M = u[Y + 3],
D = u[Y + 4],
B = u[Y + 5],
V = 2 * (R = .03 * (S - 2 * E + D)) + (L = .006 * (3 * (E - D) - S + (I = u[Y + 6]))),
N = 2 * (O = .03 * (w - 2 * M + B)) + (F = .006 * (3 * (M - B) - w + (P = u[Y + 7]))),
k = .3 * (E - S) + R + .16666667 * L,
G = .3 * (M - w) + O + .16666667 * F,
H = Math.sqrt(k * k + G * G),
z[0] = H,
Y = 1; Y < 8; Y++)
k += V,
G += N,
V += L,
N += F,
H += Math.sqrt(k * k + G * G),
z[Y] = H;
k += V,
G += N,
H += Math.sqrt(k * k + G * G),
z[8] = H,
k += V + L,
G += N + F,
H += Math.sqrt(k * k + G * G),
z[9] = H,
W = 0
}
for (x *= H; ; W++) {
var q = z[W];
if (!(x > q)) {
var J;
0 == W ? x /= q : x = W + (x - (J = z[W - 1])) / (q - J);
break
}
}
this.addCurvePosition(.1 * x, S, w, E, M, D, B, I, P, c, g, r || v > 0 && 0 == j)
}
return c
}
,
e.prototype.addBeforePosition = function(t, e, i, n, r) {
var s = e[i]
, a = e[i + 1]
, o = e[i + 2] - s
, l = e[i + 3] - a
, h = Math.atan2(l, o);
n[r] = s + t * Math.cos(h),
n[r + 1] = a + t * Math.sin(h),
n[r + 2] = h
}
,
e.prototype.addAfterPosition = function(t, e, i, n, r) {
var s = e[i + 2]
, a = e[i + 3]
, o = s - e[i]
, l = a - e[i + 1]
, h = Math.atan2(l, o);
n[r] = s + t * Math.cos(h),
n[r + 1] = a + t * Math.sin(h),
n[r + 2] = h
}
,
e.prototype.addCurvePosition = function(t, e, i, n, r, s, a, o, l, h, c, u) {
if (0 == t || isNaN(t))
return h[c] = e,
h[c + 1] = i,
void (h[c + 2] = Math.atan2(r - i, n - e));
var _ = t * t
, f = _ * t
, d = 1 - t
, p = d * d
, m = p * d
, y = d * t
, v = 3 * y
, g = d * v
, A = v * t
, x = e * m + n * g + s * A + o * f
, b = i * m + r * g + a * A + l * f;
h[c] = x,
h[c + 1] = b,
u && (h[c + 2] = t < .001 ? Math.atan2(r - i, n - e) : Math.atan2(b - (i * p + r * y * 2 + a * _), x - (e * p + n * y * 2 + s * _)))
}
,
e.NONE = -1,
e.BEFORE = -2,
e.AFTER = -3,
e.epsilon = 1e-5,
e
}
)();
t.PathConstraint = e
}
)(r || (r = {})),
(function(t) {
var e = (function(t) {
function e(e) {
var i = t.call(this, e, 0, !1) || this;
return i.bones = new Array,
i
}
return s(e, t),
e
}
)(t.ConstraintData);
t.PathConstraintData = e,
(function(t) {
t[t.Fixed = 0] = "Fixed",
t[t.Percent = 1] = "Percent"
}
)(t.PositionMode || (t.PositionMode = {})),
(function(t) {
t[t.Length = 0] = "Length",
t[t.Fixed = 1] = "Fixed",
t[t.Percent = 2] = "Percent"
}
)(t.SpacingMode || (t.SpacingMode = {})),
(function(t) {
t[t.Tangent = 0] = "Tangent",
t[t.Chain = 1] = "Chain",
t[t.ChainScale = 2] = "ChainScale"
}
)(t.RotateMode || (t.RotateMode = {}))
}
)(r || (r = {})),
(function(t) {
var e = (function() {
function t(t) {
this.toLoad = new Array,
this.assets = {},
this.clientId = t
}
return t.prototype.loaded = function() {
var t = 0;
for (var e in this.assets)
t++;
return t
}
,
t
}
)()
, i = (function() {
function t(t) {
void 0 === t && (t = ""),
this.clientAssets = {},
this.queuedAssets = {},
this.rawAssets = {},
this.errors = {},
this.pathPrefix = t
}
return t.prototype.queueAsset = function(t, i, n) {
var r = this.clientAssets[t];
return null == r && (r = new e(t),
this.clientAssets[t] = r),
null !== i && (r.textureLoader = i),
r.toLoad.push(n),
this.queuedAssets[n] !== n && (this.queuedAssets[n] = n,
!0)
}
,
t.prototype.loadText = function(t, e) {
var i = this;
if (e = this.pathPrefix + e,
this.queueAsset(t, null, e)) {
var n = new XMLHttpRequest;
n.onreadystatechange = function() {
n.readyState == XMLHttpRequest.DONE && (n.status >= 200 && n.status < 300 ? i.rawAssets[e] = n.responseText : i.errors[e] = "Couldn't load text " + e + ": status " + n.status + ", " + n.responseText)
}
,
n.open("GET", e, !0),
n.send()
}
}
,
t.prototype.loadJson = function(t, e) {
var i = this;
if (e = this.pathPrefix + e,
this.queueAsset(t, null, e)) {
var n = new XMLHttpRequest;
n.onreadystatechange = function() {
n.readyState == XMLHttpRequest.DONE && (n.status >= 200 && n.status < 300 ? i.rawAssets[e] = JSON.parse(n.responseText) : i.errors[e] = "Couldn't load text " + e + ": status " + n.status + ", " + n.responseText)
}
,
n.open("GET", e, !0),
n.send()
}
}
,
t.prototype.loadTexture = function(t, e, i) {
var n = this;
if (i = this.pathPrefix + i,
this.queueAsset(t, e, i)) {
var r = new Image;
r.src = i,
r.crossOrigin = "anonymous",
r.onload = function() {
n.rawAssets[i] = r
}
,
r.onerror = function() {
n.errors[i] = "Couldn't load image " + i
}
}
}
,
t.prototype.get = function(t, e) {
e = this.pathPrefix + e;
var i = this.clientAssets[t];
return null == i || i.assets[e]
}
,
t.prototype.updateClientAssets = function(t) {
for (var e = 0; e < t.toLoad.length; e++) {
var i = t.toLoad[e];
if (null == t.assets[i]) {
var n = this.rawAssets[i];
if (null == n)
continue;
n instanceof HTMLImageElement ? t.assets[i] = t.textureLoader(n) : t.assets[i] = n
}
}
}
,
t.prototype.isLoadingComplete = function(t) {
var e = this.clientAssets[t];
return null == e || (this.updateClientAssets(e),
e.toLoad.length == e.loaded())
}
,
t.prototype.dispose = function() {}
,
t.prototype.hasErrors = function() {
return Object.keys(this.errors).length > 0
}
,
t.prototype.getErrors = function() {
return this.errors
}
,
t
}
)();
t.SharedAssetManager = i
}
)(r || (r = {})),
(function(t) {
var e = (function() {
function e(e) {
if (this._updateCache = new Array,
this.updateCacheReset = new Array,
this.time = 0,
this.scaleX = 1,
this.scaleY = 1,
this.x = 0,
this.y = 0,
null == e)
throw new Error("data cannot be null.");
this.data = e,
this.bones = new Array;
for (var i = 0; i < e.bones.length; i++) {
var n = e.bones[i]
, r = void 0;
if (null == n.parent)
r = new t.Bone(n,this,null);
else {
var s = this.bones[n.parent.index];
r = new t.Bone(n,this,s),
s.children.push(r)
}
this.bones.push(r)
}
for (this.slots = new Array,
this.drawOrder = new Array,
i = 0; i < e.slots.length; i++) {
var a = e.slots[i]
, o = (r = this.bones[a.boneData.index],
new t.Slot(a,r));
this.slots.push(o),
this.drawOrder.push(o)
}
for (this.ikConstraints = new Array,
i = 0; i < e.ikConstraints.length; i++) {
var l = e.ikConstraints[i];
this.ikConstraints.push(new t.IkConstraint(l,this))
}
for (this.transformConstraints = new Array,
i = 0; i < e.transformConstraints.length; i++) {
var h = e.transformConstraints[i];
this.transformConstraints.push(new t.TransformConstraint(h,this))
}
for (this.pathConstraints = new Array,
i = 0; i < e.pathConstraints.length; i++) {
var c = e.pathConstraints[i];
this.pathConstraints.push(new t.PathConstraint(c,this))
}
this.color = new t.Color(1,1,1,1),
this.updateCache()
}
return e.prototype.updateCache = function() {
this._updateCache.length = 0,
this.updateCacheReset.length = 0;
for (var t = this.bones, e = 0, i = t.length; e < i; e++)
(r = t[e]).sorted = r.data.skinRequired,
r.active = !r.sorted;
if (null != this.skin) {
var n = this.skin.bones;
for (e = 0,
i = this.skin.bones.length; e < i; e++) {
var r = this.bones[n[e].index];
do {
r.sorted = !1,
r.active = !0,
r = r.parent
} while (null != r)
}
}
var s = this.ikConstraints
, a = this.transformConstraints
, o = this.pathConstraints
, l = s.length
, h = a.length
, c = o.length
, u = l + h + c;
t: for (e = 0; e < u; e++) {
for (var _ = 0; _ < l; _++)
if ((f = s[_]).data.order == e) {
this.sortIkConstraint(f);
continue t
}
for (_ = 0; _ < h; _++)
if ((f = a[_]).data.order == e) {
this.sortTransformConstraint(f);
continue t
}
for (_ = 0; _ < c; _++) {
var f;
if ((f = o[_]).data.order == e) {
this.sortPathConstraint(f);
continue t
}
}
}
for (e = 0,
i = t.length; e < i; e++)
this.sortBone(t[e])
}
,
e.prototype.sortIkConstraint = function(e) {
if (e.active = e.target.isActive() && (!e.data.skinRequired || null != this.skin && t.Utils.contains(this.skin.constraints, e.data, !0)),
e.active) {
var i = e.target;
this.sortBone(i);
var n = e.bones
, r = n[0];
if (this.sortBone(r),
n.length > 1) {
var s = n[n.length - 1];
this._updateCache.indexOf(s) > -1 || this.updateCacheReset.push(s)
}
this._updateCache.push(e),
this.sortReset(r.children),
n[n.length - 1].sorted = !0
}
}
,
e.prototype.sortPathConstraint = function(e) {
if (e.active = e.target.bone.isActive() && (!e.data.skinRequired || null != this.skin && t.Utils.contains(this.skin.constraints, e.data, !0)),
e.active) {
var i = e.target
, n = i.data.index
, r = i.bone;
null != this.skin && this.sortPathConstraintAttachment(this.skin, n, r),
null != this.data.defaultSkin && this.data.defaultSkin != this.skin && this.sortPathConstraintAttachment(this.data.defaultSkin, n, r);
for (var s = 0, a = this.data.skins.length; s < a; s++)
this.sortPathConstraintAttachment(this.data.skins[s], n, r);
var o = i.getAttachment();
o instanceof t.PathAttachment && this.sortPathConstraintAttachmentWith(o, r);
var l = e.bones
, h = l.length;
for (s = 0; s < h; s++)
this.sortBone(l[s]);
for (this._updateCache.push(e),
s = 0; s < h; s++)
this.sortReset(l[s].children);
for (s = 0; s < h; s++)
l[s].sorted = !0
}
}
,
e.prototype.sortTransformConstraint = function(e) {
if (e.active = e.target.isActive() && (!e.data.skinRequired || null != this.skin && t.Utils.contains(this.skin.constraints, e.data, !0)),
e.active) {
this.sortBone(e.target);
var i = e.bones
, n = i.length;
if (e.data.local)
for (var r = 0; r < n; r++) {
var s = i[r];
this.sortBone(s.parent),
this._updateCache.indexOf(s) > -1 || this.updateCacheReset.push(s)
}
else
for (r = 0; r < n; r++)
this.sortBone(i[r]);
this._updateCache.push(e);
for (var a = 0; a < n; a++)
this.sortReset(i[a].children);
for (a = 0; a < n; a++)
i[a].sorted = !0
}
}
,
e.prototype.sortPathConstraintAttachment = function(t, e, i) {
var n = t.attachments[e];
if (n)
for (var r in n)
this.sortPathConstraintAttachmentWith(n[r], i)
}
,
e.prototype.sortPathConstraintAttachmentWith = function(e, i) {
if (e instanceof t.PathAttachment) {
var n = e.bones;
if (null == n)
this.sortBone(i);
else
for (var r = this.bones, s = 0; s < n.length; )
for (var a = n[s++], o = s + a; s < o; s++) {
var l = n[s];
this.sortBone(r[l])
}
}
}
,
e.prototype.sortBone = function(t) {
if (!t.sorted) {
var e = t.parent;
null != e && this.sortBone(e),
t.sorted = !0,
this._updateCache.push(t)
}
}
,
e.prototype.sortReset = function(t) {
for (var e = 0, i = t.length; e < i; e++) {
var n = t[e];
n.active && (n.sorted && this.sortReset(n.children),
n.sorted = !1)
}
}
,
e.prototype.updateWorldTransform = function() {
for (var t = this.updateCacheReset, e = 0, i = t.length; e < i; e++) {
var n = t[e];
n.ax = n.x,
n.ay = n.y,
n.arotation = n.rotation,
n.ascaleX = n.scaleX,
n.ascaleY = n.scaleY,
n.ashearX = n.shearX,
n.ashearY = n.shearY,
n.appliedValid = !0
}
var r = this._updateCache;
for (e = 0,
i = r.length; e < i; e++)
r[e].update()
}
,
e.prototype.setToSetupPose = function() {
this.setBonesToSetupPose(),
this.setSlotsToSetupPose()
}
,
e.prototype.setBonesToSetupPose = function() {
for (var t = this.bones, e = 0, i = t.length; e < i; e++)
t[e].setToSetupPose();
var n = this.ikConstraints;
for (e = 0,
i = n.length; e < i; e++)
(o = n[e]).mix = o.data.mix,
o.softness = o.data.softness,
o.bendDirection = o.data.bendDirection,
o.compress = o.data.compress,
o.stretch = o.data.stretch;
var r = this.transformConstraints;
for (e = 0,
i = r.length; e < i; e++) {
var s = (o = r[e]).data;
o.rotateMix = s.rotateMix,
o.translateMix = s.translateMix,
o.scaleMix = s.scaleMix,
o.shearMix = s.shearMix
}
var a = this.pathConstraints;
for (e = 0,
i = a.length; e < i; e++) {
var o;
s = (o = a[e]).data,
o.position = s.position,
o.spacing = s.spacing,
o.rotateMix = s.rotateMix,
o.translateMix = s.translateMix
}
}
,
e.prototype.setSlotsToSetupPose = function() {
var e = this.slots;
t.Utils.arrayCopy(e, 0, this.drawOrder, 0, e.length);
for (var i = 0, n = e.length; i < n; i++)
e[i].setToSetupPose()
}
,
e.prototype.getRootBone = function() {
return 0 == this.bones.length ? null : this.bones[0]
}
,
e.prototype.findBone = function(t) {
if (null == t)
throw new Error("boneName cannot be null.");
for (var e = this.bones, i = 0, n = e.length; i < n; i++) {
var r = e[i];
if (r.data.name == t)
return r
}
return null
}
,
e.prototype.findBoneIndex = function(t) {
if (null == t)
throw new Error("boneName cannot be null.");
for (var e = this.bones, i = 0, n = e.length; i < n; i++)
if (e[i].data.name == t)
return i;
return -1
}
,
e.prototype.findSlot = function(t) {
if (null == t)
throw new Error("slotName cannot be null.");
for (var e = this.slots, i = 0, n = e.length; i < n; i++) {
var r = e[i];
if (r.data.name == t)
return r
}
return null
}
,
e.prototype.findSlotIndex = function(t) {
if (null == t)
throw new Error("slotName cannot be null.");
for (var e = this.slots, i = 0, n = e.length; i < n; i++)
if (e[i].data.name == t)
return i;
return -1
}
,
e.prototype.setSkinByName = function(t) {
var e = this.data.findSkin(t);
if (null == e)
throw new Error("Skin not found: " + t);
this.setSkin(e)
}
,
e.prototype.setSkin = function(t) {
if (t != this.skin) {
if (null != t)
if (null != this.skin)
t.attachAll(this, this.skin);
else
for (var e = this.slots, i = 0, n = e.length; i < n; i++) {
var r = e[i]
, s = r.data.attachmentName;
if (null != s) {
var a = t.getAttachment(i, s);
null != a && r.setAttachment(a)
}
}
this.skin = t,
this.updateCache()
}
}
,
e.prototype.getAttachmentByName = function(t, e) {
return this.getAttachment(this.data.findSlotIndex(t), e)
}
,
e.prototype.getAttachment = function(t, e) {
if (null == e)
throw new Error("attachmentName cannot be null.");
if (null != this.skin) {
var i = this.skin.getAttachment(t, e);
if (null != i)
return i
}
return null != this.data.defaultSkin ? this.data.defaultSkin.getAttachment(t, e) : null
}
,
e.prototype.setAttachment = function(t, e) {
if (null == t)
throw new Error("slotName cannot be null.");
for (var i = this.slots, n = 0, r = i.length; n < r; n++) {
var s = i[n];
if (s.data.name == t) {
var a = null;
if (null != e && null == (a = this.getAttachment(n, e)))
throw new Error("Attachment not found: " + e + ", for slot: " + t);
return void s.setAttachment(a)
}
}
throw new Error("Slot not found: " + t)
}
,
e.prototype.findIkConstraint = function(t) {
if (null == t)
throw new Error("constraintName cannot be null.");
for (var e = this.ikConstraints, i = 0, n = e.length; i < n; i++) {
var r = e[i];
if (r.data.name == t)
return r
}
return null
}
,
e.prototype.findTransformConstraint = function(t) {
if (null == t)
throw new Error("constraintName cannot be null.");
for (var e = this.transformConstraints, i = 0, n = e.length; i < n; i++) {
var r = e[i];
if (r.data.name == t)
return r
}
return null
}
,
e.prototype.findPathConstraint = function(t) {
if (null == t)
throw new Error("constraintName cannot be null.");
for (var e = this.pathConstraints, i = 0, n = e.length; i < n; i++) {
var r = e[i];
if (r.data.name == t)
return r
}
return null
}
,
e.prototype.getBounds = function(e, i, n) {
if (void 0 === n && (n = new Array(2)),
null == e)
throw new Error("offset cannot be null.");
if (null == i)
throw new Error("size cannot be null.");
for (var r = this.drawOrder, s = Number.POSITIVE_INFINITY, a = Number.POSITIVE_INFINITY, o = Number.NEGATIVE_INFINITY, l = Number.NEGATIVE_INFINITY, h = 0, c = r.length; h < c; h++) {
var u = r[h];
if (u.bone.active) {
var _ = 0
, f = null
, d = u.getAttachment();
if (d instanceof t.RegionAttachment)
_ = 8,
f = t.Utils.setArraySize(n, _, 0),
d.computeWorldVertices(u.bone, f, 0, 2);
else if (d instanceof t.MeshAttachment) {
var p = d;
_ = p.worldVerticesLength,
f = t.Utils.setArraySize(n, _, 0),
p.computeWorldVertices(u, 0, _, f, 0, 2)
}
if (null != f)
for (var m = 0, y = f.length; m < y; m += 2) {
var v = f[m]
, g = f[m + 1];
s = Math.min(s, v),
a = Math.min(a, g),
o = Math.max(o, v),
l = Math.max(l, g)
}
}
}
e.set(s, a),
i.set(o - s, l - a)
}
,
e.prototype.update = function(t) {
this.time += t
}
,
e
}
)();
t.Skeleton = e
}
)(r || (r = {})),
(function(t) {
var e = (function() {
function e(t) {
this.scale = 1,
this.linkedMeshes = new Array,
this.attachmentLoader = t
}
return e.prototype.readSkeletonData = function(n) {
var r = this.scale
, s = new t.SkeletonData;
s.name = "";
var a = new i(n);
s.hash = a.readString(),
s.version = a.readString(),
s.x = a.readFloat(),
s.y = a.readFloat(),
s.width = a.readFloat(),
s.height = a.readFloat();
var o = a.readBoolean();
o && (s.fps = a.readFloat(),
s.imagesPath = a.readString(),
s.audioPath = a.readString());
var l = 0;
l = a.readInt(!0);
for (var h = 0; h < l; h++)
a.strings.push(a.readString());
for (l = a.readInt(!0),
h = 0; h < l; h++) {
var c = a.readString()
, u = 0 == h ? null : s.bones[a.readInt(!0)];
(d = new t.BoneData(h,c,u)).rotation = a.readFloat(),
d.x = a.readFloat() * r,
d.y = a.readFloat() * r,
d.scaleX = a.readFloat(),
d.scaleY = a.readFloat(),
d.shearX = a.readFloat(),
d.shearY = a.readFloat(),
d.length = a.readFloat() * r,
d.transformMode = e.TransformModeValues[a.readInt(!0)],
d.skinRequired = a.readBoolean(),
o && t.Color.rgba8888ToColor(d.color, a.readInt32()),
s.bones.push(d)
}
for (l = a.readInt(!0),
h = 0; h < l; h++) {
var _ = a.readString()
, f = s.bones[a.readInt(!0)]
, d = new t.SlotData(h,_,f);
t.Color.rgba8888ToColor(d.color, a.readInt32());
var p = a.readInt32();
-1 != p && t.Color.rgb888ToColor(d.darkColor = new t.Color, p),
d.attachmentName = a.readStringRef(),
d.blendMode = e.BlendModeValues[a.readInt(!0)],
s.slots.push(d)
}
l = a.readInt(!0),
h = 0;
for (var m = void 0; h < l; h++) {
(d = new t.IkConstraintData(a.readString())).order = a.readInt(!0),
d.skinRequired = a.readBoolean(),
m = a.readInt(!0);
for (var y = 0; y < m; y++)
d.bones.push(s.bones[a.readInt(!0)]);
d.target = s.bones[a.readInt(!0)],
d.mix = a.readFloat(),
d.softness = a.readFloat() * r,
d.bendDirection = a.readByte(),
d.compress = a.readBoolean(),
d.stretch = a.readBoolean(),
d.uniform = a.readBoolean(),
s.ikConstraints.push(d)
}
for (l = a.readInt(!0),
h = 0,
m = void 0; h < l; h++) {
for ((d = new t.TransformConstraintData(a.readString())).order = a.readInt(!0),
d.skinRequired = a.readBoolean(),
m = a.readInt(!0),
y = 0; y < m; y++)
d.bones.push(s.bones[a.readInt(!0)]);
d.target = s.bones[a.readInt(!0)],
d.local = a.readBoolean(),
d.relative = a.readBoolean(),
d.offsetRotation = a.readFloat(),
d.offsetX = a.readFloat() * r,
d.offsetY = a.readFloat() * r,
d.offsetScaleX = a.readFloat(),
d.offsetScaleY = a.readFloat(),
d.offsetShearY = a.readFloat(),
d.rotateMix = a.readFloat(),
d.translateMix = a.readFloat(),
d.scaleMix = a.readFloat(),
d.shearMix = a.readFloat(),
s.transformConstraints.push(d)
}
for (l = a.readInt(!0),
h = 0,
m = void 0; h < l; h++) {
for ((d = new t.PathConstraintData(a.readString())).order = a.readInt(!0),
d.skinRequired = a.readBoolean(),
m = a.readInt(!0),
y = 0; y < m; y++)
d.bones.push(s.bones[a.readInt(!0)]);
d.target = s.slots[a.readInt(!0)],
d.positionMode = e.PositionModeValues[a.readInt(!0)],
d.spacingMode = e.SpacingModeValues[a.readInt(!0)],
d.rotateMode = e.RotateModeValues[a.readInt(!0)],
d.offsetRotation = a.readFloat(),
d.position = a.readFloat(),
d.positionMode == t.PositionMode.Fixed && (d.position *= r),
d.spacing = a.readFloat(),
d.spacingMode != t.SpacingMode.Length && d.spacingMode != t.SpacingMode.Fixed || (d.spacing *= r),
d.rotateMix = a.readFloat(),
d.translateMix = a.readFloat(),
s.pathConstraints.push(d)
}
var v = this.readSkin(a, s, !0, o);
for (null != v && (s.defaultSkin = v,
s.skins.push(v)),
h = s.skins.length,
t.Utils.setArraySize(s.skins, l = h + a.readInt(!0)); h < l; h++)
s.skins[h] = this.readSkin(a, s, !1, o);
for (l = this.linkedMeshes.length,
h = 0; h < l; h++) {
var g = this.linkedMeshes[h]
, A = null == g.skin ? s.defaultSkin : s.findSkin(g.skin);
if (null == A)
throw new Error("Skin not found: " + g.skin);
var x = A.getAttachment(g.slotIndex, g.parent);
if (null == x)
throw new Error("Parent mesh not found: " + g.parent);
g.mesh.deformAttachment = g.inheritDeform ? x : g.mesh,
g.mesh.setParentMesh(x),
g.mesh.updateUVs()
}
for (this.linkedMeshes.length = 0,
l = a.readInt(!0),
h = 0; h < l; h++)
(d = new t.EventData(a.readStringRef())).intValue = a.readInt(!1),
d.floatValue = a.readFloat(),
d.stringValue = a.readString(),
d.audioPath = a.readString(),
null != d.audioPath && (d.volume = a.readFloat(),
d.balance = a.readFloat()),
s.events.push(d);
for (l = a.readInt(!0),
h = 0; h < l; h++)
s.animations.push(this.readAnimation(a, a.readString(), s));
return s
}
,
e.prototype.readSkin = function(e, i, n, r) {
var s = null
, a = 0;
if (n) {
if (0 == (a = e.readInt(!0)))
return null;
s = new t.Skin("default")
} else {
(s = new t.Skin(e.readStringRef())).bones.length = e.readInt(!0);
for (var o = 0, l = s.bones.length; o < l; o++)
s.bones[o] = i.bones[e.readInt(!0)];
for (o = 0,
l = e.readInt(!0); o < l; o++)
s.constraints.push(i.ikConstraints[e.readInt(!0)]);
for (o = 0,
l = e.readInt(!0); o < l; o++)
s.constraints.push(i.transformConstraints[e.readInt(!0)]);
for (o = 0,
l = e.readInt(!0); o < l; o++)
s.constraints.push(i.pathConstraints[e.readInt(!0)]);
a = e.readInt(!0)
}
for (o = 0; o < a; o++)
for (var h = e.readInt(!0), c = 0, u = e.readInt(!0); c < u; c++) {
var _ = e.readStringRef()
, f = this.readAttachment(e, i, s, h, _, r);
null != f && s.setAttachment(h, _, f)
}
return s
}
,
e.prototype.readAttachment = function(i, r, s, a, o, l) {
var h = this.scale
, c = i.readStringRef();
null == c && (c = o);
var u = i.readByte();
switch (e.AttachmentTypeValues[u]) {
case t.AttachmentType.Region:
var _ = i.readStringRef()
, f = i.readFloat()
, d = i.readFloat()
, p = i.readFloat()
, m = i.readFloat()
, y = i.readFloat()
, v = i.readFloat()
, g = i.readFloat()
, A = i.readInt32();
null == _ && (_ = c);
var x = this.attachmentLoader.newRegionAttachment(s, c, _);
return null == x ? null : (x.path = _,
x.x = d * h,
x.y = p * h,
x.scaleX = m,
x.scaleY = y,
x.rotation = f,
x.width = v * h,
x.height = g * h,
t.Color.rgba8888ToColor(x.color, A),
x.updateOffset(),
x);
case t.AttachmentType.BoundingBox:
var b = i.readInt(!0)
, C = this.readVertices(i, b)
, T = (A = l ? i.readInt32() : 0,
this.attachmentLoader.newBoundingBoxAttachment(s, c));
return null == T ? null : (T.worldVerticesLength = b << 1,
T.vertices = C.vertices,
T.bones = C.bones,
l && t.Color.rgba8888ToColor(T.color, A),
T);
case t.AttachmentType.Mesh:
_ = i.readStringRef(),
A = i.readInt32(),
b = i.readInt(!0);
var S = this.readFloatArray(i, b << 1, 1)
, w = this.readShortArray(i)
, E = (C = this.readVertices(i, b),
i.readInt(!0))
, M = null;
return v = 0,
g = 0,
l && (M = this.readShortArray(i),
v = i.readFloat(),
g = i.readFloat()),
null == _ && (_ = c),
null == (D = this.attachmentLoader.newMeshAttachment(s, c, _)) ? null : (D.path = _,
t.Color.rgba8888ToColor(D.color, A),
D.bones = C.bones,
D.vertices = C.vertices,
D.worldVerticesLength = b << 1,
D.triangles = w,
D.regionUVs = S,
D.updateUVs(),
D.hullLength = E << 1,
l && (D.edges = M,
D.width = v * h,
D.height = g * h),
D);
case t.AttachmentType.LinkedMesh:
_ = i.readStringRef(),
A = i.readInt32();
var D, B = i.readStringRef(), I = i.readStringRef(), P = i.readBoolean();
return v = 0,
g = 0,
l && (v = i.readFloat(),
g = i.readFloat()),
null == _ && (_ = c),
null == (D = this.attachmentLoader.newMeshAttachment(s, c, _)) ? null : (D.path = _,
t.Color.rgba8888ToColor(D.color, A),
l && (D.width = v * h,
D.height = g * h),
this.linkedMeshes.push(new n(D,B,a,I,P)),
D);
case t.AttachmentType.Path:
for (var R = i.readBoolean(), O = i.readBoolean(), L = (b = i.readInt(!0),
C = this.readVertices(i, b),
t.Utils.newArray(b / 3, 0)), F = 0, V = L.length; F < V; F++)
L[F] = i.readFloat() * h;
return A = l ? i.readInt32() : 0,
null == (_ = this.attachmentLoader.newPathAttachment(s, c)) ? null : (_.closed = R,
_.constantSpeed = O,
_.worldVerticesLength = b << 1,
_.vertices = C.vertices,
_.bones = C.bones,
_.lengths = L,
l && t.Color.rgba8888ToColor(_.color, A),
_);
case t.AttachmentType.Point:
f = i.readFloat(),
d = i.readFloat(),
p = i.readFloat(),
A = l ? i.readInt32() : 0;
var N = this.attachmentLoader.newPointAttachment(s, c);
return null == N ? null : (N.x = d * h,
N.y = p * h,
N.rotation = f,
l && t.Color.rgba8888ToColor(N.color, A),
N);
case t.AttachmentType.Clipping:
var k = i.readInt(!0)
, G = (b = i.readInt(!0),
C = this.readVertices(i, b),
A = l ? i.readInt32() : 0,
this.attachmentLoader.newClippingAttachment(s, c));
return null == G ? null : (G.endSlot = r.slots[k],
G.worldVerticesLength = b << 1,
G.vertices = C.vertices,
G.bones = C.bones,
l && t.Color.rgba8888ToColor(G.color, A),
G)
}
return null
}
,
e.prototype.readVertices = function(e, i) {
var n = i << 1
, s = new r
, a = this.scale;
if (!e.readBoolean())
return s.vertices = this.readFloatArray(e, n, a),
s;
for (var o = new Array, l = new Array, h = 0; h < i; h++) {
var c = e.readInt(!0);
l.push(c);
for (var u = 0; u < c; u++)
l.push(e.readInt(!0)),
o.push(e.readFloat() * a),
o.push(e.readFloat() * a),
o.push(e.readFloat())
}
return s.vertices = t.Utils.toFloatArray(o),
s.bones = l,
s
}
,
e.prototype.readFloatArray = function(t, e, i) {
var n = new Array(e);
if (1 == i)
for (var r = 0; r < e; r++)
n[r] = t.readFloat();
else
for (r = 0; r < e; r++)
n[r] = t.readFloat() * i;
return n
}
,
e.prototype.readShortArray = function(t) {
for (var e = t.readInt(!0), i = new Array(e), n = 0; n < e; n++)
i[n] = t.readShort();
return i
}
,
e.prototype.readAnimation = function(i, n, r) {
for (var s = new Array, a = this.scale, o = 0, l = new t.Color, h = new t.Color, c = 0, u = i.readInt(!0); c < u; c++)
for (var _ = i.readInt(!0), f = 0, d = i.readInt(!0); f < d; f++) {
var p = i.readByte()
, m = i.readInt(!0);
switch (p) {
case e.SLOT_ATTACHMENT:
(A = new t.AttachmentTimeline(m)).slotIndex = _;
for (var y = 0; y < m; y++)
A.setFrame(y, i.readFloat(), i.readStringRef());
s.push(A),
o = Math.max(o, A.frames[m - 1]);
break;
case e.SLOT_COLOR:
for ((A = new t.ColorTimeline(m)).slotIndex = _,
y = 0; y < m; y++) {
var v = i.readFloat();
t.Color.rgba8888ToColor(l, i.readInt32()),
A.setFrame(y, v, l.r, l.g, l.b, l.a),
y < m - 1 && this.readCurve(i, y, A)
}
s.push(A),
o = Math.max(o, A.frames[(m - 1) * t.ColorTimeline.ENTRIES]);
break;
case e.SLOT_TWO_COLOR:
for ((A = new t.TwoColorTimeline(m)).slotIndex = _,
y = 0; y < m; y++)
v = i.readFloat(),
t.Color.rgba8888ToColor(l, i.readInt32()),
t.Color.rgb888ToColor(h, i.readInt32()),
A.setFrame(y, v, l.r, l.g, l.b, l.a, h.r, h.g, h.b),
y < m - 1 && this.readCurve(i, y, A);
s.push(A),
o = Math.max(o, A.frames[(m - 1) * t.TwoColorTimeline.ENTRIES])
}
}
for (c = 0,
u = i.readInt(!0); c < u; c++) {
var g = i.readInt(!0);
for (f = 0,
d = i.readInt(!0); f < d; f++)
switch (p = i.readByte(),
m = i.readInt(!0),
p) {
case e.BONE_ROTATE:
for ((A = new t.RotateTimeline(m)).boneIndex = g,
y = 0; y < m; y++)
A.setFrame(y, i.readFloat(), i.readFloat()),
y < m - 1 && this.readCurve(i, y, A);
s.push(A),
o = Math.max(o, A.frames[(m - 1) * t.RotateTimeline.ENTRIES]);
break;
case e.BONE_TRANSLATE:
case e.BONE_SCALE:
case e.BONE_SHEAR:
var A = void 0
, x = 1;
for (p == e.BONE_SCALE ? A = new t.ScaleTimeline(m) : p == e.BONE_SHEAR ? A = new t.ShearTimeline(m) : (A = new t.TranslateTimeline(m),
x = a),
A.boneIndex = g,
y = 0; y < m; y++)
A.setFrame(y, i.readFloat(), i.readFloat() * x, i.readFloat() * x),
y < m - 1 && this.readCurve(i, y, A);
s.push(A),
o = Math.max(o, A.frames[(m - 1) * t.TranslateTimeline.ENTRIES])
}
}
for (c = 0,
u = i.readInt(!0); c < u; c++) {
var b = i.readInt(!0);
for (m = i.readInt(!0),
(A = new t.IkConstraintTimeline(m)).ikConstraintIndex = b,
y = 0; y < m; y++)
A.setFrame(y, i.readFloat(), i.readFloat(), i.readFloat() * a, i.readByte(), i.readBoolean(), i.readBoolean()),
y < m - 1 && this.readCurve(i, y, A);
s.push(A),
o = Math.max(o, A.frames[(m - 1) * t.IkConstraintTimeline.ENTRIES])
}
for (c = 0,
u = i.readInt(!0); c < u; c++) {
for (b = i.readInt(!0),
m = i.readInt(!0),
(A = new t.TransformConstraintTimeline(m)).transformConstraintIndex = b,
y = 0; y < m; y++)
A.setFrame(y, i.readFloat(), i.readFloat(), i.readFloat(), i.readFloat(), i.readFloat()),
y < m - 1 && this.readCurve(i, y, A);
s.push(A),
o = Math.max(o, A.frames[(m - 1) * t.TransformConstraintTimeline.ENTRIES])
}
for (c = 0,
u = i.readInt(!0); c < u; c++) {
b = i.readInt(!0);
var C = r.pathConstraints[b];
for (f = 0,
d = i.readInt(!0); f < d; f++)
switch (p = i.readByte(),
m = i.readInt(!0),
p) {
case e.PATH_POSITION:
case e.PATH_SPACING:
for (A = void 0,
x = 1,
p == e.PATH_SPACING ? (A = new t.PathConstraintSpacingTimeline(m),
C.spacingMode != t.SpacingMode.Length && C.spacingMode != t.SpacingMode.Fixed || (x = a)) : (A = new t.PathConstraintPositionTimeline(m),
C.positionMode == t.PositionMode.Fixed && (x = a)),
A.pathConstraintIndex = b,
y = 0; y < m; y++)
A.setFrame(y, i.readFloat(), i.readFloat() * x),
y < m - 1 && this.readCurve(i, y, A);
s.push(A),
o = Math.max(o, A.frames[(m - 1) * t.PathConstraintPositionTimeline.ENTRIES]);
break;
case e.PATH_MIX:
for ((A = new t.PathConstraintMixTimeline(m)).pathConstraintIndex = b,
y = 0; y < m; y++)
A.setFrame(y, i.readFloat(), i.readFloat(), i.readFloat()),
y < m - 1 && this.readCurve(i, y, A);
s.push(A),
o = Math.max(o, A.frames[(m - 1) * t.PathConstraintMixTimeline.ENTRIES])
}
}
for (c = 0,
u = i.readInt(!0); c < u; c++) {
var T = r.skins[i.readInt(!0)];
for (f = 0,
d = i.readInt(!0); f < d; f++) {
_ = i.readInt(!0);
for (var S = 0, w = i.readInt(!0); S < w; S++) {
var E = T.getAttachment(_, i.readStringRef())
, M = null != E.bones
, D = E.vertices
, B = M ? D.length / 3 * 2 : D.length;
for (m = i.readInt(!0),
(A = new t.DeformTimeline(m)).slotIndex = _,
A.attachment = E,
y = 0; y < m; y++) {
v = i.readFloat();
var I = void 0
, P = i.readInt(!0);
if (0 == P)
I = M ? t.Utils.newFloatArray(B) : D;
else {
I = t.Utils.newFloatArray(B);
var R = i.readInt(!0);
if (P += R,
1 == a)
for (var O = R; O < P; O++)
I[O] = i.readFloat();
else
for (O = R; O < P; O++)
I[O] = i.readFloat() * a;
if (!M) {
O = 0;
for (var L = I.length; O < L; O++)
I[O] += D[O]
}
}
A.setFrame(y, v, I),
y < m - 1 && this.readCurve(i, y, A)
}
s.push(A),
o = Math.max(o, A.frames[m - 1])
}
}
}
var F = i.readInt(!0);
if (F > 0) {
A = new t.DrawOrderTimeline(F);
var V = r.slots.length;
for (c = 0; c < F; c++) {
v = i.readFloat();
var N = i.readInt(!0)
, k = t.Utils.newArray(V, 0);
for (f = V - 1; f >= 0; f--)
k[f] = -1;
var G = t.Utils.newArray(V - N, 0)
, U = 0
, z = 0;
for (f = 0; f < N; f++) {
for (_ = i.readInt(!0); U != _; )
G[z++] = U++;
k[U + i.readInt(!0)] = U++
}
for (; U < V; )
G[z++] = U++;
for (f = V - 1; f >= 0; f--)
-1 == k[f] && (k[f] = G[--z]);
A.setFrame(c, v, k)
}
s.push(A),
o = Math.max(o, A.frames[F - 1])
}
var H = i.readInt(!0);
if (H > 0) {
for (A = new t.EventTimeline(H),
c = 0; c < H; c++) {
v = i.readFloat();
var W = r.events[i.readInt(!0)]
, j = new t.Event(v,W);
j.intValue = i.readInt(!1),
j.floatValue = i.readFloat(),
j.stringValue = i.readBoolean() ? i.readString() : W.stringValue,
null != j.data.audioPath && (j.volume = i.readFloat(),
j.balance = i.readFloat()),
A.setFrame(c, j)
}
s.push(A),
o = Math.max(o, A.frames[H - 1])
}
return new t.Animation(n,s,o)
}
,
e.prototype.readCurve = function(t, i, n) {
switch (t.readByte()) {
case e.CURVE_STEPPED:
n.setStepped(i);
break;
case e.CURVE_BEZIER:
this.setCurve(n, i, t.readFloat(), t.readFloat(), t.readFloat(), t.readFloat())
}
}
,
e.prototype.setCurve = function(t, e, i, n, r, s) {
t.setCurve(e, i, n, r, s)
}
,
e.AttachmentTypeValues = [0, 1, 2, 3, 4, 5, 6],
e.TransformModeValues = [t.TransformMode.Normal, t.TransformMode.OnlyTranslation, t.TransformMode.NoRotationOrReflection, t.TransformMode.NoScale, t.TransformMode.NoScaleOrReflection],
e.PositionModeValues = [t.PositionMode.Fixed, t.PositionMode.Percent],
e.SpacingModeValues = [t.SpacingMode.Length, t.SpacingMode.Fixed, t.SpacingMode.Percent],
e.RotateModeValues = [t.RotateMode.Tangent, t.RotateMode.Chain, t.RotateMode.ChainScale],
e.BlendModeValues = [t.BlendMode.Normal, t.BlendMode.Additive, t.BlendMode.Multiply, t.BlendMode.Screen],
e.BONE_ROTATE = 0,
e.BONE_TRANSLATE = 1,
e.BONE_SCALE = 2,
e.BONE_SHEAR = 3,
e.SLOT_ATTACHMENT = 0,
e.SLOT_COLOR = 1,
e.SLOT_TWO_COLOR = 2,
e.PATH_POSITION = 0,
e.PATH_SPACING = 1,
e.PATH_MIX = 2,
e.CURVE_LINEAR = 0,
e.CURVE_STEPPED = 1,
e.CURVE_BEZIER = 2,
e
}
)();
t.SkeletonBinary = e;
var i = (function() {
function t(t, e, i, n) {
void 0 === e && (e = new Array),
void 0 === i && (i = 0),
void 0 === n && (n = new DataView(t.buffer)),
this.strings = e,
this.index = i,
this.buffer = n
}
return t.prototype.readByte = function() {
return this.buffer.getInt8(this.index++)
}
,
t.prototype.readShort = function() {
var t = this.buffer.getInt16(this.index);
return this.index += 2,
t
}
,
t.prototype.readInt32 = function() {
var t = this.buffer.getInt32(this.index);
return this.index += 4,
t
}
,
t.prototype.readInt = function(t) {
var e = this.readByte()
, i = 127 & e;
return 0 != (128 & e) && (i |= (127 & (e = this.readByte())) << 7,
0 != (128 & e) && (i |= (127 & (e = this.readByte())) << 14,
0 != (128 & e) && (i |= (127 & (e = this.readByte())) << 21,
0 != (128 & e) && (i |= (127 & (e = this.readByte())) << 28)))),
t ? i : i >>> 1 ^ -(1 & i)
}
,
t.prototype.readStringRef = function() {
var t = this.readInt(!0);
return 0 == t ? null : this.strings[t - 1]
}
,
t.prototype.readString = function() {
var t = this.readInt(!0);
switch (t) {
case 0:
return null;
case 1:
return ""
}
t--;
for (var e = "", i = 0; i < t; ) {
var n = this.readByte();
switch (n >> 4) {
case 12:
case 13:
e += String.fromCharCode((31 & n) << 6 | 63 & this.readByte()),
i += 2;
break;
case 14:
e += String.fromCharCode((15 & n) << 12 | (63 & this.readByte()) << 6 | 63 & this.readByte()),
i += 3;
break;
default:
e += String.fromCharCode(n),
i++
}
}
return e
}
,
t.prototype.readFloat = function() {
var t = this.buffer.getFloat32(this.index);
return this.index += 4,
t
}
,
t.prototype.readBoolean = function() {
return 0 != this.readByte()
}
,
t
}
)()
, n = function(t, e, i, n, r) {
this.mesh = t,
this.skin = e,
this.slotIndex = i,
this.parent = n,
this.inheritDeform = r
}
, r = function(t, e) {
void 0 === t && (t = null),
void 0 === e && (e = null),
this.bones = t,
this.vertices = e
}
}
)(r || (r = {})),
(function(t) {
var e = (function() {
function e() {
this.minX = 0,
this.minY = 0,
this.maxX = 0,
this.maxY = 0,
this.boundingBoxes = new Array,
this.polygons = new Array,
this.polygonPool = new t.Pool(function() {
return t.Utils.newFloatArray(16)
}
)
}
return e.prototype.update = function(e, i) {
if (null == e)
throw new Error("skeleton cannot be null.");
var n = this.boundingBoxes
, r = this.polygons
, s = this.polygonPool
, a = e.slots
, o = a.length;
n.length = 0,
s.freeAll(r),
r.length = 0;
for (var l = 0; l < o; l++) {
var h = a[l];
if (h.bone.active) {
var c = h.getAttachment();
if (c instanceof t.BoundingBoxAttachment) {
var u = c;
n.push(u);
var _ = s.obtain();
_.length != u.worldVerticesLength && (_ = t.Utils.newFloatArray(u.worldVerticesLength)),
r.push(_),
u.computeWorldVertices(h, 0, u.worldVerticesLength, _, 0, 2)
}
}
}
i ? this.aabbCompute() : (this.minX = Number.POSITIVE_INFINITY,
this.minY = Number.POSITIVE_INFINITY,
this.maxX = Number.NEGATIVE_INFINITY,
this.maxY = Number.NEGATIVE_INFINITY)
}
,
e.prototype.aabbCompute = function() {
for (var t = Number.POSITIVE_INFINITY, e = Number.POSITIVE_INFINITY, i = Number.NEGATIVE_INFINITY, n = Number.NEGATIVE_INFINITY, r = this.polygons, s = 0, a = r.length; s < a; s++)
for (var o = r[s], l = o, h = 0, c = o.length; h < c; h += 2) {
var u = l[h]
, _ = l[h + 1];
t = Math.min(t, u),
e = Math.min(e, _),
i = Math.max(i, u),
n = Math.max(n, _)
}
this.minX = t,
this.minY = e,
this.maxX = i,
this.maxY = n
}
,
e.prototype.aabbContainsPoint = function(t, e) {
return t >= this.minX && t <= this.maxX && e >= this.minY && e <= this.maxY
}
,
e.prototype.aabbIntersectsSegment = function(t, e, i, n) {
var r = this.minX
, s = this.minY
, a = this.maxX
, o = this.maxY;
if (t <= r && i <= r || e <= s && n <= s || t >= a && i >= a || e >= o && n >= o)
return !1;
var l = (n - e) / (i - t)
, h = l * (r - t) + e;
if (h > s && h < o)
return !0;
if ((h = l * (a - t) + e) > s && h < o)
return !0;
var c = (s - e) / l + t;
return c > r && c < a || (c = (o - e) / l + t) > r && c < a
}
,
e.prototype.aabbIntersectsSkeleton = function(t) {
return this.minX < t.maxX && this.maxX > t.minX && this.minY < t.maxY && this.maxY > t.minY
}
,
e.prototype.containsPoint = function(t, e) {
for (var i = this.polygons, n = 0, r = i.length; n < r; n++)
if (this.containsPointPolygon(i[n], t, e))
return this.boundingBoxes[n];
return null
}
,
e.prototype.containsPointPolygon = function(t, e, i) {
for (var n = t, r = t.length, s = r - 2, a = !1, o = 0; o < r; o += 2) {
var l = n[o + 1]
, h = n[s + 1];
if (l < i && h >= i || h < i && l >= i) {
var c = n[o];
c + (i - l) / (h - l) * (n[s] - c) < e && (a = !a)
}
s = o
}
return a
}
,
e.prototype.intersectsSegment = function(t, e, i, n) {
for (var r = this.polygons, s = 0, a = r.length; s < a; s++)
if (this.intersectsSegmentPolygon(r[s], t, e, i, n))
return this.boundingBoxes[s];
return null
}
,
e.prototype.intersectsSegmentPolygon = function(t, e, i, n, r) {
for (var s = t, a = t.length, o = e - n, l = i - r, h = e * r - i * n, c = s[a - 2], u = s[a - 1], _ = 0; _ < a; _ += 2) {
var f = s[_]
, d = s[_ + 1]
, p = c * d - u * f
, m = c - f
, y = u - d
, v = o * y - l * m
, g = (h * m - o * p) / v;
if ((g >= c && g <= f || g >= f && g <= c) && (g >= e && g <= n || g >= n && g <= e)) {
var A = (h * y - l * p) / v;
if ((A >= u && A <= d || A >= d && A <= u) && (A >= i && A <= r || A >= r && A <= i))
return !0
}
c = f,
u = d
}
return !1
}
,
e.prototype.getPolygon = function(t) {
if (null == t)
throw new Error("boundingBox cannot be null.");
var e = this.boundingBoxes.indexOf(t);
return -1 == e ? null : this.polygons[e]
}
,
e.prototype.getWidth = function() {
return this.maxX - this.minX
}
,
e.prototype.getHeight = function() {
return this.maxY - this.minY
}
,
e
}
)();
t.SkeletonBounds = e
}
)(r || (r = {})),
(function(t) {
var e = (function() {
function e() {
this.triangulator = new t.Triangulator,
this.clippingPolygon = new Array,
this.clipOutput = new Array,
this.clippedVertices = new Array,
this.clippedTriangles = new Array,
this.scratch = new Array
}
return e.prototype.clipStart = function(i, n) {
if (null != this.clipAttachment)
return 0;
this.clipAttachment = n;
var r = n.worldVerticesLength
, s = t.Utils.setArraySize(this.clippingPolygon, r);
n.computeWorldVertices(i, 0, r, s, 0, 2);
var a = this.clippingPolygon;
e.makeClockwise(a);
for (var o = this.clippingPolygons = this.triangulator.decompose(a, this.triangulator.triangulate(a)), l = 0, h = o.length; l < h; l++) {
var c = o[l];
e.makeClockwise(c),
c.push(c[0]),
c.push(c[1])
}
return o.length
}
,
e.prototype.clipEndWithSlot = function(t) {
null != this.clipAttachment && this.clipAttachment.endSlot == t.data && this.clipEnd()
}
,
e.prototype.clipEnd = function() {
null != this.clipAttachment && (this.clipAttachment = null,
this.clippingPolygons = null,
this.clippedVertices.length = 0,
this.clippedTriangles.length = 0,
this.clippingPolygon.length = 0)
}
,
e.prototype.isClipping = function() {
return null != this.clipAttachment
}
,
e.prototype.clipTriangles = function(e, i, n, r, s, a, o, l, h, c, u, _) {
var f = this.clipOutput
, d = this.clippedVertices
, p = this.clippedTriangles
, m = this.clippingPolygons
, y = this.clippingPolygons.length
, v = l ? 12 : 8
, g = 0;
c = c || 0,
u = u || 0,
_ = _ || 0,
d.length = 0,
p.length = 0;
t: for (var A = c, x = c + r; A < x; A += 3) {
var b = n[A] * h
, C = b + u
, T = b + _
, S = e[C]
, w = e[C + 1]
, E = s[T]
, M = s[T + 1];
T = (b = n[A + 1] * h) + _;
var D = e[C = b + u]
, B = e[C + 1]
, I = s[T]
, P = s[T + 1];
T = (b = n[A + 2] * h) + _;
for (var R = e[C = b + u], O = e[C + 1], L = s[T], F = s[T + 1], V = 0; V < y; V++) {
var N = d.length;
if (!this.clip(S, w, D, B, R, O, m[V], f)) {
(Y = t.Utils.setArraySize(d, N + 3 * v))[N] = S,
Y[N + 1] = w,
Y[N + 2] = a.r,
Y[N + 3] = a.g,
Y[N + 4] = a.b,
Y[N + 5] = a.a,
l ? (Y[N + 6] = E,
Y[N + 7] = M,
Y[N + 8] = o.r,
Y[N + 9] = o.g,
Y[N + 10] = o.b,
Y[N + 11] = o.a,
Y[N + 12] = D,
Y[N + 13] = B,
Y[N + 14] = a.r,
Y[N + 15] = a.g,
Y[N + 16] = a.b,
Y[N + 17] = a.a,
Y[N + 18] = I,
Y[N + 19] = P,
Y[N + 20] = o.r,
Y[N + 21] = o.g,
Y[N + 22] = o.b,
Y[N + 23] = o.a,
Y[N + 24] = R,
Y[N + 25] = O,
Y[N + 26] = a.r,
Y[N + 27] = a.g,
Y[N + 28] = a.b,
Y[N + 29] = a.a,
Y[N + 30] = L,
Y[N + 31] = F,
Y[N + 32] = o.r,
Y[N + 33] = o.g,
Y[N + 34] = o.b,
Y[N + 35] = o.a) : (Y[N + 6] = E,
Y[N + 7] = M,
Y[N + 8] = D,
Y[N + 9] = B,
Y[N + 10] = a.r,
Y[N + 11] = a.g,
Y[N + 12] = a.b,
Y[N + 13] = a.a,
Y[N + 14] = I,
Y[N + 15] = P,
Y[N + 16] = R,
Y[N + 17] = O,
Y[N + 18] = a.r,
Y[N + 19] = a.g,
Y[N + 20] = a.b,
Y[N + 21] = a.a,
Y[N + 22] = L,
Y[N + 23] = F),
N = p.length,
(it = t.Utils.setArraySize(p, N + 3))[N] = g,
it[N + 1] = g + 1,
it[N + 2] = g + 2,
g += 3;
continue t
}
var k = f.length;
if (0 != k) {
for (var G = B - O, U = R - D, z = S - R, H = O - w, W = 1 / (G * z + U * (w - O)), j = k >> 1, X = this.clipOutput, Y = t.Utils.setArraySize(d, N + j * v), q = 0; q < k; q += 2) {
var J = X[q]
, Z = X[q + 1];
Y[N] = J,
Y[N + 1] = Z,
Y[N + 2] = a.r,
Y[N + 3] = a.g,
Y[N + 4] = a.b,
Y[N + 5] = a.a;
var K = J - R
, Q = Z - O
, $ = (G * K + U * Q) * W
, tt = (H * K + z * Q) * W
, et = 1 - $ - tt;
Y[N + 6] = E * $ + I * tt + L * et,
Y[N + 7] = M * $ + P * tt + F * et,
l && (Y[N + 8] = o.r,
Y[N + 9] = o.g,
Y[N + 10] = o.b,
Y[N + 11] = o.a),
N += v
}
N = p.length;
var it = t.Utils.setArraySize(p, N + 3 * (j - 2));
for (j--,
q = 1; q < j; q++)
it[N] = g,
it[N + 1] = g + q,
it[N + 2] = g + q + 1,
N += 3;
g += j + 1
}
}
}
}
,
e.prototype.clip = function(t, e, i, n, r, s, a, o) {
var l = o
, h = !1
, c = null;
a.length % 4 >= 2 ? (c = o,
o = this.scratch) : c = this.scratch,
c.length = 0,
c.push(t),
c.push(e),
c.push(i),
c.push(n),
c.push(r),
c.push(s),
c.push(t),
c.push(e),
o.length = 0;
for (var u = a, _ = a.length - 4, f = 0; ; f += 2) {
for (var d = u[f], p = u[f + 1], m = u[f + 2], y = u[f + 3], v = d - m, g = p - y, A = c, x = c.length - 2, b = o.length, C = 0; C < x; C += 2) {
var T = A[C]
, S = A[C + 1]
, w = A[C + 2]
, E = A[C + 3]
, M = v * (E - y) - g * (w - m) > 0;
if (v * (S - y) - g * (T - m) > 0) {
if (M) {
o.push(w),
o.push(E);
continue
}
var D = (I = E - S) * (m - d) - (P = w - T) * (y - p);
if (Math.abs(D) > 1e-6) {
var B = (P * (p - S) - I * (d - T)) / D;
o.push(d + (m - d) * B),
o.push(p + (y - p) * B)
} else
o.push(d),
o.push(p)
} else if (M) {
var I, P;
D = (I = E - S) * (m - d) - (P = w - T) * (y - p),
Math.abs(D) > 1e-6 ? (B = (P * (p - S) - I * (d - T)) / D,
o.push(d + (m - d) * B),
o.push(p + (y - p) * B)) : (o.push(d),
o.push(p)),
o.push(w),
o.push(E)
}
h = !0
}
if (b == o.length)
return l.length = 0,
!0;
if (o.push(o[0]),
o.push(o[1]),
f == _)
break;
var R = o;
(o = c).length = 0,
c = R
}
if (l != o) {
l.length = 0,
f = 0;
for (var O = o.length - 2; f < O; f++)
l[f] = o[f]
} else
l.length = l.length - 2;
return h
}
,
e.makeClockwise = function(t) {
for (var e = t, i = t.length, n = e[i - 2] * e[1] - e[0] * e[i - 1], r = 0, s = 0, a = 0, o = 0, l = i - 3; o < l; o += 2)
r = e[o],
s = e[o + 1],
a = e[o + 2],
n += r * e[o + 3] - a * s;
if (!(n < 0)) {
o = 0;
var h = i - 2;
for (l = i >> 1; o < l; o += 2) {
var c = e[o]
, u = e[o + 1]
, _ = h - o;
e[o] = e[_],
e[o + 1] = e[_ + 1],
e[_] = c,
e[_ + 1] = u
}
}
}
,
e
}
)();
t.SkeletonClipping = e
}
)(r || (r = {})),
(function(t) {
var e = (function() {
function t() {
this.bones = new Array,
this.slots = new Array,
this.skins = new Array,
this.events = new Array,
this.animations = new Array,
this.ikConstraints = new Array,
this.transformConstraints = new Array,
this.pathConstraints = new Array,
this.fps = 0
}
return t.prototype.findBone = function(t) {
if (null == t)
throw new Error("boneName cannot be null.");
for (var e = this.bones, i = 0, n = e.length; i < n; i++) {
var r = e[i];
if (r.name == t)
return r
}
return null
}
,
t.prototype.findBoneIndex = function(t) {
if (null == t)
throw new Error("boneName cannot be null.");
for (var e = this.bones, i = 0, n = e.length; i < n; i++)
if (e[i].name == t)
return i;
return -1
}
,
t.prototype.findSlot = function(t) {
if (null == t)
throw new Error("slotName cannot be null.");
for (var e = this.slots, i = 0, n = e.length; i < n; i++) {
var r = e[i];
if (r.name == t)
return r
}
return null
}
,
t.prototype.findSlotIndex = function(t) {
if (null == t)
throw new Error("slotName cannot be null.");
for (var e = this.slots, i = 0, n = e.length; i < n; i++)
if (e[i].name == t)
return i;
return -1
}
,
t.prototype.findSkin = function(t) {
if (null == t)
throw new Error("skinName cannot be null.");
for (var e = this.skins, i = 0, n = e.length; i < n; i++) {
var r = e[i];
if (r.name == t)
return r
}
return null
}
,
t.prototype.findEvent = function(t) {
if (null == t)
throw new Error("eventDataName cannot be null.");
for (var e = this.events, i = 0, n = e.length; i < n; i++) {
var r = e[i];
if (r.name == t)
return r
}
return null
}
,
t.prototype.findAnimation = function(t) {
if (null == t)
throw new Error("animationName cannot be null.");
for (var e = this.animations, i = 0, n = e.length; i < n; i++) {
var r = e[i];
if (r.name == t)
return r
}
return null
}
,
t.prototype.findIkConstraint = function(t) {
if (null == t)
throw new Error("constraintName cannot be null.");
for (var e = this.ikConstraints, i = 0, n = e.length; i < n; i++) {
var r = e[i];
if (r.name == t)
return r
}
return null
}
,
t.prototype.findTransformConstraint = function(t) {
if (null == t)
throw new Error("constraintName cannot be null.");
for (var e = this.transformConstraints, i = 0, n = e.length; i < n; i++) {
var r = e[i];
if (r.name == t)
return r
}
return null
}
,
t.prototype.findPathConstraint = function(t) {
if (null == t)
throw new Error("constraintName cannot be null.");
for (var e = this.pathConstraints, i = 0, n = e.length; i < n; i++) {
var r = e[i];
if (r.name == t)
return r
}
return null
}
,
t.prototype.findPathConstraintIndex = function(t) {
if (null == t)
throw new Error("pathConstraintName cannot be null.");
for (var e = this.pathConstraints, i = 0, n = e.length; i < n; i++)
if (e[i].name == t)
return i;
return -1
}
,
t
}
)();
t.SkeletonData = e
}
)(r || (r = {})),
(function(t) {
var e = (function() {
function e(t) {
this.scale = 1,
this.linkedMeshes = new Array,
this.attachmentLoader = t
}
return e.prototype.readSkeletonData = function(i) {
var n = this.scale
, r = new t.SkeletonData
, s = "string" == typeof i ? JSON.parse(i) : i
, a = s.skeleton;
if (null != a && (r.hash = a.hash,
r.version = a.spine,
r.x = a.x,
r.y = a.y,
r.width = a.width,
r.height = a.height,
r.fps = a.fps,
r.imagesPath = a.images),
s.bones)
for (var o = 0; o < s.bones.length; o++) {
var l = s.bones[o]
, h = null
, c = this.getValue(l, "parent", null);
if (null != c && null == (h = r.findBone(c)))
throw new Error("Parent bone not found: " + c);
(d = new t.BoneData(r.bones.length,l.name,h)).length = this.getValue(l, "length", 0) * n,
d.x = this.getValue(l, "x", 0) * n,
d.y = this.getValue(l, "y", 0) * n,
d.rotation = this.getValue(l, "rotation", 0),
d.scaleX = this.getValue(l, "scaleX", 1),
d.scaleY = this.getValue(l, "scaleY", 1),
d.shearX = this.getValue(l, "shearX", 0),
d.shearY = this.getValue(l, "shearY", 0),
d.transformMode = e.transformModeFromString(this.getValue(l, "transform", "normal")),
d.skinRequired = this.getValue(l, "skin", !1),
r.bones.push(d)
}
if (s.slots)
for (o = 0; o < s.slots.length; o++) {
var u = (D = s.slots[o]).name
, _ = D.bone
, f = r.findBone(_);
if (null == f)
throw new Error("Slot bone not found: " + _);
var d = new t.SlotData(r.slots.length,u,f)
, p = this.getValue(D, "color", null);
null != p && d.color.setFromString(p);
var m = this.getValue(D, "dark", null);
null != m && (d.darkColor = new t.Color(1,1,1,1),
d.darkColor.setFromString(m)),
d.attachmentName = this.getValue(D, "attachment", null),
d.blendMode = e.blendModeFromString(this.getValue(D, "blend", "normal")),
r.slots.push(d)
}
if (s.ik)
for (o = 0; o < s.ik.length; o++) {
var y = s.ik[o];
(d = new t.IkConstraintData(y.name)).order = this.getValue(y, "order", 0),
d.skinRequired = this.getValue(y, "skin", !1);
for (var v = 0; v < y.bones.length; v++) {
if (_ = y.bones[v],
null == (w = r.findBone(_)))
throw new Error("IK bone not found: " + _);
d.bones.push(w)
}
var g = y.target;
if (d.target = r.findBone(g),
null == d.target)
throw new Error("IK target bone not found: " + g);
d.mix = this.getValue(y, "mix", 1),
d.softness = this.getValue(y, "softness", 0) * n,
d.bendDirection = this.getValue(y, "bendPositive", !0) ? 1 : -1,
d.compress = this.getValue(y, "compress", !1),
d.stretch = this.getValue(y, "stretch", !1),
d.uniform = this.getValue(y, "uniform", !1),
r.ikConstraints.push(d)
}
if (s.transform)
for (o = 0; o < s.transform.length; o++) {
for (y = s.transform[o],
(d = new t.TransformConstraintData(y.name)).order = this.getValue(y, "order", 0),
d.skinRequired = this.getValue(y, "skin", !1),
v = 0; v < y.bones.length; v++) {
if (_ = y.bones[v],
null == (w = r.findBone(_)))
throw new Error("Transform constraint bone not found: " + _);
d.bones.push(w)
}
if (g = y.target,
d.target = r.findBone(g),
null == d.target)
throw new Error("Transform constraint target bone not found: " + g);
d.local = this.getValue(y, "local", !1),
d.relative = this.getValue(y, "relative", !1),
d.offsetRotation = this.getValue(y, "rotation", 0),
d.offsetX = this.getValue(y, "x", 0) * n,
d.offsetY = this.getValue(y, "y", 0) * n,
d.offsetScaleX = this.getValue(y, "scaleX", 0),
d.offsetScaleY = this.getValue(y, "scaleY", 0),
d.offsetShearY = this.getValue(y, "shearY", 0),
d.rotateMix = this.getValue(y, "rotateMix", 1),
d.translateMix = this.getValue(y, "translateMix", 1),
d.scaleMix = this.getValue(y, "scaleMix", 1),
d.shearMix = this.getValue(y, "shearMix", 1),
r.transformConstraints.push(d)
}
if (s.path)
for (o = 0; o < s.path.length; o++) {
for (y = s.path[o],
(d = new t.PathConstraintData(y.name)).order = this.getValue(y, "order", 0),
d.skinRequired = this.getValue(y, "skin", !1),
v = 0; v < y.bones.length; v++) {
if (_ = y.bones[v],
null == (w = r.findBone(_)))
throw new Error("Transform constraint bone not found: " + _);
d.bones.push(w)
}
if (g = y.target,
d.target = r.findSlot(g),
null == d.target)
throw new Error("Path target slot not found: " + g);
d.positionMode = e.positionModeFromString(this.getValue(y, "positionMode", "percent")),
d.spacingMode = e.spacingModeFromString(this.getValue(y, "spacingMode", "length")),
d.rotateMode = e.rotateModeFromString(this.getValue(y, "rotateMode", "tangent")),
d.offsetRotation = this.getValue(y, "rotation", 0),
d.position = this.getValue(y, "position", 0),
d.positionMode == t.PositionMode.Fixed && (d.position *= n),
d.spacing = this.getValue(y, "spacing", 0),
d.spacingMode != t.SpacingMode.Length && d.spacingMode != t.SpacingMode.Fixed || (d.spacing *= n),
d.rotateMix = this.getValue(y, "rotateMix", 1),
d.translateMix = this.getValue(y, "translateMix", 1),
r.pathConstraints.push(d)
}
if (s.skins) {
var A = s.skins;
if (!(A instanceof Array)) {
var x = [];
for (var b in A)
x.push({
name: b,
attachments: A[b]
});
A = x
}
for (o = 0; o < A.length; o++) {
var C = A[o]
, T = new t.Skin(C.name);
if (C.bones)
for (var S = 0; S < C.bones.length; S++) {
var w;
if (null == (w = r.findBone(C.bones[S])))
throw new Error("Skin bone not found: " + C.bones[o]);
T.bones.push(w)
}
if (C.ik)
for (S = 0; S < C.ik.length; S++) {
if (null == (E = r.findIkConstraint(C.ik[S])))
throw new Error("Skin IK constraint not found: " + C.ik[o]);
T.constraints.push(E)
}
if (C.transform)
for (S = 0; S < C.transform.length; S++) {
if (null == (E = r.findTransformConstraint(C.transform[S])))
throw new Error("Skin transform constraint not found: " + C.transform[o]);
T.constraints.push(E)
}
if (C.path)
for (S = 0; S < C.path.length; S++) {
var E;
if (null == (E = r.findPathConstraint(C.path[S])))
throw new Error("Skin path constraint not found: " + C.path[o]);
T.constraints.push(E)
}
for (var u in C.attachments) {
var M = r.findSlot(u);
if (null == M)
throw new Error("Slot not found: " + u);
var D = C.attachments[u];
for (var B in D) {
var I = this.readAttachment(D[B], T, M.index, B, r);
null != I && T.setAttachment(M.index, B, I)
}
}
r.skins.push(T),
"default" == T.name && (r.defaultSkin = T)
}
}
o = 0;
for (var P = this.linkedMeshes.length; o < P; o++) {
var R = this.linkedMeshes[o];
if (null == (T = null == R.skin ? r.defaultSkin : r.findSkin(R.skin)))
throw new Error("Skin not found: " + R.skin);
var O = T.getAttachment(R.slotIndex, R.parent);
if (null == O)
throw new Error("Parent mesh not found: " + R.parent);
R.mesh.deformAttachment = R.inheritDeform ? O : R.mesh,
R.mesh.setParentMesh(O),
R.mesh.updateUVs()
}
if (this.linkedMeshes.length = 0,
s.events)
for (var L in s.events) {
var F = s.events[L];
(d = new t.EventData(L)).intValue = this.getValue(F, "int", 0),
d.floatValue = this.getValue(F, "float", 0),
d.stringValue = this.getValue(F, "string", ""),
d.audioPath = this.getValue(F, "audio", null),
null != d.audioPath && (d.volume = this.getValue(F, "volume", 1),
d.balance = this.getValue(F, "balance", 0)),
r.events.push(d)
}
if (s.animations)
for (var V in s.animations) {
var N = s.animations[V];
this.readAnimation(N, V, r)
}
return r
}
,
e.prototype.readAttachment = function(e, n, r, s, a) {
var o = this.scale;
switch (s = this.getValue(e, "name", s),
this.getValue(e, "type", "region")) {
case "region":
var l = this.getValue(e, "path", s)
, h = this.attachmentLoader.newRegionAttachment(n, s, l);
return null == h ? null : (h.path = l,
h.x = this.getValue(e, "x", 0) * o,
h.y = this.getValue(e, "y", 0) * o,
h.scaleX = this.getValue(e, "scaleX", 1),
h.scaleY = this.getValue(e, "scaleY", 1),
h.rotation = this.getValue(e, "rotation", 0),
h.width = e.width * o,
h.height = e.height * o,
null != (g = this.getValue(e, "color", null)) && h.color.setFromString(g),
h.updateOffset(),
h);
case "boundingbox":
var c = this.attachmentLoader.newBoundingBoxAttachment(n, s);
return null == c ? null : (this.readVertices(e, c, e.vertexCount << 1),
null != (g = this.getValue(e, "color", null)) && c.color.setFromString(g),
c);
case "mesh":
case "linkedmesh":
l = this.getValue(e, "path", s);
var u = this.attachmentLoader.newMeshAttachment(n, s, l);
if (null == u)
return null;
u.path = l,
null != (g = this.getValue(e, "color", null)) && u.color.setFromString(g),
u.width = this.getValue(e, "width", 0) * o,
u.height = this.getValue(e, "height", 0) * o;
var _ = this.getValue(e, "parent", null);
if (null != _)
return this.linkedMeshes.push(new i(u,this.getValue(e, "skin", null),r,_,this.getValue(e, "deform", !0))),
u;
var f = e.uvs;
return this.readVertices(e, u, f.length),
u.triangles = e.triangles,
u.regionUVs = f,
u.updateUVs(),
u.edges = this.getValue(e, "edges", null),
u.hullLength = 2 * this.getValue(e, "hull", 0),
u;
case "path":
if (null == (l = this.attachmentLoader.newPathAttachment(n, s)))
return null;
l.closed = this.getValue(e, "closed", !1),
l.constantSpeed = this.getValue(e, "constantSpeed", !0);
var d = e.vertexCount;
this.readVertices(e, l, d << 1);
for (var p = t.Utils.newArray(d / 3, 0), m = 0; m < e.lengths.length; m++)
p[m] = e.lengths[m] * o;
return l.lengths = p,
null != (g = this.getValue(e, "color", null)) && l.color.setFromString(g),
l;
case "point":
var y = this.attachmentLoader.newPointAttachment(n, s);
return null == y ? null : (y.x = this.getValue(e, "x", 0) * o,
y.y = this.getValue(e, "y", 0) * o,
y.rotation = this.getValue(e, "rotation", 0),
null != (g = this.getValue(e, "color", null)) && y.color.setFromString(g),
y);
case "clipping":
var v = this.attachmentLoader.newClippingAttachment(n, s);
if (null == v)
return null;
var g, A = this.getValue(e, "end", null);
if (null != A) {
var x = a.findSlot(A);
if (null == x)
throw new Error("Clipping end slot not found: " + A);
v.endSlot = x
}
return d = e.vertexCount,
this.readVertices(e, v, d << 1),
null != (g = this.getValue(e, "color", null)) && v.color.setFromString(g),
v
}
return null
}
,
e.prototype.readVertices = function(e, i, n) {
var r = this.scale;
i.worldVerticesLength = n;
var s = e.vertices;
if (n != s.length) {
var a = new Array
, o = new Array;
for (u = 0,
_ = s.length; u < _; ) {
var l = s[u++];
o.push(l);
for (var h = u + 4 * l; u < h; u += 4)
o.push(s[u]),
a.push(s[u + 1] * r),
a.push(s[u + 2] * r),
a.push(s[u + 3])
}
i.bones = o,
i.vertices = t.Utils.toFloatArray(a)
} else {
var c = t.Utils.toFloatArray(s);
if (1 != r)
for (var u = 0, _ = s.length; u < _; u++)
c[u] *= r;
i.vertices = c
}
}
,
e.prototype.readAnimation = function(e, i, n) {
var r = this.scale
, s = new Array
, a = 0;
if (e.slots)
for (var o in e.slots) {
var l = e.slots[o];
if (-1 == (K = n.findSlotIndex(o)))
throw new Error("Slot not found: " + o);
for (var h in l) {
var c = l[h];
if ("attachment" == h) {
(A = new t.AttachmentTimeline(c.length)).slotIndex = K;
for (var u = 0, _ = 0; _ < c.length; _++) {
var f = c[_];
A.setFrame(u++, this.getValue(f, "time", 0), f.name)
}
s.push(A),
a = Math.max(a, A.frames[A.getFrameCount() - 1])
} else if ("color" == h) {
for ((A = new t.ColorTimeline(c.length)).slotIndex = K,
u = 0,
_ = 0; _ < c.length; _++) {
f = c[_];
var d = new t.Color;
d.setFromString(f.color),
A.setFrame(u, this.getValue(f, "time", 0), d.r, d.g, d.b, d.a),
this.readCurve(f, A, u),
u++
}
s.push(A),
a = Math.max(a, A.frames[(A.getFrameCount() - 1) * t.ColorTimeline.ENTRIES])
} else {
if ("twoColor" != h)
throw new Error("Invalid timeline type for a slot: " + h + " (" + o + ")");
for ((A = new t.TwoColorTimeline(c.length)).slotIndex = K,
u = 0,
_ = 0; _ < c.length; _++) {
f = c[_];
var p = new t.Color
, m = new t.Color;
p.setFromString(f.light),
m.setFromString(f.dark),
A.setFrame(u, this.getValue(f, "time", 0), p.r, p.g, p.b, p.a, m.r, m.g, m.b),
this.readCurve(f, A, u),
u++
}
s.push(A),
a = Math.max(a, A.frames[(A.getFrameCount() - 1) * t.TwoColorTimeline.ENTRIES])
}
}
}
if (e.bones)
for (var y in e.bones) {
var v = e.bones[y]
, g = n.findBoneIndex(y);
if (-1 == g)
throw new Error("Bone not found: " + y);
for (var h in v)
if (c = v[h],
"rotate" === h) {
for ((A = new t.RotateTimeline(c.length)).boneIndex = g,
u = 0,
_ = 0; _ < c.length; _++)
f = c[_],
A.setFrame(u, this.getValue(f, "time", 0), this.getValue(f, "angle", 0)),
this.readCurve(f, A, u),
u++;
s.push(A),
a = Math.max(a, A.frames[(A.getFrameCount() - 1) * t.RotateTimeline.ENTRIES])
} else {
if ("translate" !== h && "scale" !== h && "shear" !== h)
throw new Error("Invalid timeline type for a bone: " + h + " (" + y + ")");
var A = null
, x = 1
, b = 0;
for ("scale" === h ? (A = new t.ScaleTimeline(c.length),
b = 1) : "shear" === h ? A = new t.ShearTimeline(c.length) : (A = new t.TranslateTimeline(c.length),
x = r),
A.boneIndex = g,
u = 0,
_ = 0; _ < c.length; _++) {
f = c[_];
var C = this.getValue(f, "x", b)
, T = this.getValue(f, "y", b);
A.setFrame(u, this.getValue(f, "time", 0), C * x, T * x),
this.readCurve(f, A, u),
u++
}
s.push(A),
a = Math.max(a, A.frames[(A.getFrameCount() - 1) * t.TranslateTimeline.ENTRIES])
}
}
if (e.ik)
for (var S in e.ik) {
var w = e.ik[S]
, E = n.findIkConstraint(S);
for ((A = new t.IkConstraintTimeline(w.length)).ikConstraintIndex = n.ikConstraints.indexOf(E),
u = 0,
_ = 0; _ < w.length; _++)
f = w[_],
A.setFrame(u, this.getValue(f, "time", 0), this.getValue(f, "mix", 1), this.getValue(f, "softness", 0) * r, this.getValue(f, "bendPositive", !0) ? 1 : -1, this.getValue(f, "compress", !1), this.getValue(f, "stretch", !1)),
this.readCurve(f, A, u),
u++;
s.push(A),
a = Math.max(a, A.frames[(A.getFrameCount() - 1) * t.IkConstraintTimeline.ENTRIES])
}
if (e.transform)
for (var S in e.transform) {
for (w = e.transform[S],
E = n.findTransformConstraint(S),
(A = new t.TransformConstraintTimeline(w.length)).transformConstraintIndex = n.transformConstraints.indexOf(E),
u = 0,
_ = 0; _ < w.length; _++)
f = w[_],
A.setFrame(u, this.getValue(f, "time", 0), this.getValue(f, "rotateMix", 1), this.getValue(f, "translateMix", 1), this.getValue(f, "scaleMix", 1), this.getValue(f, "shearMix", 1)),
this.readCurve(f, A, u),
u++;
s.push(A),
a = Math.max(a, A.frames[(A.getFrameCount() - 1) * t.TransformConstraintTimeline.ENTRIES])
}
var M = e.path || e.paths;
if (M)
for (var S in M) {
w = M[S];
var D = n.findPathConstraintIndex(S);
if (-1 == D)
throw new Error("Path constraint not found: " + S);
var B = n.pathConstraints[D];
for (var h in w)
if (c = w[h],
"position" === h || "spacing" === h) {
for (A = null,
x = 1,
"spacing" === h ? (A = new t.PathConstraintSpacingTimeline(c.length),
B.spacingMode != t.SpacingMode.Length && B.spacingMode != t.SpacingMode.Fixed || (x = r)) : (A = new t.PathConstraintPositionTimeline(c.length),
B.positionMode == t.PositionMode.Fixed && (x = r)),
A.pathConstraintIndex = D,
u = 0,
_ = 0; _ < c.length; _++)
f = c[_],
A.setFrame(u, this.getValue(f, "time", 0), this.getValue(f, h, 0) * x),
this.readCurve(f, A, u),
u++;
s.push(A),
a = Math.max(a, A.frames[(A.getFrameCount() - 1) * t.PathConstraintPositionTimeline.ENTRIES])
} else if ("mix" === h) {
for ((A = new t.PathConstraintMixTimeline(c.length)).pathConstraintIndex = D,
u = 0,
_ = 0; _ < c.length; _++)
f = c[_],
A.setFrame(u, this.getValue(f, "time", 0), this.getValue(f, "rotateMix", 1), this.getValue(f, "translateMix", 1)),
this.readCurve(f, A, u),
u++;
s.push(A),
a = Math.max(a, A.frames[(A.getFrameCount() - 1) * t.PathConstraintMixTimeline.ENTRIES])
}
}
if (e.deform)
for (var I in e.deform) {
var P = e.deform[I]
, R = n.findSkin(I);
if (null == R)
throw new Error("Skin not found: " + I);
for (var o in P) {
if (l = P[o],
-1 == (K = n.findSlotIndex(o)))
throw new Error("Slot not found: " + l.name);
for (var h in l) {
c = l[h];
var O = R.getAttachment(K, h);
if (null != O) {
var L = null != O.bones
, F = O.vertices
, V = L ? F.length / 3 * 2 : F.length;
(A = new t.DeformTimeline(c.length)).slotIndex = K,
A.attachment = O,
u = 0;
for (var N = 0; N < c.length; N++) {
f = c[N];
var k = void 0
, G = this.getValue(f, "vertices", null);
if (null == G)
k = L ? t.Utils.newFloatArray(V) : F;
else {
k = t.Utils.newFloatArray(V);
var U = this.getValue(f, "offset", 0);
if (t.Utils.arrayCopy(G, 0, k, U, G.length),
1 != r)
for (var z = (_ = U) + G.length; _ < z; _++)
k[_] *= r;
if (!L)
for (_ = 0; _ < V; _++)
k[_] += F[_]
}
A.setFrame(u, this.getValue(f, "time", 0), k),
this.readCurve(f, A, u),
u++
}
s.push(A),
a = Math.max(a, A.frames[A.getFrameCount() - 1])
}
}
}
}
var H = e.drawOrder;
if (null == H && (H = e.draworder),
null != H) {
A = new t.DrawOrderTimeline(H.length);
var W = n.slots.length;
for (u = 0,
N = 0; N < H.length; N++) {
var j = H[N]
, X = null
, Y = this.getValue(j, "offsets", null);
if (null != Y) {
X = t.Utils.newArray(W, -1);
var q = t.Utils.newArray(W - Y.length, 0)
, J = 0
, Z = 0;
for (_ = 0; _ < Y.length; _++) {
var K, Q = Y[_];
if (-1 == (K = n.findSlotIndex(Q.slot)))
throw new Error("Slot not found: " + Q.slot);
for (; J != K; )
q[Z++] = J++;
X[J + Q.offset] = J++
}
for (; J < W; )
q[Z++] = J++;
for (_ = W - 1; _ >= 0; _--)
-1 == X[_] && (X[_] = q[--Z])
}
A.setFrame(u++, this.getValue(j, "time", 0), X)
}
s.push(A),
a = Math.max(a, A.frames[A.getFrameCount() - 1])
}
if (e.events) {
for (A = new t.EventTimeline(e.events.length),
u = 0,
_ = 0; _ < e.events.length; _++) {
var $ = e.events[_]
, tt = n.findEvent($.name);
if (null == tt)
throw new Error("Event not found: " + $.name);
var et = new t.Event(t.Utils.toSinglePrecision(this.getValue($, "time", 0)),tt);
et.intValue = this.getValue($, "int", tt.intValue),
et.floatValue = this.getValue($, "float", tt.floatValue),
et.stringValue = this.getValue($, "string", tt.stringValue),
null != et.data.audioPath && (et.volume = this.getValue($, "volume", 1),
et.balance = this.getValue($, "balance", 0)),
A.setFrame(u++, et)
}
s.push(A),
a = Math.max(a, A.frames[A.getFrameCount() - 1])
}
if (isNaN(a))
throw new Error("Error while parsing animation, duration is NaN");
n.animations.push(new t.Animation(i,s,a))
}
,
e.prototype.readCurve = function(t, e, i) {
var n = t.curve;
n && ("stepped" == n ? e.setStepped(i) : "[object Array]" === Object.prototype.toString.call(n) ? e.setCurve(i, n[0], n[1], n[2], n[3]) : e.setCurve(i, n, this.getValue(t, "c2", 0), this.getValue(t, "c3", 1), this.getValue(t, "c4", 1)))
}
,
e.prototype.getValue = function(t, e, i) {
return void 0 !== t[e] ? t[e] : i
}
,
e.blendModeFromString = function(e) {
if ("normal" == (e = e.toLowerCase()))
return t.BlendMode.Normal;
if ("additive" == e)
return t.BlendMode.Additive;
if ("multiply" == e)
return t.BlendMode.Multiply;
if ("screen" == e)
return t.BlendMode.Screen;
throw new Error("Unknown blend mode: " + e)
}
,
e.positionModeFromString = function(e) {
if ("fixed" == (e = e.toLowerCase()))
return t.PositionMode.Fixed;
if ("percent" == e)
return t.PositionMode.Percent;
throw new Error("Unknown position mode: " + e)
}
,
e.spacingModeFromString = function(e) {
if ("length" == (e = e.toLowerCase()))
return t.SpacingMode.Length;
if ("fixed" == e)
return t.SpacingMode.Fixed;
if ("percent" == e)
return t.SpacingMode.Percent;
throw new Error("Unknown position mode: " + e)
}
,
e.rotateModeFromString = function(e) {
if ("tangent" == (e = e.toLowerCase()))
return t.RotateMode.Tangent;
if ("chain" == e)
return t.RotateMode.Chain;
if ("chainscale" == e)
return t.RotateMode.ChainScale;
throw new Error("Unknown rotate mode: " + e)
}
,
e.transformModeFromString = function(e) {
if ("normal" == (e = e.toLowerCase()))
return t.TransformMode.Normal;
if ("onlytranslation" == e)
return t.TransformMode.OnlyTranslation;
if ("norotationorreflection" == e)
return t.TransformMode.NoRotationOrReflection;
if ("noscale" == e)
return t.TransformMode.NoScale;
if ("noscaleorreflection" == e)
return t.TransformMode.NoScaleOrReflection;
throw new Error("Unknown transform mode: " + e)
}
,
e
}
)();
t.SkeletonJson = e;
var i = function(t, e, i, n, r) {
this.mesh = t,
this.skin = e,
this.slotIndex = i,
this.parent = n,
this.inheritDeform = r
}
}
)(r || (r = {})),
(function(t) {
var e = function(t, e, i) {
this.slotIndex = t,
this.name = e,
this.attachment = i
};
t.SkinEntry = e;
var i = (function() {
function i(t) {
if (this.attachments = new Array,
this.bones = Array(),
this.constraints = new Array,
null == t)
throw new Error("name cannot be null.");
this.name = t
}
return i.prototype.setAttachment = function(t, e, i) {
if (null == i)
throw new Error("attachment cannot be null.");
var n = this.attachments;
t >= n.length && (n.length = t + 1),
n[t] || (n[t] = {}),
n[t][e] = i
}
,
i.prototype.addSkin = function(t) {
for (var e = 0; e < t.bones.length; e++) {
for (var i = t.bones[e], n = !1, r = 0; r < this.bones.length; r++)
if (this.bones[r] == i) {
n = !0;
break
}
n || this.bones.push(i)
}
for (e = 0; e < t.constraints.length; e++) {
var s = t.constraints[e];
for (n = !1,
r = 0; r < this.constraints.length; r++)
if (this.constraints[r] == s) {
n = !0;
break
}
n || this.constraints.push(s)
}
var a = t.getAttachments();
for (e = 0; e < a.length; e++) {
var o = a[e];
this.setAttachment(o.slotIndex, o.name, o.attachment)
}
}
,
i.prototype.copySkin = function(e) {
for (var i = 0; i < e.bones.length; i++) {
for (var n = e.bones[i], r = !1, s = 0; s < this.bones.length; s++)
if (this.bones[s] == n) {
r = !0;
break
}
r || this.bones.push(n)
}
for (i = 0; i < e.constraints.length; i++) {
var a = e.constraints[i];
for (r = !1,
s = 0; s < this.constraints.length; s++)
if (this.constraints[s] == a) {
r = !0;
break
}
r || this.constraints.push(a)
}
var o = e.getAttachments();
for (i = 0; i < o.length; i++) {
var l = o[i];
null != l.attachment && (l.attachment instanceof t.MeshAttachment ? (l.attachment = l.attachment.newLinkedMesh(),
this.setAttachment(l.slotIndex, l.name, l.attachment)) : (l.attachment = l.attachment.copy(),
this.setAttachment(l.slotIndex, l.name, l.attachment)))
}
}
,
i.prototype.getAttachment = function(t, e) {
var i = this.attachments[t];
return i ? i[e] : null
}
,
i.prototype.removeAttachment = function(t, e) {
var i = this.attachments[t];
i && (i[e] = null)
}
,
i.prototype.getAttachments = function() {
for (var t = new Array, i = 0; i < this.attachments.length; i++) {
var n = this.attachments[i];
if (n)
for (var r in n) {
var s = n[r];
s && t.push(new e(i,r,s))
}
}
return t
}
,
i.prototype.getAttachmentsForSlot = function(t, i) {
var n = this.attachments[t];
if (n)
for (var r in n) {
var s = n[r];
s && i.push(new e(t,r,s))
}
}
,
i.prototype.clear = function() {
this.attachments.length = 0,
this.bones.length = 0,
this.constraints.length = 0
}
,
i.prototype.attachAll = function(t, e) {
for (var i = 0, n = 0; n < t.slots.length; n++) {
var r = t.slots[n]
, s = r.getAttachment();
if (s && i < e.attachments.length) {
var a = e.attachments[i];
for (var o in a)
if (s == a[o]) {
var l = this.getAttachment(i, o);
null != l && r.setAttachment(l);
break
}
}
i++
}
}
,
i
}
)();
t.Skin = i
}
)(r || (r = {})),
(function(t) {
var e = (function() {
function e(e, i) {
if (this.deform = new Array,
null == e)
throw new Error("data cannot be null.");
if (null == i)
throw new Error("bone cannot be null.");
this.data = e,
this.bone = i,
this.color = new t.Color,
this.darkColor = null == e.darkColor ? null : new t.Color,
this.setToSetupPose()
}
return e.prototype.getSkeleton = function() {
return this.bone.skeleton
}
,
e.prototype.getAttachment = function() {
return this.attachment
}
,
e.prototype.setAttachment = function(t) {
this.attachment != t && (this.attachment = t,
this.attachmentTime = this.bone.skeleton.time,
this.deform.length = 0)
}
,
e.prototype.setAttachmentTime = function(t) {
this.attachmentTime = this.bone.skeleton.time - t
}
,
e.prototype.getAttachmentTime = function() {
return this.bone.skeleton.time - this.attachmentTime
}
,
e.prototype.setToSetupPose = function() {
this.color.setFromColor(this.data.color),
null != this.darkColor && this.darkColor.setFromColor(this.data.darkColor),
null == this.data.attachmentName ? this.attachment = null : (this.attachment = null,
this.setAttachment(this.bone.skeleton.getAttachment(this.data.index, this.data.attachmentName)))
}
,
e
}
)();
t.Slot = e
}
)(r || (r = {})),
(function(t) {
t.SlotData = function(e, i, n) {
if (this.color = new t.Color(1,1,1,1),
e < 0)
throw new Error("index must be >= 0.");
if (null == i)
throw new Error("name cannot be null.");
if (null == n)
throw new Error("boneData cannot be null.");
this.index = e,
this.name = i,
this.boneData = n
}
}
)(r || (r = {})),
(function(t) {
var e, i, n = (function() {
function t(t) {
this._image = t
}
return t.prototype.getImage = function() {
return this._image
}
,
t.filterFromString = function(t) {
switch (t.toLowerCase()) {
case "nearest":
return e.Nearest;
case "linear":
return e.Linear;
case "mipmap":
return e.MipMap;
case "mipmapnearestnearest":
return e.MipMapNearestNearest;
case "mipmaplinearnearest":
return e.MipMapLinearNearest;
case "mipmapnearestlinear":
return e.MipMapNearestLinear;
case "mipmaplinearlinear":
return e.MipMapLinearLinear;
default:
throw new Error("Unknown texture filter " + t)
}
}
,
t.wrapFromString = function(t) {
switch (t.toLowerCase()) {
case "mirroredtepeat":
return i.MirroredRepeat;
case "clamptoedge":
return i.ClampToEdge;
case "repeat":
return i.Repeat;
default:
throw new Error("Unknown texture wrap " + t)
}
}
,
t
}
)();
t.Texture = n,
(function(t) {
t[t.Nearest = 9728] = "Nearest",
t[t.Linear = 9729] = "Linear",
t[t.MipMap = 9987] = "MipMap",
t[t.MipMapNearestNearest = 9984] = "MipMapNearestNearest",
t[t.MipMapLinearNearest = 9985] = "MipMapLinearNearest",
t[t.MipMapNearestLinear = 9986] = "MipMapNearestLinear",
t[t.MipMapLinearLinear = 9987] = "MipMapLinearLinear"
}
)(e = t.TextureFilter || (t.TextureFilter = {})),
(function(t) {
t[t.MirroredRepeat = 33648] = "MirroredRepeat",
t[t.ClampToEdge = 33071] = "ClampToEdge",
t[t.Repeat = 10497] = "Repeat"
}
)(i = t.TextureWrap || (t.TextureWrap = {}));
t.TextureRegion = function() {
this.u = 0,
this.v = 0,
this.u2 = 0,
this.v2 = 0,
this.width = 0,
this.height = 0,
this.rotate = !1,
this.offsetX = 0,
this.offsetY = 0,
this.originalWidth = 0,
this.originalHeight = 0
}
;
var r = (function(t) {
function e() {
return null !== t && t.apply(this, arguments) || this
}
return s(e, t),
e.prototype.setFilters = function() {}
,
e.prototype.setWraps = function() {}
,
e.prototype.dispose = function() {}
,
e
}
)(n);
t.FakeTexture = r
}
)(r || (r = {})),
(function(t) {
var e = (function() {
function e(t, e) {
this.pages = new Array,
this.regions = new Array,
this.load(t, e)
}
return e.prototype.load = function(e, s) {
if (null == s)
throw new Error("textureLoader cannot be null.");
for (var a = new i(e), o = new Array(4), l = null; ; ) {
var h = a.readLine();
if (null == h)
break;
if (0 == (h = h.trim()).length)
l = null;
else if (l) {
var c = new r;
c.name = h,
c.page = l;
var u = a.readValue();
"true" == u.toLocaleLowerCase() ? c.degrees = 90 : "false" == u.toLocaleLowerCase() ? c.degrees = 0 : c.degrees = parseFloat(u),
c.rotate = 90 == c.degrees,
a.readTuple(o);
var _ = parseInt(o[0])
, f = parseInt(o[1]);
a.readTuple(o);
var d = parseInt(o[0])
, p = parseInt(o[1]);
c.u = _ / l.width,
c.v = f / l.height,
c.rotate ? (c.u2 = (_ + p) / l.width,
c.v2 = (f + d) / l.height) : (c.u2 = (_ + d) / l.width,
c.v2 = (f + p) / l.height),
c.x = _,
c.y = f,
c.width = Math.abs(d),
c.height = Math.abs(p),
4 == a.readTuple(o) && 4 == a.readTuple(o) && a.readTuple(o),
c.originalWidth = parseInt(o[0]),
c.originalHeight = parseInt(o[1]),
a.readTuple(o),
c.offsetX = parseInt(o[0]),
c.offsetY = parseInt(o[1]),
c.index = parseInt(a.readValue()),
c.texture = l.texture,
this.regions.push(c)
} else {
(l = new n).name = h,
2 == a.readTuple(o) && (l.width = parseInt(o[0]),
l.height = parseInt(o[1]),
a.readTuple(o)),
a.readTuple(o),
l.minFilter = t.Texture.filterFromString(o[0]),
l.magFilter = t.Texture.filterFromString(o[1]);
var m = a.readValue();
l.uWrap = t.TextureWrap.ClampToEdge,
l.vWrap = t.TextureWrap.ClampToEdge,
"x" == m ? l.uWrap = t.TextureWrap.Repeat : "y" == m ? l.vWrap = t.TextureWrap.Repeat : "xy" == m && (l.uWrap = l.vWrap = t.TextureWrap.Repeat),
l.texture = s(h),
l.texture.setFilters(l.minFilter, l.magFilter),
l.texture.setWraps(l.uWrap, l.vWrap),
l.width = l.texture.getImage().width,
l.height = l.texture.getImage().height,
this.pages.push(l)
}
}
}
,
e.prototype.findRegion = function(t) {
for (var e = 0; e < this.regions.length; e++)
if (this.regions[e].name == t)
return this.regions[e];
return null
}
,
e.prototype.dispose = function() {
for (var t = 0; t < this.pages.length; t++)
this.pages[t].texture.dispose()
}
,
e
}
)();
t.TextureAtlas = e;
var i = (function() {
function t(t) {
this.index = 0,
this.lines = t.split(/\r\n|\r|\n/)
}
return t.prototype.readLine = function() {
return this.index >= this.lines.length ? null : this.lines[this.index++]
}
,
t.prototype.readValue = function() {
var t = this.readLine()
, e = t.indexOf(":");
if (-1 == e)
throw new Error("Invalid line: " + t);
return t.substring(e + 1).trim()
}
,
t.prototype.readTuple = function(t) {
var e = this.readLine()
, i = e.indexOf(":");
if (-1 == i)
throw new Error("Invalid line: " + e);
for (var n = 0, r = i + 1; n < 3; n++) {
var s = e.indexOf(",", r);
if (-1 == s)
break;
t[n] = e.substr(r, s - r).trim(),
r = s + 1
}
return t[n] = e.substring(r).trim(),
n + 1
}
,
t
}
)()
, n = function() {};
t.TextureAtlasPage = n;
var r = (function(t) {
function e() {
return null !== t && t.apply(this, arguments) || this
}
return s(e, t),
e
}
)(t.TextureRegion);
t.TextureAtlasRegion = r
}
)(r || (r = {})),
(function(t) {
var e = (function() {
function e(e, i) {
if (this.rotateMix = 0,
this.translateMix = 0,
this.scaleMix = 0,
this.shearMix = 0,
this.temp = new t.Vector2,
this.active = !1,
null == e)
throw new Error("data cannot be null.");
if (null == i)
throw new Error("skeleton cannot be null.");
this.data = e,
this.rotateMix = e.rotateMix,
this.translateMix = e.translateMix,
this.scaleMix = e.scaleMix,
this.shearMix = e.shearMix,
this.bones = new Array;
for (var n = 0; n < e.bones.length; n++)
this.bones.push(i.findBone(e.bones[n].name));
this.target = i.findBone(e.target.name)
}
return e.prototype.isActive = function() {
return this.active
}
,
e.prototype.apply = function() {
this.update()
}
,
e.prototype.update = function() {
this.data.local ? this.data.relative ? this.applyRelativeLocal() : this.applyAbsoluteLocal() : this.data.relative ? this.applyRelativeWorld() : this.applyAbsoluteWorld()
}
,
e.prototype.applyAbsoluteWorld = function() {
for (var e = this.rotateMix, i = this.translateMix, n = this.scaleMix, r = this.shearMix, s = this.target, a = s.a, o = s.b, l = s.c, h = s.d, c = a * h - o * l > 0 ? t.MathUtils.degRad : -t.MathUtils.degRad, u = this.data.offsetRotation * c, _ = this.data.offsetShearY * c, f = this.bones, d = 0, p = f.length; d < p; d++) {
var m = f[d]
, y = !1;
if (0 != e) {
var v = m.a
, g = m.b
, A = m.c
, x = m.d;
(E = Math.atan2(l, a) - Math.atan2(A, v) + u) > t.MathUtils.PI ? E -= t.MathUtils.PI2 : E < -t.MathUtils.PI && (E += t.MathUtils.PI2),
E *= e;
var b = Math.cos(E)
, C = Math.sin(E);
m.a = b * v - C * A,
m.b = b * g - C * x,
m.c = C * v + b * A,
m.d = C * g + b * x,
y = !0
}
if (0 != i) {
var T = this.temp;
s.localToWorld(T.set(this.data.offsetX, this.data.offsetY)),
m.worldX += (T.x - m.worldX) * i,
m.worldY += (T.y - m.worldY) * i,
y = !0
}
if (n > 0) {
var S = Math.sqrt(m.a * m.a + m.c * m.c)
, w = Math.sqrt(a * a + l * l);
S > 1e-5 && (S = (S + (w - S + this.data.offsetScaleX) * n) / S),
m.a *= S,
m.c *= S,
S = Math.sqrt(m.b * m.b + m.d * m.d),
w = Math.sqrt(o * o + h * h),
S > 1e-5 && (S = (S + (w - S + this.data.offsetScaleY) * n) / S),
m.b *= S,
m.d *= S,
y = !0
}
if (r > 0) {
g = m.b,
x = m.d;
var E, M = Math.atan2(x, g);
(E = Math.atan2(h, o) - Math.atan2(l, a) - (M - Math.atan2(m.c, m.a))) > t.MathUtils.PI ? E -= t.MathUtils.PI2 : E < -t.MathUtils.PI && (E += t.MathUtils.PI2),
E = M + (E + _) * r,
S = Math.sqrt(g * g + x * x),
m.b = Math.cos(E) * S,
m.d = Math.sin(E) * S,
y = !0
}
y && (m.appliedValid = !1)
}
}
,
e.prototype.applyRelativeWorld = function() {
for (var e = this.rotateMix, i = this.translateMix, n = this.scaleMix, r = this.shearMix, s = this.target, a = s.a, o = s.b, l = s.c, h = s.d, c = a * h - o * l > 0 ? t.MathUtils.degRad : -t.MathUtils.degRad, u = this.data.offsetRotation * c, _ = this.data.offsetShearY * c, f = this.bones, d = 0, p = f.length; d < p; d++) {
var m, y = f[d], v = !1;
if (0 != e) {
var g = y.a
, A = y.b
, x = y.c
, b = y.d;
(m = Math.atan2(l, a) + u) > t.MathUtils.PI ? m -= t.MathUtils.PI2 : m < -t.MathUtils.PI && (m += t.MathUtils.PI2),
m *= e;
var C = Math.cos(m)
, T = Math.sin(m);
y.a = C * g - T * x,
y.b = C * A - T * b,
y.c = T * g + C * x,
y.d = T * A + C * b,
v = !0
}
if (0 != i) {
var S = this.temp;
s.localToWorld(S.set(this.data.offsetX, this.data.offsetY)),
y.worldX += S.x * i,
y.worldY += S.y * i,
v = !0
}
if (n > 0) {
var w = (Math.sqrt(a * a + l * l) - 1 + this.data.offsetScaleX) * n + 1;
y.a *= w,
y.c *= w,
w = (Math.sqrt(o * o + h * h) - 1 + this.data.offsetScaleY) * n + 1,
y.b *= w,
y.d *= w,
v = !0
}
if (r > 0)
(m = Math.atan2(h, o) - Math.atan2(l, a)) > t.MathUtils.PI ? m -= t.MathUtils.PI2 : m < -t.MathUtils.PI && (m += t.MathUtils.PI2),
A = y.b,
b = y.d,
m = Math.atan2(b, A) + (m - t.MathUtils.PI / 2 + _) * r,
w = Math.sqrt(A * A + b * b),
y.b = Math.cos(m) * w,
y.d = Math.sin(m) * w,
v = !0;
v && (y.appliedValid = !1)
}
}
,
e.prototype.applyAbsoluteLocal = function() {
var t = this.rotateMix
, e = this.translateMix
, i = this.scaleMix
, n = this.shearMix
, r = this.target;
r.appliedValid || r.updateAppliedTransform();
for (var s = this.bones, a = 0, o = s.length; a < o; a++) {
var l = s[a];
l.appliedValid || l.updateAppliedTransform();
var h = l.arotation;
if (0 != t) {
var c = r.arotation - h + this.data.offsetRotation;
h += (c -= 360 * (16384 - (16384.499999999996 - c / 360 | 0))) * t
}
var u = l.ax
, _ = l.ay;
0 != e && (u += (r.ax - u + this.data.offsetX) * e,
_ += (r.ay - _ + this.data.offsetY) * e);
var f = l.ascaleX
, d = l.ascaleY;
0 != i && (f > 1e-5 && (f = (f + (r.ascaleX - f + this.data.offsetScaleX) * i) / f),
d > 1e-5 && (d = (d + (r.ascaleY - d + this.data.offsetScaleY) * i) / d));
var p = l.ashearY;
0 != n && (c = r.ashearY - p + this.data.offsetShearY,
c -= 360 * (16384 - (16384.499999999996 - c / 360 | 0)),
l.shearY += c * n),
l.updateWorldTransformWith(u, _, h, f, d, l.ashearX, p)
}
}
,
e.prototype.applyRelativeLocal = function() {
var t = this.rotateMix
, e = this.translateMix
, i = this.scaleMix
, n = this.shearMix
, r = this.target;
r.appliedValid || r.updateAppliedTransform();
for (var s = this.bones, a = 0, o = s.length; a < o; a++) {
var l = s[a];
l.appliedValid || l.updateAppliedTransform();
var h = l.arotation;
0 != t && (h += (r.arotation + this.data.offsetRotation) * t);
var c = l.ax
, u = l.ay;
0 != e && (c += (r.ax + this.data.offsetX) * e,
u += (r.ay + this.data.offsetY) * e);
var _ = l.ascaleX
, f = l.ascaleY;
0 != i && (_ > 1e-5 && (_ *= (r.ascaleX - 1 + this.data.offsetScaleX) * i + 1),
f > 1e-5 && (f *= (r.ascaleY - 1 + this.data.offsetScaleY) * i + 1));
var d = l.ashearY;
0 != n && (d += (r.ashearY + this.data.offsetShearY) * n),
l.updateWorldTransformWith(c, u, h, _, f, l.ashearX, d)
}
}
,
e
}
)();
t.TransformConstraint = e
}
)(r || (r = {})),
(function(t) {
var e = (function(t) {
function e(e) {
var i = t.call(this, e, 0, !1) || this;
return i.bones = new Array,
i.rotateMix = 0,
i.translateMix = 0,
i.scaleMix = 0,
i.shearMix = 0,
i.offsetRotation = 0,
i.offsetX = 0,
i.offsetY = 0,
i.offsetScaleX = 0,
i.offsetScaleY = 0,
i.offsetShearY = 0,
i.relative = !1,
i.local = !1,
i
}
return s(e, t),
e
}
)(t.ConstraintData);
t.TransformConstraintData = e
}
)(r || (r = {})),
(function(t) {
var e = (function() {
function e() {
this.convexPolygons = new Array,
this.convexPolygonsIndices = new Array,
this.indicesArray = new Array,
this.isConcaveArray = new Array,
this.triangles = new Array,
this.polygonPool = new t.Pool(function() {
return new Array
}
),
this.polygonIndicesPool = new t.Pool(function() {
return new Array
}
)
}
return e.prototype.triangulate = function(t) {
var i = t
, n = t.length >> 1
, r = this.indicesArray;
r.length = 0;
for (var s = 0; s < n; s++)
r[s] = s;
var a = this.isConcaveArray;
a.length = 0,
s = 0;
for (var o = n; s < o; ++s)
a[s] = e.isConcave(s, n, i, r);
var l = this.triangles;
for (l.length = 0; n > 3; ) {
for (var h = n - 1, c = (s = 0,
1); ; ) {
t: if (!a[s]) {
for (var u = r[h] << 1, _ = r[s] << 1, f = r[c] << 1, d = i[u], p = i[u + 1], m = i[_], y = i[_ + 1], v = i[f], g = i[f + 1], A = (c + 1) % n; A != h; A = (A + 1) % n)
if (a[A]) {
var x = r[A] << 1
, b = i[x]
, C = i[x + 1];
if (e.positiveArea(v, g, d, p, b, C) && e.positiveArea(d, p, m, y, b, C) && e.positiveArea(m, y, v, g, b, C))
break t
}
break
}
if (0 == c) {
do {
if (!a[s])
break;
s--
} while (s > 0);break
}
h = s,
s = c,
c = (c + 1) % n
}
l.push(r[(n + s - 1) % n]),
l.push(r[s]),
l.push(r[(s + 1) % n]),
r.splice(s, 1),
a.splice(s, 1);
var T = (--n + s - 1) % n
, S = s == n ? 0 : s;
a[T] = e.isConcave(T, n, i, r),
a[S] = e.isConcave(S, n, i, r)
}
return 3 == n && (l.push(r[2]),
l.push(r[0]),
l.push(r[1])),
l
}
,
e.prototype.decompose = function(t, i) {
var n = t
, r = this.convexPolygons;
this.polygonPool.freeAll(r),
r.length = 0;
var s = this.convexPolygonsIndices;
this.polygonIndicesPool.freeAll(s),
s.length = 0;
var a = this.polygonIndicesPool.obtain();
a.length = 0;
var o = this.polygonPool.obtain();
o.length = 0;
for (var l = -1, h = 0, c = 0, u = i.length; c < u; c += 3) {
var _ = i[c] << 1
, f = i[c + 1] << 1
, d = i[c + 2] << 1
, p = n[_]
, m = n[_ + 1]
, y = n[f]
, v = n[f + 1]
, g = n[d]
, A = n[d + 1]
, x = !1;
if (l == _) {
var b = o.length - 4
, C = e.winding(o[b], o[b + 1], o[b + 2], o[b + 3], g, A)
, T = e.winding(g, A, o[0], o[1], o[2], o[3]);
C == h && T == h && (o.push(g),
o.push(A),
a.push(d),
x = !0)
}
x || (o.length > 0 ? (r.push(o),
s.push(a)) : (this.polygonPool.free(o),
this.polygonIndicesPool.free(a)),
(o = this.polygonPool.obtain()).length = 0,
o.push(p),
o.push(m),
o.push(y),
o.push(v),
o.push(g),
o.push(A),
(a = this.polygonIndicesPool.obtain()).length = 0,
a.push(_),
a.push(f),
a.push(d),
h = e.winding(p, m, y, v, g, A),
l = _)
}
for (o.length > 0 && (r.push(o),
s.push(a)),
c = 0,
u = r.length; c < u; c++)
if (0 != (a = s[c]).length)
for (var S = a[0], w = a[a.length - 1], E = (o = r[c])[b = o.length - 4], M = o[b + 1], D = o[b + 2], B = o[b + 3], I = o[0], P = o[1], R = o[2], O = o[3], L = e.winding(E, M, D, B, I, P), F = 0; F < u; F++)
if (F != c) {
var V = s[F];
if (3 == V.length) {
var N = V[0]
, k = V[1]
, G = V[2]
, U = r[F];
g = U[U.length - 2],
A = U[U.length - 1],
N == S && k == w && (C = e.winding(E, M, D, B, g, A),
T = e.winding(g, A, I, P, R, O),
C == L && T == L && (U.length = 0,
V.length = 0,
o.push(g),
o.push(A),
a.push(G),
E = D,
M = B,
D = g,
B = A,
F = 0))
}
}
for (c = r.length - 1; c >= 0; c--)
0 == (o = r[c]).length && (r.splice(c, 1),
this.polygonPool.free(o),
a = s[c],
s.splice(c, 1),
this.polygonIndicesPool.free(a));
return r
}
,
e.isConcave = function(t, e, i, n) {
var r = n[(e + t - 1) % e] << 1
, s = n[t] << 1
, a = n[(t + 1) % e] << 1;
return !this.positiveArea(i[r], i[r + 1], i[s], i[s + 1], i[a], i[a + 1])
}
,
e.positiveArea = function(t, e, i, n, r, s) {
return t * (s - n) + i * (e - s) + r * (n - e) >= 0
}
,
e.winding = function(t, e, i, n, r, s) {
var a = i - t
, o = n - e;
return r * o - s * a + a * e - t * o >= 0 ? 1 : -1
}
,
e
}
)();
t.Triangulator = e
}
)(r || (r = {})),
(function(t) {
var e = (function() {
function t() {
this.array = new Array
}
return t.prototype.add = function(t) {
var e = this.contains(t);
return this.array[0 | t] = 0 | t,
!e
}
,
t.prototype.contains = function(t) {
return null != this.array[0 | t]
}
,
t.prototype.remove = function(t) {
this.array[0 | t] = void 0
}
,
t.prototype.clear = function() {
this.array.length = 0
}
,
t
}
)();
t.IntSet = e;
var i = (function() {
function t(t, e, i, n) {
void 0 === t && (t = 0),
void 0 === e && (e = 0),
void 0 === i && (i = 0),
void 0 === n && (n = 0),
this.r = t,
this.g = e,
this.b = i,
this.a = n
}
return t.prototype.set = function(t, e, i, n) {
return this.r = t,
this.g = e,
this.b = i,
this.a = n,
this.clamp(),
this
}
,
t.prototype.setFromColor = function(t) {
return this.r = t.r,
this.g = t.g,
this.b = t.b,
this.a = t.a,
this
}
,
t.prototype.setFromString = function(t) {
return t = "#" == t.charAt(0) ? t.substr(1) : t,
this.r = parseInt(t.substr(0, 2), 16) / 255,
this.g = parseInt(t.substr(2, 2), 16) / 255,
this.b = parseInt(t.substr(4, 2), 16) / 255,
this.a = (8 != t.length ? 255 : parseInt(t.substr(6, 2), 16)) / 255,
this
}
,
t.prototype.add = function(t, e, i, n) {
return this.r += t,
this.g += e,
this.b += i,
this.a += n,
this.clamp(),
this
}
,
t.prototype.clamp = function() {
return this.r < 0 ? this.r = 0 : this.r > 1 && (this.r = 1),
this.g < 0 ? this.g = 0 : this.g > 1 && (this.g = 1),
this.b < 0 ? this.b = 0 : this.b > 1 && (this.b = 1),
this.a < 0 ? this.a = 0 : this.a > 1 && (this.a = 1),
this
}
,
t.rgba8888ToColor = function(t, e) {
t.r = ((4278190080 & e) >>> 24) / 255,
t.g = ((16711680 & e) >>> 16) / 255,
t.b = ((65280 & e) >>> 8) / 255,
t.a = (255 & e) / 255
}
,
t.rgb888ToColor = function(t, e) {
t.r = ((16711680 & e) >>> 16) / 255,
t.g = ((65280 & e) >>> 8) / 255,
t.b = (255 & e) / 255
}
,
t.WHITE = new t(1,1,1,1),
t.RED = new t(1,0,0,1),
t.GREEN = new t(0,1,0,1),
t.BLUE = new t(0,0,1,1),
t.MAGENTA = new t(1,0,1,1),
t
}
)();
t.Color = i;
var n = (function() {
function t() {}
return t.clamp = function(t, e, i) {
return t < e ? e : t > i ? i : t
}
,
t.cosDeg = function(e) {
return Math.cos(e * t.degRad)
}
,
t.sinDeg = function(e) {
return Math.sin(e * t.degRad)
}
,
t.signum = function(t) {
return t > 0 ? 1 : t < 0 ? -1 : 0
}
,
t.toInt = function(t) {
return t > 0 ? Math.floor(t) : Math.ceil(t)
}
,
t.cbrt = function(t) {
var e = Math.pow(Math.abs(t), 1 / 3);
return t < 0 ? -e : e
}
,
t.randomTriangular = function(e, i) {
return t.randomTriangularWith(e, i, .5 * (e + i))
}
,
t.randomTriangularWith = function(t, e, i) {
var n = Math.random()
, r = e - t;
return n <= (i - t) / r ? t + Math.sqrt(n * r * (i - t)) : e - Math.sqrt((1 - n) * r * (e - i))
}
,
t.PI = 3.1415927,
t.PI2 = 2 * t.PI,
t.radiansToDegrees = 180 / t.PI,
t.radDeg = t.radiansToDegrees,
t.degreesToRadians = t.PI / 180,
t.degRad = t.degreesToRadians,
t
}
)();
t.MathUtils = n;
var r = (function() {
function t() {}
return t.prototype.apply = function(t, e, i) {
return t + (e - t) * this.applyInternal(i)
}
,
t
}
)();
t.Interpolation = r;
var a = (function(t) {
function e(e) {
var i = t.call(this) || this;
return i.power = 2,
i.power = e,
i
}
return s(e, t),
e.prototype.applyInternal = function(t) {
return t <= .5 ? Math.pow(2 * t, this.power) / 2 : Math.pow(2 * (t - 1), this.power) / (this.power % 2 == 0 ? -2 : 2) + 1
}
,
e
}
)(r);
t.Pow = a;
var o = (function(t) {
function e(e) {
return t.call(this, e) || this
}
return s(e, t),
e.prototype.applyInternal = function(t) {
return Math.pow(t - 1, this.power) * (this.power % 2 == 0 ? -1 : 1) + 1
}
,
e
}
)(a);
t.PowOut = o;
var l = (function() {
function t() {}
return t.arrayCopy = function(t, e, i, n, r) {
for (var s = e, a = n; s < e + r; s++,
a++)
i[a] = t[s]
}
,
t.setArraySize = function(t, e, i) {
void 0 === i && (i = 0);
var n = t.length;
if (n == e)
return t;
if (t.length = e,
n < e)
for (var r = n; r < e; r++)
t[r] = i;
return t
}
,
t.ensureArrayCapacity = function(e, i, n) {
return void 0 === n && (n = 0),
e.length >= i ? e : t.setArraySize(e, i, n)
}
,
t.newArray = function(t, e) {
for (var i = new Array(t), n = 0; n < t; n++)
i[n] = e;
return i
}
,
t.newFloatArray = function(e) {
if (t.SUPPORTS_TYPED_ARRAYS)
return new Float32Array(e);
for (var i = new Array(e), n = 0; n < i.length; n++)
i[n] = 0;
return i
}
,
t.newShortArray = function(e) {
if (t.SUPPORTS_TYPED_ARRAYS)
return new Int16Array(e);
for (var i = new Array(e), n = 0; n < i.length; n++)
i[n] = 0;
return i
}
,
t.toFloatArray = function(e) {
return t.SUPPORTS_TYPED_ARRAYS ? new Float32Array(e) : e
}
,
t.toSinglePrecision = function(e) {
return t.SUPPORTS_TYPED_ARRAYS ? Math.fround(e) : e
}
,
t.webkit602BugfixHelper = function() {}
,
t.contains = function(t, e, i) {
void 0 === i && (i = !0);
for (var n = 0; n < t.length; n++)
if (t[n] == e)
return !0;
return !1
}
,
t.SUPPORTS_TYPED_ARRAYS = "undefined" != typeof Float32Array,
t
}
)();
t.Utils = l;
var h = (function() {
function t() {}
return t.logBones = function(t) {
for (var e = 0; e < t.bones.length; e++) {
var i = t.bones[e];
console.log(i.data.name + ", " + i.a + ", " + i.b + ", " + i.c + ", " + i.d + ", " + i.worldX + ", " + i.worldY)
}
}
,
t
}
)();
t.DebugUtils = h;
var c = (function() {
function t(t) {
this.items = new Array,
this.instantiator = t
}
return t.prototype.obtain = function() {
return this.items.length > 0 ? this.items.pop() : this.instantiator()
}
,
t.prototype.free = function(t) {
t.reset && t.reset(),
this.items.push(t)
}
,
t.prototype.freeAll = function(t) {
for (var e = 0; e < t.length; e++)
t[e].reset && t[e].reset(),
this.items[e] = t[e]
}
,
t.prototype.clear = function() {
this.items.length = 0
}
,
t
}
)();
t.Pool = c;
var u = (function() {
function t(t, e) {
void 0 === t && (t = 0),
void 0 === e && (e = 0),
this.x = t,
this.y = e
}
return t.prototype.set = function(t, e) {
return this.x = t,
this.y = e,
this
}
,
t.prototype.length = function() {
var t = this.x
, e = this.y;
return Math.sqrt(t * t + e * e)
}
,
t.prototype.normalize = function() {
var t = this.length();
return 0 != t && (this.x /= t,
this.y /= t),
this
}
,
t
}
)();
t.Vector2 = u;
var _ = (function() {
function t() {
this.maxDelta = .064,
this.framesPerSecond = 0,
this.delta = 0,
this.totalTime = 0,
this.lastTime = Date.now() / 1e3,
this.frameCount = 0,
this.frameTime = 0
}
return t.prototype.update = function() {
var t = Date.now() / 1e3;
this.delta = t - this.lastTime,
this.frameTime += this.delta,
this.totalTime += this.delta,
this.delta > this.maxDelta && (this.delta = this.maxDelta),
this.lastTime = t,
this.frameCount++,
this.frameTime > 1 && (this.framesPerSecond = this.frameCount / this.frameTime,
this.frameTime = 0,
this.frameCount = 0)
}
,
t
}
)();
t.TimeKeeper = _;
var f = (function() {
function t(t) {
void 0 === t && (t = 32),
this.addedValues = 0,
this.lastValue = 0,
this.mean = 0,
this.dirty = !0,
this.values = new Array(t)
}
return t.prototype.hasEnoughData = function() {
return this.addedValues >= this.values.length
}
,
t.prototype.addValue = function(t) {
this.addedValues < this.values.length && this.addedValues++,
this.values[this.lastValue++] = t,
this.lastValue > this.values.length - 1 && (this.lastValue = 0),
this.dirty = !0
}
,
t.prototype.getMean = function() {
if (this.hasEnoughData()) {
if (this.dirty) {
for (var t = 0, e = 0; e < this.values.length; e++)
t += this.values[e];
this.mean = t / this.values.length,
this.dirty = !1
}
return this.mean
}
return 0
}
,
t
}
)();
t.WindowedMean = f
}
)(r || (r = {})),
Math.fround || (Math.fround = (n = new Float32Array(1),
function(t) {
return n[0] = t,
n[0]
}
)),
(function(t) {
var e = function(t) {
if (null == t)
throw new Error("name cannot be null.");
this.name = t
};
t.Attachment = e;
var i = (function(e) {
function i(t) {
var n = e.call(this, t) || this;
return n.id = (65535 & i.nextID++) << 11,
n.worldVerticesLength = 0,
n.deformAttachment = n,
n
}
return s(i, e),
i.prototype.computeWorldVertices = function(t, e, i, n, r, s) {
i = r + (i >> 1) * s;
var a = t.bone.skeleton
, o = t.deform
, l = this.vertices
, h = this.bones;
if (null != h) {
for (var c = 0, u = 0, _ = 0; _ < e; _ += 2)
c += (m = h[c]) + 1,
u += m;
var f = a.bones;
if (0 == o.length)
for (M = r,
T = 3 * u; M < i; M += s) {
var d = 0
, p = 0
, m = h[c++];
for (m += c; c < m; c++,
T += 3) {
A = f[h[c]],
D = l[T],
B = l[T + 1];
var y = l[T + 2];
d += (D * A.a + B * A.b + A.worldX) * y,
p += (D * A.c + B * A.d + A.worldY) * y
}
n[M] = d,
n[M + 1] = p
}
else
for (var v = o, g = (M = r,
T = 3 * u,
u << 1); M < i; M += s) {
for (d = 0,
p = 0,
m = h[c++],
m += c; c < m; c++,
T += 3,
g += 2)
A = f[h[c]],
D = l[T] + v[g],
B = l[T + 1] + v[g + 1],
y = l[T + 2],
d += (D * A.a + B * A.b + A.worldX) * y,
p += (D * A.c + B * A.d + A.worldY) * y;
n[M] = d,
n[M + 1] = p
}
} else {
o.length > 0 && (l = o);
for (var A, x = (A = t.bone).worldX, b = A.worldY, C = A.a, T = A.b, S = A.c, w = A.d, E = e, M = r; M < i; E += 2,
M += s) {
var D = l[E]
, B = l[E + 1];
n[M] = D * C + B * T + x,
n[M + 1] = D * S + B * w + b
}
}
}
,
i.prototype.copyTo = function(e) {
null != this.bones ? (e.bones = new Array(this.bones.length),
t.Utils.arrayCopy(this.bones, 0, e.bones, 0, this.bones.length)) : e.bones = null,
null != this.vertices ? (e.vertices = t.Utils.newFloatArray(this.vertices.length),
t.Utils.arrayCopy(this.vertices, 0, e.vertices, 0, this.vertices.length)) : e.vertices = null,
e.worldVerticesLength = this.worldVerticesLength,
e.deformAttachment = this.deformAttachment
}
,
i.nextID = 0,
i
}
)(e);
t.VertexAttachment = i
}
)(r || (r = {})),
(function(t) {
(function(t) {
t[t.Region = 0] = "Region",
t[t.BoundingBox = 1] = "BoundingBox",
t[t.Mesh = 2] = "Mesh",
t[t.LinkedMesh = 3] = "LinkedMesh",
t[t.Path = 4] = "Path",
t[t.Point = 5] = "Point",
t[t.Clipping = 6] = "Clipping"
}
)(t.AttachmentType || (t.AttachmentType = {}))
}
)(r || (r = {})),
(function(t) {
var e = (function(e) {
function i(i) {
var n = e.call(this, i) || this;
return n.color = new t.Color(1,1,1,1),
n
}
return s(i, e),
i.prototype.copy = function() {
var t = new i(name);
return this.copyTo(t),
t.color.setFromColor(this.color),
t
}
,
i
}
)(t.VertexAttachment);
t.BoundingBoxAttachment = e
}
)(r || (r = {})),
(function(t) {
var e = (function(e) {
function i(i) {
var n = e.call(this, i) || this;
return n.color = new t.Color(.2275,.2275,.8078,1),
n
}
return s(i, e),
i.prototype.copy = function() {
var t = new i(name);
return this.copyTo(t),
t.endSlot = this.endSlot,
t.color.setFromColor(this.color),
t
}
,
i
}
)(t.VertexAttachment);
t.ClippingAttachment = e
}
)(r || (r = {})),
(function(t) {
var e = (function(e) {
function i(i) {
var n = e.call(this, i) || this;
return n.color = new t.Color(1,1,1,1),
n.tempColor = new t.Color(0,0,0,0),
n
}
return s(i, e),
i.prototype.updateUVs = function() {
var e = this.regionUVs;
null != this.uvs && this.uvs.length == e.length || (this.uvs = t.Utils.newFloatArray(e.length));
var i = this.uvs
, n = this.uvs.length
, r = this.region.u
, s = this.region.v
, a = 0
, o = 0;
if (this.region instanceof t.TextureAtlasRegion) {
var l = this.region
, h = l.texture.getImage().width
, c = l.texture.getImage().height;
switch (l.degrees) {
case 90:
r -= (l.originalHeight - l.offsetY - l.height) / h,
s -= (l.originalWidth - l.offsetX - l.width) / c,
a = l.originalHeight / h,
o = l.originalWidth / c;
for (var u = 0; u < n; u += 2)
i[u] = r + e[u + 1] * a,
i[u + 1] = s + (1 - e[u]) * o;
return;
case 180:
for (r -= (l.originalWidth - l.offsetX - l.width) / h,
s -= l.offsetY / c,
a = l.originalWidth / h,
o = l.originalHeight / c,
u = 0; u < n; u += 2)
i[u] = r + (1 - e[u]) * a,
i[u + 1] = s + (1 - e[u + 1]) * o;
return;
case 270:
for (r -= l.offsetY / h,
s -= l.offsetX / c,
a = l.originalHeight / h,
o = l.originalWidth / c,
u = 0; u < n; u += 2)
i[u] = r + (1 - e[u + 1]) * a,
i[u + 1] = s + e[u] * o;
return
}
r -= l.offsetX / h,
s -= (l.originalHeight - l.offsetY - l.height) / c,
a = l.originalWidth / h,
o = l.originalHeight / c
} else
null == this.region ? (r = s = 0,
a = o = 1) : (a = this.region.u2 - r,
o = this.region.v2 - s);
for (u = 0; u < n; u += 2)
i[u] = r + e[u] * a,
i[u + 1] = s + e[u + 1] * o
}
,
i.prototype.getParentMesh = function() {
return this.parentMesh
}
,
i.prototype.setParentMesh = function(t) {
this.parentMesh = t,
null != t && (this.bones = t.bones,
this.vertices = t.vertices,
this.worldVerticesLength = t.worldVerticesLength,
this.regionUVs = t.regionUVs,
this.triangles = t.triangles,
this.hullLength = t.hullLength,
this.worldVerticesLength = t.worldVerticesLength)
}
,
i.prototype.copy = function() {
if (null != this.parentMesh)
return this.newLinkedMesh();
var e = new i(this.name);
return e.region = this.region,
e.path = this.path,
e.color.setFromColor(this.color),
this.copyTo(e),
e.regionUVs = new Array(this.regionUVs.length),
t.Utils.arrayCopy(this.regionUVs, 0, e.regionUVs, 0, this.regionUVs.length),
e.uvs = new Array(this.uvs.length),
t.Utils.arrayCopy(this.uvs, 0, e.uvs, 0, this.uvs.length),
e.triangles = new Array(this.triangles.length),
t.Utils.arrayCopy(this.triangles, 0, e.triangles, 0, this.triangles.length),
e.hullLength = this.hullLength,
null != this.edges && (e.edges = new Array(this.edges.length),
t.Utils.arrayCopy(this.edges, 0, e.edges, 0, this.edges.length)),
e.width = this.width,
e.height = this.height,
e
}
,
i.prototype.newLinkedMesh = function() {
var t = new i(this.name);
return t.region = this.region,
t.path = this.path,
t.color.setFromColor(this.color),
t.deformAttachment = this.deformAttachment,
t.setParentMesh(null != this.parentMesh ? this.parentMesh : this),
t.updateUVs(),
t
}
,
i
}
)(t.VertexAttachment);
t.MeshAttachment = e
}
)(r || (r = {})),
(function(t) {
var e = (function(e) {
function i(i) {
var n = e.call(this, i) || this;
return n.closed = !1,
n.constantSpeed = !1,
n.color = new t.Color(1,1,1,1),
n
}
return s(i, e),
i.prototype.copy = function() {
var e = new i(name);
return this.copyTo(e),
e.lengths = new Array(this.lengths.length),
t.Utils.arrayCopy(this.lengths, 0, e.lengths, 0, this.lengths.length),
e.closed = closed,
e.constantSpeed = this.constantSpeed,
e.color.setFromColor(this.color),
e
}
,
i
}
)(t.VertexAttachment);
t.PathAttachment = e
}
)(r || (r = {})),
(function(t) {
var e = (function(e) {
function i(i) {
var n = e.call(this, i) || this;
return n.color = new t.Color(.38,.94,0,1),
n
}
return s(i, e),
i.prototype.computeWorldPosition = function(t, e) {
return e.x = this.x * t.a + this.y * t.b + t.worldX,
e.y = this.x * t.c + this.y * t.d + t.worldY,
e
}
,
i.prototype.computeWorldRotation = function(e) {
var i = t.MathUtils.cosDeg(this.rotation)
, n = t.MathUtils.sinDeg(this.rotation)
, r = i * e.a + n * e.b
, s = i * e.c + n * e.d;
return Math.atan2(s, r) * t.MathUtils.radDeg
}
,
i.prototype.copy = function() {
var t = new i(name);
return t.x = this.x,
t.y = this.y,
t.rotation = this.rotation,
t.color.setFromColor(this.color),
t
}
,
i
}
)(t.VertexAttachment);
t.PointAttachment = e
}
)(r || (r = {})),
(function(t) {
var e = (function(e) {
function i(i) {
var n = e.call(this, i) || this;
return n.x = 0,
n.y = 0,
n.scaleX = 1,
n.scaleY = 1,
n.rotation = 0,
n.width = 0,
n.height = 0,
n.color = new t.Color(1,1,1,1),
n.offset = t.Utils.newFloatArray(8),
n.uvs = t.Utils.newFloatArray(8),
n.tempColor = new t.Color(1,1,1,1),
n
}
return s(i, e),
i.prototype.updateOffset = function() {
var t = this.width / this.region.originalWidth * this.scaleX
, e = this.height / this.region.originalHeight * this.scaleY
, n = -this.width / 2 * this.scaleX + this.region.offsetX * t
, r = -this.height / 2 * this.scaleY + this.region.offsetY * e
, s = n + this.region.width * t
, a = r + this.region.height * e
, o = this.rotation * Math.PI / 180
, l = Math.cos(o)
, h = Math.sin(o)
, c = n * l + this.x
, u = n * h
, _ = r * l + this.y
, f = r * h
, d = s * l + this.x
, p = s * h
, m = a * l + this.y
, y = a * h
, v = this.offset;
v[i.OX1] = c - f,
v[i.OY1] = _ + u,
v[i.OX2] = c - y,
v[i.OY2] = m + u,
v[i.OX3] = d - y,
v[i.OY3] = m + p,
v[i.OX4] = d - f,
v[i.OY4] = _ + p
}
,
i.prototype.setRegion = function(t) {
this.region = t;
var e = this.uvs;
t.rotate ? (e[2] = t.u,
e[3] = t.v2,
e[4] = t.u,
e[5] = t.v,
e[6] = t.u2,
e[7] = t.v,
e[0] = t.u2,
e[1] = t.v2) : (e[0] = t.u,
e[1] = t.v2,
e[2] = t.u,
e[3] = t.v,
e[4] = t.u2,
e[5] = t.v,
e[6] = t.u2,
e[7] = t.v2)
}
,
i.prototype.computeWorldVertices = function(t, e, n, r) {
var s = this.offset
, a = t.worldX
, o = t.worldY
, l = t.a
, h = t.b
, c = t.c
, u = t.d
, _ = 0
, f = 0;
_ = s[i.OX1],
f = s[i.OY1],
e[n] = _ * l + f * h + a,
e[n + 1] = _ * c + f * u + o,
n += r,
_ = s[i.OX2],
f = s[i.OY2],
e[n] = _ * l + f * h + a,
e[n + 1] = _ * c + f * u + o,
n += r,
_ = s[i.OX3],
f = s[i.OY3],
e[n] = _ * l + f * h + a,
e[n + 1] = _ * c + f * u + o,
n += r,
_ = s[i.OX4],
f = s[i.OY4],
e[n] = _ * l + f * h + a,
e[n + 1] = _ * c + f * u + o
}
,
i.prototype.copy = function() {
var e = new i(name);
return e.region = this.region,
e.rendererObject = this.rendererObject,
e.path = this.path,
e.x = this.x,
e.y = this.y,
e.scaleX = this.scaleX,
e.scaleY = this.scaleY,
e.rotation = this.rotation,
e.width = this.width,
e.height = this.height,
t.Utils.arrayCopy(this.uvs, 0, e.uvs, 0, 8),
t.Utils.arrayCopy(this.offset, 0, e.offset, 0, 8),
e.color.setFromColor(this.color),
e
}
,
i.OX1 = 0,
i.OY1 = 1,
i.OX2 = 2,
i.OY2 = 3,
i.OX3 = 4,
i.OY3 = 5,
i.OX4 = 6,
i.OY4 = 7,
i.X1 = 0,
i.Y1 = 1,
i.C1R = 2,
i.C1G = 3,
i.C1B = 4,
i.C1A = 5,
i.U1 = 6,
i.V1 = 7,
i.X2 = 8,
i.Y2 = 9,
i.C2R = 10,
i.C2G = 11,
i.C2B = 12,
i.C2A = 13,
i.U2 = 14,
i.V2 = 15,
i.X3 = 16,
i.Y3 = 17,
i.C3R = 18,
i.C3G = 19,
i.C3B = 20,
i.C3A = 21,
i.U3 = 22,
i.V3 = 23,
i.X4 = 24,
i.Y4 = 25,
i.C4R = 26,
i.C4G = 27,
i.C4B = 28,
i.C4A = 29,
i.U4 = 30,
i.V4 = 31,
i
}
)(t.Attachment);
t.RegionAttachment = e
}
)(r || (r = {})),
(function(t) {
var e = (function() {
function e(t, e) {
this.jitterX = 0,
this.jitterY = 0,
this.jitterX = t,
this.jitterY = e
}
return e.prototype.begin = function() {}
,
e.prototype.transform = function(e) {
e.x += t.MathUtils.randomTriangular(-this.jitterX, this.jitterY),
e.y += t.MathUtils.randomTriangular(-this.jitterX, this.jitterY)
}
,
e.prototype.end = function() {}
,
e
}
)();
t.JitterEffect = e
}
)(r || (r = {})),
(function(t) {
var e = (function() {
function e(t, e) {
this.centerX = 0,
this.centerY = 0,
this.radius = 0,
this.angle = 0,
this.worldX = 0,
this.worldY = 0,
this.radius = t,
this.interpolation = e
}
return e.prototype.begin = function(t) {
this.worldX = t.x + this.centerX,
this.worldY = t.y + this.centerY
}
,
e.prototype.transform = function(e) {
var i = this.angle * t.MathUtils.degreesToRadians
, n = e.x - this.worldX
, r = e.y - this.worldY
, s = Math.sqrt(n * n + r * r);
if (s < this.radius) {
var a = this.interpolation.apply(0, i, (this.radius - s) / this.radius)
, o = Math.cos(a)
, l = Math.sin(a);
e.x = o * n - l * r + this.worldX,
e.y = l * n + o * r + this.worldY
}
}
,
e.prototype.end = function() {}
,
e.interpolation = new t.PowOut(2),
e
}
)();
t.SwirlEffect = e
}
)(r || (r = {})),
e.exports = r
}
), {}],
371: [(function(t, e) {
"use strict";
var i, n, r, s, a, o, l = t("./track-entry-listeners"), h = t("./lib/spine"), c = [], u = [], _ = 0, f = 0, d = 0, p = null, m = null, y = 0, v = 0, g = 0, A = 0, x = null, b = null, C = 0, T = 0, S = new h.Color(1,1,1,1), w = new h.Color(1,1,1,1), E = [0, 1, 2, 2, 3, 0], M = cc.Class({
ctor: function() {
this._privateMode = !1,
this._inited = !1,
this._invalid = !0,
this._enableCacheAttachedInfo = !1,
this.frames = [],
this.totalTime = 0,
this._frameIdx = -1,
this.isCompleted = !1,
this._skeletonInfo = null,
this._animationName = null,
this._tempSegments = null,
this._tempColors = null,
this._tempBoneInfos = null
},
init: function(t, e) {
this._inited = !0,
this._animationName = e,
this._skeletonInfo = t
},
clear: function() {
this._inited = !1;
for (var t = 0, e = this.frames.length; t < e; t++)
this.frames[t].segments.length = 0;
this.invalidAllFrame()
},
bind: function(t) {
var e = function(t) {
t && t.animation.name === this._animationName && (this.isCompleted = !0)
}
.bind(this);
t.complete = e
},
unbind: function(t) {
t.complete = null
},
begin: function() {
if (this._invalid) {
var t = this._skeletonInfo
, e = t.curAnimationCache;
e && e !== this && (this._privateMode ? e.invalidAllFrame() : e.updateToFrame());
var i = t.skeleton
, n = t.listener
, r = t.state
, s = i.data.findAnimation(this._animationName);
r.setAnimationWith(0, s, !1),
this.bind(n),
t.curAnimationCache = this,
this._frameIdx = -1,
this.isCompleted = !1,
this.totalTime = 0,
this._invalid = !1
}
},
end: function() {
this._needToUpdate() || (this._skeletonInfo.curAnimationCache = null,
this.frames.length = this._frameIdx + 1,
this.isCompleted = !0,
this.unbind(this._skeletonInfo.listener))
},
_needToUpdate: function(t) {
return !this.isCompleted && this.totalTime < 30 && (null == t || this._frameIdx < t)
},
updateToFrame: function(t) {
if (this._inited && (this.begin(),
this._needToUpdate(t))) {
var e = this._skeletonInfo
, i = e.skeleton
, n = e.clipper
, r = e.state;
do {
i.update(1 / 60),
r.update(1 / 60),
r.apply(i),
i.updateWorldTransform(),
this._frameIdx++,
this._updateFrame(i, n, this._frameIdx),
this.totalTime += 1 / 60
} while (this._needToUpdate(t));this.end()
}
},
isInited: function() {
return this._inited
},
isInvalid: function() {
return this._invalid
},
invalidAllFrame: function() {
this.isCompleted = !1,
this._invalid = !0
},
updateAllFrame: function() {
this.invalidAllFrame(),
this.updateToFrame()
},
enableCacheAttachedInfo: function() {
this._enableCacheAttachedInfo || (this._enableCacheAttachedInfo = !0,
this.invalidAllFrame())
},
_updateFrame: function(t, e, i) {
d = 0,
_ = 0,
f = 0,
p = null,
m = null,
y = 0,
v = 0,
g = 0,
A = 0,
x = null,
b = null,
this.frames[i] = this.frames[i] || {
segments: [],
colors: [],
boneInfos: [],
vertices: null,
uintVert: null,
indices: null
};
var n = this.frames[i]
, r = this._tempSegments = n.segments
, s = this._tempColors = n.colors
, a = this._tempBoneInfos = n.boneInfos;
this._traverseSkeleton(t, e),
A > 0 && (s[A - 1].vfOffset = d),
s.length = A,
a.length = _;
var o = g - 1;
if (o >= 0)
if (v > 0) {
var l = r[o];
l.indexCount = v,
l.vfCount = 6 * y,
l.vertexCount = y,
r.length = g
} else
r.length = g - 1;
if (0 != r.length) {
var h = n.vertices
, C = n.uintVert;
(!h || h.length < d) && (h = n.vertices = new Float32Array(d),
C = n.uintVert = new Uint32Array(h.buffer));
for (var T = 0, S = 0; T < d; )
h[T++] = c[S++],
h[T++] = c[S++],
h[T++] = c[S++],
h[T++] = c[S++],
C[T++] = c[S++],
C[T++] = c[S++];
var w = n.indices;
(!w || w.length < f) && (w = n.indices = new Uint16Array(f));
for (var E = 0; E < f; E++)
w[E] = u[E];
n.vertices = h,
n.uintVert = C,
n.indices = w
}
},
fillVertices: function(t, e, l, h, _) {
if (s = l.a * e.a * t.a * 255,
i = e.r * t.r * 255,
n = e.g * t.g * 255,
r = e.b * t.b * 255,
S.r = i * l.r,
S.g = n * l.g,
S.b = r * l.b,
S.a = s,
null == _.darkColor ? w.set(0, 0, 0, 1) : (w.r = _.darkColor.r * i,
w.g = _.darkColor.g * n,
w.b = _.darkColor.b * r),
w.a = 0,
a = (S.a << 24 >>> 0) + (S.b << 16) + (S.g << 8) + S.r,
o = (w.a << 24 >>> 0) + (w.b << 16) + (w.g << 8) + w.r,
x !== a || b !== o) {
var p = this._tempColors;
x = a,
b = o,
A > 0 && (p[A - 1].vfOffset = d),
p[A++] = {
fr: S.r,
fg: S.g,
fb: S.b,
fa: S.a,
dr: w.r,
dg: w.g,
db: w.b,
da: w.a,
vfOffset: 0
}
}
if (h.isClipping()) {
h.clipTriangles(c, C, u, T, c, S, w, !0, 6, f, d, d + 2);
var m = h.clippedVertices
, y = h.clippedTriangles;
T = y.length,
C = m.length / 12 * 6;
for (var v = 0, g = f, E = y.length; v < E; )
u[g++] = y[v++];
for (var M = 0, D = m.length, B = d; M < D; M += 12,
B += 6)
c[B] = m[M],
c[B + 1] = m[M + 1],
c[B + 2] = m[M + 6],
c[B + 3] = m[M + 7],
c[B + 4] = a,
c[B + 5] = o
} else
for (var I = d, P = d + C; I < P; I += 6)
c[I + 4] = a,
c[I + 5] = o
},
_traverseSkeleton: function(t, e) {
var i, n, r, s, a, o, l, A, x, b, S, w, M = this._tempSegments, D = this._tempBoneInfos, B = t.color, I = t.bones;
if (this._enableCacheAttachedInfo)
for (var P = 0, R = I.length; P < R; P++,
_++) {
var O = I[P]
, L = D[_];
L || (L = D[_] = {}),
L.a = O.a,
L.b = O.b,
L.c = O.c,
L.d = O.d,
L.worldX = O.worldX,
L.worldY = O.worldY
}
for (var F = 0, V = t.drawOrder.length; F < V; F++)
if (w = t.drawOrder[F],
C = 0,
T = 0,
i = w.getAttachment())
if (o = i instanceof h.RegionAttachment,
l = i instanceof h.MeshAttachment,
i instanceof h.ClippingAttachment)
e.clipStart(w, i);
else if (o || l)
if (A = i.region.texture._texture)
if (S = w.data.blendMode,
p === A.nativeUrl && m === S || (p = A.nativeUrl,
m = S,
(x = g - 1) >= 0 && (v > 0 ? ((b = M[x]).indexCount = v,
b.vertexCount = y,
b.vfCount = 6 * y) : g--),
M[g] = {
tex: A,
blendMode: S,
indexCount: 0,
vertexCount: 0,
vfCount: 0
},
g++,
v = 0,
y = 0),
o ? (a = E,
C = 24,
T = 6,
i.computeWorldVertices(w.bone, c, d, 6)) : l && (a = i.triangles,
C = 6 * (i.worldVerticesLength >> 1),
T = a.length,
i.computeWorldVertices(w, 0, i.worldVerticesLength, c, d, 6)),
0 != C && 0 != T) {
for (var N = 0, k = f, G = a.length; N < G; )
u[k++] = a[N++];
s = i.uvs;
for (var U = d, z = d + C, H = 0; U < z; U += 6,
H += 2)
c[U + 2] = s[H],
c[U + 3] = s[H + 1];
if (n = i.color,
r = w.color,
this.fillVertices(B, n, r, e, w),
T > 0) {
for (var W = f, j = f + T; W < j; W++)
u[W] += y;
f += T,
d += C,
v += T,
y += C / 6
}
e.clipEndWithSlot(w)
} else
e.clipEndWithSlot(w);
else
e.clipEndWithSlot(w);
else
e.clipEndWithSlot(w);
else
e.clipEndWithSlot(w);
e.clipEnd()
}
}), D = cc.Class({
ctor: function() {
this._privateMode = !1,
this._animationPool = {},
this._skeletonCache = {}
},
enablePrivateMode: function() {
this._privateMode = !0
},
clear: function() {
this._animationPool = {},
this._skeletonCache = {}
},
removeSkeleton: function(t) {
var e = this._skeletonCache[t];
if (e) {
var i = e.animationsCache;
for (var n in i) {
var r = i[n];
r && (this._animationPool[t + "#" + n] = r,
r.clear())
}
delete this._skeletonCache[t]
}
},
getSkeletonCache: function(t, e) {
var i = this._skeletonCache[t];
if (!i) {
var n = new h.Skeleton(e)
, r = new h.SkeletonClipping
, s = new h.AnimationStateData(n.data)
, a = new h.AnimationState(s)
, o = new l;
a.addListener(o),
this._skeletonCache[t] = i = {
skeleton: n,
clipper: r,
state: a,
listener: o,
animationsCache: {},
curAnimationCache: null
}
}
return i
},
getAnimationCache: function(t, e) {
var i = this._skeletonCache[t];
return i ? i.animationsCache[e] : null
},
invalidAnimationCache: function(t) {
var e = this._skeletonCache[t];
if (e && e.skeleton) {
var i = e.animationsCache;
for (var n in i)
i[n].invalidAllFrame()
}
},
initAnimationCache: function(t, e) {
if (!e)
return null;
var i = this._skeletonCache[t]
, n = i && i.skeleton;
if (!n)
return null;
if (!n.data.findAnimation(e))
return null;
var r = i.animationsCache
, s = r[e];
if (!s) {
var a = t + "#" + e;
(s = this._animationPool[a]) ? delete this._animationPool[a] : (s = new M)._privateMode = this._privateMode,
s.init(i, e),
r[e] = s
}
return s
},
updateAnimationCache: function(t, e) {
if (e) {
var i = this.initAnimationCache(t, e);
if (!i)
return null;
i.updateAllFrame()
} else {
var n = this._skeletonCache[t];
if (!n || !n.skeleton)
return;
var r = n.animationsCache;
for (var s in r)
r[s].updateAllFrame()
}
}
});
D.FrameTime = 1 / 60,
D.sharedCache = new D,
e.exports = D
}
), {
"./lib/spine": 370,
"./track-entry-listeners": 375
}],
372: [(function(t, e) {
"use strict";
var i = t("./skeleton-cache").sharedCache
, n = cc.Class({
name: "sp.SkeletonData",
extends: cc.Asset,
ctor: function() {
this.reset()
},
properties: {
_skeletonJson: null,
skeletonJsonStr: {
get: function() {
return this._skeletonJson ? JSON.stringify(this._skeletonJson) : ""
}
},
skeletonJson: {
get: function() {
return this._skeletonJson
},
set: function(t) {
this.reset(),
this._skeletonJson = "string" == typeof t ? JSON.parse(t) : t,
!this._uuid && t.skeleton && (this._uuid = t.skeleton.hash)
}
},
_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,
_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._skeletonCache = null,
this._atlasCache = null
},
ensureTexturesLoaded: function(t, e) {
var i = this.textures
, n = i.length;
if (0 != n)
for (var r = 0, s = function() {
++r >= n && (t && t.call(e, !0),
t = null)
}, a = 0; a < n; a++) {
var o = i[a];
o.loaded ? s() : o.once("load", s)
}
else
t.call(e, !1)
},
isTexturesLoaded: function() {
for (var t = this.textures, e = t.length, i = 0; i < e; i++)
if (!t[i].loaded)
return !1;
return !0
},
getRuntimeData: function(t) {
if (this._skeletonCache)
return this._skeletonCache;
if (!(this.textures && this.textures.length > 0) && this.textureNames && this.textureNames.length > 0)
return t || cc.errorID(7507, this.name),
null;
var e = this._getAtlas(t);
if (!e)
return null;
var i = new sp.spine.AtlasAttachmentLoader(e)
, n = null
, r = null;
return this.skeletonJson ? (r = new sp.spine.SkeletonJson(i),
n = this.skeletonJson) : (r = new sp.spine.SkeletonBinary(i),
n = new Uint8Array(this._nativeAsset)),
r.scale = this.scale,
this._skeletonCache = r.readSkeletonData(n),
e.dispose(),
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
});
return r.setRealTexture(n),
r
}
return cc.errorID(7506, t),
null
},
_getAtlas: function(t) {
return this._atlasCache ? this._atlasCache : this.atlasText ? this._atlasCache = new sp.spine.TextureAtlas(this.atlasText,this._getTexture.bind(this)) : (t || cc.errorID(7508, this.name),
null)
},
destroy: function() {
i.removeSkeleton(this._uuid),
this._super()
}
});
sp.SkeletonData = e.exports = n
}
), {
"./skeleton-cache": 371
}],
373: [(function() {
"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() {}
})
}
), {}],
374: [(function(t, e, i) {
"use strict";
i.__esModule = !0,
i.default = void 0;
var n, r = (n = t("../../cocos2d/core/renderer/assembler")) && n.__esModule ? n : {
default: n
};
function s(t, e) {
return (s = Object.setPrototypeOf || function(t, e) {
return t.__proto__ = e,
t
}
)(t, e)
}
var a, o, l, h, c, u, _, f, d, p, m, y, v, g, A, x, b, C = t("./Skeleton"), T = t("./lib/spine"), S = t("../../cocos2d/core/renderer/render-flow"), w = t("../../cocos2d/core/renderer/webgl/vertex-format"), E = w.vfmtPosUvColor, M = w.vfmtPosUvTwoColor, D = cc.gfx, B = 0, I = [0, 1, 2, 2, 3, 0], P = cc.color(0, 0, 255, 255), R = cc.color(255, 0, 0, 255), O = cc.color(0, 255, 0, 255), L = cc.color(255, 255, 0, 255), F = null, V = null, N = null, k = null;
F = new T.Color(1,1,1,1),
V = new T.Color(1,1,1,1),
N = new T.Vector2,
k = new T.Vector2;
var G, U, z, H, W, j, X, Y, q, J, Z, K, Q, $, tt, et, it, nt, rt, st, at, ot, lt, ht, ct, ut, _t, ft, dt, pt = 0, mt = 0, yt = 0, vt = 0, gt = 0, At = 0, xt = 0;
function bt(t, e) {
var i, n;
switch (e) {
case T.BlendMode.Additive:
i = a ? cc.macro.ONE : cc.macro.SRC_ALPHA,
n = cc.macro.ONE;
break;
case T.BlendMode.Multiply:
i = cc.macro.DST_COLOR,
n = cc.macro.ONE_MINUS_SRC_ALPHA;
break;
case T.BlendMode.Screen:
i = cc.macro.ONE,
n = cc.macro.ONE_MINUS_SRC_COLOR;
break;
case T.BlendMode.Normal:
default:
i = a ? cc.macro.ONE : cc.macro.SRC_ALPHA,
n = cc.macro.ONE_MINUS_SRC_ALPHA
}
var r = !ht.enableBatch
, s = ht._materials[0];
if (!s)
return null;
var o = t.getId() + i + n + c + r
, l = ht._materialCache
, h = l[o];
return h || (l.baseMaterial ? h = cc.MaterialVariant.create(s) : (h = s,
l.baseMaterial = s),
h.define("CC_USE_MODEL", r),
h.define("USE_TINT", c),
h.setProperty("texture", t),
h.setBlend(!0, D.BLEND_FUNC_ADD, i, n, D.BLEND_FUNC_ADD, i, n),
l[o] = h),
h
}
function Ct(t) {
st = t.fa * y,
$ = d * (o = a ? st / 255 : 1),
tt = p * o,
et = m * o,
it = t.fr * $,
nt = t.fg * tt,
rt = t.fb * et,
v = (st << 24 >>> 0) + (rt << 16) + (nt << 8) + it,
at = t.dr * $,
ot = t.dg * tt,
lt = t.db * et,
g = ((a ? 255 : 0) << 24 >>> 0) + (lt << 16) + (ot << 8) + at
}
function Tt(t) {
return (t.a << 24 >>> 0) + (t.b << 16) + (t.g << 8) + t.r
}
var St = (function(t) {
var e, i;
function n() {
return t.apply(this, arguments) || this
}
i = t,
(e = n).prototype = Object.create(i.prototype),
e.prototype.constructor = e,
s(e, i);
var r = n.prototype;
return r.updateRenderData = function(t) {
if (!t.isAnimationCached()) {
var e = t._skeleton;
e && e.updateWorldTransform()
}
}
,
r.fillVertices = function(t, e, i, n, r) {
var s, l = ct._vData, h = ct._iData, u = ct._uintVData;
if (F.a = i.a * e.a * t.a * y * 255,
o = a ? F.a : 255,
G = d * e.r * t.r * o,
U = p * e.g * t.g * o,
z = m * e.b * t.b * o,
F.r = G * i.r,
F.g = U * i.g,
F.b = z * i.b,
null == r.darkColor ? V.set(0, 0, 0, 1) : (V.r = r.darkColor.r * G,
V.g = r.darkColor.g * U,
V.b = r.darkColor.b * z),
V.a = a ? 255 : 0,
n.isClipping()) {
var _ = l.subarray(yt + 2);
n.clipTriangles(l.subarray(yt), pt, h.subarray(At), gt, _, F, V, c, x);
var f = new Float32Array(n.clippedVertices)
, A = n.clippedTriangles;
if (gt = A.length,
pt = f.length / b * x,
s = ct.request(pt / x, gt),
At = s.indiceOffset,
vt = s.vertexOffset,
yt = s.byteOffset >> 2,
l = ct._vData,
h = ct._iData,
u = ct._uintVData,
h.set(A, At),
dt)
for (var C = 0, T = f.length, S = yt; C < T; C += b,
S += x)
N.x = f[C],
N.y = f[C + 1],
F.set(f[C + 2], f[C + 3], f[C + 4], f[C + 5]),
k.x = f[C + 6],
k.y = f[C + 7],
c ? V.set(f[C + 8], f[C + 9], f[C + 10], f[C + 11]) : V.set(0, 0, 0, 0),
dt.transform(N, k, F, V),
l[S] = N.x,
l[S + 1] = N.y,
l[S + 2] = k.x,
l[S + 3] = k.y,
u[S + 4] = Tt(F),
c && (u[S + 5] = Tt(V));
else
for (var w = 0, E = f.length, M = yt; w < E; w += b,
M += x)
l[M] = f[w],
l[M + 1] = f[w + 1],
l[M + 2] = f[w + 6],
l[M + 3] = f[w + 7],
v = (f[w + 5] << 24 >>> 0) + (f[w + 4] << 16) + (f[w + 3] << 8) + f[w + 2],
u[M + 4] = v,
c && (g = (f[w + 11] << 24 >>> 0) + (f[w + 10] << 16) + (f[w + 9] << 8) + f[w + 8],
u[M + 5] = g)
} else if (dt)
for (var D = yt, B = yt + pt; D < B; D += x)
N.x = l[D],
N.y = l[D + 1],
k.x = l[D + 2],
k.y = l[D + 3],
dt.transform(N, k, F, V),
l[D] = N.x,
l[D + 1] = N.y,
l[D + 2] = k.x,
l[D + 3] = k.y,
u[D + 4] = Tt(F),
c && (u[D + 5] = Tt(V));
else {
v = Tt(F),
g = Tt(V);
for (var I = yt, P = yt + pt; I < P; I += x)
u[I + 4] = v,
c && (u[I + 5] = g)
}
}
,
r.realTimeTraverse = function(t) {
var e, i, n, r, s, a, o, d, p, m, y, v, g = ht._skeleton, A = g.color, C = ht._debugRenderer, S = ht._clipper, w = null;
l = ht._startSlotIndex,
h = ht._endSlotIndex,
H = !1,
-1 == l && (H = !0),
u = ht.debugSlots,
_ = ht.debugBones,
f = ht.debugMesh,
C && (_ || u || f) && (C.clear(),
C.lineWidth = 2),
b = c ? 12 : 8,
pt = 0,
yt = 0,
vt = 0,
gt = 0,
At = 0;
for (var E = 0, M = g.drawOrder.length; E < M; E++)
if (null != (y = g.drawOrder[E]))
if (l >= 0 && l == y.data.index && (H = !0),
H)
if (h >= 0 && h == y.data.index && (H = !1),
pt = 0,
gt = 0,
n = y.getAttachment())
if (d = n instanceof T.RegionAttachment,
p = n instanceof T.MeshAttachment,
n instanceof T.ClippingAttachment)
S.clipStart(y, n);
else if (d || p)
if (w = bt(n.region.texture._texture, y.data.blendMode)) {
if ((W || w.getHash() !== ut.material.getHash()) && (W = !1,
ut._flush(),
ut.node = _t,
ut.material = w),
d) {
if (o = I,
pt = 4 * x,
gt = 6,
m = ct.request(4, 6),
At = m.indiceOffset,
vt = m.vertexOffset,
yt = m.byteOffset >> 2,
e = ct._vData,
i = ct._iData,
n.computeWorldVertices(y.bone, e, yt, x),
C && u) {
C.strokeColor = P,
C.moveTo(e[yt], e[yt + 1]);
for (var D = yt + x, B = yt + pt; D < B; D += x)
C.lineTo(e[D], e[D + 1]);
C.close(),
C.stroke()
}
} else if (p && (o = n.triangles,
pt = (n.worldVerticesLength >> 1) * x,
gt = o.length,
m = ct.request(pt / x, gt),
At = m.indiceOffset,
vt = m.vertexOffset,
yt = m.byteOffset >> 2,
e = ct._vData,
i = ct._iData,
n.computeWorldVertices(y, 0, n.worldVerticesLength, e, yt, x),
C && f)) {
C.strokeColor = L;
for (var F = 0, V = o.length; F < V; F += 3) {
var N = o[F] * x + yt
, k = o[F + 1] * x + yt
, G = o[F + 2] * x + yt;
C.moveTo(e[N], e[N + 1]),
C.lineTo(e[k], e[k + 1]),
C.lineTo(e[G], e[G + 1]),
C.close(),
C.stroke()
}
}
if (0 != pt && 0 != gt) {
i.set(o, At),
a = n.uvs;
for (var U = yt, z = yt + pt, $ = 0; U < z; U += x,
$ += 2)
e[U + 2] = a[$],
e[U + 3] = a[$ + 1];
if (r = n.color,
s = y.color,
this.fillVertices(A, r, s, S, y),
e = ct._vData,
i = ct._iData,
gt > 0) {
for (var tt = At, et = At + gt; tt < et; tt++)
i[tt] += vt;
if (t) {
v = t.m,
Y = v[0],
q = v[4],
J = v[12],
Z = v[1],
K = v[5],
Q = v[13];
for (var it = yt, nt = yt + pt; it < nt; it += x)
j = e[it],
X = e[it + 1],
e[it] = j * Y + X * q + J,
e[it + 1] = j * Z + X * K + Q
}
ct.adjust(pt / x, gt)
}
S.clipEndWithSlot(y)
} else
S.clipEndWithSlot(y)
} else
S.clipEndWithSlot(y);
else
S.clipEndWithSlot(y);
else
S.clipEndWithSlot(y);
else
S.clipEndWithSlot(y);
if (S.clipEnd(),
C && _) {
var rt;
C.strokeColor = R,
C.fillColor = P;
for (var st = 0, at = g.bones.length; st < at; st++) {
var ot = (rt = g.bones[st]).data.length * rt.a + rt.worldX
, lt = rt.data.length * rt.c + rt.worldY;
C.moveTo(rt.worldX, rt.worldY),
C.lineTo(ot, lt),
C.stroke(),
C.circle(rt.worldX, rt.worldY, 1.5 * Math.PI),
C.fill(),
0 === st && (C.fillColor = O)
}
}
}
,
r.cacheTraverse = function(t) {
var e = ht._curFrame;
if (e) {
var i = e.segments;
if (0 != i.length) {
var n, r, s, a, o, l, h = e.vertices, c = e.indices, u = 0, _ = 0, f = 0;
t && (l = t.m,
Y = l[0],
Z = l[1],
q = l[4],
K = l[5],
J = l[12],
Q = l[13]);
var d = 16 & B
, p = d && 1 === Y && 0 === Z && 0 === q && 1 === K
, m = 0
, y = e.colors
, A = y[m++]
, x = A.vfOffset;
Ct(A);
for (var b = 0, C = i.length; b < C; b++) {
var T = i[b];
if (a = bt(T.tex, T.blendMode)) {
(W || a.getHash() !== ut.material.getHash()) && (W = !1,
ut._flush(),
ut.node = _t,
ut.material = a),
mt = T.vertexCount,
gt = T.indexCount,
o = ct.request(mt, gt),
At = o.indiceOffset,
vt = o.vertexOffset,
xt = o.byteOffset >> 2,
n = ct._vData,
r = ct._iData,
s = ct._uintVData;
for (var S = At, w = At + gt; S < w; S++)
r[S] = vt + c[_++];
if (f = T.vfCount,
n.set(h.subarray(u, u + f), xt),
u += f,
p)
for (var E = xt, M = xt + f; E < M; E += 6)
n[E] += J,
n[E + 1] += Q;
else if (d)
for (var D = xt, I = xt + f; D < I; D += 6)
j = n[D],
X = n[D + 1],
n[D] = j * Y + X * q + J,
n[D + 1] = j * Z + X * K + Q;
if (ct.adjust(mt, gt),
ft)
for (var P = u - f, R = xt + 4, O = xt + 4 + f; R < O; R += 6,
P += 6)
P >= x && (Ct(A = y[m++]),
x = A.vfOffset),
s[R] = v,
s[R + 1] = g
}
}
}
}
}
,
r.fillBuffers = function(t, e) {
var i = t.node;
if (i._renderFlag |= S.FLAG_UPDATE_RENDER_DATA,
t._skeleton) {
var n = i._color;
d = n.r / 255,
p = n.g / 255,
m = n.b / 255,
y = n.a / 255,
c = t.useTint || t.isAnimationCached(),
A = c ? M : E,
x = c ? 6 : 5,
_t = t.node,
ct = e.getBuffer("spine", A),
ut = e,
ht = t,
W = !0,
a = t.premultipliedAlpha,
o = 1,
B = 0,
ft = !1,
dt = t._effectDelegate && t._effectDelegate._vertexEffect,
(4294967295 !== n._val || a) && (ft = !0),
c && (B |= 1);
var r = void 0;
ht.enableBatch && (r = _t._worldMatrix,
W = !1,
B |= 16),
t.isAnimationCached() ? this.cacheTraverse(r) : (dt && dt.begin(t._skeleton),
this.realTimeTraverse(r),
dt && dt.end()),
e.worldMatDirty++,
t.attachUtil._syncAttachedNode(),
_t = void 0,
ct = void 0,
ut = void 0,
ht = void 0,
dt = null
}
}
,
r.postFillBuffers = function(t, e) {
e.worldMatDirty--
}
,
n
}
)(r.default);
i.default = St,
r.default.register(C, St),
e.exports = i.default
}
), {
"../../cocos2d/core/renderer/assembler": 221,
"../../cocos2d/core/renderer/render-flow": 225,
"../../cocos2d/core/renderer/webgl/vertex-format": 256,
"./Skeleton": 368,
"./lib/spine": 370
}],
375: [(function(t, e) {
"use strict";
var i = function() {
this.start = null,
this.end = null,
this.complete = null,
this.event = null,
this.interrupt = null,
this.dispose = null
};
i.getListeners = function(t) {
return t.listener || (t.listener = new i),
t.listener
}
,
e.exports = i
}
), {}],
376: [(function(t, e) {
"use strict";
var i = t("./lib/spine");
sp.VertexEffectDelegate = cc.Class({
name: "sp.VertexEffectDelegate",
ctor: function() {
this._vertexEffect = null,
this._interpolation = null,
this._effectType = "none"
},
clear: function() {
this._vertexEffect = null,
this._interpolation = null,
this._effectType = "none"
},
initJitter: function(t, e) {
return this._effectType = "jitter",
this._vertexEffect = new i.JitterEffect(t,e),
this._vertexEffect
},
initSwirlWithPow: function(t, e) {
return this._interpolation = new i.Pow(e),
this._vertexEffect = new i.SwirlEffect(t,this._interpolation),
this._vertexEffect
},
initSwirlWithPowOut: function(t, e) {
return this._interpolation = new i.PowOut(e),
this._vertexEffect = new i.SwirlEffect(t,this._interpolation),
this._vertexEffect
},
getJitterVertexEffect: function() {
return this._vertexEffect
},
getSwirlVertexEffect: function() {
return this._vertexEffect
},
getVertexEffect: function() {
return this._vertexEffect
},
getEffectType: function() {
return this._effectType
}
}),
e.exports = sp.VertexEffectDelegate
}
), {
"./lib/spine": 370
}],
377: [(function(t, e, i) {
"use strict";
var n;
n = function(t) {
function e(t, e) {
return void 0 !== t ? t : e
}
var i = 1e37
, n = 1e-5
, r = n * n
, s = 3.14159265359
, a = 2
, o = 8
, l = .008
, h = 2 / 180 * s
, c = 2 * l
, u = -1
, _ = (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
}
return t.prototype.toString = function() {
return this.major + "." + this.minor + "." + this.revision
}
,
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 p(t, e) {
void 0 === e && (e = 0);
for (var i = [], n = 0; n < t; ++n)
i.push(e);
return i
}
var m = Math.abs
, y = Math.min
, v = Math.max;
function g(t, e, i) {
return t < e ? e : t > i ? i : t
}
var A = isFinite;
function x(t) {
return t * t
}
function b(t) {
return 1 / Math.sqrt(t)
}
var C, T = Math.sqrt, S = Math.pow, w = Math.cos, E = Math.sin, M = Math.acos, D = Math.asin, B = Math.atan2, I = (function() {
function t(t, e) {
void 0 === t && (t = 0),
void 0 === e && (e = 0),
this.x = t,
this.y = e
}
return t.prototype.Clone = function() {
return new t(this.x,this.y)
}
,
t.prototype.SetZero = function() {
return this.x = 0,
this.y = 0,
this
}
,
t.prototype.Set = function(t, e) {
return this.x = t,
this.y = e,
this
}
,
t.prototype.Copy = function(t) {
return this.x = t.x,
this.y = t.y,
this
}
,
t.prototype.SelfAdd = function(t) {
return this.x += t.x,
this.y += t.y,
this
}
,
t.prototype.SelfAddXY = function(t, e) {
return this.x += t,
this.y += e,
this
}
,
t.prototype.SelfSub = function(t) {
return this.x -= t.x,
this.y -= t.y,
this
}
,
t.prototype.SelfSubXY = function(t, e) {
return this.x -= t,
this.y -= e,
this
}
,
t.prototype.SelfMul = function(t) {
return this.x *= t,
this.y *= t,
this
}
,
t.prototype.SelfMulAdd = function(t, e) {
return this.x += t * e.x,
this.y += t * e.y,
this
}
,
t.prototype.SelfMulSub = function(t, e) {
return this.x -= t * e.x,
this.y -= t * e.y,
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;
return this.x = e * n - i * this.y,
this.y = i * n + e * this.y,
this
}
,
t.prototype.IsValid = function() {
return isFinite(this.x) && isFinite(this.y)
}
,
t.prototype.SelfCrossVS = function(t) {
var e = this.x;
return this.x = t * this.y,
this.y = -t * e,
this
}
,
t.prototype.SelfCrossSV = function(t) {
var e = this.x;
return this.x = -t * this.y,
this.y = t * e,
this
}
,
t.prototype.SelfMinV = function(t) {
return this.x = y(this.x, t.x),
this.y = y(this.y, t.y),
this
}
,
t.prototype.SelfMaxV = function(t) {
return this.x = v(this.x, t.x),
this.y = v(this.y, t.y),
this
}
,
t.prototype.SelfAbs = function() {
return this.x = m(this.x),
this.y = m(this.y),
this
}
,
t.prototype.SelfNeg = function() {
return this.x = -this.x,
this.y = -this.y,
this
}
,
t.prototype.SelfSkew = function() {
var t = this.x;
return this.x = -this.y,
this.y = t,
this
}
,
t.MakeArray = function(e) {
return d(e, (function() {
return new t
}
))
}
,
t.AbsV = function(t, e) {
return e.x = m(t.x),
e.y = m(t.y),
e
}
,
t.MinV = function(t, e, i) {
return i.x = y(t.x, e.x),
i.y = y(t.y, e.y),
i
}
,
t.MaxV = function(t, e, i) {
return i.x = v(t.x, e.x),
i.y = v(t.y, e.y),
i
}
,
t.ClampV = function(t, e, i, n) {
return n.x = g(t.x, e.x, i.x),
n.y = g(t.y, e.y, i.y),
n
}
,
t.RotateV = function(t, e, i) {
var n = t.x
, r = t.y
, s = Math.cos(e)
, a = Math.sin(e);
return i.x = s * n - a * r,
i.y = a * n + s * r,
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;
return i.x = e * t.y,
i.y = -e * n,
i
}
,
t.CrossVOne = function(t, e) {
var i = t.x;
return e.x = t.y,
e.y = -i,
e
}
,
t.CrossSV = function(t, e, i) {
var n = e.x;
return i.x = -t * e.y,
i.y = t * n,
i
}
,
t.CrossOneV = function(t, e) {
var i = t.x;
return e.x = -t.y,
e.y = i,
e
}
,
t.AddVV = function(t, e, i) {
return i.x = t.x + e.x,
i.y = t.y + e.y,
i
}
,
t.SubVV = function(t, e, i) {
return i.x = t.x - e.x,
i.y = t.y - e.y,
i
}
,
t.MulSV = function(t, e, i) {
return i.x = e.x * t,
i.y = e.y * t,
i
}
,
t.MulVS = function(t, e, i) {
return i.x = t.x * e,
i.y = t.y * e,
i
}
,
t.AddVMulSV = function(t, e, i, n) {
return n.x = t.x + e * i.x,
n.y = t.y + e * i.y,
n
}
,
t.SubVMulSV = function(t, e, i, n) {
return n.x = t.x - e * i.x,
n.y = t.y - e * i.y,
n
}
,
t.AddVCrossSV = function(t, e, i, n) {
var r = i.x;
return n.x = t.x - e * i.y,
n.y = t.y + e * r,
n
}
,
t.MidVV = function(t, e, i) {
return i.x = .5 * (t.x + e.x),
i.y = .5 * (t.y + e.y),
i
}
,
t.ExtVV = function(t, e, i) {
return i.x = .5 * (e.x - t.x),
i.y = .5 * (e.y - t.y),
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) {
return e.x = -t.x,
e.y = -t.y,
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,
t
}
)(), P = new I(0,0), R = (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
}
return t.prototype.Clone = function() {
return new t(this.x,this.y,this.z)
}
,
t.prototype.SetZero = function() {
return this.x = 0,
this.y = 0,
this.z = 0,
this
}
,
t.prototype.SetXYZ = function(t, e, i) {
return this.x = t,
this.y = e,
this.z = i,
this
}
,
t.prototype.Copy = function(t) {
return this.x = t.x,
this.y = t.y,
this.z = t.z,
this
}
,
t.prototype.SelfNeg = function() {
return this.x = -this.x,
this.y = -this.y,
this.z = -this.z,
this
}
,
t.prototype.SelfAdd = function(t) {
return this.x += t.x,
this.y += t.y,
this.z += t.z,
this
}
,
t.prototype.SelfAddXYZ = function(t, e, i) {
return this.x += t,
this.y += e,
this.z += i,
this
}
,
t.prototype.SelfSub = function(t) {
return this.x -= t.x,
this.y -= t.y,
this.z -= t.z,
this
}
,
t.prototype.SelfSubXYZ = function(t, e, i) {
return this.x -= t,
this.y -= e,
this.z -= i,
this
}
,
t.prototype.SelfMul = function(t) {
return this.x *= t,
this.y *= t,
this.z *= t,
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
, a = e.x
, o = e.y
, l = e.z;
return i.x = r * l - s * o,
i.y = s * a - n * l,
i.z = n * o - r * a,
i
}
,
t.ZERO = new t(0,0,0),
t.s_t0 = new t,
t
}
)(), O = (function() {
function t() {
this.ex = new I(1,0),
this.ey = new I(0,1)
}
return 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) {
return this.ex.Set(t, i),
this.ey.Set(e, n),
this
}
,
t.prototype.SetVV = function(t, e) {
return this.ex.Copy(t),
this.ey.Copy(e),
this
}
,
t.prototype.SetAngle = function(t) {
var e = Math.cos(t)
, i = Math.sin(t);
return this.ex.Set(e, i),
this.ey.Set(-i, e),
this
}
,
t.prototype.Copy = function(t) {
return this.ex.Copy(t.ex),
this.ey.Copy(t.ey),
this
}
,
t.prototype.SetIdentity = function() {
return this.ex.Set(1, 0),
this.ey.Set(0, 1),
this
}
,
t.prototype.SetZero = function() {
return this.ex.SetZero(),
this.ey.SetZero(),
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;
return 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,
t
}
,
t.prototype.Solve = function(t, e, i) {
var n = this.ex.x
, r = this.ey.x
, s = this.ex.y
, a = this.ey.y
, o = n * a - r * s;
return 0 !== o && (o = 1 / o),
i.x = o * (a * t - r * e),
i.y = o * (n * e - s * t),
i
}
,
t.prototype.SelfAbs = function() {
return this.ex.SelfAbs(),
this.ey.SelfAbs(),
this
}
,
t.prototype.SelfInv = function() {
return this.GetInverse(this),
this
}
,
t.prototype.SelfAddM = function(t) {
return this.ex.SelfAdd(t.ex),
this.ey.SelfAdd(t.ey),
this
}
,
t.prototype.SelfSubM = function(t) {
return this.ex.SelfSub(t.ex),
this.ey.SelfSub(t.ey),
this
}
,
t.AbsM = function(t, e) {
var i = t.ex
, n = t.ey;
return e.ex.x = m(i.x),
e.ex.y = m(i.y),
e.ey.x = m(n.x),
e.ey.y = m(n.y),
e
}
,
t.MulMV = function(t, e, i) {
var n = t.ex
, r = t.ey
, s = e.x
, a = e.y;
return i.x = n.x * s + r.x * a,
i.y = n.y * s + r.y * a,
i
}
,
t.MulTMV = function(t, e, i) {
var n = t.ex
, r = t.ey
, s = e.x
, a = e.y;
return i.x = n.x * s + n.y * a,
i.y = r.x * s + r.y * a,
i
}
,
t.AddMM = function(t, e, i) {
var n = t.ex
, r = t.ey
, s = e.ex
, a = e.ey;
return i.ex.x = n.x + s.x,
i.ex.y = n.y + s.y,
i.ey.x = r.x + a.x,
i.ey.y = r.y + a.y,
i
}
,
t.MulMM = function(t, e, i) {
var n = t.ex.x
, r = t.ex.y
, s = t.ey.x
, a = t.ey.y
, o = e.ex.x
, l = e.ex.y
, h = e.ey.x
, c = e.ey.y;
return i.ex.x = n * o + s * l,
i.ex.y = r * o + a * l,
i.ey.x = n * h + s * c,
i.ey.y = r * h + a * c,
i
}
,
t.MulTMM = function(t, e, i) {
var n = t.ex.x
, r = t.ex.y
, s = t.ey.x
, a = t.ey.y
, o = e.ex.x
, l = e.ex.y
, h = e.ey.x
, c = e.ey.y;
return i.ex.x = n * o + r * l,
i.ex.y = s * o + a * l,
i.ey.x = n * h + r * c,
i.ey.y = s * h + a * c,
i
}
,
t.IDENTITY = new t,
t
}
)(), L = (function() {
function t() {
this.ex = new R(1,0,0),
this.ey = new R(0,1,0),
this.ez = new R(0,0,1)
}
return t.prototype.Clone = function() {
return (new t).Copy(this)
}
,
t.prototype.SetVVV = function(t, e, i) {
return this.ex.Copy(t),
this.ey.Copy(e),
this.ez.Copy(i),
this
}
,
t.prototype.Copy = function(t) {
return this.ex.Copy(t.ex),
this.ey.Copy(t.ey),
this.ez.Copy(t.ez),
this
}
,
t.prototype.SetIdentity = function() {
return this.ex.SetXYZ(1, 0, 0),
this.ey.SetXYZ(0, 1, 0),
this.ez.SetXYZ(0, 0, 1),
this
}
,
t.prototype.SetZero = function() {
return this.ex.SetZero(),
this.ey.SetZero(),
this.ez.SetZero(),
this
}
,
t.prototype.SelfAddM = function(t) {
return this.ex.SelfAdd(t.ex),
this.ey.SelfAdd(t.ey),
this.ez.SelfAdd(t.ez),
this
}
,
t.prototype.Solve33 = function(t, e, i, n) {
var r = this.ex.x
, s = this.ex.y
, a = this.ex.z
, o = this.ey.x
, l = this.ey.y
, h = this.ey.z
, c = this.ez.x
, u = this.ez.y
, _ = this.ez.z
, f = r * (l * _ - h * u) + s * (h * c - o * _) + a * (o * u - l * c);
return 0 !== f && (f = 1 / f),
n.x = f * (t * (l * _ - h * u) + e * (h * c - o * _) + i * (o * u - l * c)),
n.y = f * (r * (e * _ - i * u) + s * (i * c - t * _) + a * (t * u - e * c)),
n.z = f * (r * (l * i - h * e) + s * (h * t - o * i) + a * (o * e - l * t)),
n
}
,
t.prototype.Solve22 = function(t, e, i) {
var n = this.ex.x
, r = this.ey.x
, s = this.ex.y
, a = this.ey.y
, o = n * a - r * s;
return 0 !== o && (o = 1 / o),
i.x = o * (a * t - r * e),
i.y = o * (n * e - s * t),
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 = R.DotV3V3(this.ex, R.CrossV3V3(this.ey, this.ez, R.s_t0));
0 !== e && (e = 1 / e);
var i = this.ex.x
, n = this.ey.x
, r = this.ez.x
, s = this.ey.y
, a = this.ez.y
, o = this.ez.z;
t.ex.x = e * (s * o - a * a),
t.ex.y = e * (r * a - n * o),
t.ex.z = e * (n * a - r * s),
t.ey.x = t.ex.y,
t.ey.y = e * (i * o - r * r),
t.ey.z = e * (r * n - i * a),
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;
return 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,
i
}
,
t.MulM33XYZ = function(t, e, i, n, r) {
return 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,
r
}
,
t.MulM33V2 = function(t, e, i) {
var n = e.x
, r = e.y;
return i.x = t.ex.x * n + t.ey.x * r,
i.y = t.ex.y * n + t.ey.y * r,
i
}
,
t.MulM33XY = function(t, e, i, n) {
return n.x = t.ex.x * e + t.ey.x * i,
n.y = t.ex.y * e + t.ey.y * i,
n
}
,
t.IDENTITY = new t,
t
}
)(), F = (function() {
function t(t) {
void 0 === t && (t = 0),
this.s = 0,
this.c = 1,
t && (this.s = Math.sin(t),
this.c = Math.cos(t))
}
return t.prototype.Clone = function() {
return (new t).Copy(this)
}
,
t.prototype.Copy = function(t) {
return this.s = t.s,
this.c = t.c,
this
}
,
t.prototype.SetAngle = function(t) {
return this.s = Math.sin(t),
this.c = Math.cos(t),
this
}
,
t.prototype.SetIdentity = function() {
return this.s = 0,
this.c = 1,
this
}
,
t.prototype.GetAngle = function() {
return Math.atan2(this.s, this.c)
}
,
t.prototype.GetXAxis = function(t) {
return t.x = this.c,
t.y = this.s,
t
}
,
t.prototype.GetYAxis = function(t) {
return t.x = -this.s,
t.y = this.c,
t
}
,
t.MulRR = function(t, e, i) {
var n = t.c
, r = t.s
, s = e.c
, a = e.s;
return i.s = r * s + n * a,
i.c = n * s - r * a,
i
}
,
t.MulTRR = function(t, e, i) {
var n = t.c
, r = t.s
, s = e.c
, a = e.s;
return i.s = n * a - r * s,
i.c = n * s + r * a,
i
}
,
t.MulRV = function(t, e, i) {
var n = t.c
, r = t.s
, s = e.x
, a = e.y;
return i.x = n * s - r * a,
i.y = r * s + n * a,
i
}
,
t.MulTRV = function(t, e, i) {
var n = t.c
, r = t.s
, s = e.x
, a = e.y;
return i.x = n * s + r * a,
i.y = -r * s + n * a,
i
}
,
t.IDENTITY = new t,
t
}
)(), V = (function() {
function t() {
this.p = new I,
this.q = new F
}
return t.prototype.Clone = function() {
return (new t).Copy(this)
}
,
t.prototype.Copy = function(t) {
return this.p.Copy(t.p),
this.q.Copy(t.q),
this
}
,
t.prototype.SetIdentity = function() {
return this.p.SetZero(),
this.q.SetIdentity(),
this
}
,
t.prototype.SetPositionRotation = function(t, e) {
return this.p.Copy(t),
this.q.Copy(e),
this
}
,
t.prototype.SetPositionAngle = function(t, e) {
return this.p.Copy(t),
this.q.SetAngle(e),
this
}
,
t.prototype.SetPosition = function(t) {
return this.p.Copy(t),
this
}
,
t.prototype.SetPositionXY = function(t, e) {
return this.p.Set(t, e),
this
}
,
t.prototype.SetRotation = function(t) {
return this.q.Copy(t),
this
}
,
t.prototype.SetRotationAngle = function(t) {
return this.q.SetAngle(t),
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
, a = e.y;
return i.x = n * s - r * a + t.p.x,
i.y = r * s + n * a + t.p.y,
i
}
,
t.MulTXV = function(t, e, i) {
var n = t.q.c
, r = t.q.s
, s = e.x - t.p.x
, a = e.y - t.p.y;
return i.x = n * s + r * a,
i.y = -r * s + n * a,
i
}
,
t.MulXX = function(t, e, i) {
return F.MulRR(t.q, e.q, i.q),
I.AddVV(F.MulRV(t.q, e.p, i.p), t.p, i.p),
i
}
,
t.MulTXX = function(t, e, i) {
return F.MulTRR(t.q, e.q, i.q),
F.MulTRV(t.q, I.SubVV(e.p, t.p, i.p), i.p),
i
}
,
t.IDENTITY = new t,
t
}
)(), N = (function() {
function t() {
this.localCenter = new I,
this.c0 = new I,
this.c = new I,
this.a0 = 0,
this.a = 0,
this.alpha0 = 0
}
return t.prototype.Clone = function() {
return (new t).Copy(this)
}
,
t.prototype.Copy = function(t) {
return 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,
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;
return t.q.SetAngle(n),
t.p.SelfSub(F.MulRV(t.q, this.localCenter, I.s_t0)),
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
}
,
t
}
)(), k = (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
}
return t.prototype.Clone = function() {
return (new t).Copy(this)
}
,
t.prototype.Copy = function(t) {
return this.r = t.r,
this.g = t.g,
this.b = t.b,
this.a = t.a,
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) {
return this.r = t / 255,
this.g = e / 255,
this.b = i / 255,
this
}
,
t.prototype.SetByteRGBA = function(t, e, i, n) {
return this.r = t / 255,
this.g = e / 255,
this.b = i / 255,
this.a = n / 255,
this
}
,
t.prototype.SetRGB = function(t, e, i) {
return this.r = t,
this.g = e,
this.b = i,
this
}
,
t.prototype.SetRGBA = function(t, e, i, n) {
return this.r = t,
this.g = e,
this.b = i,
this.a = n,
this
}
,
t.prototype.SelfAdd = function(t) {
return this.r += t.r,
this.g += t.g,
this.b += t.b,
this.a += t.a,
this
}
,
t.prototype.Add = function(t, e) {
return e.r = this.r + t.r,
e.g = this.g + t.g,
e.b = this.b + t.b,
e.a = this.a + t.a,
e
}
,
t.prototype.SelfSub = function(t) {
return this.r -= t.r,
this.g -= t.g,
this.b -= t.b,
this.a -= t.a,
this
}
,
t.prototype.Sub = function(t, e) {
return e.r = this.r - t.r,
e.g = this.g - t.g,
e.b = this.b - t.b,
e.a = this.a - t.a,
e
}
,
t.prototype.SelfMul = function(t) {
return this.r *= t,
this.g *= t,
this.b *= t,
this.a *= t,
this
}
,
t.prototype.Mul = function(t, e) {
return e.r = this.r * t,
e.g = this.g * t,
e.b = this.b * t,
e.a = this.a * t,
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)
, a = i * (e.a - t.a);
t.r += n,
t.g += r,
t.b += s,
t.a += a,
e.r -= n,
e.g -= r,
e.b -= s,
e.a -= a
}
,
t.prototype.MakeStyleString = function(e) {
return void 0 === e && (e = this.a),
t.MakeStyleString(this.r, this.g, this.b, e)
}
,
t.MakeStyleString = function(t, e, i, n) {
return void 0 === n && (n = 1),
t *= 255,
e *= 255,
i *= 255,
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),
t
}
)();
(C = t.b2DrawFlags || (t.b2DrawFlags = {}))[C.e_none = 0] = "e_none",
C[C.e_shapeBit = 1] = "e_shapeBit",
C[C.e_jointBit = 2] = "e_jointBit",
C[C.e_aabbBit = 4] = "e_aabbBit",
C[C.e_pairBit = 8] = "e_pairBit",
C[C.e_centerOfMassBit = 16] = "e_centerOfMassBit",
C[C.e_particleBit = 32] = "e_particleBit",
C[C.e_controllerBit = 64] = "e_controllerBit",
C[C.e_all = 63] = "e_all";
var G = (function() {
function t() {
this.m_drawFlags = 0
}
return 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
}
,
t
}
)()
, U = (function() {
function t() {
this.m_start = Date.now()
}
return t.prototype.Reset = function() {
return this.m_start = Date.now(),
this
}
,
t.prototype.GetMilliseconds = function() {
return Date.now() - this.m_start
}
,
t
}
)()
, z = (function() {
function t() {
this.m_count = 0,
this.m_min_count = 0,
this.m_max_count = 0
}
return 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;
return this.m_count = 0,
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)
}
,
t
}
)()
, H = (function() {
function t(t) {
this.m_stack = [],
this.m_count = 0,
this.m_stack = d(t, (function() {
return null
}
)),
this.m_count = 0
}
return t.prototype.Reset = function() {
return this.m_count = 0,
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];
if (this.m_stack[this.m_count] = null,
null === t)
throw new Error;
return t
}
,
t.prototype.GetCount = function() {
return this.m_count
}
,
t
}
)()
, W = (function() {
function t() {
this.m_buffer = I.MakeArray(2),
this.m_vertices = this.m_buffer,
this.m_count = 0,
this.m_radius = 0
}
return t.prototype.Copy = function(t) {
return 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])) : this.m_vertices = t.m_vertices,
this.m_count = t.m_count,
this.m_radius = t.m_radius,
this
}
,
t.prototype.Reset = function() {
return this.m_vertices = this.m_buffer,
this.m_count = 0,
this.m_radius = 0,
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 = I.DotVV(this.m_vertices[0], t), n = 1; n < this.m_count; ++n) {
var r = I.DotVV(this.m_vertices[n], t);
r > i && (e = n,
i = r)
}
return e
}
,
t.prototype.GetSupportVertex = function(t) {
for (var e = 0, i = I.DotVV(this.m_vertices[0], t), n = 1; n < this.m_count; ++n) {
var r = I.DotVV(this.m_vertices[n], t);
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]
}
,
t
}
)()
, j = (function() {
function t() {
this.metric = 0,
this.count = 0,
this.indexA = [0, 0, 0],
this.indexB = [0, 0, 0]
}
return t.prototype.Reset = function() {
return this.metric = 0,
this.count = 0,
this
}
,
t
}
)()
, X = (function() {
function t() {
this.proxyA = new W,
this.proxyB = new W,
this.transformA = new V,
this.transformB = new V,
this.useRadii = !1
}
return t.prototype.Reset = function() {
return this.proxyA.Reset(),
this.proxyB.Reset(),
this.transformA.SetIdentity(),
this.transformB.SetIdentity(),
this.useRadii = !1,
this
}
,
t
}
)()
, Y = (function() {
function t() {
this.pointA = new I,
this.pointB = new I,
this.distance = 0,
this.iterations = 0
}
return t.prototype.Reset = function() {
return this.pointA.SetZero(),
this.pointB.SetZero(),
this.distance = 0,
this.iterations = 0,
this
}
,
t
}
)();
t.b2_gjkCalls = 0,
t.b2_gjkIters = 0,
t.b2_gjkMaxIters = 0;
var q = (function() {
function t() {
this.wA = new I,
this.wB = new I,
this.w = new I,
this.a = 0,
this.indexA = 0,
this.indexB = 0
}
return t.prototype.Copy = function(t) {
return 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,
this
}
,
t
}
)()
, J = (function() {
function t() {
this.m_v1 = new q,
this.m_v2 = new q,
this.m_v3 = new q,
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
}
return t.prototype.ReadCache = function(t, e, i, r, s) {
this.m_count = t.count;
for (var a = this.m_vertices, o = 0; o < this.m_count; ++o) {
(_ = a[o]).indexA = t.indexA[o],
_.indexB = t.indexB[o];
var l = e.GetVertex(_.indexA)
, h = r.GetVertex(_.indexB);
V.MulXV(i, l, _.wA),
V.MulXV(s, h, _.wB),
I.SubVV(_.wB, _.wA, _.w),
_.a = 0
}
if (this.m_count > 1) {
var c = t.metric
, u = this.GetMetric();
(u < .5 * c || 2 * c < u || u < n) && (this.m_count = 0)
}
var _;
0 === this.m_count && ((_ = a[0]).indexA = 0,
_.indexB = 0,
l = e.GetVertex(0),
h = r.GetVertex(0),
V.MulXV(i, l, _.wA),
V.MulXV(s, h, _.wB),
I.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 I.NegV(this.m_v1.w, t);
case 2:
var e = I.SubVV(this.m_v2.w, this.m_v1.w, t);
return I.CrossVV(e, I.NegV(this.m_v1.w, I.s_t0)) > 0 ? I.CrossOneV(e, t) : I.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 I.DistanceVV(this.m_v1.w, this.m_v2.w);
case 3:
return I.CrossVV(I.SubVV(this.m_v2.w, this.m_v1.w, I.s_t0), I.SubVV(this.m_v3.w, this.m_v1.w, I.s_t1));
default:
return 0
}
}
,
t.prototype.Solve2 = function() {
var e = this.m_v1.w
, i = this.m_v2.w
, n = I.SubVV(i, e, t.s_e12)
, r = -I.DotVV(e, n);
if (r <= 0)
return this.m_v1.a = 1,
void (this.m_count = 1);
var s = I.DotVV(i, n);
if (s <= 0)
return this.m_v2.a = 1,
this.m_count = 1,
void this.m_v1.Copy(this.m_v2);
var a = 1 / (s + r);
this.m_v1.a = s * a,
this.m_v2.a = r * a,
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 = I.SubVV(i, e, t.s_e12)
, s = I.DotVV(e, r)
, a = I.DotVV(i, r)
, o = -s
, l = I.SubVV(n, e, t.s_e13)
, h = I.DotVV(e, l)
, c = I.DotVV(n, l)
, u = -h
, _ = I.SubVV(n, i, t.s_e23)
, f = I.DotVV(i, _)
, d = I.DotVV(n, _)
, p = -f
, m = I.CrossVV(r, l)
, y = m * I.CrossVV(i, n)
, v = m * I.CrossVV(n, e)
, g = m * I.CrossVV(e, i);
if (o <= 0 && u <= 0)
return this.m_v1.a = 1,
void (this.m_count = 1);
if (a > 0 && o > 0 && g <= 0) {
var A = 1 / (a + o);
return this.m_v1.a = a * A,
this.m_v2.a = o * A,
void (this.m_count = 2)
}
if (c > 0 && u > 0 && v <= 0) {
var x = 1 / (c + u);
return this.m_v1.a = c * x,
this.m_v3.a = u * x,
this.m_count = 2,
void this.m_v2.Copy(this.m_v3)
}
if (a <= 0 && p <= 0)
return this.m_v2.a = 1,
this.m_count = 1,
void this.m_v1.Copy(this.m_v2);
if (c <= 0 && d <= 0)
return this.m_v3.a = 1,
this.m_count = 1,
void this.m_v1.Copy(this.m_v3);
if (d > 0 && p > 0 && y <= 0) {
var b = 1 / (d + p);
return this.m_v2.a = d * b,
this.m_v3.a = p * b,
this.m_count = 2,
void this.m_v1.Copy(this.m_v3)
}
var C = 1 / (y + v + g);
this.m_v1.a = y * C,
this.m_v2.a = v * C,
this.m_v3.a = g * C,
this.m_count = 3
}
,
t.s_e12 = new I,
t.s_e13 = new I,
t.s_e23 = new I,
t
}
)()
, Z = new J
, K = [0, 0, 0]
, Q = [0, 0, 0]
, $ = new I
, tt = new I
, et = new I
, it = new I
, nt = new I;
function rt(e, i, s) {
++t.b2_gjkCalls;
var a = s.proxyA
, o = s.proxyB
, l = s.transformA
, h = s.transformB
, c = Z;
c.ReadCache(i, a, l, o, h);
for (var u = c.m_vertices, _ = K, f = Q, d = 0, p = 0; p < 20; ) {
d = c.m_count;
for (var m = 0; m < d; ++m)
_[m] = u[m].indexA,
f[m] = u[m].indexB;
switch (c.m_count) {
case 1:
break;
case 2:
c.Solve2();
break;
case 3:
c.Solve3()
}
if (3 === c.m_count)
break;
var y = c.GetSearchDirection(tt);
if (y.LengthSquared() < r)
break;
var g = u[c.m_count];
g.indexA = a.GetSupport(F.MulTRV(l.q, I.NegV(y, I.s_t0), it)),
V.MulXV(l, a.GetVertex(g.indexA), g.wA),
g.indexB = o.GetSupport(F.MulTRV(h.q, y, nt)),
V.MulXV(h, o.GetVertex(g.indexB), g.wB),
I.SubVV(g.wB, g.wA, g.w),
++p,
++t.b2_gjkIters;
var A = !1;
for (m = 0; m < d; ++m)
if (g.indexA === _[m] && g.indexB === f[m]) {
A = !0;
break
}
if (A)
break;
++c.m_count
}
if (t.b2_gjkMaxIters = v(t.b2_gjkMaxIters, p),
c.GetWitnessPoints(e.pointA, e.pointB),
e.distance = I.DistanceVV(e.pointA, e.pointB),
e.iterations = p,
c.WriteCache(i),
s.useRadii) {
var x = a.m_radius
, b = o.m_radius;
if (e.distance > x + b && e.distance > n) {
e.distance -= x + b;
var C = I.SubVV(e.pointB, e.pointA, et);
C.Normalize(),
e.pointA.SelfMulAdd(x, C),
e.pointB.SelfMulSub(b, C)
} else {
var T = I.MidVV(e.pointA, e.pointB, $);
e.pointA.Copy(T),
e.pointB.Copy(T),
e.distance = 0
}
}
}
var st, at = new I, ot = new J, lt = new I, ht = new I, ct = new I, ut = new I, _t = new I, ft = new I;
(st = t.b2ContactFeatureType || (t.b2ContactFeatureType = {}))[st.e_vertex = 0] = "e_vertex",
st[st.e_face = 1] = "e_face";
var dt, pt = (function() {
function t() {
this._key = 0,
this._key_invalid = !1,
this._indexA = 0,
this._indexB = 0,
this._typeA = 0,
this._typeB = 0
}
return Object.defineProperty(t.prototype, "key", {
get: function() {
return this._key_invalid && (this._key_invalid = !1,
this._key = this._indexA | this._indexB << 8 | this._typeA << 16 | this._typeB << 24),
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
}),
t
}
)(), mt = (function() {
function t() {
this.cf = new pt
}
return t.prototype.Copy = function(t) {
return this.key = t.key,
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
}),
t
}
)(), yt = (function() {
function t() {
this.localPoint = new I,
this.normalImpulse = 0,
this.tangentImpulse = 0,
this.id = new mt
}
return t.MakeArray = function(e) {
return d(e, (function() {
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) {
return this.localPoint.Copy(t.localPoint),
this.normalImpulse = t.normalImpulse,
this.tangentImpulse = t.tangentImpulse,
this.id.Copy(t.id),
this
}
,
t
}
)();
(dt = t.b2ManifoldType || (t.b2ManifoldType = {}))[dt.e_unknown = -1] = "e_unknown",
dt[dt.e_circles = 0] = "e_circles",
dt[dt.e_faceA = 1] = "e_faceA",
dt[dt.e_faceB = 2] = "e_faceB";
var vt, gt = (function() {
function e() {
this.points = yt.MakeArray(a),
this.localNormal = new I,
this.localPoint = new I,
this.type = t.b2ManifoldType.e_unknown,
this.pointCount = 0
}
return e.prototype.Reset = function() {
for (var e = 0; e < a; ++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 < a; ++e)
this.points[e].Copy(t.points[e]);
return this.localNormal.Copy(t.localNormal),
this.localPoint.Copy(t.localPoint),
this.type = t.type,
this
}
,
e.prototype.Clone = function() {
return (new e).Copy(this)
}
,
e
}
)(), At = (function() {
function e() {
this.normal = new I,
this.points = I.MakeArray(a),
this.separations = p(a)
}
return e.prototype.Initialize = function(i, n, s, a, o) {
if (0 !== i.pointCount)
switch (i.type) {
case t.b2ManifoldType.e_circles:
this.normal.Set(1, 0);
var l = V.MulXV(n, i.localPoint, e.Initialize_s_pointA)
, h = V.MulXV(a, i.points[0].localPoint, e.Initialize_s_pointB);
I.DistanceSquaredVV(l, h) > r && I.SubVV(h, l, this.normal).SelfNormalize();
var c = I.AddVMulSV(l, s, this.normal, e.Initialize_s_cA)
, u = I.SubVMulSV(h, o, this.normal, e.Initialize_s_cB);
I.MidVV(c, u, this.points[0]),
this.separations[0] = I.DotVV(I.SubVV(u, c, I.s_t0), this.normal);
break;
case t.b2ManifoldType.e_faceA:
F.MulRV(n.q, i.localNormal, this.normal);
for (var _ = V.MulXV(n, i.localPoint, e.Initialize_s_planePoint), f = 0; f < i.pointCount; ++f) {
var d = V.MulXV(a, i.points[f].localPoint, e.Initialize_s_clipPoint)
, p = s - I.DotVV(I.SubVV(d, _, I.s_t0), this.normal);
c = I.AddVMulSV(d, p, this.normal, e.Initialize_s_cA),
u = I.SubVMulSV(d, o, this.normal, e.Initialize_s_cB),
I.MidVV(c, u, this.points[f]),
this.separations[f] = I.DotVV(I.SubVV(u, c, I.s_t0), this.normal)
}
break;
case t.b2ManifoldType.e_faceB:
for (F.MulRV(a.q, i.localNormal, this.normal),
_ = V.MulXV(a, i.localPoint, e.Initialize_s_planePoint),
f = 0; f < i.pointCount; ++f)
d = V.MulXV(n, i.points[f].localPoint, e.Initialize_s_clipPoint),
p = o - I.DotVV(I.SubVV(d, _, I.s_t0), this.normal),
u = I.AddVMulSV(d, p, this.normal, e.Initialize_s_cB),
c = I.SubVMulSV(d, s, this.normal, e.Initialize_s_cA),
I.MidVV(c, u, this.points[f]),
this.separations[f] = I.DotVV(I.SubVV(c, u, I.s_t0), this.normal);
this.normal.SelfNeg()
}
}
,
e.Initialize_s_pointA = new I,
e.Initialize_s_pointB = new I,
e.Initialize_s_cA = new I,
e.Initialize_s_cB = new I,
e.Initialize_s_planePoint = new I,
e.Initialize_s_clipPoint = new I,
e
}
)();
(vt = t.b2PointState || (t.b2PointState = {}))[vt.b2_nullState = 0] = "b2_nullState",
vt[vt.b2_addState = 1] = "b2_addState",
vt[vt.b2_persistState = 2] = "b2_persistState",
vt[vt.b2_removeState = 3] = "b2_removeState";
var xt = (function() {
function t() {
this.v = new I,
this.id = new mt
}
return t.MakeArray = function(e) {
return d(e, (function() {
return new t
}
))
}
,
t.prototype.Copy = function(t) {
return this.v.Copy(t.v),
this.id.Copy(t.id),
this
}
,
t
}
)()
, bt = (function() {
function t() {
this.p1 = new I,
this.p2 = new I,
this.maxFraction = 1
}
return t.prototype.Copy = function(t) {
return this.p1.Copy(t.p1),
this.p2.Copy(t.p2),
this.maxFraction = t.maxFraction,
this
}
,
t
}
)()
, Ct = (function() {
function t() {
this.normal = new I,
this.fraction = 0
}
return t.prototype.Copy = function(t) {
return this.normal.Copy(t.normal),
this.fraction = t.fraction,
this
}
,
t
}
)()
, Tt = (function() {
function t() {
this.lowerBound = new I,
this.upperBound = new I,
this.m_cache_center = new I,
this.m_cache_extent = new I
}
return t.prototype.Copy = function(t) {
return this.lowerBound.Copy(t.lowerBound),
this.upperBound.Copy(t.upperBound),
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 && this.lowerBound.IsValid() && this.upperBound.IsValid()
}
,
t.prototype.GetCenter = function() {
return I.MidVV(this.lowerBound, this.upperBound, this.m_cache_center)
}
,
t.prototype.GetExtents = function() {
return I.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) {
return this.lowerBound.x = y(this.lowerBound.x, t.lowerBound.x),
this.lowerBound.y = y(this.lowerBound.y, t.lowerBound.y),
this.upperBound.x = v(this.upperBound.x, t.upperBound.x),
this.upperBound.y = v(this.upperBound.y, t.upperBound.y),
this
}
,
t.prototype.Combine2 = function(t, e) {
return this.lowerBound.x = y(t.lowerBound.x, e.lowerBound.x),
this.lowerBound.y = y(t.lowerBound.y, e.lowerBound.y),
this.upperBound.x = v(t.upperBound.x, e.upperBound.x),
this.upperBound.y = v(t.upperBound.y, e.upperBound.y),
this
}
,
t.Combine = function(t, e, i) {
return i.Combine2(t, e),
i
}
,
t.prototype.Contains = function(t) {
var e = !0;
return (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, s, a = -i, o = i, l = e.p1.x, h = e.p1.y, c = e.p2.x - e.p1.x, u = e.p2.y - e.p1.y, _ = m(c), f = m(u), d = t.normal;
if (_ < n) {
if (l < this.lowerBound.x || this.upperBound.x < l)
return !1
} else {
var p = 1 / c
, v = -1;
if ((r = (this.lowerBound.x - l) * p) > (s = (this.upperBound.x - l) * p)) {
var g = r;
r = s,
s = g,
v = 1
}
if (r > a && (d.x = v,
d.y = 0,
a = r),
a > (o = y(o, s)))
return !1
}
if (f < n) {
if (h < this.lowerBound.y || this.upperBound.y < h)
return !1
} else if (p = 1 / u,
v = -1,
(r = (this.lowerBound.y - h) * p) > (s = (this.upperBound.y - h) * p) && (g = r,
r = s,
s = g,
v = 1),
r > a && (d.x = 0,
d.y = v,
a = r),
a > (o = y(o, s)))
return !1;
return !(a < 0 || e.maxFraction < a || (t.fraction = a,
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)
}
,
t
}
)();
function St(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 wt(e, i, n, r, s) {
var a = 0
, o = i[0]
, l = i[1]
, h = I.DotVV(n, o.v) - r
, c = I.DotVV(n, l.v) - r;
if (h <= 0 && e[a++].Copy(o),
c <= 0 && e[a++].Copy(l),
h * c < 0) {
var u = h / (h - c)
, _ = e[a].v;
_.x = o.v.x + u * (l.v.x - o.v.x),
_.y = o.v.y + u * (l.v.y - o.v.y);
var f = e[a].id;
f.cf.indexA = s,
f.cf.indexB = o.id.cf.indexB,
f.cf.typeA = t.b2ContactFeatureType.e_vertex,
f.cf.typeB = t.b2ContactFeatureType.e_face,
++a
}
return a
}
var Et = new X
, Mt = new j
, Dt = new Y;
function Bt(t, e, i, r, s, a) {
var o = Et.Reset();
o.proxyA.SetShape(t, e),
o.proxyB.SetShape(i, r),
o.transformA.Copy(s),
o.transformB.Copy(a),
o.useRadii = !0;
var l = Mt.Reset();
l.count = 0;
var h = Dt.Reset();
return rt(h, l, o),
h.distance < 10 * n
}
function It(t) {
if (null === t)
throw new Error;
return t
}
var Pt = (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
}
return t.prototype.IsLeaf = function() {
return null === this.child1
}
,
t
}
)()
, Rt = (function() {
function t() {
this.m_root = null,
this.m_freeList = null,
this.m_path = 0,
this.m_insertionCount = 0,
this.m_stack = new H(256)
}
return t.prototype.Query = function(t, e) {
if (null !== this.m_root) {
var i = this.m_stack.Reset();
for (i.Push(this.m_root); i.GetCount() > 0; ) {
var n = i.Pop();
if (n.aabb.TestOverlap(t))
if (n.IsLeaf()) {
if (!e(n))
return
} else
i.Push(It(n.child1)),
i.Push(It(n.child2))
}
}
}
,
t.prototype.QueryPoint = function(t, e) {
if (null !== this.m_root) {
var i = this.m_stack.Reset();
for (i.Push(this.m_root); i.GetCount() > 0; ) {
var n = i.Pop();
if (n.aabb.TestContain(t))
if (n.IsLeaf()) {
if (!e(n))
return
} else
i.Push(It(n.child1)),
i.Push(It(n.child2))
}
}
}
,
t.prototype.RayCast = function(e, i) {
if (null !== this.m_root) {
var n = e.p1
, r = e.p2
, s = I.SubVV(r, n, t.s_r);
s.Normalize();
var a = I.CrossOneV(s, t.s_v)
, o = I.AbsV(a, t.s_abs_v)
, l = e.maxFraction
, h = t.s_segmentAABB
, c = n.x + l * (r.x - n.x)
, u = n.y + l * (r.y - n.y);
h.lowerBound.x = y(n.x, c),
h.lowerBound.y = y(n.y, u),
h.upperBound.x = v(n.x, c),
h.upperBound.y = v(n.y, u);
var _ = this.m_stack.Reset();
for (_.Push(this.m_root); _.GetCount() > 0; ) {
var f = _.Pop();
if (St(f.aabb, h)) {
var d = f.aabb.GetCenter()
, p = f.aabb.GetExtents();
if (!(m(I.DotVV(a, I.SubVV(n, d, I.s_t0))) - I.DotVV(o, p) > 0))
if (f.IsLeaf()) {
var g = t.s_subInput;
g.p1.Copy(e.p1),
g.p2.Copy(e.p2),
g.maxFraction = l;
var A = i(g, f);
if (0 === A)
return;
A > 0 && (l = A,
c = n.x + l * (r.x - n.x),
u = n.y + l * (r.y - n.y),
h.lowerBound.x = y(n.x, c),
h.lowerBound.y = y(n.y, u),
h.upperBound.x = v(n.x, c),
h.upperBound.y = v(n.y, u))
} else
_.Push(It(f.child1)),
_.Push(It(f.child2))
}
}
}
}
,
t.prototype.AllocateNode = function() {
if (this.m_freeList) {
var e = this.m_freeList;
return this.m_freeList = e.parent,
e.parent = null,
e.child1 = null,
e.child2 = null,
e.height = 0,
delete e.userData,
e
}
return new Pt(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();
return 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),
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);
return 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),
!0
}
,
t.prototype.InsertLeaf = function(e) {
if (++this.m_insertionCount,
null === this.m_root)
return this.m_root = e,
void (this.m_root.parent = null);
for (var i = e.aabb, n = this.m_root; !n.IsLeaf(); ) {
var r = It(n.child1)
, s = It(n.child2)
, a = n.aabb.GetPerimeter()
, o = t.s_combinedAABB;
o.Combine2(n.aabb, i);
var l = o.GetPerimeter()
, h = 2 * l
, c = 2 * (l - a)
, u = void 0
, _ = t.s_aabb
, f = void 0;
r.IsLeaf() ? (_.Combine2(i, r.aabb),
u = _.GetPerimeter() + c) : (_.Combine2(i, r.aabb),
f = r.aabb.GetPerimeter(),
u = _.GetPerimeter() - f + c);
var d = void 0;
if (s.IsLeaf() ? (_.Combine2(i, s.aabb),
d = _.GetPerimeter() + c) : (_.Combine2(i, s.aabb),
f = s.aabb.GetPerimeter(),
d = _.GetPerimeter() - f + c),
h < u && h < d)
break;
n = u < d ? r : s
}
var p = n
, m = p.parent
, y = this.AllocateNode();
y.parent = m,
delete y.userData,
y.aabb.Combine2(i, p.aabb),
y.height = p.height + 1,
m ? (m.child1 === p ? m.child1 = y : m.child2 = y,
y.child1 = p,
y.child2 = e,
p.parent = y,
e.parent = y) : (y.child1 = p,
y.child2 = e,
p.parent = y,
e.parent = y,
this.m_root = y);
for (var g = e.parent; null !== g; )
r = It((g = this.Balance(g)).child1),
s = It(g.child2),
g.height = 1 + v(r.height, s.height),
g.aabb.Combine2(r.aabb, s.aabb),
g = g.parent
}
,
t.prototype.RemoveLeaf = function(t) {
if (t !== this.m_root) {
var e, i = It(t.parent), n = i && i.parent;
if (e = i.child1 === t ? It(i.child2) : It(i.child1),
n) {
n.child1 === i ? n.child1 = e : n.child2 = e,
e.parent = n,
this.FreeNode(i);
for (var r = n; r; ) {
var s = It((r = this.Balance(r)).child1)
, a = It(r.child2);
r.aabb.Combine2(s.aabb, a.aabb),
r.height = 1 + v(s.height, a.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 = It(t.child1)
, i = It(t.child2)
, n = i.height - e.height;
if (n > 1) {
var r = It(i.child1)
, s = It(i.child2);
return 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,
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 + v(e.height, s.height),
i.height = 1 + v(t.height, r.height)) : (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 + v(e.height, r.height),
i.height = 1 + v(t.height, s.height)),
i
}
if (n < -1) {
var a = It(e.child1)
, o = It(e.child2);
return 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,
a.height > o.height ? (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 + v(i.height, o.height),
e.height = 1 + v(t.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 + v(i.height, a.height),
e.height = 1 + v(t.height, o.height)),
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();
return (i += t.GetAreaNode(e.child1)) + 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 + v(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 = It(e.child1)
, n = It(e.child2);
this.ValidateStructure(i),
this.ValidateStructure(n)
}
}
}
,
t.prototype.ValidateMetrics = function(e) {
if (null !== e) {
var i = e;
if (!i.IsLeaf()) {
var n = It(i.child1)
, r = It(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 = It(t.child1)
, n = It(t.child2)
, r = m(n.height - i.height);
return v(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 I,
t.s_v = new I,
t.s_abs_v = new I,
t.s_segmentAABB = new Tt,
t.s_subInput = new bt,
t.s_combinedAABB = new Tt,
t.s_aabb = new Tt,
t.s_node_id = 0,
t
}
)()
, Ot = function(t, e) {
this.proxyA = t,
this.proxyB = e
}
, Lt = (function() {
function t() {
this.m_tree = new Rt,
this.m_proxyCount = 0,
this.m_moveCount = 0,
this.m_moveBuffer = [],
this.m_pairCount = 0,
this.m_pairBuffer = []
}
return t.prototype.CreateProxy = function(t, e) {
var i = this.m_tree.CreateProxy(t, e);
return ++this.m_proxyCount,
this.BufferMove(i),
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) : (n = i,
r = t),
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
}
return ++e.m_pairCount,
!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(Ft);
for (var s = 0; s < this.m_pairCount; ) {
var a = this.m_pairBuffer[s]
, o = a.proxyA.userData
, l = a.proxyB.userData;
for (o && l && t(o, l),
++s; s < this.m_pairCount; ) {
var h = this.m_pairBuffer[s];
if (h.proxyA.m_id !== a.proxyA.m_id || h.proxyB.m_id !== a.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
}
,
t
}
)();
function Ft(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 Vt, Nt = new V, kt = new V, Gt = new I, Ut = new I, zt = new I, Ht = new I, Wt = new I, jt = function() {
this.proxyA = new W,
this.proxyB = new W,
this.sweepA = new N,
this.sweepB = new N,
this.tMax = 0
};
(Vt = t.b2TOIOutputState || (t.b2TOIOutputState = {}))[Vt.e_unknown = 0] = "e_unknown",
Vt[Vt.e_failed = 1] = "e_failed",
Vt[Vt.e_overlapped = 2] = "e_overlapped",
Vt[Vt.e_touching = 3] = "e_touching",
Vt[Vt.e_separated = 4] = "e_separated";
var Xt, Yt = function() {
this.state = t.b2TOIOutputState.e_unknown,
this.t = 0
};
(Xt = t.b2SeparationFunctionType || (t.b2SeparationFunctionType = {}))[Xt.e_unknown = -1] = "e_unknown",
Xt[Xt.e_points = 0] = "e_points",
Xt[Xt.e_faceA = 1] = "e_faceA",
Xt[Xt.e_faceB = 2] = "e_faceB";
var qt = (function() {
function e() {
this.m_sweepA = new N,
this.m_sweepB = new N,
this.m_type = t.b2SeparationFunctionType.e_unknown,
this.m_localPoint = new I,
this.m_axis = new I
}
return e.prototype.Initialize = function(e, i, n, r, s, a) {
this.m_proxyA = i,
this.m_proxyB = r;
var o = e.count;
this.m_sweepA.Copy(n),
this.m_sweepB.Copy(s);
var l = Nt
, h = kt;
if (this.m_sweepA.GetTransform(l, a),
this.m_sweepB.GetTransform(h, a),
1 === o) {
this.m_type = t.b2SeparationFunctionType.e_points;
var c = this.m_proxyA.GetVertex(e.indexA[0])
, u = this.m_proxyB.GetVertex(e.indexB[0])
, _ = V.MulXV(l, c, Gt)
, f = V.MulXV(h, u, Ut);
I.SubVV(f, _, this.m_axis);
var d = this.m_axis.Normalize();
return this.m_localPoint.SetZero(),
d
}
if (e.indexA[0] === e.indexA[1]) {
this.m_type = t.b2SeparationFunctionType.e_faceB;
var p = this.m_proxyB.GetVertex(e.indexB[0])
, m = this.m_proxyB.GetVertex(e.indexB[1]);
I.CrossVOne(I.SubVV(m, p, I.s_t0), this.m_axis).SelfNormalize();
var y = F.MulRV(h.q, this.m_axis, zt);
return I.MidVV(p, m, this.m_localPoint),
f = V.MulXV(h, this.m_localPoint, Ut),
c = this.m_proxyA.GetVertex(e.indexA[0]),
_ = V.MulXV(l, c, Gt),
(d = I.DotVV(I.SubVV(_, f, I.s_t0), y)) < 0 && (this.m_axis.SelfNeg(),
d = -d),
d
}
this.m_type = t.b2SeparationFunctionType.e_faceA;
var v = this.m_proxyA.GetVertex(e.indexA[0])
, g = this.m_proxyA.GetVertex(e.indexA[1]);
return I.CrossVOne(I.SubVV(g, v, I.s_t0), this.m_axis).SelfNormalize(),
y = F.MulRV(l.q, this.m_axis, zt),
I.MidVV(v, g, this.m_localPoint),
_ = V.MulXV(l, this.m_localPoint, Gt),
u = this.m_proxyB.GetVertex(e.indexB[0]),
f = V.MulXV(h, u, Ut),
(d = I.DotVV(I.SubVV(f, _, I.s_t0), y)) < 0 && (this.m_axis.SelfNeg(),
d = -d),
d
}
,
e.prototype.FindMinSeparation = function(e, i, n) {
var r = Nt
, s = kt;
switch (this.m_sweepA.GetTransform(r, n),
this.m_sweepB.GetTransform(s, n),
this.m_type) {
case t.b2SeparationFunctionType.e_points:
var a = F.MulTRV(r.q, this.m_axis, Ht)
, o = F.MulTRV(s.q, I.NegV(this.m_axis, I.s_t0), Wt);
e[0] = this.m_proxyA.GetSupport(a),
i[0] = this.m_proxyB.GetSupport(o);
var l = this.m_proxyA.GetVertex(e[0])
, h = this.m_proxyB.GetVertex(i[0])
, c = V.MulXV(r, l, Gt)
, u = V.MulXV(s, h, Ut);
return I.DotVV(I.SubVV(u, c, I.s_t0), this.m_axis);
case t.b2SeparationFunctionType.e_faceA:
var _ = F.MulRV(r.q, this.m_axis, zt);
return c = V.MulXV(r, this.m_localPoint, Gt),
o = F.MulTRV(s.q, I.NegV(_, I.s_t0), Wt),
e[0] = -1,
i[0] = this.m_proxyB.GetSupport(o),
h = this.m_proxyB.GetVertex(i[0]),
u = V.MulXV(s, h, Ut),
I.DotVV(I.SubVV(u, c, I.s_t0), _);
case t.b2SeparationFunctionType.e_faceB:
return _ = F.MulRV(s.q, this.m_axis, zt),
u = V.MulXV(s, this.m_localPoint, Ut),
a = F.MulTRV(r.q, I.NegV(_, I.s_t0), Ht),
i[0] = -1,
e[0] = this.m_proxyA.GetSupport(a),
l = this.m_proxyA.GetVertex(e[0]),
c = V.MulXV(r, l, Gt),
I.DotVV(I.SubVV(c, u, I.s_t0), _);
default:
return e[0] = -1,
i[0] = -1,
0
}
}
,
e.prototype.Evaluate = function(e, i, n) {
var r = Nt
, s = kt;
switch (this.m_sweepA.GetTransform(r, n),
this.m_sweepB.GetTransform(s, n),
this.m_type) {
case t.b2SeparationFunctionType.e_points:
var a = this.m_proxyA.GetVertex(e)
, o = this.m_proxyB.GetVertex(i)
, l = V.MulXV(r, a, Gt)
, h = V.MulXV(s, o, Ut);
return I.DotVV(I.SubVV(h, l, I.s_t0), this.m_axis);
case t.b2SeparationFunctionType.e_faceA:
var c = F.MulRV(r.q, this.m_axis, zt);
return l = V.MulXV(r, this.m_localPoint, Gt),
o = this.m_proxyB.GetVertex(i),
h = V.MulXV(s, o, Ut),
I.DotVV(I.SubVV(h, l, I.s_t0), c);
case t.b2SeparationFunctionType.e_faceB:
return c = F.MulRV(s.q, this.m_axis, zt),
h = V.MulXV(s, this.m_localPoint, Ut),
a = this.m_proxyA.GetVertex(e),
l = V.MulXV(r, a, Gt),
I.DotVV(I.SubVV(l, h, I.s_t0), c);
default:
return 0
}
}
,
e
}
)()
, Jt = new U
, Zt = new j
, Kt = new X
, Qt = new Y
, $t = new qt
, te = [0]
, ee = [0]
, ie = new N
, ne = new N;
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
, a = ie.Copy(i.sweepA)
, h = ne.Copy(i.sweepB);
a.Normalize(),
h.Normalize();
var c = i.tMax
, u = r.m_radius + s.m_radius
, _ = v(l, u - 3 * l)
, f = .25 * l
, d = 0
, p = 0
, y = Zt;
y.count = 0;
var g = Kt;
for (g.proxyA.Copy(i.proxyA),
g.proxyB.Copy(i.proxyB),
g.useRadii = !1; ; ) {
var A = Nt
, x = kt;
a.GetTransform(A, d),
h.GetTransform(x, d),
g.transformA.Copy(A),
g.transformB.Copy(x);
var b = Qt;
if (rt(b, y, g),
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 C = $t;
C.Initialize(y, r, a, s, h, d);
for (var T = !1, S = c, w = 0; ; ) {
var E = te
, M = ee
, D = C.FindMinSeparation(E, M, S);
if (D > _ + f) {
e.state = t.b2TOIOutputState.e_separated,
e.t = c,
T = !0;
break
}
if (D > _ - f) {
d = S;
break
}
var B = C.Evaluate(E[0], M[0], d);
if (B < _ - f) {
e.state = t.b2TOIOutputState.e_failed,
e.t = d,
T = !0;
break
}
if (B <= _ + f) {
e.state = t.b2TOIOutputState.e_touching,
e.t = d,
T = !0;
break
}
for (var I = 0, P = d, R = S; ; ) {
var O;
O = 1 & I ? P + (_ - B) * (R - P) / (D - B) : .5 * (P + R),
++I,
++t.b2_toiRootIters;
var L = C.Evaluate(E[0], M[0], O);
if (m(L - _) < f) {
S = O;
break
}
if (L > _ ? (P = O,
B = L) : (R = O,
D = L),
50 === I)
break
}
if (t.b2_toiMaxRootIters = v(t.b2_toiMaxRootIters, I),
++w === o)
break
}
if (++p,
++t.b2_toiIters,
T)
break;
if (20 === p) {
e.state = t.b2TOIOutputState.e_failed,
e.t = d;
break
}
}
t.b2_toiMaxIters = v(t.b2_toiMaxIters, p);
var F = n.GetMilliseconds();
t.b2_toiMaxTime = v(t.b2_toiMaxTime, F),
t.b2_toiTime += F
}
var se = new I
, ae = new I;
function oe(e, i, n, r, s) {
e.pointCount = 0;
var a = V.MulXV(n, i.m_p, se)
, o = V.MulXV(s, r.m_p, ae)
, l = I.DistanceSquaredVV(a, o)
, h = i.m_radius + r.m_radius;
l > h * h || (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 le = new I
, he = new I
, ce = new I;
function ue(e, r, s, a, o) {
e.pointCount = 0;
for (var l = V.MulXV(o, a.m_p, le), h = V.MulTXV(s, l, he), c = 0, u = -i, _ = r.m_radius + a.m_radius, f = r.m_count, d = r.m_vertices, p = r.m_normals, m = 0; m < f; ++m) {
var y = I.DotVV(p[m], I.SubVV(h, d[m], I.s_t0));
if (y > _)
return;
y > u && (u = y,
c = m)
}
var v = c
, g = (v + 1) % f
, A = d[v]
, x = d[g];
if (u < n)
return e.pointCount = 1,
e.type = t.b2ManifoldType.e_faceA,
e.localNormal.Copy(p[c]),
I.MidVV(A, x, e.localPoint),
e.points[0].localPoint.Copy(a.m_p),
void (e.points[0].id.key = 0);
var b = I.DotVV(I.SubVV(h, A, I.s_t0), I.SubVV(x, A, I.s_t1))
, C = I.DotVV(I.SubVV(h, x, I.s_t0), I.SubVV(A, x, I.s_t1));
if (b <= 0) {
if (I.DistanceSquaredVV(h, A) > _ * _)
return;
e.pointCount = 1,
e.type = t.b2ManifoldType.e_faceA,
I.SubVV(h, A, e.localNormal).SelfNormalize(),
e.localPoint.Copy(A),
e.points[0].localPoint.Copy(a.m_p),
e.points[0].id.key = 0
} else if (C <= 0) {
if (I.DistanceSquaredVV(h, x) > _ * _)
return;
e.pointCount = 1,
e.type = t.b2ManifoldType.e_faceA,
I.SubVV(h, x, e.localNormal).SelfNormalize(),
e.localPoint.Copy(x),
e.points[0].localPoint.Copy(a.m_p),
e.points[0].id.key = 0
} else {
var T = I.MidVV(A, x, ce);
if (I.DotVV(I.SubVV(h, T, I.s_t1), p[v]) > _)
return;
e.pointCount = 1,
e.type = t.b2ManifoldType.e_faceA,
e.localNormal.Copy(p[v]).SelfNormalize(),
e.localPoint.Copy(T),
e.points[0].localPoint.Copy(a.m_p),
e.points[0].id.key = 0
}
}
var _e = new I
, fe = new I
, de = new I
, pe = new I;
function me(t, e, n, r, s) {
for (var a = t.m_vertices, o = t.m_normals, l = r.m_count, h = r.m_vertices, c = F.MulRV(e.q, o[n], _e), u = F.MulTRV(s.q, c, fe), _ = 0, f = i, d = 0; d < l; ++d) {
var p = I.DotVV(h[d], u);
p < f && (f = p,
_ = d)
}
var m = V.MulXV(e, a[n], de)
, y = V.MulXV(s, h[_], pe);
return I.DotVV(I.SubVV(y, m, I.s_t0), c)
}
var ye = new I
, ve = new I;
function ge(t, e, n, r, s) {
for (var a = e.m_count, o = e.m_normals, l = I.SubVV(V.MulXV(s, r.m_centroid, I.s_t0), V.MulXV(n, e.m_centroid, I.s_t1), ye), h = F.MulTRV(n.q, l, ve), c = 0, u = -i, _ = 0; _ < a; ++_) {
var f = I.DotVV(o[_], h);
f > u && (u = f,
c = _)
}
var d = me(e, n, c, r, s)
, p = (c + a - 1) % a
, m = me(e, n, p, r, s)
, y = (c + 1) % a
, v = me(e, n, y, r, s)
, g = 0
, A = 0
, x = 0;
if (m > d && m > v)
x = -1,
g = p,
A = m;
else {
if (!(v > d))
return t[0] = c,
d;
x = 1,
g = y,
A = v
}
for (; (d = me(e, n, c = -1 === x ? (g + a - 1) % a : (g + 1) % a, r, s)) > A; )
g = c,
A = d;
return t[0] = g,
A
}
var Ae = new I;
function xe(e, n, r, s, a, o) {
for (var l = n.m_normals, h = a.m_count, c = a.m_vertices, u = a.m_normals, _ = F.MulTRV(o.q, F.MulRV(r.q, l[s], I.s_t0), Ae), f = 0, d = i, p = 0; p < h; ++p) {
var m = I.DotVV(_, u[p]);
m < d && (d = m,
f = p)
}
var y = f
, v = (y + 1) % h
, g = e[0];
V.MulXV(o, c[y], g.v);
var A = g.id.cf;
A.indexA = s,
A.indexB = y,
A.typeA = t.b2ContactFeatureType.e_face,
A.typeB = t.b2ContactFeatureType.e_vertex;
var x = e[1];
V.MulXV(o, c[v], x.v);
var b = x.id.cf;
b.indexA = s,
b.indexB = v,
b.typeA = t.b2ContactFeatureType.e_face,
b.typeB = t.b2ContactFeatureType.e_vertex
}
var be = xt.MakeArray(2)
, Ce = xt.MakeArray(2)
, Te = xt.MakeArray(2)
, Se = [0]
, we = [0]
, Ee = new I
, Me = new I
, De = new I
, Be = new I
, Ie = new I
, Pe = new I
, Re = new I
, Oe = new I;
function Le(e, i, n, r, s) {
e.pointCount = 0;
var o = i.m_radius + r.m_radius
, l = Se;
l[0] = 0;
var h = ge(l, i, n, r, s);
if (!(h > o)) {
var c = we;
c[0] = 0;
var u = ge(c, r, s, i, n);
if (!(u > o)) {
var _, f, d, p, m = 0, y = 0;
u > .98 * h + .001 ? (_ = r,
f = i,
d = s,
p = n,
m = c[0],
e.type = t.b2ManifoldType.e_faceB,
y = 1) : (_ = i,
f = r,
d = n,
p = s,
m = l[0],
e.type = t.b2ManifoldType.e_faceA,
y = 0);
var v = be;
xe(v, _, d, m, f, p);
var g = _.m_count
, A = _.m_vertices
, x = m
, b = (m + 1) % g
, C = A[x]
, T = A[b]
, S = I.SubVV(T, C, Ee);
S.Normalize();
var w = I.CrossVOne(S, Me)
, E = I.MidVV(C, T, De)
, M = F.MulRV(d.q, S, Ie)
, D = I.CrossVOne(M, Be)
, B = V.MulXV(d, C, Re)
, P = V.MulXV(d, T, Oe)
, R = I.DotVV(D, B)
, O = -I.DotVV(M, B) + o
, L = I.DotVV(M, P) + o
, N = Ce
, k = Te;
if (!(wt(N, v, I.NegV(M, Pe), O, x) < 2 || wt(k, N, M, L, b) < 2)) {
e.localNormal.Copy(w),
e.localPoint.Copy(E);
for (var G = 0, U = 0; U < a; ++U) {
var z = k[U];
if (I.DotVV(D, z.v) - R <= o) {
var H = e.points[G];
if (V.MulTXV(p, z.v, H.localPoint),
H.id.Copy(z.id),
y) {
var W = H.id.cf;
H.id.cf.indexA = W.indexB,
H.id.cf.indexB = W.indexA,
H.id.cf.typeA = W.typeB,
H.id.cf.typeB = W.typeA
}
++G
}
}
e.pointCount = G
}
}
}
}
var Fe = new I
, Ve = new I
, Ne = new I
, ke = new I
, Ge = new I
, Ue = new I
, ze = new I
, He = new mt;
function We(e, i, n, r, s) {
e.pointCount = 0;
var a = V.MulTXV(n, V.MulXV(s, r.m_p, I.s_t0), Fe)
, o = i.m_vertex1
, l = i.m_vertex2
, h = I.SubVV(l, o, Ve)
, c = I.DotVV(h, I.SubVV(l, a, I.s_t0))
, u = I.DotVV(h, I.SubVV(a, o, I.s_t0))
, _ = i.m_radius + r.m_radius
, f = He;
if (f.cf.indexB = 0,
f.cf.typeB = t.b2ContactFeatureType.e_vertex,
u <= 0) {
var d = o
, p = I.SubVV(a, d, Ne);
if (I.DotVV(p, p) > _ * _)
return;
if (i.m_hasVertex0) {
var m = i.m_vertex0
, y = o
, v = I.SubVV(y, m, ke);
if (I.DotVV(v, I.SubVV(y, a, I.s_t0)) > 0)
return
}
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),
void e.points[0].localPoint.Copy(r.m_p)
}
if (c <= 0) {
var g = l
, A = I.SubVV(a, g, Ne);
if (I.DotVV(A, A) > _ * _)
return;
if (i.m_hasVertex3) {
var x = i.m_vertex3
, b = l
, C = I.SubVV(x, b, Ge);
if (I.DotVV(C, I.SubVV(a, b, I.s_t0)) > 0)
return
}
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),
void e.points[0].localPoint.Copy(r.m_p)
}
var T = I.DotVV(h, h)
, S = Ue;
S.x = 1 / T * (c * o.x + u * l.x),
S.y = 1 / T * (c * o.y + u * l.y);
var w = I.SubVV(a, S, Ne);
if (!(I.DotVV(w, w) > _ * _)) {
var E = ze.Set(-h.y, h.x);
I.DotVV(E, I.SubVV(a, o, I.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(o),
e.points[0].id.Copy(f),
e.points[0].localPoint.Copy(r.m_p)
}
}
var je = function() {
this.type = 0,
this.index = 0,
this.separation = 0
}
, Xe = function() {
this.vertices = I.MakeArray(o),
this.normals = I.MakeArray(o),
this.count = 0
}
, Ye = function() {
this.i1 = 0,
this.i2 = 0,
this.v1 = new I,
this.v2 = new I,
this.normal = new I,
this.sideNormal1 = new I,
this.sideOffset1 = 0,
this.sideNormal2 = new I,
this.sideOffset2 = 0
}
, qe = new (function() {
function e() {
this.m_polygonB = new Xe,
this.m_xf = new V,
this.m_centroidB = new I,
this.m_v0 = new I,
this.m_v1 = new I,
this.m_v2 = new I,
this.m_v3 = new I,
this.m_normal0 = new I,
this.m_normal1 = new I,
this.m_normal2 = new I,
this.m_normal = new I,
this.m_type1 = 0,
this.m_type2 = 0,
this.m_lowerLimit = new I,
this.m_upperLimit = new I,
this.m_radius = 0,
this.m_front = !1
}
return e.prototype.Collide = function(i, n, r, s, o) {
V.MulTXX(r, o, this.m_xf),
V.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 l = n.m_hasVertex0
, h = n.m_hasVertex3
, c = I.SubVV(this.m_v2, this.m_v1, e.s_edge1);
c.Normalize(),
this.m_normal1.Set(c.y, -c.x);
var u = I.DotVV(this.m_normal1, I.SubVV(this.m_centroidB, this.m_v1, I.s_t0))
, _ = 0
, f = 0
, d = !1
, p = !1;
if (l) {
var m = I.SubVV(this.m_v1, this.m_v0, e.s_edge0);
m.Normalize(),
this.m_normal0.Set(m.y, -m.x),
d = I.CrossVV(m, c) >= 0,
_ = I.DotVV(this.m_normal0, I.SubVV(this.m_centroidB, this.m_v0, I.s_t0))
}
if (h) {
var y = I.SubVV(this.m_v3, this.m_v2, e.s_edge2);
y.Normalize(),
this.m_normal2.Set(y.y, -y.x),
p = I.CrossVV(c, y) > 0,
f = I.DotVV(this.m_normal2, I.SubVV(this.m_centroidB, this.m_v2, I.s_t0))
}
l && h ? d && p ? (this.m_front = _ >= 0 || u >= 0 || f >= 0,
this.m_front ? (this.m_normal.Copy(this.m_normal1),
this.m_lowerLimit.Copy(this.m_normal0),
this.m_upperLimit.Copy(this.m_normal2)) : (this.m_normal.Copy(this.m_normal1).SelfNeg(),
this.m_lowerLimit.Copy(this.m_normal1).SelfNeg(),
this.m_upperLimit.Copy(this.m_normal1).SelfNeg())) : d ? (this.m_front = _ >= 0 || u >= 0 && f >= 0,
this.m_front ? (this.m_normal.Copy(this.m_normal1),
this.m_lowerLimit.Copy(this.m_normal0),
this.m_upperLimit.Copy(this.m_normal1)) : (this.m_normal.Copy(this.m_normal1).SelfNeg(),
this.m_lowerLimit.Copy(this.m_normal2).SelfNeg(),
this.m_upperLimit.Copy(this.m_normal1).SelfNeg())) : p ? (this.m_front = f >= 0 || _ >= 0 && u >= 0,
this.m_front ? (this.m_normal.Copy(this.m_normal1),
this.m_lowerLimit.Copy(this.m_normal1),
this.m_upperLimit.Copy(this.m_normal2)) : (this.m_normal.Copy(this.m_normal1).SelfNeg(),
this.m_lowerLimit.Copy(this.m_normal1).SelfNeg(),
this.m_upperLimit.Copy(this.m_normal0).SelfNeg())) : (this.m_front = _ >= 0 && u >= 0 && f >= 0,
this.m_front ? (this.m_normal.Copy(this.m_normal1),
this.m_lowerLimit.Copy(this.m_normal1),
this.m_upperLimit.Copy(this.m_normal1)) : (this.m_normal.Copy(this.m_normal1).SelfNeg(),
this.m_lowerLimit.Copy(this.m_normal2).SelfNeg(),
this.m_upperLimit.Copy(this.m_normal0).SelfNeg())) : l ? d ? (this.m_front = _ >= 0 || u >= 0,
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()) : (this.m_normal.Copy(this.m_normal1).SelfNeg(),
this.m_lowerLimit.Copy(this.m_normal1),
this.m_upperLimit.Copy(this.m_normal1).SelfNeg())) : (this.m_front = _ >= 0 && u >= 0,
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()) : (this.m_normal.Copy(this.m_normal1).SelfNeg(),
this.m_lowerLimit.Copy(this.m_normal1),
this.m_upperLimit.Copy(this.m_normal0).SelfNeg())) : h ? p ? (this.m_front = u >= 0 || f >= 0,
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)) : (this.m_normal.Copy(this.m_normal1).SelfNeg(),
this.m_lowerLimit.Copy(this.m_normal1).SelfNeg(),
this.m_upperLimit.Copy(this.m_normal1))) : (this.m_front = u >= 0 && f >= 0,
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)) : (this.m_normal.Copy(this.m_normal1).SelfNeg(),
this.m_lowerLimit.Copy(this.m_normal2).SelfNeg(),
this.m_upperLimit.Copy(this.m_normal1))) : (this.m_front = u >= 0,
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()) : (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 v = 0; v < s.m_count; ++v)
V.MulXV(this.m_xf, s.m_vertices[v], this.m_polygonB.vertices[v]),
F.MulRV(this.m_xf.q, s.m_normals[v], this.m_polygonB.normals[v]);
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 A = this.ComputePolygonSeparation(e.s_polygonAxis);
if (!(0 !== A.type && A.separation > this.m_radius)) {
var x;
x = 0 === A.type ? g : A.separation > .98 * g.separation + .001 ? A : g;
var b = e.s_ie
, C = e.s_rf;
if (1 === x.type) {
i.type = t.b2ManifoldType.e_faceA;
var T = 0
, S = I.DotVV(this.m_normal, this.m_polygonB.normals[0]);
for (v = 1; v < this.m_polygonB.count; ++v) {
var w = I.DotVV(this.m_normal, this.m_polygonB.normals[v]);
w < S && (S = w,
T = v)
}
var E = T
, M = (E + 1) % this.m_polygonB.count;
(D = b[0]).v.Copy(this.m_polygonB.vertices[E]),
D.id.cf.indexA = 0,
D.id.cf.indexB = E,
D.id.cf.typeA = t.b2ContactFeatureType.e_face,
D.id.cf.typeB = t.b2ContactFeatureType.e_vertex,
(B = b[1]).v.Copy(this.m_polygonB.vertices[M]),
B.id.cf.indexA = 0,
B.id.cf.indexB = M,
B.id.cf.typeA = t.b2ContactFeatureType.e_face,
B.id.cf.typeB = t.b2ContactFeatureType.e_vertex,
this.m_front ? (C.i1 = 0,
C.i2 = 1,
C.v1.Copy(this.m_v1),
C.v2.Copy(this.m_v2),
C.normal.Copy(this.m_normal1)) : (C.i1 = 1,
C.i2 = 0,
C.v1.Copy(this.m_v2),
C.v2.Copy(this.m_v1),
C.normal.Copy(this.m_normal1).SelfNeg())
} else {
var D, B;
i.type = t.b2ManifoldType.e_faceB,
(D = b[0]).v.Copy(this.m_v1),
D.id.cf.indexA = 0,
D.id.cf.indexB = x.index,
D.id.cf.typeA = t.b2ContactFeatureType.e_vertex,
D.id.cf.typeB = t.b2ContactFeatureType.e_face,
(B = b[1]).v.Copy(this.m_v2),
B.id.cf.indexA = 0,
B.id.cf.indexB = x.index,
B.id.cf.typeA = t.b2ContactFeatureType.e_vertex,
B.id.cf.typeB = t.b2ContactFeatureType.e_face,
C.i1 = x.index,
C.i2 = (C.i1 + 1) % this.m_polygonB.count,
C.v1.Copy(this.m_polygonB.vertices[C.i1]),
C.v2.Copy(this.m_polygonB.vertices[C.i2]),
C.normal.Copy(this.m_polygonB.normals[C.i1])
}
C.sideNormal1.Set(C.normal.y, -C.normal.x),
C.sideNormal2.Copy(C.sideNormal1).SelfNeg(),
C.sideOffset1 = I.DotVV(C.sideNormal1, C.v1),
C.sideOffset2 = I.DotVV(C.sideNormal2, C.v2);
var P = e.s_clipPoints1
, R = e.s_clipPoints2;
if (!(wt(P, b, C.sideNormal1, C.sideOffset1, C.i1) < a || wt(R, P, C.sideNormal2, C.sideOffset2, C.i2) < a)) {
1 === x.type ? (i.localNormal.Copy(C.normal),
i.localPoint.Copy(C.v1)) : (i.localNormal.Copy(s.m_normals[C.i1]),
i.localPoint.Copy(s.m_vertices[C.i1]));
var O = 0;
for (v = 0; v < a; ++v)
if (I.DotVV(C.normal, I.SubVV(R[v].v, C.v1, I.s_t0)) <= this.m_radius) {
var L = i.points[O];
1 === x.type ? (V.MulTXV(this.m_xf, R[v].v, L.localPoint),
L.id = R[v].id) : (L.localPoint.Copy(R[v].v),
L.id.cf.typeA = R[v].id.cf.typeB,
L.id.cf.typeB = R[v].id.cf.typeA,
L.id.cf.indexA = R[v].id.cf.indexB,
L.id.cf.indexB = R[v].id.cf.indexA),
++O
}
i.pointCount = O
}
}
}
}
,
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 = I.DotVV(this.m_normal, I.SubVV(this.m_polygonB.vertices[n], this.m_v1, I.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 a = I.NegV(this.m_polygonB.normals[s], e.s_n)
, o = I.DotVV(a, I.SubVV(this.m_polygonB.vertices[s], this.m_v1, I.s_t0))
, l = I.DotVV(a, I.SubVV(this.m_polygonB.vertices[s], this.m_v2, I.s_t0))
, c = y(o, l);
if (c > this.m_radius)
return n.type = 2,
n.index = s,
n.separation = c,
n;
if (I.DotVV(a, r) >= 0) {
if (I.DotVV(I.SubVV(a, this.m_upperLimit, I.s_t0), this.m_normal) < -h)
continue
} else if (I.DotVV(I.SubVV(a, this.m_lowerLimit, I.s_t0), this.m_normal) < -h)
continue;
c > n.separation && (n.type = 2,
n.index = s,
n.separation = c)
}
return n
}
,
e.s_edge1 = new I,
e.s_edge0 = new I,
e.s_edge2 = new I,
e.s_ie = xt.MakeArray(2),
e.s_rf = new Ye,
e.s_clipPoints1 = xt.MakeArray(2),
e.s_clipPoints2 = xt.MakeArray(2),
e.s_edgeAxis = new je,
e.s_polygonAxis = new je,
e.s_n = new I,
e.s_perp = new I,
e
}());
function Je(t, e, i, n, r) {
qe.Collide(t, e, i, n, r)
}
var Ze, Ke = function() {
this.mass = 0,
this.center = new I(0,0),
this.I = 0
};
(Ze = t.b2ShapeType || (t.b2ShapeType = {}))[Ze.e_unknown = -1] = "e_unknown",
Ze[Ze.e_circleShape = 0] = "e_circleShape",
Ze[Ze.e_edgeShape = 1] = "e_edgeShape",
Ze[Ze.e_polygonShape = 2] = "e_polygonShape",
Ze[Ze.e_chainShape = 3] = "e_chainShape",
Ze[Ze.e_shapeTypeCount = 4] = "e_shapeTypeCount";
var Qe = (function() {
function e(e, i) {
this.m_type = t.b2ShapeType.e_unknown,
this.m_radius = 0,
this.m_type = e,
this.m_radius = i
}
return e.prototype.Copy = function(t) {
return this.m_radius = t.m_radius,
this
}
,
e.prototype.GetType = function() {
return this.m_type
}
,
e
}
)()
, $e = 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 ti(t, e) {
function i() {
this.constructor = t
}
$e(t, e),
t.prototype = null === e ? Object.create(e) : (i.prototype = e.prototype,
new i)
}
var ei, ii = (function(e) {
function i(i) {
void 0 === i && (i = 0);
var n = e.call(this, t.b2ShapeType.e_circleShape, i) || this;
return n.m_p = new I,
n
}
return ti(i, e),
i.prototype.Set = function(t, e) {
return void 0 === e && (e = this.m_radius),
this.m_p.Copy(t),
this.m_radius = e,
this
}
,
i.prototype.Clone = function() {
return (new i).Copy(this)
}
,
i.prototype.Copy = function(t) {
return e.prototype.Copy.call(this, t),
this.m_p.Copy(t.m_p),
this
}
,
i.prototype.GetChildCount = function() {
return 1
}
,
i.prototype.TestPoint = function(t, e) {
var n = V.MulXV(t, this.m_p, i.TestPoint_s_center)
, r = I.SubVV(e, n, i.TestPoint_s_d);
return I.DotVV(r, r) <= x(this.m_radius)
}
,
i.prototype.ComputeDistance = function(t, e, n) {
var r = V.MulXV(t, this.m_p, i.ComputeDistance_s_center);
return I.SubVV(e, r, n),
n.Normalize() - this.m_radius
}
,
i.prototype.RayCast = function(t, e, r) {
var s = V.MulXV(r, this.m_p, i.RayCast_s_position)
, a = I.SubVV(e.p1, s, i.RayCast_s_s)
, o = I.DotVV(a, a) - x(this.m_radius)
, l = I.SubVV(e.p2, e.p1, i.RayCast_s_r)
, h = I.DotVV(a, l)
, c = I.DotVV(l, l)
, u = h * h - c * o;
if (u < 0 || c < n)
return !1;
var _ = -(h + T(u));
return 0 <= _ && _ <= e.maxFraction * c && (_ /= c,
t.fraction = _,
I.AddVMulSV(a, _, l, t.normal).SelfNormalize(),
!0)
}
,
i.prototype.ComputeAABB = function(t, e) {
var n = V.MulXV(e, this.m_p, i.ComputeAABB_s_p);
t.lowerBound.Set(n.x - this.m_radius, n.y - this.m_radius),
t.upperBound.Set(n.x + this.m_radius, n.y + this.m_radius)
}
,
i.prototype.ComputeMass = function(t, e) {
var i = x(this.m_radius);
t.mass = e * s * i,
t.center.Copy(this.m_p),
t.I = t.mass * (.5 * i + I.DotVV(this.m_p, this.m_p))
}
,
i.prototype.SetupDistanceProxy = function(t) {
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 a = V.MulXV(i, this.m_p, new I)
, o = -(I.DotVV(t, a) - e);
if (o < -this.m_radius + n)
return 0;
if (o > this.m_radius)
return r.Copy(a),
s * this.m_radius * this.m_radius;
var l = this.m_radius * this.m_radius
, h = o * o
, c = l * (D(o / this.m_radius) + s / 2) + o * T(l - h)
, u = -2 / 3 * S(l - h, 1.5) / c;
return r.x = a.x + t.x * u,
r.y = a.y + t.y * u,
c
}
,
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 I,
i.TestPoint_s_d = new I,
i.ComputeDistance_s_center = new I,
i.RayCast_s_position = new I,
i.RayCast_s_s = new I,
i.RayCast_s_r = new I,
i.ComputeAABB_s_p = new I,
i
}
)(Qe), ni = (function(e) {
function r() {
var i = e.call(this, t.b2ShapeType.e_polygonShape, c) || this;
return i.m_centroid = new I(0,0),
i.m_vertices = [],
i.m_normals = [],
i.m_count = 0,
i
}
return ti(r, e),
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 = I.MakeArray(this.m_count),
this.m_normals = I.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) {
if (void 0 === e && (e = t.length),
void 0 === i && (i = 0),
e < 3)
return this.SetAsBox(1, 1);
for (var n = y(e, o), s = r.Set_s_ps, a = 0, h = 0; h < n; ++h) {
for (var c = t[i + h], u = !0, _ = 0; _ < a; ++_)
if (I.DistanceSquaredVV(c, s[_]) < .25 * l * l) {
u = !1;
break
}
u && s[a++].Copy(c)
}
if ((n = a) < 3)
return this.SetAsBox(1, 1);
var f = 0
, d = s[0].x;
for (h = 1; h < n; ++h) {
var p = s[h].x;
(p > d || p === d && s[h].y < s[f].y) && (f = h,
d = p)
}
for (var m = r.Set_s_hull, v = 0, g = f; ; ) {
m[v] = g;
var A = 0;
for (_ = 1; _ < n; ++_)
if (A !== g) {
var x = I.SubVV(s[A], s[m[v]], r.Set_s_r)
, b = (c = I.SubVV(s[_], s[m[v]], r.Set_s_v),
I.CrossVV(x, c));
b < 0 && (A = _),
0 === b && c.LengthSquared() > x.LengthSquared() && (A = _)
} else
A = _;
if (++v,
g = A,
A === f)
break
}
for (this.m_count = v,
this.m_vertices = I.MakeArray(this.m_count),
this.m_normals = I.MakeArray(this.m_count),
h = 0; h < v; ++h)
this.m_vertices[h].Copy(s[m[h]]);
for (h = 0; h < v; ++h) {
var C = this.m_vertices[h]
, T = this.m_vertices[(h + 1) % v]
, S = I.SubVV(T, C, I.s_t0);
I.CrossVOne(S, this.m_normals[h]).SelfNormalize()
}
return r.ComputeCentroid(this.m_vertices, v, this.m_centroid),
this
}
,
r.prototype.SetAsArray = function(t, e) {
return void 0 === e && (e = t.length),
this.Set(t, e)
}
,
r.prototype.SetAsBox = function(t, e, i, n) {
if (void 0 === n && (n = 0),
this.m_count = 4,
this.m_vertices = I.MakeArray(this.m_count),
this.m_normals = I.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(),
i) {
this.m_centroid.Copy(i);
var r = new V;
r.SetPosition(i),
r.SetRotationAngle(n);
for (var s = 0; s < this.m_count; ++s)
V.MulXV(r, this.m_vertices[s], this.m_vertices[s]),
F.MulRV(r.q, this.m_normals[s], this.m_normals[s])
}
return this
}
,
r.prototype.TestPoint = function(t, e) {
for (var i = V.MulTXV(t, e, r.TestPoint_s_pLocal), n = 0; n < this.m_count; ++n)
if (I.DotVV(this.m_normals[n], I.SubVV(i, this.m_vertices[n], I.s_t0)) > 0)
return !1;
return !0
}
,
r.prototype.ComputeDistance = function(t, e, n) {
for (var s = V.MulTXV(t, e, r.ComputeDistance_s_pLocal), a = -i, o = r.ComputeDistance_s_normalForMaxDistance.Copy(s), l = 0; l < this.m_count; ++l) {
var h = I.DotVV(this.m_normals[l], I.SubVV(s, this.m_vertices[l], I.s_t0));
h > a && (a = h,
o.Copy(this.m_normals[l]))
}
if (a > 0) {
var c = r.ComputeDistance_s_minDistance.Copy(o)
, u = a * a;
for (l = 0; l < this.m_count; ++l) {
var _ = I.SubVV(s, this.m_vertices[l], r.ComputeDistance_s_distance)
, f = _.LengthSquared();
u > f && (c.Copy(_),
u = f)
}
return F.MulRV(t.q, c, n),
n.Normalize(),
Math.sqrt(u)
}
return F.MulRV(t.q, o, n),
a
}
,
r.prototype.RayCast = function(t, e, i) {
for (var n = V.MulTXV(i, e.p1, r.RayCast_s_p1), s = V.MulTXV(i, e.p2, r.RayCast_s_p2), a = I.SubVV(s, n, r.RayCast_s_d), o = 0, l = e.maxFraction, h = -1, c = 0; c < this.m_count; ++c) {
var u = I.DotVV(this.m_normals[c], I.SubVV(this.m_vertices[c], n, I.s_t0))
, _ = I.DotVV(this.m_normals[c], a);
if (0 === _) {
if (u < 0)
return !1
} else
_ < 0 && u < o * _ ? (o = u / _,
h = c) : _ > 0 && u < l * _ && (l = u / _);
if (l < o)
return !1
}
return h >= 0 && (t.fraction = o,
F.MulRV(i.q, this.m_normals[h], t.normal),
!0)
}
,
r.prototype.ComputeAABB = function(t, e) {
for (var i = V.MulXV(e, this.m_vertices[0], t.lowerBound), n = t.upperBound.Copy(i), s = 0; s < this.m_count; ++s) {
var a = V.MulXV(e, this.m_vertices[s], r.ComputeAABB_s_v);
I.MinV(a, i, i),
I.MaxV(a, n, n)
}
var o = this.m_radius;
i.SelfSubXY(o, o),
n.SelfAddXY(o, o)
}
,
r.prototype.ComputeMass = function(t, e) {
for (var i = r.ComputeMass_s_center.SetZero(), n = 0, s = 0, a = r.ComputeMass_s_s.SetZero(), o = 0; o < this.m_count; ++o)
a.SelfAdd(this.m_vertices[o]);
for (a.SelfMul(1 / this.m_count),
o = 0; o < this.m_count; ++o) {
var l = I.SubVV(this.m_vertices[o], a, r.ComputeMass_s_e1)
, h = I.SubVV(this.m_vertices[(o + 1) % this.m_count], a, r.ComputeMass_s_e2)
, c = I.CrossVV(l, h)
, u = .5 * c;
n += u,
i.SelfAdd(I.MulSV(u * (1 / 3), I.AddVV(l, h, I.s_t0), I.s_t1));
var _ = l.x
, f = l.y
, d = h.x
, p = h.y;
s += 1 / 3 * .25 * c * (_ * _ + d * _ + d * d + f * f + p * f + p * p)
}
t.mass = e * n,
i.SelfMul(1 / n),
I.AddVV(i, a, t.center),
t.I = e * s,
t.I += t.mass * (I.DotVV(t.center, t.center) - I.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 = I.SubVV(this.m_vertices[i], n, r.Validate_s_e), a = 0; a < this.m_count; ++a)
if (a !== e && a !== i) {
var o = I.SubVV(this.m_vertices[a], n, r.Validate_s_v);
if (I.CrossVV(s, o) < 0)
return !1
}
return !0
}
,
r.prototype.SetupDistanceProxy = function(t) {
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 a = F.MulTRV(i.q, t, r.ComputeSubmergedArea_s_normalL), o = e - I.DotVV(t, i.p), l = r.ComputeSubmergedArea_s_depths, h = 0, c = -1, u = -1, _ = !1, f = 0; f < this.m_count; ++f) {
l[f] = I.DotVV(a, this.m_vertices[f]) - o;
var d = l[f] < -n;
f > 0 && (d ? _ || (c = f - 1,
h++) : _ && (u = f - 1,
h++)),
_ = d
}
switch (h) {
case 0:
if (_) {
var p = r.ComputeSubmergedArea_s_md;
return this.ComputeMass(p, 1),
V.MulXV(i, p.center, s),
p.mass
}
return 0;
case 1:
-1 === c ? c = this.m_count - 1 : u = this.m_count - 1
}
for (var m, y = (c + 1) % this.m_count, v = (u + 1) % this.m_count, g = (0 - l[c]) / (l[y] - l[c]), A = (0 - l[u]) / (l[v] - l[u]), x = r.ComputeSubmergedArea_s_intoVec.Set(this.m_vertices[c].x * (1 - g) + this.m_vertices[y].x * g, this.m_vertices[c].y * (1 - g) + this.m_vertices[y].y * g), b = r.ComputeSubmergedArea_s_outoVec.Set(this.m_vertices[u].x * (1 - A) + this.m_vertices[v].x * A, this.m_vertices[u].y * (1 - A) + this.m_vertices[v].y * A), C = 0, T = r.ComputeSubmergedArea_s_center.SetZero(), S = this.m_vertices[y], w = y; w !== v; ) {
m = (w = (w + 1) % this.m_count) === v ? b : this.m_vertices[w];
var E = .5 * ((S.x - x.x) * (m.y - x.y) - (S.y - x.y) * (m.x - x.x));
C += E,
T.x += E * (x.x + S.x + m.x) / 3,
T.y += E * (x.y + S.y + m.y) / 3,
S = m
}
return T.SelfMul(1 / C),
V.MulXV(i, T, s),
C
}
,
r.prototype.Dump = function(t) {
t(" const shape: b2PolygonShape = new b2PolygonShape();\n"),
t(" const vs: b2Vec2[] = b2Vec2.MakeArray(%d);\n", o);
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, a = r.ComputeCentroid_s_pRef.SetZero(), o = 0; o < e; ++o) {
var l = a
, h = t[o]
, c = t[(o + 1) % e]
, u = I.SubVV(h, l, r.ComputeCentroid_s_e1)
, _ = I.SubVV(c, l, r.ComputeCentroid_s_e2)
, f = .5 * I.CrossVV(u, _);
s += f,
n.x += f * (1 / 3) * (l.x + h.x + c.x),
n.y += f * (1 / 3) * (l.y + h.y + c.y)
}
return n.SelfMul(1 / s),
n
}
,
r.Set_s_ps = I.MakeArray(o),
r.Set_s_hull = p(o),
r.Set_s_r = new I,
r.Set_s_v = new I,
r.TestPoint_s_pLocal = new I,
r.ComputeDistance_s_pLocal = new I,
r.ComputeDistance_s_normalForMaxDistance = new I,
r.ComputeDistance_s_minDistance = new I,
r.ComputeDistance_s_distance = new I,
r.RayCast_s_p1 = new I,
r.RayCast_s_p2 = new I,
r.RayCast_s_d = new I,
r.ComputeAABB_s_v = new I,
r.ComputeMass_s_center = new I,
r.ComputeMass_s_s = new I,
r.ComputeMass_s_e1 = new I,
r.ComputeMass_s_e2 = new I,
r.Validate_s_e = new I,
r.Validate_s_v = new I,
r.ComputeSubmergedArea_s_normalL = new I,
r.ComputeSubmergedArea_s_depths = p(o),
r.ComputeSubmergedArea_s_md = new Ke,
r.ComputeSubmergedArea_s_intoVec = new I,
r.ComputeSubmergedArea_s_outoVec = new I,
r.ComputeSubmergedArea_s_center = new I,
r.ComputeCentroid_s_pRef = new I,
r.ComputeCentroid_s_e1 = new I,
r.ComputeCentroid_s_e2 = new I,
r
}
)(Qe), ri = (function(e) {
function i() {
var i = e.call(this, t.b2ShapeType.e_edgeShape, c) || this;
return i.m_vertex1 = new I,
i.m_vertex2 = new I,
i.m_vertex0 = new I,
i.m_vertex3 = new I,
i.m_hasVertex0 = !1,
i.m_hasVertex3 = !1,
i
}
return ti(i, e),
i.prototype.Set = function(t, e) {
return this.m_vertex1.Copy(t),
this.m_vertex2.Copy(e),
this.m_hasVertex0 = !1,
this.m_hasVertex3 = !1,
this
}
,
i.prototype.Clone = function() {
return (new i).Copy(this)
}
,
i.prototype.Copy = function(t) {
return 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,
this
}
,
i.prototype.GetChildCount = function() {
return 1
}
,
i.prototype.TestPoint = function() {
return !1
}
,
i.prototype.ComputeDistance = function(t, e, n) {
var r = V.MulXV(t, this.m_vertex1, i.ComputeDistance_s_v1)
, s = V.MulXV(t, this.m_vertex2, i.ComputeDistance_s_v2)
, a = I.SubVV(e, r, i.ComputeDistance_s_d)
, o = I.SubVV(s, r, i.ComputeDistance_s_s)
, l = I.DotVV(a, o);
if (l > 0) {
var h = I.DotVV(o, o);
l > h ? I.SubVV(e, s, a) : a.SelfMulSub(l / h, o)
}
return n.Copy(a),
n.Normalize()
}
,
i.prototype.RayCast = function(t, e, n) {
var r = V.MulTXV(n, e.p1, i.RayCast_s_p1)
, s = V.MulTXV(n, e.p2, i.RayCast_s_p2)
, a = I.SubVV(s, r, i.RayCast_s_d)
, o = this.m_vertex1
, l = this.m_vertex2
, h = I.SubVV(l, o, i.RayCast_s_e)
, c = t.normal.Set(h.y, -h.x).SelfNormalize()
, u = I.DotVV(c, I.SubVV(o, r, I.s_t0))
, _ = I.DotVV(c, a);
if (0 === _)
return !1;
var f = u / _;
if (f < 0 || e.maxFraction < f)
return !1;
var d = I.AddVMulSV(r, f, a, i.RayCast_s_q)
, p = I.SubVV(l, o, i.RayCast_s_r)
, m = I.DotVV(p, p);
if (0 === m)
return !1;
var y = I.DotVV(I.SubVV(d, o, I.s_t0), p) / m;
return !(y < 0 || 1 < y || (t.fraction = f,
F.MulRV(n.q, t.normal, t.normal),
u > 0 && t.normal.SelfNeg(),
0))
}
,
i.prototype.ComputeAABB = function(t, e) {
var n = V.MulXV(e, this.m_vertex1, i.ComputeAABB_s_v1)
, r = V.MulXV(e, this.m_vertex2, i.ComputeAABB_s_v2);
I.MinV(n, r, t.lowerBound),
I.MaxV(n, r, t.upperBound);
var s = this.m_radius;
t.lowerBound.SelfSubXY(s, s),
t.upperBound.SelfAddXY(s, s)
}
,
i.prototype.ComputeMass = function(t) {
t.mass = 0,
I.MidVV(this.m_vertex1, this.m_vertex2, t.center),
t.I = 0
}
,
i.prototype.SetupDistanceProxy = function(t) {
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) {
return n.SetZero(),
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 I,
i.ComputeDistance_s_v2 = new I,
i.ComputeDistance_s_d = new I,
i.ComputeDistance_s_s = new I,
i.RayCast_s_p1 = new I,
i.RayCast_s_p2 = new I,
i.RayCast_s_d = new I,
i.RayCast_s_e = new I,
i.RayCast_s_q = new I,
i.RayCast_s_r = new I,
i.ComputeAABB_s_v1 = new I,
i.ComputeAABB_s_v2 = new I,
i
}
)(Qe), si = (function(e) {
function i() {
var i = e.call(this, t.b2ShapeType.e_chainShape, c) || this;
return i.m_vertices = [],
i.m_count = 0,
i.m_prevVertex = new I,
i.m_nextVertex = new I,
i.m_hasPrevVertex = !1,
i.m_hasNextVertex = !1,
i
}
return ti(i, e),
i.prototype.CreateLoop = function(t, e, i) {
if (void 0 === e && (e = t.length),
void 0 === i && (i = 0),
e < 3)
return this;
this.m_count = e + 1,
this.m_vertices = I.MakeArray(this.m_count);
for (var n = 0; n < e; ++n)
this.m_vertices[n].Copy(t[i + n]);
return 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,
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 = I.MakeArray(e);
for (var n = 0; n < e; ++n)
this.m_vertices[n].Copy(t[i + n]);
return this.m_hasPrevVertex = !1,
this.m_hasNextVertex = !1,
this.m_prevVertex.SetZero(),
this.m_nextVertex.SetZero(),
this
}
,
i.prototype.SetPrevVertex = function(t) {
return this.m_prevVertex.Copy(t),
this.m_hasPrevVertex = !0,
this
}
,
i.prototype.SetNextVertex = function(t) {
return this.m_nextVertex.Copy(t),
this.m_hasNextVertex = !0,
this
}
,
i.prototype.Clone = function() {
return (new i).Copy(this)
}
,
i.prototype.Copy = function(t) {
return 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,
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]),
i > 0 ? (e.m_vertex0.Copy(this.m_vertices[i - 1]),
e.m_hasVertex0 = !0) : (e.m_vertex0.Copy(this.m_prevVertex),
e.m_hasVertex0 = this.m_hasPrevVertex),
i < this.m_count - 2 ? (e.m_vertex3.Copy(this.m_vertices[i + 2]),
e.m_hasVertex3 = !0) : (e.m_vertex3.Copy(this.m_nextVertex),
e.m_hasVertex3 = this.m_hasNextVertex)
}
,
i.prototype.TestPoint = function() {
return !1
}
,
i.prototype.ComputeDistance = function(t, e, n, r) {
var s = i.ComputeDistance_s_edgeShape;
return this.GetChildEdge(s, r),
s.ComputeDistance(t, e, n, 0)
}
,
i.prototype.RayCast = function(t, e, n, r) {
var s = i.RayCast_s_edgeShape;
return s.m_vertex1.Copy(this.m_vertices[r]),
s.m_vertex2.Copy(this.m_vertices[(r + 1) % this.m_count]),
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]
, a = V.MulXV(e, r, i.ComputeAABB_s_v1)
, o = V.MulXV(e, s, i.ComputeAABB_s_v2);
I.MinV(a, o, t.lowerBound),
I.MaxV(a, o, t.upperBound)
}
,
i.prototype.ComputeMass = function(t) {
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) {
return n.SetZero(),
0
}
,
i.prototype.Dump = function(t) {
t(" const shape: b2ChainShape = new b2ChainShape();\n"),
t(" const vs: b2Vec2[] = b2Vec2.MakeArray(%d);\n", o);
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 ri,
i.RayCast_s_edgeShape = new ri,
i.ComputeAABB_s_v1 = new I,
i.ComputeAABB_s_v2 = new I,
i
}
)(Qe), ai = (function() {
function t() {
this.categoryBits = 1,
this.maskBits = 65535,
this.groupIndex = 0
}
return t.prototype.Clone = function() {
return (new t).Copy(this)
}
,
t.prototype.Copy = function(t) {
return this.categoryBits = t.categoryBits,
this.maskBits = t.maskBits,
this.groupIndex = t.groupIndex || 0,
this
}
,
t.DEFAULT = new t,
t
}
)(), oi = function() {
this.userData = null,
this.friction = .2,
this.restitution = 0,
this.density = 0,
this.isSensor = !1,
this.filter = new ai
}, li = function(t) {
this.aabb = new Tt,
this.childIndex = 0,
this.fixture = t
}, hi = (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 ai,
this.m_isSensor = !1,
this.m_userData = null,
this.m_body = e,
this.m_shape = t.shape.Clone()
}
return t.prototype.GetType = function() {
return this.m_shape.GetType()
}
,
t.prototype.GetShape = function() {
return this.m_shape
}
,
t.prototype.SetSensor = function(t) {
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, a = 0; a < this.m_proxyCount; ++a)
s.TouchProxy(this.m_proxies[a].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) {
return void 0 === t && (t = new Ke),
this.m_shape.ComputeMass(t, this.m_density),
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, ai.DEFAULT)),
this.m_isSensor = e(t.isSensor, !1),
this.m_proxies = d(this.m_shape.GetChildCount(), (function() {
return new li(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 li(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]
, a = t.Synchronize_s_aabb1
, o = t.Synchronize_s_aabb2;
this.m_shape.ComputeAABB(a, e, r),
this.m_shape.ComputeAABB(o, i, r),
s.aabb.Combine2(a, o);
var l = I.SubVV(i.p, e.p, t.Synchronize_s_displacement);
n.MoveProxy(s.treeNode, s.aabb, l)
}
}
,
t.Synchronize_s_aabb1 = new Tt,
t.Synchronize_s_aabb2 = new Tt,
t.Synchronize_s_displacement = new I,
t
}
)();
(ei = t.b2BodyType || (t.b2BodyType = {}))[ei.b2_unknown = -1] = "b2_unknown",
ei[ei.b2_staticBody = 0] = "b2_staticBody",
ei[ei.b2_kinematicBody = 1] = "b2_kinematicBody",
ei[ei.b2_dynamicBody = 2] = "b2_dynamicBody";
var ci, ui, _i = (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 V,
this.m_xf0 = new V,
this.m_sweep = new N,
this.m_linearVelocity = new I,
this.m_angularVelocity = 0,
this.m_force = new I,
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, I.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, I.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),
i.type === t.b2BodyType.b2_dynamicBody ? (this.m_mass = 1,
this.m_invMass = 1) : (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
}
return i.prototype.CreateFixture = function(t, e) {
return void 0 === e && (e = 0),
t instanceof Qe ? this.CreateFixtureShapeDensity(t, e) : this.CreateFixtureDef(t)
}
,
i.prototype.CreateFixtureDef = function(t) {
if (this.m_world.IsLocked())
throw new Error;
var e = new hi(t,this);
return 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,
e
}
,
i.prototype.CreateFixtureShapeDensity = function(t, e) {
void 0 === e && (e = 0);
var n = i.CreateFixtureShapeDensity_s_def;
return n.shape = t,
n.density = e,
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()
, a = r.GetFixtureB();
t !== s && t !== a || 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),
V.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) {
this.m_type !== t.b2BodyType.b2_staticBody && (I.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) {
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) {
return 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(),
t
}
,
i.prototype.ApplyForce = function(e, i, n) {
void 0 === n && (n = !0),
this.m_type === t.b2BodyType.b2_dynamicBody && (n && !this.m_awakeFlag && this.SetAwake(!0),
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),
this.m_type === t.b2BodyType.b2_dynamicBody && (i && !this.m_awakeFlag && this.SetAwake(!0),
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),
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),
this.m_type === t.b2BodyType.b2_dynamicBody && (n && !this.m_awakeFlag && this.SetAwake(!0),
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),
this.m_type === t.b2BodyType.b2_dynamicBody && (i && !this.m_awakeFlag && this.SetAwake(!0),
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),
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 * I.DotVV(this.m_sweep.localCenter, this.m_sweep.localCenter)
}
,
i.prototype.GetMassData = function(t) {
return t.mass = this.m_mass,
t.I = this.m_I + this.m_mass * I.DotVV(this.m_sweep.localCenter, this.m_sweep.localCenter),
t.center.Copy(this.m_sweep.localCenter),
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,
e.I > 0 && !this.m_fixedRotationFlag && (this.m_I = e.I - this.m_mass * I.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),
V.MulXV(this.m_xf, this.m_sweep.localCenter, this.m_sweep.c),
this.m_sweep.c0.Copy(this.m_sweep.c),
I.AddVCrossSV(this.m_linearVelocity, this.m_angularVelocity, I.SubVV(this.m_sweep.c, n, I.s_t0), this.m_linearVelocity)
}
}
,
i.prototype.ResetMassData = function() {
if (this.m_mass = 0,
this.m_invMass = 0,
this.m_I = 0,
this.m_invI = 0,
this.m_sweep.localCenter.SetZero(),
this.m_type === t.b2BodyType.b2_staticBody || this.m_type === t.b2BodyType.b2_kinematicBody)
return this.m_sweep.c0.Copy(this.m_xf.p),
this.m_sweep.c.Copy(this.m_xf.p),
void (this.m_sweep.a0 = this.m_sweep.a);
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
}
this.m_mass > 0 ? (this.m_invMass = 1 / this.m_mass,
e.x *= this.m_invMass,
e.y *= this.m_invMass) : (this.m_mass = 1,
this.m_invMass = 1),
this.m_I > 0 && !this.m_fixedRotationFlag ? (this.m_I -= this.m_mass * I.DotVV(e, e),
this.m_invI = 1 / this.m_I) : (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),
V.MulXV(this.m_xf, this.m_sweep.localCenter, this.m_sweep.c),
this.m_sweep.c0.Copy(this.m_sweep.c),
I.AddVCrossSV(this.m_linearVelocity, this.m_angularVelocity, I.SubVV(this.m_sweep.c, s, I.s_t0), this.m_linearVelocity)
}
,
i.prototype.GetWorldPoint = function(t, e) {
return V.MulXV(this.m_xf, t, e)
}
,
i.prototype.GetWorldVector = function(t, e) {
return F.MulRV(this.m_xf.q, t, e)
}
,
i.prototype.GetLocalPoint = function(t, e) {
return V.MulTXV(this.m_xf, t, e)
}
,
i.prototype.GetLocalVector = function(t, e) {
return F.MulTRV(this.m_xf.q, t, e)
}
,
i.prototype.GetLinearVelocityFromWorldPoint = function(t, e) {
return I.AddVCrossSV(this.m_linearVelocity, this.m_angularVelocity, I.SubVV(t, this.m_sweep.c, I.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(),
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) {
t ? (this.m_awakeFlag = !0,
this.m_sleepTime = 0) : (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())
if (this.m_activeFlag = t,
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) {
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),
F.MulRV(t.q, this.m_sweep.localCenter, t.p),
I.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),
F.MulRV(this.m_xf.q, this.m_sweep.localCenter, this.m_xf.p),
I.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),
F.MulRV(this.m_xf.q, this.m_sweep.localCenter, this.m_xf.p),
I.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 oi,
i.SetMassData_s_oldCenter = new I,
i.ResetMassData_s_localCenter = new I,
i.ResetMassData_s_oldCenter = new I,
i.ResetMassData_s_massData = new Ke,
i.SynchronizeFixtures_s_xf1 = new V,
i
}
)();
(ci = t.b2JointType || (t.b2JointType = {}))[ci.e_unknownJoint = 0] = "e_unknownJoint",
ci[ci.e_revoluteJoint = 1] = "e_revoluteJoint",
ci[ci.e_prismaticJoint = 2] = "e_prismaticJoint",
ci[ci.e_distanceJoint = 3] = "e_distanceJoint",
ci[ci.e_pulleyJoint = 4] = "e_pulleyJoint",
ci[ci.e_mouseJoint = 5] = "e_mouseJoint",
ci[ci.e_gearJoint = 6] = "e_gearJoint",
ci[ci.e_wheelJoint = 7] = "e_wheelJoint",
ci[ci.e_weldJoint = 8] = "e_weldJoint",
ci[ci.e_frictionJoint = 9] = "e_frictionJoint",
ci[ci.e_ropeJoint = 10] = "e_ropeJoint",
ci[ci.e_motorJoint = 11] = "e_motorJoint",
ci[ci.e_areaJoint = 12] = "e_areaJoint",
(ui = t.b2LimitState || (t.b2LimitState = {}))[ui.e_inactiveLimit = 0] = "e_inactiveLimit",
ui[ui.e_atLowerLimit = 1] = "e_atLowerLimit",
ui[ui.e_atUpperLimit = 2] = "e_atUpperLimit",
ui[ui.e_equalLimits = 3] = "e_equalLimits";
var fi = (function() {
function t() {
this.linear = new I,
this.angularA = 0,
this.angularB = 0
}
return t.prototype.SetZero = function() {
return this.linear.SetZero(),
this.angularA = 0,
this.angularB = 0,
this
}
,
t.prototype.Set = function(t, e, i) {
return this.linear.Copy(t),
this.angularA = e,
this.angularB = i,
this
}
,
t
}
)()
, di = function(t, e) {
this.prev = null,
this.next = null,
this.joint = t,
this.other = e
}
, pi = function(e) {
this.type = t.b2JointType.e_unknownJoint,
this.userData = null,
this.collideConnected = !1,
this.type = e
}
, mi = (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 di(this,i.bodyB),
this.m_edgeB = new di(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
}
return 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() {}
,
i
}
)()
, yi = (function(e) {
function i() {
var i = e.call(this, t.b2JointType.e_distanceJoint) || this;
return i.localAnchorA = new I,
i.localAnchorB = new I,
i.length = 1,
i.frequencyHz = 0,
i.dampingRatio = 0,
i
}
return ti(i, e),
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 = I.DistanceVV(i, n),
this.frequencyHz = 0,
this.dampingRatio = 0
}
,
i
}
)(pi)
, vi = (function(t) {
function i(i) {
var n = t.call(this, i) || this;
return n.m_frequencyHz = 0,
n.m_dampingRatio = 0,
n.m_bias = 0,
n.m_localAnchorA = new I,
n.m_localAnchorB = new I,
n.m_gamma = 0,
n.m_impulse = 0,
n.m_length = 0,
n.m_indexA = 0,
n.m_indexB = 0,
n.m_u = new I,
n.m_rA = new I,
n.m_rB = new I,
n.m_localCenterA = new I,
n.m_localCenterB = new I,
n.m_invMassA = 0,
n.m_invMassB = 0,
n.m_invIA = 0,
n.m_invIB = 0,
n.m_mass = 0,
n.m_qA = new F,
n.m_qB = new F,
n.m_lalcA = new I,
n.m_lalcB = new I,
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,
n
}
return ti(i, 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) {
return e.x = t * this.m_impulse * this.m_u.x,
e.y = t * this.m_impulse * this.m_u.y,
e
}
,
i.prototype.GetReactionTorque = function() {
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
, a = t.velocities[this.m_indexA].w
, o = t.positions[this.m_indexB].c
, h = t.positions[this.m_indexB].a
, c = t.velocities[this.m_indexB].v
, u = t.velocities[this.m_indexB].w
, _ = this.m_qA.SetAngle(n)
, f = this.m_qB.SetAngle(h);
I.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA),
F.MulRV(_, this.m_lalcA, this.m_rA),
I.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB),
F.MulRV(f, this.m_lalcB, this.m_rB),
this.m_u.x = o.x + this.m_rB.x - e.x - this.m_rA.x,
this.m_u.y = o.y + this.m_rB.y - e.y - this.m_rA.y;
var d = this.m_u.Length();
d > l ? this.m_u.SelfMul(1 / d) : this.m_u.SetZero();
var p = I.CrossVV(this.m_rA, this.m_u)
, m = I.CrossVV(this.m_rB, this.m_u)
, y = this.m_invMassA + this.m_invIA * p * p + this.m_invMassB + this.m_invIB * m * m;
if (this.m_mass = 0 !== y ? 1 / y : 0,
this.m_frequencyHz > 0) {
var v = d - this.m_length
, g = 2 * s * this.m_frequencyHz
, A = 2 * this.m_mass * this.m_dampingRatio * g
, x = this.m_mass * g * g
, b = t.step.dt;
this.m_gamma = b * (A + b * x),
this.m_gamma = 0 !== this.m_gamma ? 1 / this.m_gamma : 0,
this.m_bias = v * b * x * this.m_gamma,
y += this.m_gamma,
this.m_mass = 0 !== y ? 1 / y : 0
} else
this.m_gamma = 0,
this.m_bias = 0;
if (t.step.warmStarting) {
this.m_impulse *= t.step.dtRatio;
var C = I.MulSV(this.m_impulse, this.m_u, i.InitVelocityConstraints_s_P);
r.SelfMulSub(this.m_invMassA, C),
a -= this.m_invIA * I.CrossVV(this.m_rA, C),
c.SelfMulAdd(this.m_invMassB, C),
u += this.m_invIB * I.CrossVV(this.m_rB, C)
} else
this.m_impulse = 0;
t.velocities[this.m_indexA].w = a,
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
, a = I.AddVCrossSV(e, n, this.m_rA, i.SolveVelocityConstraints_s_vpA)
, o = I.AddVCrossSV(r, s, this.m_rB, i.SolveVelocityConstraints_s_vpB)
, l = I.DotVV(this.m_u, I.SubVV(o, a, I.s_t0))
, h = -this.m_mass * (l + this.m_bias + this.m_gamma * this.m_impulse);
this.m_impulse += h;
var c = I.MulSV(h, this.m_u, i.SolveVelocityConstraints_s_P);
e.SelfMulSub(this.m_invMassA, c),
n -= this.m_invIA * I.CrossVV(this.m_rA, c),
r.SelfMulAdd(this.m_invMassB, c),
s += this.m_invIB * I.CrossVV(this.m_rB, c),
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
, a = this.m_qA.SetAngle(n)
, o = this.m_qB.SetAngle(s)
, h = F.MulRV(a, this.m_lalcA, this.m_rA)
, c = F.MulRV(o, this.m_lalcB, this.m_rB)
, u = this.m_u;
u.x = r.x + c.x - e.x - h.x,
u.y = r.y + c.y - e.y - h.y;
var _ = this.m_u.Normalize() - this.m_length;
_ = g(_, -.2, .2);
var f = -this.m_mass * _
, d = I.MulSV(f, u, i.SolvePositionConstraints_s_P);
return e.SelfMulSub(this.m_invMassA, d),
n -= this.m_invIA * I.CrossVV(h, d),
r.SelfMulAdd(this.m_invMassB, d),
s += this.m_invIB * I.CrossVV(c, d),
t.positions[this.m_indexA].a = n,
t.positions[this.m_indexB].a = s,
m(_) < l
}
,
i.InitVelocityConstraints_s_P = new I,
i.SolveVelocityConstraints_s_vpA = new I,
i.SolveVelocityConstraints_s_vpB = new I,
i.SolveVelocityConstraints_s_P = new I,
i.SolvePositionConstraints_s_P = new I,
i
}
)(mi)
, gi = (function(e) {
function i() {
var i = e.call(this, t.b2JointType.e_areaJoint) || this;
return i.bodies = [],
i.frequencyHz = 0,
i.dampingRatio = 0,
i
}
return ti(i, e),
i.prototype.AddBody = function(t) {
this.bodies.push(t),
1 === this.bodies.length ? this.bodyA = t : 2 === this.bodies.length && (this.bodyB = t)
}
,
i
}
)(pi)
, Ai = (function(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 = p(i.bodies.length),
n.m_normals = I.MakeArray(i.bodies.length),
n.m_joints = [],
n.m_deltas = I.MakeArray(i.bodies.length),
n.m_delta = new I;
var r = new yi;
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 a = n.m_bodies[s]
, o = n.m_bodies[(s + 1) % n.m_bodies.length]
, l = a.GetWorldCenter()
, h = o.GetWorldCenter();
n.m_targetLengths[s] = I.DistanceVV(l, h),
n.m_targetArea += I.CrossVV(l, h),
r.Initialize(a, o, l, h),
n.m_joints[s] = a.GetWorld().CreateJoint(r)
}
return n.m_targetArea *= .5,
n
}
return ti(i, t),
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() {
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
, a = this.m_deltas[e];
I.SubVV(s, r, a)
}
if (t.step.warmStarting)
for (this.m_impulse *= t.step.dtRatio,
e = 0; e < this.m_bodies.length; ++e) {
var o = this.m_bodies[e]
, l = t.velocities[o.m_islandIndex].v;
a = this.m_deltas[e],
l.x += o.m_invMass * a.y * .5 * this.m_impulse,
l.y += o.m_invMass * -a.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 += (o = this.m_deltas[n]).LengthSquared() / r.GetMass(),
i += I.CrossVV(s, o)
}
var a = -2 * i / e;
for (this.m_impulse += a,
n = 0; n < this.m_bodies.length; ++n) {
r = this.m_bodies[n],
s = t.velocities[r.m_islandIndex].v;
var o = this.m_deltas[n];
s.x += r.m_invMass * o.y * .5 * a,
s.y += r.m_invMass * -o.x * .5 * a
}
}
,
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]
, a = this.m_bodies[(r + 1) % this.m_bodies.length]
, o = t.positions[s.m_islandIndex].c
, h = t.positions[a.m_islandIndex].c
, c = (f = I.SubVV(h, o, this.m_delta)).Length();
c < n && (c = 1),
this.m_normals[r].x = f.y / c,
this.m_normals[r].y = -f.x / c,
e += c,
i += I.CrossVV(o, h)
}
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],
o = t.positions[s.m_islandIndex].c;
var f, d = (r + 1) % this.m_bodies.length;
(f = I.AddVV(this.m_normals[r], this.m_normals[d], this.m_delta)).SelfMul(u);
var p = f.LengthSquared();
p > x(.2) && f.SelfMul(.2 / T(p)),
p > x(l) && (_ = !1),
o.x += f.x,
o.y += f.y
}
return _
}
,
i
}
)(mi)
, xi = (function(e) {
function i() {
var i = e.call(this, t.b2JointType.e_frictionJoint) || this;
return i.localAnchorA = new I,
i.localAnchorB = new I,
i.maxForce = 0,
i.maxTorque = 0,
i
}
return ti(i, e),
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)
}
,
i
}
)(pi)
, bi = (function(t) {
function i(i) {
var n = t.call(this, i) || this;
return n.m_localAnchorA = new I,
n.m_localAnchorB = new I,
n.m_linearImpulse = new I,
n.m_angularImpulse = 0,
n.m_maxForce = 0,
n.m_maxTorque = 0,
n.m_indexA = 0,
n.m_indexB = 0,
n.m_rA = new I,
n.m_rB = new I,
n.m_localCenterA = new I,
n.m_localCenterB = new I,
n.m_invMassA = 0,
n.m_invMassB = 0,
n.m_invIA = 0,
n.m_invIB = 0,
n.m_linearMass = new O,
n.m_angularMass = 0,
n.m_qA = new F,
n.m_qB = new F,
n.m_lalcA = new I,
n.m_lalcB = new I,
n.m_K = new O,
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(),
n
}
return ti(i, t),
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
, a = t.velocities[this.m_indexB].w
, o = this.m_qA.SetAngle(e)
, l = this.m_qB.SetAngle(r);
I.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA);
var h = F.MulRV(o, this.m_lalcA, this.m_rA);
I.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB);
var c = F.MulRV(l, this.m_lalcB, this.m_rB)
, u = this.m_invMassA
, _ = this.m_invMassB
, f = this.m_invIA
, d = this.m_invIB
, p = this.m_K;
if (p.ex.x = u + _ + f * h.y * h.y + d * c.y * c.y,
p.ex.y = -f * h.x * h.y - d * c.x * c.y,
p.ey.x = p.ex.y,
p.ey.y = u + _ + f * h.x * h.x + d * c.x * c.x,
p.GetInverse(this.m_linearMass),
this.m_angularMass = f + d,
this.m_angularMass > 0 && (this.m_angularMass = 1 / this.m_angularMass),
t.step.warmStarting) {
this.m_linearImpulse.SelfMul(t.step.dtRatio),
this.m_angularImpulse *= t.step.dtRatio;
var m = this.m_linearImpulse;
i.SelfMulSub(u, m),
n -= f * (I.CrossVV(this.m_rA, m) + this.m_angularImpulse),
s.SelfMulAdd(_, m),
a += d * (I.CrossVV(this.m_rB, m) + 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 = a
}
,
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
, a = this.m_invMassA
, o = this.m_invMassB
, l = this.m_invIA
, h = this.m_invIB
, c = t.step.dt
, u = s - n
, _ = -this.m_angularMass * u
, f = this.m_angularImpulse
, d = c * this.m_maxTorque;
this.m_angularImpulse = g(this.m_angularImpulse + _, -d, d),
n -= l * (_ = this.m_angularImpulse - f),
s += h * _;
var p = I.SubVV(I.AddVCrossSV(r, s, this.m_rB, I.s_t0), I.AddVCrossSV(e, n, this.m_rA, I.s_t1), i.SolveVelocityConstraints_s_Cdot_v2)
, m = O.MulMV(this.m_linearMass, p, i.SolveVelocityConstraints_s_impulseV).SelfNeg()
, y = i.SolveVelocityConstraints_s_oldImpulseV.Copy(this.m_linearImpulse);
this.m_linearImpulse.SelfAdd(m),
d = c * this.m_maxForce,
this.m_linearImpulse.LengthSquared() > d * d && (this.m_linearImpulse.Normalize(),
this.m_linearImpulse.SelfMul(d)),
I.SubVV(this.m_linearImpulse, y, m),
e.SelfMulSub(a, m),
n -= l * I.CrossVV(this.m_rA, m),
r.SelfMulAdd(o, m),
s += h * I.CrossVV(this.m_rB, m),
t.velocities[this.m_indexA].w = n,
t.velocities[this.m_indexB].w = s
}
,
i.prototype.SolvePositionConstraints = function() {
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) {
return e.x = t * this.m_linearImpulse.x,
e.y = t * this.m_linearImpulse.y,
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 I,
i.SolveVelocityConstraints_s_impulseV = new I,
i.SolveVelocityConstraints_s_oldImpulseV = new I,
i
}
)(mi)
, Ci = (function(e) {
function i() {
var i = e.call(this, t.b2JointType.e_gearJoint) || this;
return i.ratio = 1,
i
}
return ti(i, e),
i
}
)(pi)
, Ti = (function(i) {
function n(n) {
var r, s, a = i.call(this, n) || this;
a.m_typeA = t.b2JointType.e_unknownJoint,
a.m_typeB = t.b2JointType.e_unknownJoint,
a.m_localAnchorA = new I,
a.m_localAnchorB = new I,
a.m_localAnchorC = new I,
a.m_localAnchorD = new I,
a.m_localAxisC = new I,
a.m_localAxisD = new I,
a.m_referenceAngleA = 0,
a.m_referenceAngleB = 0,
a.m_constant = 0,
a.m_ratio = 0,
a.m_impulse = 0,
a.m_indexA = 0,
a.m_indexB = 0,
a.m_indexC = 0,
a.m_indexD = 0,
a.m_lcA = new I,
a.m_lcB = new I,
a.m_lcC = new I,
a.m_lcD = new I,
a.m_mA = 0,
a.m_mB = 0,
a.m_mC = 0,
a.m_mD = 0,
a.m_iA = 0,
a.m_iB = 0,
a.m_iC = 0,
a.m_iD = 0,
a.m_JvAC = new I,
a.m_JvBD = new I,
a.m_JwA = 0,
a.m_JwB = 0,
a.m_JwC = 0,
a.m_JwD = 0,
a.m_mass = 0,
a.m_qA = new F,
a.m_qB = new F,
a.m_qC = new F,
a.m_qD = new F,
a.m_lalcA = new I,
a.m_lalcB = new I,
a.m_lalcC = new I,
a.m_lalcD = new I,
a.m_joint1 = n.joint1,
a.m_joint2 = n.joint2,
a.m_typeA = a.m_joint1.GetType(),
a.m_typeB = a.m_joint2.GetType(),
a.m_bodyC = a.m_joint1.GetBodyA(),
a.m_bodyA = a.m_joint1.GetBodyB();
var o = a.m_bodyA.m_xf
, l = a.m_bodyA.m_sweep.a
, h = a.m_bodyC.m_xf
, c = a.m_bodyC.m_sweep.a;
if (a.m_typeA === t.b2JointType.e_revoluteJoint) {
var u = n.joint1;
a.m_localAnchorC.Copy(u.m_localAnchorA),
a.m_localAnchorA.Copy(u.m_localAnchorB),
a.m_referenceAngleA = u.m_referenceAngle,
a.m_localAxisC.SetZero(),
r = l - c - a.m_referenceAngleA
} else {
var _ = n.joint1;
a.m_localAnchorC.Copy(_.m_localAnchorA),
a.m_localAnchorA.Copy(_.m_localAnchorB),
a.m_referenceAngleA = _.m_referenceAngle,
a.m_localAxisC.Copy(_.m_localXAxisA);
var f = a.m_localAnchorC
, d = F.MulTRV(h.q, I.AddVV(F.MulRV(o.q, a.m_localAnchorA, I.s_t0), I.SubVV(o.p, h.p, I.s_t1), I.s_t0), I.s_t0);
r = I.DotVV(I.SubVV(d, f, I.s_t0), a.m_localAxisC)
}
a.m_bodyD = a.m_joint2.GetBodyA(),
a.m_bodyB = a.m_joint2.GetBodyB();
var p = a.m_bodyB.m_xf
, m = a.m_bodyB.m_sweep.a
, y = a.m_bodyD.m_xf
, v = a.m_bodyD.m_sweep.a;
if (a.m_typeB === t.b2JointType.e_revoluteJoint)
u = n.joint2,
a.m_localAnchorD.Copy(u.m_localAnchorA),
a.m_localAnchorB.Copy(u.m_localAnchorB),
a.m_referenceAngleB = u.m_referenceAngle,
a.m_localAxisD.SetZero(),
s = m - v - a.m_referenceAngleB;
else {
_ = n.joint2,
a.m_localAnchorD.Copy(_.m_localAnchorA),
a.m_localAnchorB.Copy(_.m_localAnchorB),
a.m_referenceAngleB = _.m_referenceAngle,
a.m_localAxisD.Copy(_.m_localXAxisA);
var g = a.m_localAnchorD
, A = F.MulTRV(y.q, I.AddVV(F.MulRV(p.q, a.m_localAnchorB, I.s_t0), I.SubVV(p.p, y.p, I.s_t1), I.s_t0), I.s_t0);
s = I.DotVV(I.SubVV(A, g, I.s_t0), a.m_localAxisD)
}
return a.m_ratio = e(n.ratio, 1),
a.m_constant = r + a.m_ratio * s,
a.m_impulse = 0,
a
}
return ti(n, i),
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
, a = e.positions[this.m_indexB].a
, o = e.velocities[this.m_indexB].v
, l = e.velocities[this.m_indexB].w
, h = e.positions[this.m_indexC].a
, c = 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
, p = this.m_qA.SetAngle(i)
, m = this.m_qB.SetAngle(a)
, y = this.m_qC.SetAngle(h)
, v = this.m_qD.SetAngle(_);
if (this.m_mass = 0,
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 = F.MulRV(y, this.m_localAxisC, n.InitVelocityConstraints_s_u);
I.SubVV(this.m_localAnchorC, this.m_lcC, this.m_lalcC);
var A = F.MulRV(y, this.m_lalcC, n.InitVelocityConstraints_s_rC);
I.SubVV(this.m_localAnchorA, this.m_lcA, this.m_lalcA);
var x = F.MulRV(p, this.m_lalcA, n.InitVelocityConstraints_s_rA);
this.m_JvAC.Copy(g),
this.m_JwC = I.CrossVV(A, g),
this.m_JwA = I.CrossVV(x, 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 = F.MulRV(v, this.m_localAxisD, n.InitVelocityConstraints_s_u),
I.SubVV(this.m_localAnchorD, this.m_lcD, this.m_lalcD);
var b = F.MulRV(v, this.m_lalcD, n.InitVelocityConstraints_s_rD);
I.SubVV(this.m_localAnchorB, this.m_lcB, this.m_lalcB);
var C = F.MulRV(m, this.m_lalcB, n.InitVelocityConstraints_s_rB);
I.MulSV(this.m_ratio, g, this.m_JvBD),
this.m_JwD = this.m_ratio * I.CrossVV(b, g),
this.m_JwB = this.m_ratio * I.CrossVV(C, 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,
e.step.warmStarting ? (r.SelfMulAdd(this.m_mA * this.m_impulse, this.m_JvAC),
s += this.m_iA * this.m_impulse * this.m_JwA,
o.SelfMulAdd(this.m_mB * this.m_impulse, this.m_JvBD),
l += this.m_iB * this.m_impulse * this.m_JwB,
c.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) : this.m_impulse = 0,
e.velocities[this.m_indexA].w = s,
e.velocities[this.m_indexB].w = l,
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
, a = t.velocities[this.m_indexC].w
, o = t.velocities[this.m_indexD].v
, l = t.velocities[this.m_indexD].w
, h = I.DotVV(this.m_JvAC, I.SubVV(e, s, I.s_t0)) + I.DotVV(this.m_JvBD, I.SubVV(n, o, I.s_t0));
h += this.m_JwA * i - this.m_JwC * a + (this.m_JwB * r - this.m_JwD * l);
var c = -this.m_mass * h;
this.m_impulse += c,
e.SelfMulAdd(this.m_mA * c, this.m_JvAC),
i += this.m_iA * c * this.m_JwA,
n.SelfMulAdd(this.m_mB * c, this.m_JvBD),
r += this.m_iB * c * this.m_JwB,
s.SelfMulSub(this.m_mC * c, this.m_JvAC),
a -= this.m_iC * c * this.m_JwC,
o.SelfMulSub(this.m_mD * c, this.m_JvBD),
l -= this.m_iD * c * this.m_JwD,
t.velocities[this.m_indexA].w = i,
t.velocities[this.m_indexB].w = r,
t.velocities[this.m_indexC].w = a,
t.velocities[this.m_indexD].w = l
}
,
n.prototype.SolvePositionConstraints = function(e) {
var i, r, s, a, o, h, c = 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, p = e.positions[this.m_indexC].a, m = e.positions[this.m_indexD].c, y = e.positions[this.m_indexD].a, v = this.m_qA.SetAngle(u), g = this.m_qB.SetAngle(f), A = this.m_qC.SetAngle(p), x = this.m_qD.SetAngle(y), b = this.m_JvAC, C = this.m_JvBD, T = 0;
if (this.m_typeA === t.b2JointType.e_revoluteJoint)
b.SetZero(),
s = 1,
o = 1,
T += this.m_iA + this.m_iC,
i = u - p - this.m_referenceAngleA;
else {
var S = F.MulRV(A, this.m_localAxisC, n.SolvePositionConstraints_s_u)
, w = F.MulRV(A, this.m_lalcC, n.SolvePositionConstraints_s_rC)
, E = F.MulRV(v, this.m_lalcA, n.SolvePositionConstraints_s_rA);
b.Copy(S),
o = I.CrossVV(w, S),
s = I.CrossVV(E, S),
T += this.m_mC + this.m_mA + this.m_iC * o * o + this.m_iA * s * s;
var M = this.m_lalcC
, D = F.MulTRV(A, I.AddVV(E, I.SubVV(c, d, I.s_t0), I.s_t0), I.s_t0);
i = I.DotVV(I.SubVV(D, M, I.s_t0), this.m_localAxisC)
}
if (this.m_typeB === t.b2JointType.e_revoluteJoint)
C.SetZero(),
a = this.m_ratio,
h = this.m_ratio,
T += this.m_ratio * this.m_ratio * (this.m_iB + this.m_iD),
r = f - y - this.m_referenceAngleB;
else {
S = F.MulRV(x, this.m_localAxisD, n.SolvePositionConstraints_s_u);
var B = F.MulRV(x, this.m_lalcD, n.SolvePositionConstraints_s_rD)
, P = F.MulRV(g, this.m_lalcB, n.SolvePositionConstraints_s_rB);
I.MulSV(this.m_ratio, S, C),
h = this.m_ratio * I.CrossVV(B, S),
a = this.m_ratio * I.CrossVV(P, S),
T += this.m_ratio * this.m_ratio * (this.m_mD + this.m_mB) + this.m_iD * h * h + this.m_iB * a * a;
var R = this.m_lalcD
, O = F.MulTRV(x, I.AddVV(P, I.SubVV(_, m, I.s_t0), I.s_t0), I.s_t0);
r = I.DotVV(I.SubVV(O, R, I.s_t0), this.m_localAxisD)
}
var L = i + this.m_ratio * r - this.m_constant
, V = 0;
return T > 0 && (V = -L / T),
c.SelfMulAdd(this.m_mA * V, b),
u += this.m_iA * V * s,
_.SelfMulAdd(this.m_mB * V, C),
f += this.m_iB * V * a,
d.SelfMulSub(this.m_mC * V, b),
p -= this.m_iC * V * o,
m.SelfMulSub(this.m_mD * V, C),
y -= this.m_iD * V * h,
e.positions[this.m_indexA].a = u,
e.positions[this.m_indexB].a = f,
e.positions[this.m_indexC].a = p,
e.positions[this.m_indexD].a = y,
0 < 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) {
return I.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 I,
n.InitVelocityConstraints_s_rA = new I,
n.InitVelocityConstraints_s_rB = new I,
n.InitVelocityConstraints_s_rC = new I,
n.InitVelocityConstraints_s_rD = new I,
n.SolvePositionConstraints_s_u = new I,
n.SolvePositionConstraints_s_rA = new I,
n.SolvePositionConstraints_s_rB = new I,
n.SolvePositionConstraints_s_rC = new I,
n.SolvePositionConstraints_s_rD = new I,
n
}
)(mi)
, Si = (function(e) {
function i() {
var i = e.call(this, t.b2JointType.e_motorJoint) || this;
return i.linearOffset = new I(0,0),
i.angularOffset = 0,
i.maxForce = 1,
i.maxTorque = 1,
i.correctionFactor = .3,
i
}
return ti(i, e),
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
}
,
i
}
)(pi)
, wi = (function(t) {
function i(i) {
var n = t.call(this, i) || this;
return n.m_linearOffset = new I,
n.m_angularOffset = 0,
n.m_linearImpulse = new I,
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 I,
n.m_rB = new I,
n.m_localCenterA = new I,
n.m_localCenterB = new I,
n.m_linearError = new I,
n.m_angularError = 0,
n.m_invMassA = 0,
n.m_invMassB = 0,
n.m_invIA = 0,
n.m_invIB = 0,
n.m_linearMass = new O,
n.m_angularMass = 0,
n.m_qA = new F,
n.m_qB = new F,
n.m_K = new O,
n.m_linearOffset.Copy(e(i.linearOffset, I.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),
n
}
return ti(i, t),
i.prototype.GetAnchorA = function(t) {
var e = this.m_bodyA.GetPosition();
return t.x = e.x,
t.y = e.y,
t
}
,
i.prototype.GetAnchorB = function(t) {
var e = this.m_bodyB.GetPosition();
return t.x = e.x,
t.y = e.y,
t
}
,
i.prototype.GetReactionForce = function(t, e) {
return I.MulSV(t, this.m_linearImpulse, e)
}
,
i.prototype.GetReactionTorque = function(t) {
return t * this.m_angularImpulse
}
,
i.prototype.SetLinearOffset = function(t) {
I.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) {
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
, a = t.positions[this.m_indexB].a
, o = t.velocities[this.m_indexB].v
, l = t.velocities[this.m_indexB].w
, h = this.m_qA.SetAngle(i)
, c = this.m_qB.SetAngle(a)
, u = F.MulRV(h, I.SubVV(this.m_linearOffset, this.m_localCenterA, I.s_t0), this.m_rA)
, _ = F.MulRV(c, I.NegV(this.m_localCenterB, I.s_t0), this.m_rB)
, f = this.m_invMassA
, d = this.m_invMassB
, p = this.m_invIA
, m = this.m_invIB
, y = this.m_K;
if (y.ex.x = f + d + p * u.y * u.y + m * _.y * _.y,
y.ex.y = -p * u.x * u.y - m * _.x * _.y,
y.ey.x = y.ex.y,
y.ey.y = f + d + p * u.x * u.x + m * _.x * _.x,
y.GetInverse(this.m_linearMass),
this.m_angularMass = p + m,
this.m_angularMass > 0 && (this.m_angularMass = 1 / this.m_angularMass),
I.SubVV(I.AddVV(s, _, I.s_t0), I.AddVV(e, u, I.s_t1), this.m_linearError),
this.m_angularError = a - i - this.m_angularOffset,
t.step.warmStarting) {
this.m_linearImpulse.SelfMul(t.step.dtRatio),
this.m_angularImpulse *= t.step.dtRatio;
var v = this.m_linearImpulse;
n.SelfMulSub(f, v),
r -= p * (I.CrossVV(u, v) + this.m_angularImpulse),
o.SelfMulAdd(d, v),
l += m * (I.CrossVV(_, v) + 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 = l
}
,
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
, a = this.m_invMassA
, o = this.m_invMassB
, l = this.m_invIA
, h = this.m_invIB
, c = 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
, p = c * this.m_maxTorque;
this.m_angularImpulse = g(this.m_angularImpulse + f, -p, p),
n -= l * (f = this.m_angularImpulse - d),
s += h * f;
var m = this.m_rA
, y = this.m_rB
, v = I.AddVV(I.SubVV(I.AddVV(r, I.CrossSV(s, y, I.s_t0), I.s_t0), I.AddVV(e, I.CrossSV(n, m, I.s_t1), I.s_t1), I.s_t2), I.MulSV(u * this.m_correctionFactor, this.m_linearError, I.s_t3), i.SolveVelocityConstraints_s_Cdot_v2)
, A = O.MulMV(this.m_linearMass, v, i.SolveVelocityConstraints_s_impulse_v2).SelfNeg()
, x = i.SolveVelocityConstraints_s_oldImpulse_v2.Copy(this.m_linearImpulse);
this.m_linearImpulse.SelfAdd(A),
p = c * this.m_maxForce,
this.m_linearImpulse.LengthSquared() > p * p && (this.m_linearImpulse.Normalize(),
this.m_linearImpulse.SelfMul(p)),
I.SubVV(this.m_linearImpulse, x, A),
e.SelfMulSub(a, A),
n -= l * I.CrossVV(m, A),
r.SelfMulAdd(o, A),
s += h * I.CrossVV(y, A),
t.velocities[this.m_indexA].w = n,
t.velocities[this.m_indexB].w = s
}
,
i.prototype.SolvePositionConstraints = function() {
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 I,
i.SolveVelocityConstraints_s_impulse_v2 = new I,
i.SolveVelocityConstraints_s_oldImpulse_v2 = new I,
i
}
)(mi)
, Ei = (function(e) {
function i() {
var i = e.call(this, t.b2JointType.e_mouseJoint) || this;
return i.target = new I,
i.maxForce = 0,
i.frequencyHz = 5,
i.dampingRatio = .7,
i
}
return ti(i, e),
i
}
)(pi)
, Mi = (function(t) {
function i(i) {
var n = t.call(this, i) || this;
return n.m_localAnchorB = new I,
n.m_targetA = new I,
n.m_frequencyHz = 0,
n.m_dampingRatio = 0,
n.m_beta = 0,
n.m_impulse = new I,
n.m_maxForce = 0,
n.m_gamma = 0,
n.m_indexA = 0,
n.m_indexB = 0,
n.m_rB = new I,
n.m_localCenterB = new I,
n.m_invMassB = 0,
n.m_invIB = 0,
n.m_mass = new O,
n.m_C = new I,
n.m_qB = new F,
n.m_lalcB = new I,
n.m_K = new O,
n.m_targetA.Copy(e(i.target, I.ZERO)),
V.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,
n
}
return ti(i, t),
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
, a = this.m_qB.SetAngle(i)
, o = this.m_bodyB.GetMass()
, l = 2 * s * this.m_frequencyHz
, h = 2 * o * this.m_dampingRatio * l
, c = o * l * l
, u = t.step.dt;
this.m_gamma = u * (h + u * c),
0 !== this.m_gamma && (this.m_gamma = 1 / this.m_gamma),
this.m_beta = u * c * this.m_gamma,
I.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB),
F.MulRV(a, 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,
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 * I.CrossVV(this.m_rB, this.m_impulse)) : 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 = I.AddVCrossSV(e, n, this.m_rB, i.SolveVelocityConstraints_s_Cdot)
, s = O.MulMV(this.m_mass, I.AddVV(r, I.AddVV(this.m_C, I.MulSV(this.m_gamma, this.m_impulse, I.s_t0), I.s_t0), I.s_t0).SelfNeg(), i.SolveVelocityConstraints_s_impulse)
, a = i.SolveVelocityConstraints_s_oldImpulse.Copy(this.m_impulse);
this.m_impulse.SelfAdd(s);
var o = t.step.dt * this.m_maxForce;
this.m_impulse.LengthSquared() > o * o && this.m_impulse.SelfMul(o / this.m_impulse.Length()),
I.SubVV(this.m_impulse, a, s),
e.SelfMulAdd(this.m_invMassB, s),
n += this.m_invIB * I.CrossVV(this.m_rB, s),
t.velocities[this.m_indexB].w = n
}
,
i.prototype.SolvePositionConstraints = function() {
return !0
}
,
i.prototype.GetAnchorA = function(t) {
return t.x = this.m_targetA.x,
t.y = this.m_targetA.y,
t
}
,
i.prototype.GetAnchorB = function(t) {
return this.m_bodyB.GetWorldPoint(this.m_localAnchorB, t)
}
,
i.prototype.GetReactionForce = function(t, e) {
return I.MulSV(t, this.m_impulse, e)
}
,
i.prototype.GetReactionTorque = function() {
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 I,
i.SolveVelocityConstraints_s_impulse = new I,
i.SolveVelocityConstraints_s_oldImpulse = new I,
i
}
)(mi)
, Di = (function(e) {
function i() {
var i = e.call(this, t.b2JointType.e_prismaticJoint) || this;
return i.localAnchorA = new I,
i.localAnchorB = new I,
i.localAxisA = new I(1,0),
i.referenceAngle = 0,
i.enableLimit = !1,
i.lowerTranslation = 0,
i.upperTranslation = 0,
i.enableMotor = !1,
i.maxMotorForce = 0,
i.motorSpeed = 0,
i
}
return ti(i, e),
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()
}
,
i
}
)(pi)
, Bi = (function(i) {
function n(n) {
var r = i.call(this, n) || this;
return r.m_localAnchorA = new I,
r.m_localAnchorB = new I,
r.m_localXAxisA = new I,
r.m_localYAxisA = new I,
r.m_referenceAngle = 0,
r.m_impulse = new R(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 I,
r.m_localCenterB = new I,
r.m_invMassA = 0,
r.m_invMassB = 0,
r.m_invIA = 0,
r.m_invIB = 0,
r.m_axis = new I(0,0),
r.m_perp = new I(0,0),
r.m_s1 = 0,
r.m_s2 = 0,
r.m_a1 = 0,
r.m_a2 = 0,
r.m_K = new L,
r.m_K3 = new L,
r.m_K2 = new O,
r.m_motorMass = 0,
r.m_qA = new F,
r.m_qB = new F,
r.m_lalcA = new I,
r.m_lalcB = new I,
r.m_rA = new I,
r.m_rB = new I,
r.m_localAnchorA.Copy(e(n.localAnchorA, I.ZERO)),
r.m_localAnchorB.Copy(e(n.localAnchorB, I.ZERO)),
r.m_localXAxisA.Copy(e(n.localAxisA, new I(1,0))).SelfNormalize(),
I.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),
r
}
return ti(n, i),
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
, a = e.velocities[this.m_indexA].w
, o = e.positions[this.m_indexB].c
, h = e.positions[this.m_indexB].a
, c = e.velocities[this.m_indexB].v
, u = e.velocities[this.m_indexB].w
, _ = this.m_qA.SetAngle(r)
, f = this.m_qB.SetAngle(h);
I.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA);
var d = F.MulRV(_, this.m_lalcA, this.m_rA);
I.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB);
var p = F.MulRV(f, this.m_lalcB, this.m_rB)
, y = I.AddVV(I.SubVV(o, i, I.s_t0), I.SubVV(p, d, I.s_t1), n.InitVelocityConstraints_s_d)
, v = this.m_invMassA
, g = this.m_invMassB
, A = this.m_invIA
, x = this.m_invIB;
if (F.MulRV(_, this.m_localXAxisA, this.m_axis),
this.m_a1 = I.CrossVV(I.AddVV(y, d, I.s_t0), this.m_axis),
this.m_a2 = I.CrossVV(p, this.m_axis),
this.m_motorMass = v + g + A * this.m_a1 * this.m_a1 + x * this.m_a2 * this.m_a2,
this.m_motorMass > 0 && (this.m_motorMass = 1 / this.m_motorMass),
F.MulRV(_, this.m_localYAxisA, this.m_perp),
this.m_s1 = I.CrossVV(I.AddVV(y, d, I.s_t0), this.m_perp),
this.m_s2 = I.CrossVV(p, this.m_perp),
this.m_K.ex.x = v + g + A * this.m_s1 * this.m_s1 + x * this.m_s2 * this.m_s2,
this.m_K.ex.y = A * this.m_s1 + x * this.m_s2,
this.m_K.ex.z = A * this.m_s1 * this.m_a1 + x * this.m_s2 * this.m_a2,
this.m_K.ey.x = this.m_K.ex.y,
this.m_K.ey.y = A + x,
0 === this.m_K.ey.y && (this.m_K.ey.y = 1),
this.m_K.ey.z = A * this.m_a1 + x * 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 + A * this.m_a1 * this.m_a1 + x * this.m_a2 * this.m_a2,
this.m_enableLimit) {
var b = I.DotVV(this.m_axis, y);
m(this.m_upperTranslation - this.m_lowerTranslation) < 2 * l ? this.m_limitState = t.b2LimitState.e_equalLimits : b <= this.m_lowerTranslation ? this.m_limitState !== t.b2LimitState.e_atLowerLimit && (this.m_limitState = t.b2LimitState.e_atLowerLimit,
this.m_impulse.z = 0) : b >= this.m_upperTranslation ? this.m_limitState !== t.b2LimitState.e_atUpperLimit && (this.m_limitState = t.b2LimitState.e_atUpperLimit,
this.m_impulse.z = 0) : (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;
if (this.m_enableMotor || (this.m_motorImpulse = 0),
e.step.warmStarting) {
this.m_impulse.SelfMul(e.step.dtRatio),
this.m_motorImpulse *= e.step.dtRatio;
var C = I.AddVV(I.MulSV(this.m_impulse.x, this.m_perp, I.s_t0), I.MulSV(this.m_motorImpulse + this.m_impulse.z, this.m_axis, I.s_t1), n.InitVelocityConstraints_s_P)
, T = this.m_impulse.x * this.m_s1 + this.m_impulse.y + (this.m_motorImpulse + this.m_impulse.z) * this.m_a1
, S = this.m_impulse.x * this.m_s2 + this.m_impulse.y + (this.m_motorImpulse + this.m_impulse.z) * this.m_a2;
s.SelfMulSub(v, C),
a -= A * T,
c.SelfMulAdd(g, C),
u += x * S
} else
this.m_impulse.SetZero(),
this.m_motorImpulse = 0;
e.velocities[this.m_indexA].w = a,
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
, a = e.velocities[this.m_indexB].w
, o = this.m_invMassA
, l = this.m_invMassB
, h = this.m_invIA
, c = this.m_invIB;
if (this.m_enableMotor && this.m_limitState !== t.b2LimitState.e_equalLimits) {
var u = I.DotVV(this.m_axis, I.SubVV(s, i, I.s_t0)) + this.m_a2 * a - 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 = g(this.m_motorImpulse + _, -d, d),
_ = this.m_motorImpulse - f;
var p = I.MulSV(_, this.m_axis, n.SolveVelocityConstraints_s_P)
, m = _ * this.m_a1
, A = _ * this.m_a2;
i.SelfMulSub(o, p),
r -= h * m,
s.SelfMulAdd(l, p),
a += c * A
}
var x = I.DotVV(this.m_perp, I.SubVV(s, i, I.s_t0)) + this.m_s2 * a - this.m_s1 * r
, b = a - r;
if (this.m_enableLimit && this.m_limitState !== t.b2LimitState.e_inactiveLimit) {
var C = I.DotVV(this.m_axis, I.SubVV(s, i, I.s_t0)) + this.m_a2 * a - this.m_a1 * r
, T = n.SolveVelocityConstraints_s_f1.Copy(this.m_impulse)
, S = this.m_K.Solve33(-x, -b, -C, n.SolveVelocityConstraints_s_df3);
this.m_impulse.SelfAdd(S),
this.m_limitState === t.b2LimitState.e_atLowerLimit ? this.m_impulse.z = v(this.m_impulse.z, 0) : this.m_limitState === t.b2LimitState.e_atUpperLimit && (this.m_impulse.z = y(this.m_impulse.z, 0));
var w = -x - (this.m_impulse.z - T.z) * this.m_K.ez.x
, E = -b - (this.m_impulse.z - T.z) * this.m_K.ez.y
, M = this.m_K.Solve22(w, E, n.SolveVelocityConstraints_s_f2r);
M.x += T.x,
M.y += T.y,
this.m_impulse.x = M.x,
this.m_impulse.y = M.y,
S.x = this.m_impulse.x - T.x,
S.y = this.m_impulse.y - T.y,
S.z = this.m_impulse.z - T.z,
p = I.AddVV(I.MulSV(S.x, this.m_perp, I.s_t0), I.MulSV(S.z, this.m_axis, I.s_t1), n.SolveVelocityConstraints_s_P),
m = S.x * this.m_s1 + S.y + S.z * this.m_a1,
A = S.x * this.m_s2 + S.y + S.z * this.m_a2,
i.SelfMulSub(o, p),
r -= h * m,
s.SelfMulAdd(l, p),
a += c * A
} else {
var D = this.m_K.Solve22(-x, -b, n.SolveVelocityConstraints_s_df2);
this.m_impulse.x += D.x,
this.m_impulse.y += D.y,
p = I.MulSV(D.x, this.m_perp, n.SolveVelocityConstraints_s_P),
m = D.x * this.m_s1 + D.y,
A = D.x * this.m_s2 + D.y,
i.SelfMulSub(o, p),
r -= h * m,
s.SelfMulAdd(l, p),
a += c * A
}
e.velocities[this.m_indexA].w = r,
e.velocities[this.m_indexB].w = a
}
,
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
, a = this.m_qA.SetAngle(i)
, o = this.m_qB.SetAngle(s)
, c = this.m_invMassA
, u = this.m_invMassB
, _ = this.m_invIA
, f = this.m_invIB
, d = F.MulRV(a, this.m_lalcA, this.m_rA)
, p = F.MulRV(o, this.m_lalcB, this.m_rB)
, y = I.SubVV(I.AddVV(r, p, I.s_t0), I.AddVV(e, d, I.s_t1), n.SolvePositionConstraints_s_d)
, A = F.MulRV(a, this.m_localXAxisA, this.m_axis)
, x = I.CrossVV(I.AddVV(y, d, I.s_t0), A)
, b = I.CrossVV(p, A)
, C = F.MulRV(a, this.m_localYAxisA, this.m_perp)
, T = I.CrossVV(I.AddVV(y, d, I.s_t0), C)
, S = I.CrossVV(p, C)
, w = n.SolvePositionConstraints_s_impulse
, E = I.DotVV(C, y)
, M = s - i - this.m_referenceAngle
, D = m(E)
, B = m(M)
, P = !1
, R = 0;
if (this.m_enableLimit) {
var O = I.DotVV(A, y);
m(this.m_upperTranslation - this.m_lowerTranslation) < 2 * l ? (R = g(O, -.2, .2),
D = v(D, m(O)),
P = !0) : O <= this.m_lowerTranslation ? (R = g(O - this.m_lowerTranslation + l, -.2, 0),
D = v(D, this.m_lowerTranslation - O),
P = !0) : O >= this.m_upperTranslation && (R = g(O - this.m_upperTranslation - l, 0, .2),
D = v(D, O - this.m_upperTranslation),
P = !0)
}
if (P) {
var L = c + u + _ * T * T + f * S * S
, V = _ * T + f * S
, N = _ * T * x + f * S * b;
0 === (z = _ + f) && (z = 1);
var k = _ * x + f * b
, G = c + u + _ * x * x + f * b * b
, U = this.m_K3;
U.ex.SetXYZ(L, V, N),
U.ey.SetXYZ(V, z, k),
U.ez.SetXYZ(N, k, G),
w = U.Solve33(-E, -M, -R, w)
} else {
var z;
L = c + u + _ * T * T + f * S * S,
V = _ * T + f * S,
0 === (z = _ + f) && (z = 1);
var H = this.m_K2;
H.ex.Set(L, V),
H.ey.Set(V, z);
var W = H.Solve(-E, -M, n.SolvePositionConstraints_s_impulse1);
w.x = W.x,
w.y = W.y,
w.z = 0
}
var j = I.AddVV(I.MulSV(w.x, C, I.s_t0), I.MulSV(w.z, A, I.s_t1), n.SolvePositionConstraints_s_P)
, X = w.x * T + w.y + w.z * x
, Y = w.x * S + w.y + w.z * b;
return e.SelfMulSub(c, j),
i -= _ * X,
r.SelfMulAdd(u, j),
s += f * Y,
t.positions[this.m_indexA].a = i,
t.positions[this.m_indexB].a = s,
D <= l && B <= h
}
,
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 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),
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 = I.SubVV(e, t, n.GetJointTranslation_s_d)
, r = this.m_bodyA.GetWorldVector(this.m_localXAxisA, n.GetJointTranslation_s_axis);
return I.DotVV(i, r)
}
,
n.prototype.GetJointSpeed = function() {
var t = this.m_bodyA
, e = this.m_bodyB;
I.SubVV(this.m_localAnchorA, t.m_sweep.localCenter, this.m_lalcA);
var i = F.MulRV(t.m_xf.q, this.m_lalcA, this.m_rA);
I.SubVV(this.m_localAnchorB, e.m_sweep.localCenter, this.m_lalcB);
var n = F.MulRV(e.m_xf.q, this.m_lalcB, this.m_rB)
, r = I.AddVV(t.m_sweep.c, i, I.s_t0)
, s = I.AddVV(e.m_sweep.c, n, I.s_t1)
, a = I.SubVV(s, r, I.s_t2)
, o = t.GetWorldVector(this.m_localXAxisA, this.m_axis)
, l = t.m_linearVelocity
, h = e.m_linearVelocity
, c = t.m_angularVelocity
, u = e.m_angularVelocity;
return I.DotVV(a, I.CrossSV(c, o, I.s_t0)) + I.DotVV(o, I.SubVV(I.AddVCrossSV(h, u, n, I.s_t0), I.AddVCrossSV(l, c, i, I.s_t1), I.s_t0))
}
,
n.prototype.IsLimitEnabled = function() {
return this.m_enableLimit
}
,
n.prototype.EnableLimit = function(t) {
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) {
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) {
t !== this.m_enableMotor && (this.m_bodyA.SetAwake(!0),
this.m_bodyB.SetAwake(!0),
this.m_enableMotor = t)
}
,
n.prototype.SetMotorSpeed = function(t) {
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) {
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 I,
n.InitVelocityConstraints_s_P = new I,
n.SolveVelocityConstraints_s_P = new I,
n.SolveVelocityConstraints_s_f2r = new I,
n.SolveVelocityConstraints_s_f1 = new R,
n.SolveVelocityConstraints_s_df3 = new R,
n.SolveVelocityConstraints_s_df2 = new I,
n.SolvePositionConstraints_s_d = new I,
n.SolvePositionConstraints_s_impulse = new R,
n.SolvePositionConstraints_s_impulse1 = new I,
n.SolvePositionConstraints_s_P = new I,
n.GetJointTranslation_s_pA = new I,
n.GetJointTranslation_s_pB = new I,
n.GetJointTranslation_s_d = new I,
n.GetJointTranslation_s_axis = new I,
n
}
)(mi)
, Ii = (function(e) {
function i() {
var i = e.call(this, t.b2JointType.e_pulleyJoint) || this;
return i.groundAnchorA = new I(-1,1),
i.groundAnchorB = new I(1,1),
i.localAnchorA = new I(-1,0),
i.localAnchorB = new I(1,0),
i.lengthA = 0,
i.lengthB = 0,
i.ratio = 1,
i.collideConnected = !0,
i
}
return ti(i, e),
i.prototype.Initialize = function(t, e, i, n, r, s, a) {
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 = I.DistanceVV(r, i),
this.lengthB = I.DistanceVV(s, n),
this.ratio = a
}
,
i
}
)(pi)
, Pi = (function(t) {
function i(i) {
var n = t.call(this, i) || this;
return n.m_groundAnchorA = new I,
n.m_groundAnchorB = new I,
n.m_lengthA = 0,
n.m_lengthB = 0,
n.m_localAnchorA = new I,
n.m_localAnchorB = new I,
n.m_constant = 0,
n.m_ratio = 0,
n.m_impulse = 0,
n.m_indexA = 0,
n.m_indexB = 0,
n.m_uA = new I,
n.m_uB = new I,
n.m_rA = new I,
n.m_rB = new I,
n.m_localCenterA = new I,
n.m_localCenterB = new I,
n.m_invMassA = 0,
n.m_invMassB = 0,
n.m_invIA = 0,
n.m_invIB = 0,
n.m_mass = 0,
n.m_qA = new F,
n.m_qB = new F,
n.m_lalcA = new I,
n.m_lalcB = new I,
n.m_groundAnchorA.Copy(e(i.groundAnchorA, new I(-1,1))),
n.m_groundAnchorB.Copy(e(i.groundAnchorB, new I(1,0))),
n.m_localAnchorA.Copy(e(i.localAnchorA, new I(-1,0))),
n.m_localAnchorB.Copy(e(i.localAnchorB, new I(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,
n
}
return ti(i, t),
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
, a = t.positions[this.m_indexB].c
, o = t.positions[this.m_indexB].a
, h = t.velocities[this.m_indexB].v
, c = t.velocities[this.m_indexB].w
, u = this.m_qA.SetAngle(n)
, _ = this.m_qB.SetAngle(o);
I.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA),
F.MulRV(u, this.m_lalcA, this.m_rA),
I.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB),
F.MulRV(_, this.m_lalcB, this.m_rB),
this.m_uA.Copy(e).SelfAdd(this.m_rA).SelfSub(this.m_groundAnchorA),
this.m_uB.Copy(a).SelfAdd(this.m_rB).SelfSub(this.m_groundAnchorB);
var f = this.m_uA.Length()
, d = this.m_uB.Length();
f > 10 * l ? this.m_uA.SelfMul(1 / f) : this.m_uA.SetZero(),
d > 10 * l ? this.m_uB.SelfMul(1 / d) : this.m_uB.SetZero();
var p = I.CrossVV(this.m_rA, this.m_uA)
, m = I.CrossVV(this.m_rB, this.m_uB)
, y = this.m_invMassA + this.m_invIA * p * p
, v = this.m_invMassB + this.m_invIB * m * m;
if (this.m_mass = y + this.m_ratio * this.m_ratio * v,
this.m_mass > 0 && (this.m_mass = 1 / this.m_mass),
t.step.warmStarting) {
this.m_impulse *= t.step.dtRatio;
var g = I.MulSV(-this.m_impulse, this.m_uA, i.InitVelocityConstraints_s_PA)
, A = I.MulSV(-this.m_ratio * this.m_impulse, this.m_uB, i.InitVelocityConstraints_s_PB);
r.SelfMulAdd(this.m_invMassA, g),
s += this.m_invIA * I.CrossVV(this.m_rA, g),
h.SelfMulAdd(this.m_invMassB, A),
c += this.m_invIB * I.CrossVV(this.m_rB, A)
} else
this.m_impulse = 0;
t.velocities[this.m_indexA].w = s,
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
, a = I.AddVCrossSV(e, n, this.m_rA, i.SolveVelocityConstraints_s_vpA)
, o = I.AddVCrossSV(r, s, this.m_rB, i.SolveVelocityConstraints_s_vpB)
, l = -I.DotVV(this.m_uA, a) - this.m_ratio * I.DotVV(this.m_uB, o)
, h = -this.m_mass * l;
this.m_impulse += h;
var c = I.MulSV(-h, this.m_uA, i.SolveVelocityConstraints_s_PA)
, u = I.MulSV(-this.m_ratio * h, this.m_uB, i.SolveVelocityConstraints_s_PB);
e.SelfMulAdd(this.m_invMassA, c),
n += this.m_invIA * I.CrossVV(this.m_rA, c),
r.SelfMulAdd(this.m_invMassB, u),
s += this.m_invIB * I.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
, a = this.m_qA.SetAngle(n)
, o = this.m_qB.SetAngle(s);
I.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA);
var h = F.MulRV(a, this.m_lalcA, this.m_rA);
I.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB);
var c = F.MulRV(o, this.m_lalcB, this.m_rB)
, u = this.m_uA.Copy(e).SelfAdd(h).SelfSub(this.m_groundAnchorA)
, _ = this.m_uB.Copy(r).SelfAdd(c).SelfSub(this.m_groundAnchorB)
, f = u.Length()
, d = _.Length();
f > 10 * l ? u.SelfMul(1 / f) : u.SetZero(),
d > 10 * l ? _.SelfMul(1 / d) : _.SetZero();
var p = I.CrossVV(h, u)
, y = I.CrossVV(c, _)
, v = this.m_invMassA + this.m_invIA * p * p
, g = this.m_invMassB + this.m_invIB * y * y
, A = v + this.m_ratio * this.m_ratio * g;
A > 0 && (A = 1 / A);
var x = this.m_constant - f - this.m_ratio * d
, b = m(x)
, C = -A * x
, T = I.MulSV(-C, u, i.SolvePositionConstraints_s_PA)
, S = I.MulSV(-this.m_ratio * C, _, i.SolvePositionConstraints_s_PB);
return e.SelfMulAdd(this.m_invMassA, T),
n += this.m_invIA * I.CrossVV(h, T),
r.SelfMulAdd(this.m_invMassB, S),
s += this.m_invIB * I.CrossVV(c, S),
t.positions[this.m_indexA].a = n,
t.positions[this.m_indexB].a = s,
b < 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) {
return e.x = t * this.m_impulse * this.m_uB.x,
e.y = t * this.m_impulse * this.m_uB.y,
e
}
,
i.prototype.GetReactionTorque = function() {
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 I.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 I.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 I,
i.InitVelocityConstraints_s_PB = new I,
i.SolveVelocityConstraints_s_vpA = new I,
i.SolveVelocityConstraints_s_vpB = new I,
i.SolveVelocityConstraints_s_PA = new I,
i.SolveVelocityConstraints_s_PB = new I,
i.SolvePositionConstraints_s_PA = new I,
i.SolvePositionConstraints_s_PB = new I,
i.GetCurrentLengthA_s_p = new I,
i.GetCurrentLengthB_s_p = new I,
i
}
)(mi)
, Ri = (function(e) {
function i() {
var i = e.call(this, t.b2JointType.e_revoluteJoint) || this;
return i.localAnchorA = new I(0,0),
i.localAnchorB = new I(0,0),
i.referenceAngle = 0,
i.enableLimit = !1,
i.lowerAngle = 0,
i.upperAngle = 0,
i.enableMotor = !1,
i.motorSpeed = 0,
i.maxMotorTorque = 0,
i
}
return ti(i, e),
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()
}
,
i
}
)(pi)
, Oi = (function(i) {
function n(n) {
var r = i.call(this, n) || this;
return r.m_localAnchorA = new I,
r.m_localAnchorB = new I,
r.m_impulse = new R,
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 I,
r.m_rB = new I,
r.m_localCenterA = new I,
r.m_localCenterB = new I,
r.m_invMassA = 0,
r.m_invMassB = 0,
r.m_invIA = 0,
r.m_invIB = 0,
r.m_mass = new L,
r.m_motorMass = 0,
r.m_limitState = t.b2LimitState.e_inactiveLimit,
r.m_qA = new F,
r.m_qB = new F,
r.m_lalcA = new I,
r.m_lalcB = new I,
r.m_K = new O,
r.m_localAnchorA.Copy(e(n.localAnchorA, I.ZERO)),
r.m_localAnchorB.Copy(e(n.localAnchorB, I.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,
r
}
return ti(n, i),
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
, a = e.positions[this.m_indexB].a
, o = e.velocities[this.m_indexB].v
, l = e.velocities[this.m_indexB].w
, c = this.m_qA.SetAngle(i)
, u = this.m_qB.SetAngle(a);
I.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA),
F.MulRV(c, this.m_lalcA, this.m_rA),
I.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB),
F.MulRV(u, this.m_lalcB, this.m_rB);
var _ = this.m_invMassA
, f = this.m_invMassB
, d = this.m_invIA
, p = this.m_invIB
, y = d + p === 0;
if (this.m_mass.ex.x = _ + f + this.m_rA.y * this.m_rA.y * d + this.m_rB.y * this.m_rB.y * p,
this.m_mass.ey.x = -this.m_rA.y * this.m_rA.x * d - this.m_rB.y * this.m_rB.x * p,
this.m_mass.ez.x = -this.m_rA.y * d - this.m_rB.y * p,
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 * p,
this.m_mass.ez.y = this.m_rA.x * d + this.m_rB.x * p,
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 + p,
this.m_motorMass = d + p,
this.m_motorMass > 0 && (this.m_motorMass = 1 / this.m_motorMass),
this.m_enableMotor && !y || (this.m_motorImpulse = 0),
this.m_enableLimit && !y) {
var v = a - i - this.m_referenceAngle;
m(this.m_upperAngle - this.m_lowerAngle) < 2 * h ? this.m_limitState = t.b2LimitState.e_equalLimits : v <= this.m_lowerAngle ? (this.m_limitState !== t.b2LimitState.e_atLowerLimit && (this.m_impulse.z = 0),
this.m_limitState = t.b2LimitState.e_atLowerLimit) : v >= this.m_upperAngle ? (this.m_limitState !== t.b2LimitState.e_atUpperLimit && (this.m_impulse.z = 0),
this.m_limitState = t.b2LimitState.e_atUpperLimit) : (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 * (I.CrossVV(this.m_rA, g) + this.m_motorImpulse + this.m_impulse.z),
o.SelfMulAdd(f, g),
l += p * (I.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 = l
}
,
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
, a = e.velocities[this.m_indexB].w
, o = this.m_invMassA
, l = this.m_invMassB
, h = this.m_invIA
, c = this.m_invIB
, u = h + c === 0;
if (this.m_enableMotor && this.m_limitState !== t.b2LimitState.e_equalLimits && !u) {
var _ = a - r - this.m_motorSpeed
, f = -this.m_motorMass * _
, d = this.m_motorImpulse
, p = e.step.dt * this.m_maxMotorTorque;
this.m_motorImpulse = g(this.m_motorImpulse + f, -p, p),
r -= h * (f = this.m_motorImpulse - d),
a += c * f
}
if (this.m_enableLimit && this.m_limitState !== t.b2LimitState.e_inactiveLimit && !u) {
var m = I.SubVV(I.AddVCrossSV(s, a, this.m_rB, I.s_t0), I.AddVCrossSV(i, r, this.m_rA, I.s_t1), n.SolveVelocityConstraints_s_Cdot1)
, y = a - r
, v = this.m_mass.Solve33(m.x, m.y, y, n.SolveVelocityConstraints_s_impulse_v3).SelfNeg();
if (this.m_limitState === t.b2LimitState.e_equalLimits)
this.m_impulse.SelfAdd(v);
else if (this.m_limitState === t.b2LimitState.e_atLowerLimit)
if (this.m_impulse.z + v.z < 0) {
var A = -m.x + this.m_impulse.z * this.m_mass.ez.x
, x = -m.y + this.m_impulse.z * this.m_mass.ez.y
, b = this.m_mass.Solve22(A, x, n.SolveVelocityConstraints_s_reduced_v2);
v.x = b.x,
v.y = b.y,
v.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(v);
else
this.m_limitState === t.b2LimitState.e_atUpperLimit && (this.m_impulse.z + v.z > 0 ? (A = -m.x + this.m_impulse.z * this.m_mass.ez.x,
x = -m.y + this.m_impulse.z * this.m_mass.ez.y,
b = this.m_mass.Solve22(A, x, n.SolveVelocityConstraints_s_reduced_v2),
v.x = b.x,
v.y = b.y,
v.z = -this.m_impulse.z,
this.m_impulse.x += b.x,
this.m_impulse.y += b.y,
this.m_impulse.z = 0) : this.m_impulse.SelfAdd(v));
var C = n.SolveVelocityConstraints_s_P.Set(v.x, v.y);
i.SelfMulSub(o, C),
r -= h * (I.CrossVV(this.m_rA, C) + v.z),
s.SelfMulAdd(l, C),
a += c * (I.CrossVV(this.m_rB, C) + v.z)
} else {
var T = I.SubVV(I.AddVCrossSV(s, a, this.m_rB, I.s_t0), I.AddVCrossSV(i, r, this.m_rA, I.s_t1), n.SolveVelocityConstraints_s_Cdot_v2)
, S = this.m_mass.Solve22(-T.x, -T.y, n.SolveVelocityConstraints_s_impulse_v2);
this.m_impulse.x += S.x,
this.m_impulse.y += S.y,
i.SelfMulSub(o, S),
r -= h * I.CrossVV(this.m_rA, S),
s.SelfMulAdd(l, S),
a += c * I.CrossVV(this.m_rB, S)
}
e.velocities[this.m_indexA].w = r,
e.velocities[this.m_indexB].w = a
}
,
n.prototype.SolvePositionConstraints = function(e) {
var i, r = e.positions[this.m_indexA].c, s = e.positions[this.m_indexA].a, a = e.positions[this.m_indexB].c, o = e.positions[this.m_indexB].a, c = this.m_qA.SetAngle(s), u = this.m_qB.SetAngle(o), _ = 0, f = this.m_invIA + this.m_invIB === 0;
if (this.m_enableLimit && this.m_limitState !== t.b2LimitState.e_inactiveLimit && !f) {
var d = o - s - this.m_referenceAngle
, p = 0;
if (this.m_limitState === t.b2LimitState.e_equalLimits) {
var y = g(d - this.m_lowerAngle, -.13962634015955555, .13962634015955555);
p = -this.m_motorMass * y,
_ = m(y)
} else
this.m_limitState === t.b2LimitState.e_atLowerLimit ? (_ = -(y = d - this.m_lowerAngle),
y = g(y + h, -.13962634015955555, 0),
p = -this.m_motorMass * y) : this.m_limitState === t.b2LimitState.e_atUpperLimit && (_ = y = d - this.m_upperAngle,
y = g(y - h, 0, .13962634015955555),
p = -this.m_motorMass * y);
s -= this.m_invIA * p,
o += this.m_invIB * p
}
c.SetAngle(s),
u.SetAngle(o),
I.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA);
var v = F.MulRV(c, this.m_lalcA, this.m_rA);
I.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB);
var A = F.MulRV(u, this.m_lalcB, this.m_rB)
, x = I.SubVV(I.AddVV(a, A, I.s_t0), I.AddVV(r, v, I.s_t1), n.SolvePositionConstraints_s_C_v2);
i = x.Length();
var b = this.m_invMassA
, C = this.m_invMassB
, T = this.m_invIA
, S = this.m_invIB
, w = this.m_K;
w.ex.x = b + C + T * v.y * v.y + S * A.y * A.y,
w.ex.y = -T * v.x * v.y - S * A.x * A.y,
w.ey.x = w.ex.y,
w.ey.y = b + C + T * v.x * v.x + S * A.x * A.x;
var E = w.Solve(x.x, x.y, n.SolvePositionConstraints_s_impulse).SelfNeg();
return r.SelfMulSub(b, E),
s -= T * I.CrossVV(v, E),
a.SelfMulAdd(C, E),
o += S * I.CrossVV(A, E),
e.positions[this.m_indexA].a = s,
e.positions[this.m_indexB].a = o,
i <= l && _ <= h
}
,
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 e.x = t * this.m_impulse.x,
e.y = t * this.m_impulse.y,
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) {
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) {
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) {
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) {
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) {
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 I,
n.SolveVelocityConstraints_s_P = new I,
n.SolveVelocityConstraints_s_Cdot_v2 = new I,
n.SolveVelocityConstraints_s_Cdot1 = new I,
n.SolveVelocityConstraints_s_impulse_v3 = new R,
n.SolveVelocityConstraints_s_reduced_v2 = new I,
n.SolveVelocityConstraints_s_impulse_v2 = new I,
n.SolvePositionConstraints_s_C_v2 = new I,
n.SolvePositionConstraints_s_impulse = new I,
n
}
)(mi)
, Li = (function(e) {
function i() {
var i = e.call(this, t.b2JointType.e_ropeJoint) || this;
return i.localAnchorA = new I(-1,0),
i.localAnchorB = new I(1,0),
i.maxLength = 0,
i
}
return ti(i, e),
i
}
)(pi)
, Fi = (function(i) {
function n(n) {
var r = i.call(this, n) || this;
return r.m_localAnchorA = new I,
r.m_localAnchorB = new I,
r.m_maxLength = 0,
r.m_length = 0,
r.m_impulse = 0,
r.m_indexA = 0,
r.m_indexB = 0,
r.m_u = new I,
r.m_rA = new I,
r.m_rB = new I,
r.m_localCenterA = new I,
r.m_localCenterB = new I,
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 F,
r.m_qB = new F,
r.m_lalcA = new I,
r.m_lalcB = new I,
r.m_localAnchorA.Copy(e(n.localAnchorA, new I(-1,0))),
r.m_localAnchorB.Copy(e(n.localAnchorB, new I(1,0))),
r.m_maxLength = e(n.maxLength, 0),
r
}
return ti(n, i),
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
, a = e.velocities[this.m_indexA].w
, o = e.positions[this.m_indexB].c
, h = e.positions[this.m_indexB].a
, c = e.velocities[this.m_indexB].v
, u = e.velocities[this.m_indexB].w
, _ = this.m_qA.SetAngle(r)
, f = this.m_qB.SetAngle(h);
I.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA),
F.MulRV(_, this.m_lalcA, this.m_rA),
I.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB),
F.MulRV(f, this.m_lalcB, this.m_rB),
this.m_u.Copy(o).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;
if (this.m_state = d > 0 ? t.b2LimitState.e_atUpperLimit : t.b2LimitState.e_inactiveLimit,
!(this.m_length > l))
return this.m_u.SetZero(),
this.m_mass = 0,
void (this.m_impulse = 0);
this.m_u.SelfMul(1 / this.m_length);
var p = I.CrossVV(this.m_rA, this.m_u)
, m = I.CrossVV(this.m_rB, this.m_u)
, y = this.m_invMassA + this.m_invIA * p * p + this.m_invMassB + this.m_invIB * m * m;
if (this.m_mass = 0 !== y ? 1 / y : 0,
e.step.warmStarting) {
this.m_impulse *= e.step.dtRatio;
var v = I.MulSV(this.m_impulse, this.m_u, n.InitVelocityConstraints_s_P);
s.SelfMulSub(this.m_invMassA, v),
a -= this.m_invIA * I.CrossVV(this.m_rA, v),
c.SelfMulAdd(this.m_invMassB, v),
u += this.m_invIB * I.CrossVV(this.m_rB, v)
} else
this.m_impulse = 0;
e.velocities[this.m_indexA].w = a,
e.velocities[this.m_indexB].w = u
}
,
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
, a = I.AddVCrossSV(e, i, this.m_rA, n.SolveVelocityConstraints_s_vpA)
, o = I.AddVCrossSV(r, s, this.m_rB, n.SolveVelocityConstraints_s_vpB)
, l = this.m_length - this.m_maxLength
, h = I.DotVV(this.m_u, I.SubVV(o, a, I.s_t0));
l < 0 && (h += t.step.inv_dt * l);
var c = -this.m_mass * h
, u = this.m_impulse;
this.m_impulse = y(0, this.m_impulse + c),
c = this.m_impulse - u;
var _ = I.MulSV(c, this.m_u, n.SolveVelocityConstraints_s_P);
e.SelfMulSub(this.m_invMassA, _),
i -= this.m_invIA * I.CrossVV(this.m_rA, _),
r.SelfMulAdd(this.m_invMassB, _),
s += this.m_invIB * I.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
, a = this.m_qA.SetAngle(i)
, o = this.m_qB.SetAngle(s);
I.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA);
var h = F.MulRV(a, this.m_lalcA, this.m_rA);
I.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB);
var c = F.MulRV(o, this.m_lalcB, this.m_rB)
, u = this.m_u.Copy(r).SelfAdd(c).SelfSub(e).SelfSub(h)
, _ = u.Normalize()
, f = _ - this.m_maxLength;
f = g(f, 0, .2);
var d = -this.m_mass * f
, p = I.MulSV(d, u, n.SolvePositionConstraints_s_P);
return e.SelfMulSub(this.m_invMassA, p),
i -= this.m_invIA * I.CrossVV(h, p),
r.SelfMulAdd(this.m_invMassB, p),
s += this.m_invIB * I.CrossVV(c, p),
t.positions[this.m_indexA].a = i,
t.positions[this.m_indexB].a = s,
_ - this.m_maxLength < 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) {
return I.MulSV(t * this.m_impulse, this.m_u, e)
}
,
n.prototype.GetReactionTorque = function() {
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 I,
n.SolveVelocityConstraints_s_vpA = new I,
n.SolveVelocityConstraints_s_vpB = new I,
n.SolveVelocityConstraints_s_P = new I,
n.SolvePositionConstraints_s_P = new I,
n
}
)(mi)
, Vi = (function(e) {
function i() {
var i = e.call(this, t.b2JointType.e_weldJoint) || this;
return i.localAnchorA = new I,
i.localAnchorB = new I,
i.referenceAngle = 0,
i.frequencyHz = 0,
i.dampingRatio = 0,
i
}
return ti(i, e),
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()
}
,
i
}
)(pi)
, Ni = (function(t) {
function i(i) {
var n = t.call(this, i) || this;
return n.m_frequencyHz = 0,
n.m_dampingRatio = 0,
n.m_bias = 0,
n.m_localAnchorA = new I,
n.m_localAnchorB = new I,
n.m_referenceAngle = 0,
n.m_gamma = 0,
n.m_impulse = new R(0,0,0),
n.m_indexA = 0,
n.m_indexB = 0,
n.m_rA = new I,
n.m_rB = new I,
n.m_localCenterA = new I,
n.m_localCenterB = new I,
n.m_invMassA = 0,
n.m_invMassB = 0,
n.m_invIA = 0,
n.m_invIB = 0,
n.m_mass = new L,
n.m_qA = new F,
n.m_qB = new F,
n.m_lalcA = new I,
n.m_lalcB = new I,
n.m_K = new L,
n.m_frequencyHz = e(i.frequencyHz, 0),
n.m_dampingRatio = e(i.dampingRatio, 0),
n.m_localAnchorA.Copy(e(i.localAnchorA, I.ZERO)),
n.m_localAnchorB.Copy(e(i.localAnchorB, I.ZERO)),
n.m_referenceAngle = e(i.referenceAngle, 0),
n.m_impulse.SetZero(),
n
}
return ti(i, t),
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
, a = t.positions[this.m_indexB].a
, o = t.velocities[this.m_indexB].v
, l = t.velocities[this.m_indexB].w
, h = this.m_qA.SetAngle(e)
, c = this.m_qB.SetAngle(a);
I.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA),
F.MulRV(h, this.m_lalcA, this.m_rA),
I.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB),
F.MulRV(c, this.m_lalcB, this.m_rB);
var u = this.m_invMassA
, _ = this.m_invMassB
, f = this.m_invIA
, d = this.m_invIB
, p = this.m_K;
if (p.ex.x = u + _ + this.m_rA.y * this.m_rA.y * f + this.m_rB.y * this.m_rB.y * d,
p.ey.x = -this.m_rA.y * this.m_rA.x * f - this.m_rB.y * this.m_rB.x * d,
p.ez.x = -this.m_rA.y * f - this.m_rB.y * d,
p.ex.y = p.ey.x,
p.ey.y = u + _ + this.m_rA.x * this.m_rA.x * f + this.m_rB.x * this.m_rB.x * d,
p.ez.y = this.m_rA.x * f + this.m_rB.x * d,
p.ex.z = p.ez.x,
p.ey.z = p.ez.y,
p.ez.z = f + d,
this.m_frequencyHz > 0) {
p.GetInverse22(this.m_mass);
var m = f + d
, y = m > 0 ? 1 / m : 0
, v = a - e - this.m_referenceAngle
, g = 2 * s * this.m_frequencyHz
, A = 2 * y * this.m_dampingRatio * g
, x = y * g * g
, b = t.step.dt;
this.m_gamma = b * (A + b * x),
this.m_gamma = 0 !== this.m_gamma ? 1 / this.m_gamma : 0,
this.m_bias = v * b * x * this.m_gamma,
m += this.m_gamma,
this.m_mass.ez.z = 0 !== m ? 1 / m : 0
} else
p.GetSymInverse33(this.m_mass),
this.m_gamma = 0,
this.m_bias = 0;
if (t.step.warmStarting) {
this.m_impulse.SelfMul(t.step.dtRatio);
var C = i.InitVelocityConstraints_s_P.Set(this.m_impulse.x, this.m_impulse.y);
n.SelfMulSub(u, C),
r -= f * (I.CrossVV(this.m_rA, C) + this.m_impulse.z),
o.SelfMulAdd(_, C),
l += d * (I.CrossVV(this.m_rB, C) + this.m_impulse.z)
} else
this.m_impulse.SetZero();
t.velocities[this.m_indexA].w = r,
t.velocities[this.m_indexB].w = l
}
,
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
, a = this.m_invMassA
, o = this.m_invMassB
, l = this.m_invIA
, h = this.m_invIB;
if (this.m_frequencyHz > 0) {
var c = s - n
, u = -this.m_mass.ez.z * (c + this.m_bias + this.m_gamma * this.m_impulse.z);
this.m_impulse.z += u,
n -= l * u,
s += h * u;
var _ = I.SubVV(I.AddVCrossSV(r, s, this.m_rB, I.s_t0), I.AddVCrossSV(e, n, this.m_rA, I.s_t1), i.SolveVelocityConstraints_s_Cdot1)
, f = L.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(a, d),
n -= l * I.CrossVV(this.m_rA, d),
r.SelfMulAdd(o, d),
s += h * I.CrossVV(this.m_rB, d)
} else {
_ = I.SubVV(I.AddVCrossSV(r, s, this.m_rB, I.s_t0), I.AddVCrossSV(e, n, this.m_rA, I.s_t1), i.SolveVelocityConstraints_s_Cdot1),
c = s - n;
var p = L.MulM33XYZ(this.m_mass, _.x, _.y, c, i.SolveVelocityConstraints_s_impulse).SelfNeg();
this.m_impulse.SelfAdd(p),
d = i.SolveVelocityConstraints_s_P.Set(p.x, p.y),
e.SelfMulSub(a, d),
n -= l * (I.CrossVV(this.m_rA, d) + p.z),
r.SelfMulAdd(o, d),
s += h * (I.CrossVV(this.m_rB, d) + p.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
, a = this.m_qA.SetAngle(n)
, o = this.m_qB.SetAngle(s)
, c = this.m_invMassA
, u = this.m_invMassB
, _ = this.m_invIA
, f = this.m_invIB;
I.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA);
var d = F.MulRV(a, this.m_lalcA, this.m_rA);
I.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB);
var p, y, v = F.MulRV(o, this.m_lalcB, this.m_rB), g = this.m_K;
if (g.ex.x = c + 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 = c + 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,
this.m_frequencyHz > 0) {
p = (x = I.SubVV(I.AddVV(r, v, I.s_t0), I.AddVV(e, d, I.s_t1), i.SolvePositionConstraints_s_C1)).Length(),
y = 0;
var A = g.Solve22(x.x, x.y, i.SolvePositionConstraints_s_P).SelfNeg();
e.SelfMulSub(c, A),
n -= _ * I.CrossVV(d, A),
r.SelfMulAdd(u, A),
s += f * I.CrossVV(v, A)
} else {
var x = I.SubVV(I.AddVV(r, v, I.s_t0), I.AddVV(e, d, I.s_t1), i.SolvePositionConstraints_s_C1)
, b = s - n - this.m_referenceAngle;
p = x.Length(),
y = m(b);
var C = g.Solve33(x.x, x.y, b, i.SolvePositionConstraints_s_impulse).SelfNeg();
A = i.SolvePositionConstraints_s_P.Set(C.x, C.y),
e.SelfMulSub(c, A),
n -= _ * (I.CrossVV(this.m_rA, A) + C.z),
r.SelfMulAdd(u, A),
s += f * (I.CrossVV(this.m_rB, A) + C.z)
}
return t.positions[this.m_indexA].a = n,
t.positions[this.m_indexB].a = s,
p <= l && y <= h
}
,
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) {
return e.x = t * this.m_impulse.x,
e.y = t * this.m_impulse.y,
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 I,
i.SolveVelocityConstraints_s_Cdot1 = new I,
i.SolveVelocityConstraints_s_impulse1 = new I,
i.SolveVelocityConstraints_s_impulse = new R,
i.SolveVelocityConstraints_s_P = new I,
i.SolvePositionConstraints_s_C1 = new I,
i.SolvePositionConstraints_s_P = new I,
i.SolvePositionConstraints_s_impulse = new R,
i
}
)(mi)
, ki = (function(e) {
function i() {
var i = e.call(this, t.b2JointType.e_wheelJoint) || this;
return i.localAnchorA = new I(0,0),
i.localAnchorB = new I(0,0),
i.localAxisA = new I(1,0),
i.enableMotor = !1,
i.maxMotorTorque = 0,
i.motorSpeed = 0,
i.frequencyHz = 2,
i.dampingRatio = .7,
i
}
return ti(i, e),
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)
}
,
i
}
)(pi)
, Gi = (function(t) {
function i(i) {
var n = t.call(this, i) || this;
return n.m_frequencyHz = 0,
n.m_dampingRatio = 0,
n.m_localAnchorA = new I,
n.m_localAnchorB = new I,
n.m_localXAxisA = new I,
n.m_localYAxisA = new I,
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 I,
n.m_localCenterB = new I,
n.m_invMassA = 0,
n.m_invMassB = 0,
n.m_invIA = 0,
n.m_invIB = 0,
n.m_ax = new I,
n.m_ay = new I,
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 F,
n.m_qB = new F,
n.m_lalcA = new I,
n.m_lalcB = new I,
n.m_rA = new I,
n.m_rB = new I,
n.m_frequencyHz = e(i.frequencyHz, 2),
n.m_dampingRatio = e(i.dampingRatio, .7),
n.m_localAnchorA.Copy(e(i.localAnchorA, I.ZERO)),
n.m_localAnchorB.Copy(e(i.localAnchorB, I.ZERO)),
n.m_localXAxisA.Copy(e(i.localAxisA, I.UNITX)),
I.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(),
n
}
return ti(i, t),
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
, a = this.m_invIB
, o = t.positions[this.m_indexA].c
, l = t.positions[this.m_indexA].a
, h = t.velocities[this.m_indexA].v
, c = 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
, p = this.m_qA.SetAngle(l)
, m = this.m_qB.SetAngle(_);
I.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA);
var y = F.MulRV(p, this.m_lalcA, this.m_rA);
I.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB);
var v = F.MulRV(m, this.m_lalcB, this.m_rB)
, g = I.SubVV(I.AddVV(u, v, I.s_t0), I.AddVV(o, y, I.s_t1), i.InitVelocityConstraints_s_d);
if (F.MulRV(p, this.m_localYAxisA, this.m_ay),
this.m_sAy = I.CrossVV(I.AddVV(g, y, I.s_t0), this.m_ay),
this.m_sBy = I.CrossVV(v, this.m_ay),
this.m_mass = e + n + r * this.m_sAy * this.m_sAy + a * 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,
this.m_frequencyHz > 0) {
F.MulRV(p, this.m_localXAxisA, this.m_ax),
this.m_sAx = I.CrossVV(I.AddVV(g, y, I.s_t0), this.m_ax),
this.m_sBx = I.CrossVV(v, this.m_ax);
var A = e + n + r * this.m_sAx * this.m_sAx + a * this.m_sBx * this.m_sBx;
if (A > 0) {
this.m_springMass = 1 / A;
var x = I.DotVV(g, this.m_ax)
, b = 2 * s * this.m_frequencyHz
, C = 2 * this.m_springMass * this.m_dampingRatio * b
, T = this.m_springMass * b * b
, S = t.step.dt;
this.m_gamma = S * (C + S * T),
this.m_gamma > 0 && (this.m_gamma = 1 / this.m_gamma),
this.m_bias = x * S * T * this.m_gamma,
this.m_springMass = A + 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 + a,
this.m_motorMass > 0 && (this.m_motorMass = 1 / this.m_motorMass)) : (this.m_motorMass = 0,
this.m_motorImpulse = 0),
t.step.warmStarting) {
this.m_impulse *= t.step.dtRatio,
this.m_springImpulse *= t.step.dtRatio,
this.m_motorImpulse *= t.step.dtRatio;
var w = I.AddVV(I.MulSV(this.m_impulse, this.m_ay, I.s_t0), I.MulSV(this.m_springImpulse, this.m_ax, I.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;
h.SelfMulSub(this.m_invMassA, w),
c -= this.m_invIA * E,
f.SelfMulAdd(this.m_invMassB, w),
d += this.m_invIB * M
} else
this.m_impulse = 0,
this.m_springImpulse = 0,
this.m_motorImpulse = 0;
t.velocities[this.m_indexA].w = c,
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
, a = t.velocities[this.m_indexA].v
, o = t.velocities[this.m_indexA].w
, l = t.velocities[this.m_indexB].v
, h = t.velocities[this.m_indexB].w
, c = I.DotVV(this.m_ax, I.SubVV(l, a, I.s_t0)) + this.m_sBx * h - this.m_sAx * o
, u = -this.m_springMass * (c + this.m_bias + this.m_gamma * this.m_springImpulse);
this.m_springImpulse += u;
var _ = I.MulSV(u, this.m_ax, i.SolveVelocityConstraints_s_P)
, f = u * this.m_sAx
, d = u * this.m_sBx;
a.SelfMulSub(e, _),
o -= r * f,
l.SelfMulAdd(n, _),
c = (h += s * d) - o - this.m_motorSpeed,
u = -this.m_motorMass * c;
var p = this.m_motorImpulse
, m = t.step.dt * this.m_maxMotorTorque;
this.m_motorImpulse = g(this.m_motorImpulse + u, -m, m),
o -= r * (u = this.m_motorImpulse - p),
h += s * u,
c = I.DotVV(this.m_ay, I.SubVV(l, a, I.s_t0)) + this.m_sBy * h - this.m_sAy * o,
u = -this.m_mass * c,
this.m_impulse += u,
_ = I.MulSV(u, this.m_ay, i.SolveVelocityConstraints_s_P),
f = u * this.m_sAy,
d = u * this.m_sBy,
a.SelfMulSub(e, _),
o -= r * f,
l.SelfMulAdd(n, _),
h += s * d,
t.velocities[this.m_indexA].w = o,
t.velocities[this.m_indexB].w = h
}
,
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
, a = this.m_qA.SetAngle(n)
, o = this.m_qB.SetAngle(s);
I.SubVV(this.m_localAnchorA, this.m_localCenterA, this.m_lalcA);
var h = F.MulRV(a, this.m_lalcA, this.m_rA);
I.SubVV(this.m_localAnchorB, this.m_localCenterB, this.m_lalcB);
var c, u = F.MulRV(o, this.m_lalcB, this.m_rB), _ = I.AddVV(I.SubVV(r, e, I.s_t0), I.SubVV(u, h, I.s_t1), i.SolvePositionConstraints_s_d), f = F.MulRV(a, this.m_localYAxisA, this.m_ay), d = I.CrossVV(I.AddVV(_, h, I.s_t0), f), p = I.CrossVV(u, f), y = I.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;
c = 0 !== v ? -y / v : 0;
var g = I.MulSV(c, f, i.SolvePositionConstraints_s_P)
, A = c * d
, x = c * p;
return e.SelfMulSub(this.m_invMassA, g),
n -= this.m_invIA * A,
r.SelfMulAdd(this.m_invMassB, g),
s += this.m_invIB * x,
t.positions[this.m_indexA].a = n,
t.positions[this.m_indexB].a = s,
m(y) <= l
}
,
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) {
return 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),
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 I)
, n = e.GetWorldPoint(this.m_localAnchorB, new I)
, r = I.SubVV(n, i, new I)
, s = t.GetWorldVector(this.m_localXAxisA, new I);
return I.DotVV(r, s)
}
,
i.prototype.GetPrismaticJointSpeed = function() {
var t = this.m_bodyA
, e = this.m_bodyB;
I.SubVV(this.m_localAnchorA, t.m_sweep.localCenter, this.m_lalcA);
var i = F.MulRV(t.m_xf.q, this.m_lalcA, this.m_rA);
I.SubVV(this.m_localAnchorB, e.m_sweep.localCenter, this.m_lalcB);
var n = F.MulRV(e.m_xf.q, this.m_lalcB, this.m_rB)
, r = I.AddVV(t.m_sweep.c, i, I.s_t0)
, s = I.AddVV(e.m_sweep.c, n, I.s_t1)
, a = I.SubVV(s, r, I.s_t2)
, o = t.GetWorldVector(this.m_localXAxisA, new I)
, l = t.m_linearVelocity
, h = e.m_linearVelocity
, c = t.m_angularVelocity
, u = e.m_angularVelocity;
return I.DotVV(a, I.CrossSV(c, o, I.s_t0)) + I.DotVV(o, I.SubVV(I.AddVCrossSV(h, u, n, I.s_t0), I.AddVCrossSV(l, c, i, I.s_t1), I.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) {
t !== this.m_enableMotor && (this.m_bodyA.SetAwake(!0),
this.m_bodyB.SetAwake(!0),
this.m_enableMotor = t)
}
,
i.prototype.SetMotorSpeed = function(t) {
t !== this.m_motorSpeed && (this.m_bodyA.SetAwake(!0),
this.m_bodyB.SetAwake(!0),
this.m_motorSpeed = t)
}
,
i.prototype.SetMaxMotorTorque = function(t) {
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 I,
i.InitVelocityConstraints_s_P = new I,
i.SolveVelocityConstraints_s_P = new I,
i.SolvePositionConstraints_s_d = new I,
i.SolvePositionConstraints_s_P = new I,
i
}
)(mi);
function Ui(t, e) {
return T(t * e)
}
function zi(t, e) {
return t > e ? t : e
}
var Hi, Wi = function(t) {
this.prev = null,
this.next = null,
this.contact = t
}, ji = (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 gt,
this.m_toiCount = 0,
this.m_toi = 0,
this.m_friction = 0,
this.m_restitution = 0,
this.m_tangentSpeed = 0,
this.m_oldManifold = new gt,
this.m_nodeA = new Wi(this),
this.m_nodeB = new Wi(this)
}
return 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 = Ui(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 = zi(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 = Ui(this.m_fixtureA.m_friction, this.m_fixtureB.m_friction),
this.m_restitution = zi(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()
, a = r || s
, o = this.m_fixtureA.GetBody()
, l = this.m_fixtureB.GetBody()
, h = o.GetTransform()
, c = l.GetTransform();
if (a) {
var u = this.m_fixtureA.GetShape()
, _ = this.m_fixtureB.GetShape();
i = Bt(u, this.m_indexA, _, this.m_indexB, h, c),
this.m_manifold.pointCount = 0
} else {
this.Evaluate(this.m_manifold, h, c),
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 p = d.id, m = 0; m < this.m_oldManifold.pointCount; ++m) {
var y = this.m_oldManifold.points[m];
if (y.id.key === p.key) {
d.normalImpulse = y.normalImpulse,
d.tangentImpulse = y.tangentImpulse;
break
}
}
}
i !== n && (o.SetAwake(!0),
l.SetAwake(!0))
}
this.m_touchingFlag = i,
!n && i && t && t.BeginContact(this),
n && !i && t && t.EndContact(this),
!a && 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 = l;
var r = t.ComputeTOI_s_output;
return re(r, n),
r.t
}
,
t.ComputeTOI_s_input = new jt,
t.ComputeTOI_s_output = new Yt,
t
}
)(), Xi = (function(t) {
function e() {
return t.call(this) || this
}
return ti(e, t),
e.Create = function() {
return new e
}
,
e.Destroy = function() {}
,
e.prototype.Reset = function(e, i, n, r) {
t.prototype.Reset.call(this, e, i, n, r)
}
,
e.prototype.Evaluate = function(t, e, i) {
oe(t, this.m_fixtureA.GetShape(), e, this.m_fixtureB.GetShape(), i)
}
,
e
}
)(ji), Yi = (function(t) {
function e() {
return t.call(this) || this
}
return ti(e, t),
e.Create = function() {
return new e
}
,
e.Destroy = function() {}
,
e.prototype.Reset = function(e, i, n, r) {
t.prototype.Reset.call(this, e, i, n, r)
}
,
e.prototype.Evaluate = function(t, e, i) {
Le(t, this.m_fixtureA.GetShape(), e, this.m_fixtureB.GetShape(), i)
}
,
e
}
)(ji), qi = (function(t) {
function e() {
return t.call(this) || this
}
return ti(e, t),
e.Create = function() {
return new e
}
,
e.Destroy = function() {}
,
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)
}
,
e
}
)(ji), Ji = (function(t) {
function e() {
return t.call(this) || this
}
return ti(e, t),
e.Create = function() {
return new e
}
,
e.Destroy = function() {}
,
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)
}
,
e
}
)(ji), Zi = (function(t) {
function e() {
return t.call(this) || this
}
return ti(e, t),
e.Create = function() {
return new e
}
,
e.Destroy = function() {}
,
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)
}
,
e
}
)(ji), Ki = (function(t) {
function e() {
return t.call(this) || this
}
return ti(e, t),
e.Create = function() {
return new e
}
,
e.Destroy = function() {}
,
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()
, a = r
, o = e.Evaluate_s_edge;
a.GetChildEdge(o, this.m_indexA),
We(t, o, i, s, n)
}
,
e.Evaluate_s_edge = new ri,
e
}
)(ji), Qi = (function(t) {
function e() {
return t.call(this) || this
}
return ti(e, t),
e.Create = function() {
return new e
}
,
e.Destroy = function() {}
,
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()
, a = r
, o = e.Evaluate_s_edge;
a.GetChildEdge(o, this.m_indexA),
Je(t, o, i, s, n)
}
,
e.Evaluate_s_edge = new ri,
e
}
)(ji), $i = function() {
this.createFcn = null,
this.destroyFcn = null,
this.primary = !1
}, tn = (function() {
function e(t) {
this.m_allocator = null,
this.m_allocator = t,
this.InitializeRegisters()
}
return e.prototype.AddType = function(t, e, i, n) {
var r = this
, s = d(256, (function() {
return t(r.m_allocator)
}
));
function a(e) {
return s.pop() || t(e)
}
function o(t) {
s.push(t)
}
this.m_registers[i][n].createFcn = a,
this.m_registers[i][n].destroyFcn = o,
this.m_registers[i][n].primary = !0,
i !== n && (this.m_registers[n][i].createFcn = a,
this.m_registers[n][i].destroyFcn = o,
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 $i
}
this.AddType(Xi.Create, Xi.Destroy, t.b2ShapeType.e_circleShape, t.b2ShapeType.e_circleShape),
this.AddType(qi.Create, qi.Destroy, t.b2ShapeType.e_polygonShape, t.b2ShapeType.e_circleShape),
this.AddType(Yi.Create, Yi.Destroy, t.b2ShapeType.e_polygonShape, t.b2ShapeType.e_polygonShape),
this.AddType(Ji.Create, Ji.Destroy, t.b2ShapeType.e_edgeShape, t.b2ShapeType.e_circleShape),
this.AddType(Zi.Create, Zi.Destroy, t.b2ShapeType.e_edgeShape, t.b2ShapeType.e_polygonShape),
this.AddType(Ki.Create, Ki.Destroy, t.b2ShapeType.e_chainShape, t.b2ShapeType.e_circleShape),
this.AddType(Qi.Create, Qi.Destroy, t.b2ShapeType.e_chainShape, t.b2ShapeType.e_polygonShape)
}
,
e.prototype.Create = function(t, e, i, n) {
var r = t.GetType()
, s = i.GetType()
, a = this.m_registers[r][s];
if (a.createFcn) {
var o = a.createFcn(this.m_allocator);
return a.primary ? o.Reset(t, e, i, n) : o.Reset(i, n, t, e),
o
}
return null
}
,
e.prototype.Destroy = function(t) {
var e = t.m_fixtureA
, i = t.m_fixtureB;
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)
}
,
e
}
)(), en = (function() {
function t() {}
return t.prototype.SayGoodbyeJoint = function() {}
,
t.prototype.SayGoodbyeFixture = function() {}
,
t.prototype.SayGoodbyeParticleGroup = function() {}
,
t.prototype.SayGoodbyeParticle = function() {}
,
t
}
)(), nn = (function() {
function e() {}
return 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()
, a = i.GetFilterData();
return s.groupIndex === a.groupIndex && 0 !== s.groupIndex ? s.groupIndex > 0 : 0 != (s.maskBits & a.categoryBits) && 0 != (s.categoryBits & a.maskBits)
}
,
e.prototype.ShouldCollideFixtureParticle = function() {
return !0
}
,
e.prototype.ShouldCollideParticleParticle = function() {
return !0
}
,
e.b2_defaultFilter = new e,
e
}
)(), rn = function() {
this.normalImpulses = p(a),
this.tangentImpulses = p(a),
this.count = 0
}, sn = (function() {
function t() {}
return t.prototype.BeginContact = function() {}
,
t.prototype.EndContact = function() {}
,
t.prototype.BeginContactFixtureParticle = function() {}
,
t.prototype.EndContactFixtureParticle = function() {}
,
t.prototype.BeginContactParticleParticle = function() {}
,
t.prototype.EndContactParticleParticle = function() {}
,
t.prototype.PreSolve = function() {}
,
t.prototype.PostSolve = function() {}
,
t.b2_defaultListener = new t,
t
}
)(), an = (function() {
function t() {}
return t.prototype.ReportFixture = function() {
return !0
}
,
t.prototype.ReportParticle = function() {
return !1
}
,
t.prototype.ShouldQueryParticleSystem = function() {
return !0
}
,
t
}
)(), on = (function() {
function t() {}
return t.prototype.ReportFixture = function(t, e, i, n) {
return n
}
,
t.prototype.ReportParticle = function() {
return 0
}
,
t.prototype.ShouldQueryParticleSystem = function() {
return !0
}
,
t
}
)(), ln = (function() {
function e() {
this.m_broadPhase = new Lt,
this.m_contactList = null,
this.m_contactCount = 0,
this.m_contactFilter = nn.b2_defaultFilter,
this.m_contactListener = sn.b2_defaultListener,
this.m_allocator = null,
this.m_contactFactory = new tn(this.m_allocator)
}
return e.prototype.AddPair = function(t, e) {
var i = t.fixture
, n = e.fixture
, r = t.childIndex
, s = e.childIndex
, a = i.GetBody()
, o = n.GetBody();
if (a !== o) {
for (var l = o.GetContactList(); l; ) {
if (l.other === a) {
var h = l.contact.GetFixtureA()
, c = l.contact.GetFixtureB()
, u = l.contact.GetChildIndexA()
, _ = l.contact.GetChildIndexB();
if (h === i && c === n && u === r && _ === s)
return;
if (h === n && c === i && u === s && _ === r)
return
}
l = l.next
}
if (!this.m_contactFilter || this.m_contactFilter.ShouldCollide(i, n)) {
var f = this.m_contactFactory.Create(i, r, n, s);
null !== f && (i = f.GetFixtureA(),
n = f.GetFixtureB(),
r = f.GetChildIndexA(),
s = f.GetChildIndexB(),
a = i.m_body,
o = 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 = o,
f.m_nodeA.prev = null,
f.m_nodeA.next = a.m_contactList,
null !== a.m_contactList && (a.m_contactList.prev = f.m_nodeA),
a.m_contactList = f.m_nodeA,
f.m_nodeB.contact = f,
f.m_nodeB.other = a,
f.m_nodeB.prev = null,
f.m_nodeB.next = o.m_contactList,
null !== o.m_contactList && (o.m_contactList.prev = f.m_nodeB),
o.m_contactList = f.m_nodeB,
i.IsSensor() || n.IsSensor() || (a.SetAwake(!0),
o.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()
, a = i.GetBody()
, o = n.GetBody();
if (e.m_filterFlag) {
if (this.m_contactFilter && !this.m_contactFilter.ShouldCollide(i, n)) {
e = (c = e).m_next,
this.Destroy(c);
continue
}
e.m_filterFlag = !1
}
var l = a.IsAwake() && a.m_type !== t.b2BodyType.b2_staticBody
, h = o.IsAwake() && o.m_type !== t.b2BodyType.b2_staticBody;
if (l || h) {
var c, u = i.m_proxies[r].treeNode, _ = n.m_proxies[s].treeNode;
St(u.aabb, _.aabb) ? (e.Update(this.m_contactListener),
e = e.m_next) : (e = (c = e).m_next,
this.Destroy(c))
} else
e = e.m_next
}
}
,
e
}
)(), hn = (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
}
return t.prototype.Reset = function() {
return this.step = 0,
this.collide = 0,
this.solve = 0,
this.solveInit = 0,
this.solveVelocity = 0,
this.solvePosition = 0,
this.broadphase = 0,
this.solveTOI = 0,
this
}
,
t
}
)(), cn = (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
}
return t.prototype.Copy = function(t) {
return 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,
this
}
,
t
}
)(), un = (function() {
function t() {
this.c = new I,
this.a = 0
}
return t.MakeArray = function(e) {
return d(e, (function() {
return new t
}
))
}
,
t
}
)(), _n = (function() {
function t() {
this.v = new I,
this.w = 0
}
return t.MakeArray = function(e) {
return d(e, (function() {
return new t
}
))
}
,
t
}
)(), fn = function() {
this.step = new cn
}, dn = (function() {
function t() {
this.rA = new I,
this.rB = new I,
this.normalImpulse = 0,
this.tangentImpulse = 0,
this.normalMass = 0,
this.tangentMass = 0,
this.velocityBias = 0
}
return t.MakeArray = function(e) {
return d(e, (function() {
return new t
}
))
}
,
t
}
)(), pn = (function() {
function t() {
this.points = dn.MakeArray(a),
this.normal = new I,
this.tangent = new I,
this.normalMass = new O,
this.K = new O,
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
}
return t.MakeArray = function(e) {
return d(e, (function() {
return new t
}
))
}
,
t
}
)(), mn = (function() {
function e() {
this.localPoints = I.MakeArray(a),
this.localNormal = new I,
this.localPoint = new I,
this.indexA = 0,
this.indexB = 0,
this.invMassA = 0,
this.invMassB = 0,
this.localCenterA = new I,
this.localCenterB = new I,
this.invIA = 0,
this.invIB = 0,
this.type = t.b2ManifoldType.e_unknown,
this.radiusA = 0,
this.radiusB = 0,
this.pointCount = 0
}
return e.MakeArray = function(t) {
return d(t, (function() {
return new e
}
))
}
,
e
}
)(), yn = function() {
this.step = new cn,
this.count = 0,
this.allocator = null
}, vn = (function() {
function e() {
this.normal = new I,
this.point = new I,
this.separation = 0
}
return e.prototype.Initialize = function(i, n, r, s) {
var a = e.Initialize_s_pointA
, o = e.Initialize_s_pointB
, l = e.Initialize_s_planePoint
, h = e.Initialize_s_clipPoint;
switch (i.type) {
case t.b2ManifoldType.e_circles:
V.MulXV(n, i.localPoint, a),
V.MulXV(r, i.localPoints[0], o),
I.SubVV(o, a, this.normal).SelfNormalize(),
I.MidVV(a, o, this.point),
this.separation = I.DotVV(I.SubVV(o, a, I.s_t0), this.normal) - i.radiusA - i.radiusB;
break;
case t.b2ManifoldType.e_faceA:
F.MulRV(n.q, i.localNormal, this.normal),
V.MulXV(n, i.localPoint, l),
V.MulXV(r, i.localPoints[s], h),
this.separation = I.DotVV(I.SubVV(h, l, I.s_t0), this.normal) - i.radiusA - i.radiusB,
this.point.Copy(h);
break;
case t.b2ManifoldType.e_faceB:
F.MulRV(r.q, i.localNormal, this.normal),
V.MulXV(r, i.localPoint, l),
V.MulXV(n, i.localPoints[s], h),
this.separation = I.DotVV(I.SubVV(h, l, I.s_t0), this.normal) - i.radiusA - i.radiusB,
this.point.Copy(h),
this.normal.SelfNeg()
}
}
,
e.Initialize_s_pointA = new I,
e.Initialize_s_pointB = new I,
e.Initialize_s_planePoint = new I,
e.Initialize_s_clipPoint = new I,
e
}
)(), gn = (function() {
function t() {
this.m_step = new cn,
this.m_allocator = null,
this.m_positionConstraints = mn.MakeArray(1024),
this.m_velocityConstraints = pn.MakeArray(1024),
this.m_count = 0
}
return t.prototype.Initialize = function(t) {
if (this.m_step.Copy(t.step),
this.m_allocator = t.allocator,
this.m_count = t.count,
this.m_positionConstraints.length < this.m_count)
for (var e = v(2 * this.m_positionConstraints.length, this.m_count); this.m_positionConstraints.length < e; )
this.m_positionConstraints[this.m_positionConstraints.length] = new mn;
if (this.m_velocityConstraints.length < this.m_count)
for (e = v(2 * this.m_velocityConstraints.length, this.m_count); this.m_velocityConstraints.length < e; )
this.m_velocityConstraints[this.m_velocityConstraints.length] = new pn;
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
, a = r.GetShape()
, o = s.GetShape()
, l = a.m_radius
, h = o.m_radius
, c = 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 = c.m_islandIndex,
d.indexB = u.m_islandIndex,
d.invMassA = c.m_invMass,
d.invMassB = u.m_invMass,
d.invIA = c.m_invI,
d.invIB = u.m_invI,
d.contactIndex = i,
d.pointCount = f,
d.K.SetZero(),
d.normalMass.SetZero();
var p = this.m_positionConstraints[i];
p.indexA = c.m_islandIndex,
p.indexB = u.m_islandIndex,
p.invMassA = c.m_invMass,
p.invMassB = u.m_invMass,
p.localCenterA.Copy(c.m_sweep.localCenter),
p.localCenterB.Copy(u.m_sweep.localCenter),
p.invIA = c.m_invI,
p.invIB = u.m_invI,
p.localNormal.Copy(_.localNormal),
p.localPoint.Copy(_.localPoint),
p.pointCount = f,
p.radiusA = l,
p.radiusB = h,
p.type = _.type;
for (var m = 0; m < f; ++m) {
var y = _.points[m]
, g = d.points[m];
this.m_step.warmStarting ? (g.normalImpulse = this.m_step.dtRatio * y.normalImpulse,
g.tangentImpulse = this.m_step.dtRatio * y.tangentImpulse) : (g.normalImpulse = 0,
g.tangentImpulse = 0),
g.rA.SetZero(),
g.rB.SetZero(),
g.normalMass = 0,
g.tangentMass = 0,
g.velocityBias = 0,
p.localPoints[m].Copy(y.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]
, a = this.m_positionConstraints[r]
, o = a.radiusA
, l = a.radiusB
, h = this.m_contacts[s.contactIndex].GetManifold()
, c = s.indexA
, u = s.indexB
, _ = s.invMassA
, f = s.invMassB
, d = s.invIA
, p = s.invIB
, m = a.localCenterA
, y = a.localCenterB
, v = this.m_positions[c].c
, g = this.m_positions[c].a
, A = this.m_velocities[c].v
, x = this.m_velocities[c].w
, b = this.m_positions[u].c
, C = this.m_positions[u].a
, T = this.m_velocities[u].v
, S = this.m_velocities[u].w;
e.q.SetAngle(g),
i.q.SetAngle(C),
I.SubVV(v, F.MulRV(e.q, m, I.s_t0), e.p),
I.SubVV(b, F.MulRV(i.q, y, I.s_t0), i.p),
n.Initialize(h, e, o, i, l),
s.normal.Copy(n.normal),
I.CrossVOne(s.normal, s.tangent);
for (var w = s.pointCount, E = 0; E < w; ++E) {
var M = s.points[E];
I.SubVV(n.points[E], v, M.rA),
I.SubVV(n.points[E], b, M.rB);
var D = I.CrossVV(M.rA, s.normal)
, B = I.CrossVV(M.rB, s.normal)
, P = _ + f + d * D * D + p * B * B;
M.normalMass = P > 0 ? 1 / P : 0;
var R = s.tangent
, O = I.CrossVV(M.rA, R)
, L = I.CrossVV(M.rB, R)
, V = _ + f + d * O * O + p * L * L;
M.tangentMass = V > 0 ? 1 / V : 0,
M.velocityBias = 0;
var N = I.DotVV(s.normal, I.SubVV(I.AddVCrossSV(T, S, M.rB, I.s_t0), I.AddVCrossSV(A, x, M.rA, I.s_t1), I.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, a = n.invMassA, o = n.invIA, l = n.invMassB, h = n.invIB, c = 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, p = n.normal, m = n.tangent, y = 0; y < c; ++y) {
var v = n.points[y];
I.AddVV(I.MulSV(v.normalImpulse, p, I.s_t0), I.MulSV(v.tangentImpulse, m, I.s_t1), e),
_ -= o * I.CrossVV(v.rA, e),
u.SelfMulSub(a, e),
d += h * I.CrossVV(v.rB, e),
f.SelfMulAdd(l, 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, a = r.indexB, o = r.invMassA, l = r.invIA, h = r.invMassB, c = r.invIB, u = r.pointCount, _ = this.m_velocities[s].v, f = this.m_velocities[s].w, d = this.m_velocities[a].v, p = this.m_velocities[a].w, m = r.normal, y = r.tangent, A = r.friction, x = 0; x < u; ++x) {
var b = r.points[x];
I.SubVV(I.AddVCrossSV(d, p, b.rB, I.s_t0), I.AddVCrossSV(_, f, b.rA, I.s_t1), e);
var C = I.DotVV(e, y) - r.tangentSpeed
, T = b.tangentMass * -C
, S = A * b.normalImpulse;
T = (w = g(b.tangentImpulse + T, -S, S)) - b.tangentImpulse,
b.tangentImpulse = w,
I.MulSV(T, y, i),
_.SelfMulSub(o, i),
f -= l * I.CrossVV(b.rA, i),
d.SelfMulAdd(h, i),
p += c * I.CrossVV(b.rB, i)
}
for (r.pointCount,
x = 0; x < u; ++x) {
b = r.points[x],
I.SubVV(I.AddVCrossSV(d, p, b.rB, I.s_t0), I.AddVCrossSV(_, f, b.rA, I.s_t1), e);
var w, E = I.DotVV(e, m);
T = -b.normalMass * (E - b.velocityBias),
T = (w = v(b.normalImpulse + T, 0)) - b.normalImpulse,
b.normalImpulse = w,
I.MulSV(T, m, i),
_.SelfMulSub(o, i),
f -= l * I.CrossVV(b.rA, i),
d.SelfMulAdd(h, i),
p += c * I.CrossVV(b.rB, i)
}
this.m_velocities[s].w = f,
this.m_velocities[a].w = p
}
}
,
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, a = t.SolvePositionConstraints_s_P, o = 0, h = 0; h < this.m_count; ++h) {
for (var c = this.m_positionConstraints[h], u = c.indexA, _ = c.indexB, f = c.localCenterA, d = c.invMassA, p = c.invIA, m = c.localCenterB, v = c.invMassB, A = c.invIB, x = c.pointCount, b = this.m_positions[u].c, C = this.m_positions[u].a, T = this.m_positions[_].c, S = this.m_positions[_].a, w = 0; w < x; ++w) {
e.q.SetAngle(C),
i.q.SetAngle(S),
I.SubVV(b, F.MulRV(e.q, f, I.s_t0), e.p),
I.SubVV(T, F.MulRV(i.q, m, I.s_t0), i.p),
n.Initialize(c, e, i, w);
var E = n.normal
, M = n.point
, D = n.separation;
I.SubVV(M, b, r),
I.SubVV(M, T, s),
o = y(o, D);
var B = g(.2 * (D + l), -.2, 0)
, P = I.CrossVV(r, E)
, R = I.CrossVV(s, E)
, O = d + v + p * P * P + A * R * R
, L = O > 0 ? -B / O : 0;
I.MulSV(L, E, a),
b.SelfMulSub(d, a),
C -= p * I.CrossVV(r, a),
T.SelfMulAdd(v, a),
S += A * I.CrossVV(s, a)
}
this.m_positions[u].a = C,
this.m_positions[_].a = S
}
return o > -3 * l
}
,
t.prototype.SolveTOIPositionConstraints = function(e, i) {
for (var n = t.SolveTOIPositionConstraints_s_xfA, r = t.SolveTOIPositionConstraints_s_xfB, s = t.SolveTOIPositionConstraints_s_psm, a = t.SolveTOIPositionConstraints_s_rA, o = t.SolveTOIPositionConstraints_s_rB, h = t.SolveTOIPositionConstraints_s_P, c = 0, u = 0; u < this.m_count; ++u) {
var _ = this.m_positionConstraints[u]
, f = _.indexA
, d = _.indexB
, p = _.localCenterA
, m = _.localCenterB
, v = _.pointCount
, A = 0
, x = 0;
f !== e && f !== i || (A = _.invMassA,
x = _.invIA);
var b = 0
, C = 0;
d !== e && d !== i || (b = _.invMassB,
C = _.invIB);
for (var T = this.m_positions[f].c, S = this.m_positions[f].a, w = this.m_positions[d].c, E = this.m_positions[d].a, M = 0; M < v; ++M) {
n.q.SetAngle(S),
r.q.SetAngle(E),
I.SubVV(T, F.MulRV(n.q, p, I.s_t0), n.p),
I.SubVV(w, F.MulRV(r.q, m, I.s_t0), r.p),
s.Initialize(_, n, r, M);
var D = s.normal
, B = s.point
, P = s.separation;
I.SubVV(B, T, a),
I.SubVV(B, w, o),
c = y(c, P);
var R = g(.75 * (P + l), -.2, 0)
, O = I.CrossVV(a, D)
, L = I.CrossVV(o, D)
, V = A + b + x * O * O + C * L * L
, N = V > 0 ? -R / V : 0;
I.MulSV(N, D, h),
T.SelfMulSub(A, h),
S -= x * I.CrossVV(a, h),
w.SelfMulAdd(b, h),
E += C * I.CrossVV(o, h)
}
this.m_positions[f].a = S,
this.m_positions[d].a = E
}
return c >= -1.5 * l
}
,
t.InitializeVelocityConstraints_s_xfA = new V,
t.InitializeVelocityConstraints_s_xfB = new V,
t.InitializeVelocityConstraints_s_worldManifold = new At,
t.WarmStart_s_P = new I,
t.SolveVelocityConstraints_s_dv = new I,
t.SolveVelocityConstraints_s_dv1 = new I,
t.SolveVelocityConstraints_s_dv2 = new I,
t.SolveVelocityConstraints_s_P = new I,
t.SolveVelocityConstraints_s_a = new I,
t.SolveVelocityConstraints_s_b = new I,
t.SolveVelocityConstraints_s_x = new I,
t.SolveVelocityConstraints_s_d = new I,
t.SolveVelocityConstraints_s_P1 = new I,
t.SolveVelocityConstraints_s_P2 = new I,
t.SolveVelocityConstraints_s_P1P2 = new I,
t.SolvePositionConstraints_s_xfA = new V,
t.SolvePositionConstraints_s_xfB = new V,
t.SolvePositionConstraints_s_psm = new vn,
t.SolvePositionConstraints_s_rA = new I,
t.SolvePositionConstraints_s_rB = new I,
t.SolvePositionConstraints_s_P = new I,
t.SolveTOIPositionConstraints_s_xfA = new V,
t.SolveTOIPositionConstraints_s_xfB = new V,
t.SolveTOIPositionConstraints_s_psm = new vn,
t.SolveTOIPositionConstraints_s_rA = new I,
t.SolveTOIPositionConstraints_s_rB = new I,
t.SolveTOIPositionConstraints_s_P = new I,
t
}
)(), An = (function() {
function e() {
this.m_allocator = null,
this.m_bodies = [],
this.m_contacts = [],
this.m_joints = [],
this.m_positions = un.MakeArray(1024),
this.m_velocities = _n.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
}
return e.prototype.Initialize = function(t, e, i, n, r) {
if (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,
this.m_positions.length < t)
for (var s = v(2 * this.m_positions.length, t); this.m_positions.length < s; )
this.m_positions[this.m_positions.length] = new un;
if (this.m_velocities.length < t)
for (s = v(2 * this.m_velocities.length, t); this.m_velocities.length < s; )
this.m_velocities[this.m_velocities.length] = new _n
}
,
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, a) {
for (var o = e.s_timer.Reset(), l = r.dt, h = 0; h < this.m_bodyCount; ++h) {
var c = this.m_bodies[h];
this.m_positions[h].c.Copy(c.m_sweep.c);
var u = c.m_sweep.a
, _ = this.m_velocities[h].v.Copy(c.m_linearVelocity)
, f = c.m_angularVelocity;
c.m_sweep.c0.Copy(c.m_sweep.c),
c.m_sweep.a0 = c.m_sweep.a,
c.m_type === t.b2BodyType.b2_dynamicBody && (_.x += l * (c.m_gravityScale * s.x + c.m_invMass * c.m_force.x),
_.y += l * (c.m_gravityScale * s.y + c.m_invMass * c.m_force.y),
f += l * c.m_invI * c.m_torque,
_.SelfMul(1 / (1 + l * c.m_linearDamping)),
f *= 1 / (1 + l * c.m_angularDamping)),
this.m_positions[h].a = u,
this.m_velocities[h].w = f
}
o.Reset();
var d = e.s_solverData;
d.step.Copy(r),
d.positions = this.m_positions,
d.velocities = this.m_velocities;
var p = e.s_contactSolverDef;
p.step.Copy(r),
p.contacts = this.m_contacts,
p.count = this.m_contactCount,
p.positions = this.m_positions,
p.velocities = this.m_velocities,
p.allocator = this.m_allocator;
var v = e.s_contactSolver.Initialize(p);
for (v.InitializeVelocityConstraints(),
r.warmStarting && v.WarmStart(),
h = 0; h < this.m_jointCount; ++h)
this.m_joints[h].InitVelocityConstraints(d);
for (n.solveInit = o.GetMilliseconds(),
o.Reset(),
h = 0; h < r.velocityIterations; ++h) {
for (var g = 0; g < this.m_jointCount; ++g)
this.m_joints[g].SolveVelocityConstraints(d);
v.SolveVelocityConstraints()
}
for (v.StoreImpulses(),
n.solveVelocity = o.GetMilliseconds(),
h = 0; h < this.m_bodyCount; ++h) {
var A = this.m_positions[h].c
, x = (u = this.m_positions[h].a,
_ = this.m_velocities[h].v,
f = this.m_velocities[h].w,
I.MulSV(l, _, e.s_translation));
if (I.DotVV(x, x) > 4) {
var b = 2 / x.Length();
_.SelfMul(b)
}
var C = l * f;
C * C > 2.4674011002726646 && (f *= b = 1.570796326795 / m(C)),
A.x += l * _.x,
A.y += l * _.y,
u += l * f,
this.m_positions[h].a = u,
this.m_velocities[h].w = f
}
o.Reset();
var T = !1;
for (h = 0; h < r.positionIterations; ++h) {
var S = v.SolvePositionConstraints()
, w = !0;
for (g = 0; g < this.m_jointCount; ++g) {
var E = this.m_joints[g].SolvePositionConstraints(d);
w = w && E
}
if (S && w) {
T = !0;
break
}
}
for (h = 0; h < this.m_bodyCount; ++h) {
var M = this.m_bodies[h];
M.m_sweep.c.Copy(this.m_positions[h].c),
M.m_sweep.a = this.m_positions[h].a,
M.m_linearVelocity.Copy(this.m_velocities[h].v),
M.m_angularVelocity = this.m_velocities[h].w,
M.SynchronizeTransform()
}
if (n.solvePosition = o.GetMilliseconds(),
this.Report(v.m_velocityConstraints),
a) {
var D = i;
for (h = 0; h < this.m_bodyCount; ++h)
(c = this.m_bodies[h]).GetType() !== t.b2BodyType.b2_staticBody && (!c.m_autoSleepFlag || c.m_angularVelocity * c.m_angularVelocity > .0012184696791469947 || I.DotVV(c.m_linearVelocity, c.m_linearVelocity) > 1e-4 ? (c.m_sleepTime = 0,
D = 0) : (c.m_sleepTime += l,
D = y(D, c.m_sleepTime)));
if (D >= .5 && T)
for (h = 0; h < this.m_bodyCount; ++h)
(c = this.m_bodies[h]).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 a = e.s_contactSolverDef;
a.contacts = this.m_contacts,
a.count = this.m_contactCount,
a.allocator = this.m_allocator,
a.step.Copy(t),
a.positions = this.m_positions,
a.velocities = this.m_velocities;
var o = e.s_contactSolver.Initialize(a);
for (r = 0; r < t.positionIterations && !o.SolveTOIPositionConstraints(i, n); ++r)
;
for (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,
o.InitializeVelocityConstraints(),
r = 0; r < t.velocityIterations; ++r)
o.SolveVelocityConstraints();
var l = t.dt;
for (r = 0; r < this.m_bodyCount; ++r) {
var h = this.m_positions[r].c
, c = this.m_positions[r].a
, u = this.m_velocities[r].v
, _ = this.m_velocities[r].w
, f = I.MulSV(l, u, e.s_translation);
if (I.DotVV(f, f) > 4) {
var d = 2 / f.Length();
u.SelfMul(d)
}
var p = l * _;
p * p > 2.4674011002726646 && (_ *= d = 1.570796326795 / m(p)),
h.SelfMulAdd(l, u),
c += l * _,
this.m_positions[r].a = c,
this.m_velocities[r].w = _;
var y = this.m_bodies[r];
y.m_sweep.c.Copy(h),
y.m_sweep.a = c,
y.m_linearVelocity.Copy(u),
y.m_angularVelocity = _,
y.SynchronizeTransform()
}
this.Report(o.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 a = 0; a < r.pointCount; ++a)
s.normalImpulses[a] = r.points[a].normalImpulse,
s.tangentImpulses[a] = r.points[a].tangentImpulse;
this.m_listener.PostSolve(n, s)
}
}
}
,
e.s_timer = new U,
e.s_solverData = new fn,
e.s_contactSolverDef = new yn,
e.s_contactSolver = new gn,
e.s_translation = new I,
e.s_impulse = new rn,
e
}
)();
(Hi = t.b2ParticleFlag || (t.b2ParticleFlag = {}))[Hi.b2_waterParticle = 0] = "b2_waterParticle",
Hi[Hi.b2_zombieParticle = 2] = "b2_zombieParticle",
Hi[Hi.b2_wallParticle = 4] = "b2_wallParticle",
Hi[Hi.b2_springParticle = 8] = "b2_springParticle",
Hi[Hi.b2_elasticParticle = 16] = "b2_elasticParticle",
Hi[Hi.b2_viscousParticle = 32] = "b2_viscousParticle",
Hi[Hi.b2_powderParticle = 64] = "b2_powderParticle",
Hi[Hi.b2_tensileParticle = 128] = "b2_tensileParticle",
Hi[Hi.b2_colorMixingParticle = 256] = "b2_colorMixingParticle",
Hi[Hi.b2_destructionListenerParticle = 512] = "b2_destructionListenerParticle",
Hi[Hi.b2_barrierParticle = 1024] = "b2_barrierParticle",
Hi[Hi.b2_staticPressureParticle = 2048] = "b2_staticPressureParticle",
Hi[Hi.b2_reactiveParticle = 4096] = "b2_reactiveParticle",
Hi[Hi.b2_repulsiveParticle = 8192] = "b2_repulsiveParticle",
Hi[Hi.b2_fixtureContactListenerParticle = 16384] = "b2_fixtureContactListenerParticle",
Hi[Hi.b2_particleContactListenerParticle = 32768] = "b2_particleContactListenerParticle",
Hi[Hi.b2_fixtureContactFilterParticle = 65536] = "b2_fixtureContactFilterParticle",
Hi[Hi.b2_particleContactFilterParticle = 131072] = "b2_particleContactFilterParticle";
var xn = function() {
this.flags = 0,
this.position = new I,
this.velocity = new I,
this.color = new k(0,0,0,0),
this.lifetime = 0,
this.userData = null,
this.group = null
};
function bn(t, e, i) {
return g(Math.ceil(Math.sqrt(t / (.01 * e)) * i), 1, 8)
}
var Cn, Tn = (function() {
function t() {
this.m_index = u
}
return t.prototype.GetIndex = function() {
return this.m_index
}
,
t.prototype.SetIndex = function(t) {
this.m_index = t
}
,
t
}
)();
(Cn = t.b2ParticleGroupFlag || (t.b2ParticleGroupFlag = {}))[Cn.b2_solidParticleGroup = 1] = "b2_solidParticleGroup",
Cn[Cn.b2_rigidParticleGroup = 2] = "b2_rigidParticleGroup",
Cn[Cn.b2_particleGroupCanBeEmpty = 4] = "b2_particleGroupCanBeEmpty",
Cn[Cn.b2_particleGroupWillBeDestroyed = 8] = "b2_particleGroupWillBeDestroyed",
Cn[Cn.b2_particleGroupNeedsUpdateDepth = 16] = "b2_particleGroupNeedsUpdateDepth",
Cn[Cn.b2_particleGroupInternalMask = 24] = "b2_particleGroupInternalMask";
var Sn = function() {
this.flags = 0,
this.groupFlags = 0,
this.position = new I,
this.angle = 0,
this.linearVelocity = new I,
this.angularVelocity = 0,
this.color = new k,
this.strength = 1,
this.shapeCount = 0,
this.stride = 0,
this.particleCount = 0,
this.lifetime = 0,
this.userData = null,
this.group = null
}
, wn = (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 I,
this.m_linearVelocity = new I,
this.m_angularVelocity = 0,
this.m_transform = new V,
this.m_userData = null,
this.m_system = t
}
return 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() {
return this.UpdateStatistics(),
this.m_mass
}
,
e.prototype.GetInertia = function() {
return this.UpdateStatistics(),
this.m_inertia
}
,
e.prototype.GetCenter = function() {
return this.UpdateStatistics(),
this.m_center
}
,
e.prototype.GetLinearVelocity = function() {
return this.UpdateStatistics(),
this.m_linearVelocity
}
,
e.prototype.GetAngularVelocity = function() {
return this.UpdateStatistics(),
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;
return this.UpdateStatistics(),
I.AddVCrossSV(this.m_linearVelocity, this.m_angularVelocity, I.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 I
, e = new I;
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)
}
for (this.m_inertia = 0,
this.m_angularVelocity = 0,
n = this.m_firstIndex; n < this.m_lastIndex; n++)
I.SubVV(this.m_system.m_positionBuffer.data[n], this.m_center, t),
I.SubVV(this.m_system.m_velocityBuffer.data[n], this.m_linearVelocity, e),
this.m_inertia += i * I.DotVV(t, t),
this.m_angularVelocity += i * I.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 I,
e
}
)()
, En = (function() {
function t(t) {
this.m_front = 0,
this.m_back = 0,
this.m_capacity = 0,
this.m_buffer = d(t, (function() {
return null
}
)),
this.m_capacity = t
}
return 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,
this.m_back >= this.m_capacity && (this.m_capacity > 0 ? (this.m_buffer.concat(d(this.m_capacity, (function() {
return null
}
))),
this.m_capacity *= 2) : (this.m_buffer.concat(d(1, (function() {
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
}
,
t
}
)()
, Mn = (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() {
return new t.Generator
}
)),
this.m_generatorCapacity = e
}
return 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 I(+i,+i), a = new I(-i,-i), o = 0, l = 0; l < this.m_generatorCount; l++)
(f = this.m_generatorBuffer[l]).necessary && (I.MinV(s, f.center, s),
I.MaxV(a, f.center, a),
++o);
if (0 === o)
return this.m_countX = 0,
void (this.m_countY = 0);
s.x -= n,
s.y -= n,
a.x += n,
a.y += n,
this.m_countX = 1 + Math.floor(r * (a.x - s.x)),
this.m_countY = 1 + Math.floor(r * (a.y - s.y)),
this.m_diagram = [];
var h = new En(4 * this.m_countX * this.m_countY);
for (l = 0; l < this.m_generatorCount; l++) {
(f = this.m_generatorBuffer[l]).center.SelfSub(s).SelfMul(r);
var c = Math.floor(f.center.x)
, u = Math.floor(f.center.y);
c >= 0 && u >= 0 && c < this.m_countX && u < this.m_countY && h.Push(new t.Task(c,u,c + u * this.m_countX,f))
}
for (; !h.Empty(); ) {
c = (d = h.Front()).m_x,
u = d.m_y;
var _ = d.m_i
, f = d.m_generator;
h.Pop(),
this.m_diagram[_] || (this.m_diagram[_] = f,
c > 0 && h.Push(new t.Task(c - 1,u,_ - 1,f)),
u > 0 && h.Push(new t.Task(c,u - 1,_ - this.m_countX,f)),
c < this.m_countX - 1 && h.Push(new t.Task(c + 1,u,_ + 1,f)),
u < this.m_countY - 1 && h.Push(new t.Task(c,u + 1,_ + this.m_countX,f)))
}
for (u = 0; u < this.m_countY; u++)
for (c = 0; c < this.m_countX - 1; c++)
_ = c + u * this.m_countX,
(p = this.m_diagram[_]) !== (m = this.m_diagram[_ + 1]) && (h.Push(new t.Task(c,u,_,m)),
h.Push(new t.Task(c + 1,u,_ + 1,p)));
for (u = 0; u < this.m_countY - 1; u++)
for (c = 0; c < this.m_countX; c++)
_ = c + u * this.m_countX,
(p = this.m_diagram[_]) !== (m = this.m_diagram[_ + this.m_countX]) && (h.Push(new t.Task(c,u,_,m)),
h.Push(new t.Task(c,u + 1,_ + this.m_countX,p)));
for (; !h.Empty(); ) {
var d, p, m;
if (c = (d = h.Front()).m_x,
u = d.m_y,
_ = d.m_i,
l = d.m_generator,
h.Pop(),
(p = this.m_diagram[_]) !== (m = l)) {
var y = p.center.x - c
, v = p.center.y - u
, g = m.center.x - c
, A = m.center.y - u;
y * y + v * v > g * g + A * A && (this.m_diagram[_] = m,
c > 0 && h.Push(new t.Task(c - 1,u,_ - 1,m)),
u > 0 && h.Push(new t.Task(c,u - 1,_ - this.m_countX,m)),
c < this.m_countX - 1 && h.Push(new t.Task(c + 1,u,_ + 1,m)),
u < this.m_countY - 1 && h.Push(new t.Task(c,u + 1,_ + this.m_countX,m)))
}
}
}
,
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]
, a = this.m_diagram[n + this.m_countX]
, o = this.m_diagram[n + 1 + this.m_countX];
s !== a && (r !== s && r !== a && (r.necessary || s.necessary || a.necessary) && t(r.tag, s.tag, a.tag),
o !== s && o !== a && (r.necessary || s.necessary || a.necessary) && t(s.tag, o.tag, a.tag))
}
}
,
t
}
)();
function Dn(t, e, i) {
var n = t[e];
t[e] = t[i],
t[i] = n
}
function Bn(t, e) {
return t < e
}
function In(t, e, i, n) {
void 0 === e && (e = 0),
void 0 === i && (i = t.length - e),
void 0 === n && (n = Bn);
for (var r = e, s = [], a = 0; ; ) {
for (; r + 1 < i; i++) {
var o = t[r + Math.floor(Math.random() * (i - r))];
s[a++] = i;
for (var l = r - 1; ; ) {
for (; n(t[++l], o); )
;
for (; n(o, t[--i]); )
;
if (l >= i)
break;
Dn(t, l, i)
}
}
if (0 === a)
break;
r = i,
i = s[--a]
}
return t
}
function Pn(t, e, i, n) {
return void 0 === e && (e = 0),
void 0 === i && (i = t.length - e),
void 0 === n && (n = Bn),
In(t, e, i, n)
}
function Rn(t, e, i) {
void 0 === i && (i = t.length);
for (var n = 0, r = 0; r < i; ++r)
e(t[r]) || (r !== n ? Dn(t, n++, r) : ++n);
return n
}
function On(t, e, i, n, r) {
void 0 === r && (r = Bn);
for (var s = i - e; s > 0; ) {
var a = Math.floor(s / 2)
, o = e + a;
r(t[o], n) ? (e = ++o,
s -= a + 1) : s = a
}
return e
}
function Ln(t, e, i, n, r) {
void 0 === r && (r = Bn);
for (var s = i - e; s > 0; ) {
var a = Math.floor(s / 2)
, o = e + a;
r(n, t[o]) ? s = a : (e = ++o,
s -= a + 1)
}
return e
}
function Fn(t, e, i, n) {
for (var r = i; e !== r; )
Dn(t, e++, r++),
r === n ? r = i : e === i && (i = r)
}
function Vn(t, e, i, n) {
if (e === i)
return i;
for (var r = e; ++e !== i; )
n(t[r], t[e]) || Dn(t, ++r, e);
return ++r
}
(function(t) {
t.Generator = function() {
this.center = new I,
this.tag = 0,
this.necessary = !1
}
;
t.Task = function(t, e, i, n) {
this.m_x = t,
this.m_y = e,
this.m_i = i,
this.m_generator = n
}
}
)(Mn || (Mn = {}));
var Nn = (function() {
function t(t) {
this.data = [],
this.count = 0,
this.capacity = 0,
this.allocator = t
}
return t.prototype.Append = function() {
return this.count >= this.capacity && this.Grow(),
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() {
0 !== this.data.length && (this.data = [],
this.capacity = 0,
this.count = 0)
}
,
t.prototype.Shorten = function() {}
,
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 = Rn(this.data, t, this.count)
}
,
t.prototype.Unique = function(t) {
this.count = Vn(this.data, 0, this.count, t)
}
,
t
}
)()
, kn = (function(t) {
function e(e) {
var i = t.call(this) || this;
return i.m_system = e,
i
}
return ti(e, t),
e.prototype.ShouldQueryParticleSystem = function() {
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() {
return !1
}
,
e.prototype.ReportFixtureAndParticle = function() {}
,
e
}
)(an)
, Gn = (function() {
function t() {
this.indexA = 0,
this.indexB = 0,
this.weight = 0,
this.normal = new I,
this.flags = 0
}
return 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 && m(this.weight - t.weight) < .01 && I.DistanceSquaredVV(this.normal, t.normal) < 1e-4
}
,
t
}
)()
, Un = function() {
this.index = 0,
this.weight = 0,
this.normal = new I,
this.mass = 0
}
, zn = function() {
this.indexA = 0,
this.indexB = 0,
this.flags = 0,
this.strength = 0,
this.distance = 0
}
, Hn = function() {
this.indexA = 0,
this.indexB = 0,
this.indexC = 0,
this.flags = 0,
this.strength = 0,
this.pa = new I(0,0),
this.pb = new I(0,0),
this.pc = new I(0,0),
this.ka = 0,
this.kb = 0,
this.kc = 0,
this.s = 0
}
, Wn = (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
}
return t.prototype.Copy = function(t) {
return 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,
this
}
,
t.prototype.Clone = function() {
return (new t).Copy(this)
}
,
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 Nn(function() {
return 0
}
),
this.m_proxyBuffer = new Nn(function() {
return new n.Proxy
}
),
this.m_contactBuffer = new Nn(function() {
return new Gn
}
),
this.m_bodyContactBuffer = new Nn(function() {
return new Un
}
),
this.m_pairBuffer = new Nn(function() {
return new zn
}
),
this.m_triadBuffer = new Nn(function() {
return new Hn
}
),
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 Wn,
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)
}
return 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;
if (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),
!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 I).Copy(e(t.position, I.ZERO)),
this.m_velocityBuffer.data[n] = (this.m_velocityBuffer.data[n] || new I).Copy(e(t.velocity, I.ZERO)),
this.m_weightBuffer[n] = 0,
this.m_forceBuffer[n] = (this.m_forceBuffer[n] || new I).SetZero(),
this.m_staticPressureBuffer && (this.m_staticPressureBuffer[n] = 0),
this.m_depthBuffer && (this.m_depthBuffer[n] = 0);
var r = (new k).Copy(e(t.color, k.ZERO));
!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 k).Copy(r)),
(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()]
, a = e(t.lifetime, 0)
, o = a > 0;
if (this.m_expirationTimeBuffer.data || o) {
if (this.SetParticleLifetime(n, o ? a : this.ExpirationTimeToLifetime(-this.GetQuantizedTimeElapsed())),
!this.m_indexByExpirationTimeBuffer.data)
throw new Error;
this.m_indexByExpirationTimeBuffer.data[n] = n
}
s.index = n;
var l = e(t.group, null);
return this.m_groupBuffer[n] = l,
l && (l.m_firstIndex < l.m_lastIndex ? (this.RotateBuffer(l.m_firstIndex, l.m_lastIndex, n),
l.m_lastIndex = n + 1) : (l.m_firstIndex = n,
l.m_lastIndex = n + 1)),
this.SetParticleFlags(n, e(t.flags, 0)),
n
}
,
n.prototype.GetParticleHandleFromIndex = function(t) {
this.m_handleIndexBuffer.data = this.RequestBuffer(this.m_handleIndexBuffer.data);
var e = this.m_handleIndexBuffer.data[t];
return e || ((e = new Tn).SetIndex(t),
this.m_handleIndexBuffer.data[t] = e,
e)
}
,
n.prototype.DestroyParticle = function(e, i) {
if (void 0 === i && (i = !1),
!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)
, a = r;
return t.ComputeAABB(a, e, 0),
this.m_world.QueryAABB(s, a),
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, I.ZERO), e(t.angle, 0));
var s = this.m_count;
if (t.shape && this.CreateParticlesWithShapeForGroup(t.shape, t, r),
t.shapes && this.CreateParticlesWithShapesForGroup(t.shapes, e(t.shapeCount, t.shapes.length), t, r),
t.positionData)
for (var a = e(t.particleCount, t.positionData.length), o = 0; o < a; o++) {
var l = t.positionData[o];
this.CreateParticleForGroup(t, r, l)
}
var h = this.m_count
, c = new wn(this);
for (c.m_firstIndex = s,
c.m_lastIndex = h,
c.m_strength = e(t.strength, 1),
c.m_userData = t.userData,
c.m_transform.Copy(r),
c.m_prev = null,
c.m_next = this.m_groupList,
this.m_groupList && (this.m_groupList.m_prev = c),
this.m_groupList = c,
++this.m_groupCount,
o = s; o < h; o++)
this.m_groupBuffer[o] = c;
this.SetGroupFlags(c, e(t.groupFlags, 0));
var u = new n.ConnectionFilter;
return this.UpdateContacts(!0),
this.UpdatePairsAndTriads(s, h, u),
t.group && (this.JoinParticleGroups(t.group, c),
c = t.group),
c
}
,
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() {
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() {
return this.m_colorBuffer.data = this.RequestBuffer(this.m_colorBuffer.data),
this.m_colorBuffer.data
}
,
n.prototype.GetGroupBuffer = function() {
return this.m_groupBuffer
}
,
n.prototype.GetWeightBuffer = function() {
return this.m_weightBuffer
}
,
n.prototype.GetUserDataBuffer = function() {
return this.m_userDataBuffer.data = this.RequestBuffer(this.m_userDataBuffer.data),
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),
~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,
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]
, a = s.indexA
, o = s.indexB
, l = s.normal
, h = I.SubVV(e[o], e[a], t)
, c = I.DotVV(h, l);
c < 0 && (i += c * c)
}
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;
if (this.m_expirationTimeBuffer.data = this.RequestBuffer(this.m_expirationTimeBuffer.data),
this.m_indexByExpirationTimeBuffer.data = this.RequestBuffer(this.m_indexByExpirationTimeBuffer.data),
i)
for (var n = this.GetParticleCount(), r = 0; r < n; ++r)
this.m_indexByExpirationTimeBuffer.data[r] = r;
var s = e / this.m_def.lifetimeGranularity
, a = s > 0 ? this.GetQuantizedTimeElapsed() + s : s;
a !== this.m_expirationTimeBuffer.data[t] && (this.m_expirationTimeBuffer.data[t] = a,
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() {
return this.m_expirationTimeBuffer.data = this.RequestBuffer(this.m_expirationTimeBuffer.data),
this.m_expirationTimeBuffer.data
}
,
n.prototype.ExpirationTimeToLifetime = function(t) {
return (t > 0 ? t - this.GetQuantizedTimeElapsed() : t) * this.m_def.lifetimeGranularity
}
,
n.prototype.GetIndexByExpirationTimeBuffer = function() {
if (this.GetParticleCount() ? this.SetParticleLifetime(0, this.GetParticleLifetime(0)) : this.m_indexByExpirationTimeBuffer.data = this.RequestBuffer(this.m_indexByExpirationTimeBuffer.data),
!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 I).Copy(i).SelfMul(1 / r), a = t; a < e; a++)
n[a].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;
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 I).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 = On(this.m_proxyBuffer.data, 0, i, n.computeTag(this.m_inverseDiameter * e.lowerBound.x, this.m_inverseDiameter * e.lowerBound.y), n.Proxy.CompareProxyTag)
, s = Ln(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 a = this.m_positionBuffer.data, o = r; o < s; ++o) {
var l = this.m_proxyBuffer.data[o].index
, h = a[l];
if (e.lowerBound.x < h.x && h.x < e.upperBound.x && e.lowerBound.y < h.y && h.y < e.upperBound.y && !t.ReportParticle(this, l))
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 = l);
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
, a = n.RayCast_s_v
, o = n.RayCast_s_n
, l = n.RayCast_s_point;
if (0 !== this.m_proxyBuffer.count) {
if (!this.m_positionBuffer.data)
throw new Error;
var h = this.m_positionBuffer.data
, c = r;
I.MinV(e, i, c.lowerBound),
I.MaxV(e, i, c.upperBound);
for (var u, _ = 1, f = I.SubVV(i, e, a), d = I.DotVV(f, f), p = this.GetInsideBoundsEnumerator(c); (u = p.GetNext()) >= 0; ) {
var m = I.SubVV(e, h[u], s)
, v = I.DotVV(m, f)
, g = v * v - d * (I.DotVV(m, m) - this.m_squaredDiameter);
if (g >= 0) {
var A = T(g)
, x = (-v - A) / d;
if (x > _)
continue;
if (x < 0 && ((x = (-v + A) / d) < 0 || x > _))
continue;
var b = I.AddVMulSV(m, x, f, o);
b.Normalize();
var C = t.ReportParticle(this, u, I.AddVMulSV(e, x, f, l), b, x);
if ((_ = y(_, C)) <= 0)
break
}
}
}
}
,
n.prototype.ComputeAABB = function(t) {
var e = this.GetParticleCount();
if (t.lowerBound.x = +i,
t.lowerBound.y = +i,
t.upperBound.x = -i,
t.upperBound.y = -i,
!this.m_positionBuffer.data)
throw new Error;
for (var n = this.m_positionBuffer.data, r = 0; r < e; r++) {
var s = n[r];
I.MinV(t.lowerBound, s, t.lowerBound),
I.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) {
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() : [];
return n.length = i,
n
}
,
n.prototype.ReallocateBuffer5 = function(t, e, i, n, r) {
if (n <= i)
throw new Error;
if (e && !(n <= e))
throw new Error;
return r && !t || e || (t = this.ReallocateBuffer3(t, i, n)),
t
}
,
n.prototype.ReallocateBuffer4 = function(t, e, i, n) {
return this.ReallocateBuffer5(t.data, t.userSuppliedCapacity, e, i, n)
}
,
n.prototype.RequestBuffer = function(t) {
return t || (0 === this.m_internalAllocatedCapacity && this.ReallocateInternalAllocatedBuffers(256),
(t = []).length = this.m_internalAllocatedCapacity),
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
}
if (t = e(t, this.m_def.maxCount),
t = e(t, this.m_flagsBuffer.userSuppliedCapacity),
t = e(t, this.m_positionBuffer.userSuppliedCapacity),
t = e(t, this.m_velocityBuffer.userSuppliedCapacity),
t = e(t, this.m_colorBuffer.userSuppliedCapacity),
t = e(t, this.m_userDataBuffer.userSuppliedCapacity),
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 xn;
r.flags = e(t.flags, 0),
V.MulXV(i, n, r.position),
I.AddVV(e(t.linearVelocity, I.ZERO), I.CrossSV(e(t.angularVelocity, 0), I.SubVV(r.position, e(t.position, I.ZERO), I.s_t0), I.s_t0), r.velocity),
r.color.Copy(e(t.color, k.ZERO)),
r.lifetime = e(t.lifetime, 0),
r.userData = t.userData,
this.CreateParticle(r)
}
,
n.prototype.CreateParticlesStrokeShapeForGroup = function(i, r, s) {
var a = n.CreateParticlesStrokeShapeForGroup_s_edge
, o = n.CreateParticlesStrokeShapeForGroup_s_d
, l = n.CreateParticlesStrokeShapeForGroup_s_p
, h = e(r.stride, 0);
0 === h && (h = this.GetParticleStride());
for (var c = 0, u = i.GetChildCount(), _ = 0; _ < u; _++) {
var f = null;
i.GetType() === t.b2ShapeType.e_edgeShape ? f = i : (f = a,
i.GetChildEdge(f, _));
for (var d = I.SubVV(f.m_vertex2, f.m_vertex1, o), p = d.Length(); c < p; ) {
var m = I.AddVMulSV(f.m_vertex1, c / p, d, l);
this.CreateParticleForGroup(r, s, m),
c += h
}
c -= p
}
}
,
n.prototype.CreateParticlesFillShapeForGroup = function(t, i, r) {
var s = n.CreateParticlesFillShapeForGroup_s_aabb
, a = n.CreateParticlesFillShapeForGroup_s_p
, o = e(i.stride, 0);
0 === o && (o = this.GetParticleStride());
var l = V.IDENTITY
, h = s;
t.ComputeAABB(h, l, 0);
for (var c = Math.floor(h.lowerBound.y / o) * o; c < h.upperBound.y; c += o)
for (var u = Math.floor(h.lowerBound.x / o) * o; u < h.upperBound.x; u += o) {
var _ = a.Set(u, c);
t.TestPoint(l, _) && 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 xn;
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
}
return 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]),
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
, a = n.UpdatePairsAndTriads_s_dbc
, o = 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 l = this.m_positionBuffer.data, h = 0, c = e; c < i; c++)
h |= this.m_flagsBuffer.data[c];
if (h & n.k_pairFlags)
for (var u = 0; u < this.m_contactBuffer.count; u++) {
var _ = this.m_contactBuffer.data[u]
, f = _.indexA
, d = _.indexB
, p = this.m_flagsBuffer.data[f]
, m = this.m_flagsBuffer.data[d]
, v = this.m_groupBuffer[f]
, g = this.m_groupBuffer[d];
if (f >= e && f < i && d >= e && d < i && !((p | m) & t.b2ParticleFlag.b2_zombieParticle) && (p | m) & n.k_pairFlags && (r.IsNecessary(f) || r.IsNecessary(d)) && n.ParticleCanBeConnected(p, v) && n.ParticleCanBeConnected(m, g) && r.ShouldCreatePair(f, d)) {
var A = this.m_pairBuffer.data[this.m_pairBuffer.Append()];
A.indexA = f,
A.indexB = d,
A.flags = _.flags,
A.strength = y(v ? v.m_strength : 1, g ? g.m_strength : 1),
A.distance = I.DistanceVV(l[f], l[d])
}
Pn(this.m_pairBuffer.data, 0, this.m_pairBuffer.count, n.ComparePairIndices),
this.m_pairBuffer.Unique(n.MatchPairIndices)
}
if (h & n.k_triadFlags) {
var x = new Mn(i - e);
for (c = e; c < i; c++) {
var b = this.m_flagsBuffer.data[c]
, C = this.m_groupBuffer[c];
b & t.b2ParticleFlag.b2_zombieParticle || !n.ParticleCanBeConnected(b, C) || x.AddGenerator(l[c], c, r.IsNecessary(c))
}
var T = this.GetParticleStride();
x.Generate(T / 2, 2 * T);
var S = this;
x.GetNodes((function(t, e, i) {
if (!S.m_flagsBuffer.data)
throw new Error;
var h = S.m_flagsBuffer.data[t]
, c = S.m_flagsBuffer.data[e]
, u = S.m_flagsBuffer.data[i];
if ((h | c | u) & n.k_triadFlags && r.ShouldCreateTriad(t, e, i)) {
var _ = l[t]
, f = l[e]
, d = l[i]
, p = I.SubVV(_, f, s)
, m = I.SubVV(f, d, a)
, v = I.SubVV(d, _, o)
, g = 4 * S.m_squaredDiameter;
if (I.DotVV(p, p) > g || I.DotVV(m, m) > g || I.DotVV(v, v) > g)
return;
var A = S.m_groupBuffer[t]
, x = S.m_groupBuffer[e]
, b = S.m_groupBuffer[i]
, C = S.m_triadBuffer.data[S.m_triadBuffer.Append()];
C.indexA = t,
C.indexB = e,
C.indexC = i,
C.flags = h | c | u,
C.strength = y(y(A ? A.m_strength : 1, x ? x.m_strength : 1), b ? b.m_strength : 1);
var T = (_.x + f.x + d.x) / 3
, w = (_.y + f.y + d.y) / 3;
C.pa.x = _.x - T,
C.pa.y = _.y - w,
C.pb.x = f.x - T,
C.pb.y = f.y - w,
C.pc.x = d.x - T,
C.pc.y = d.y - w,
C.ka = -I.DotVV(v, p),
C.kb = -I.DotVV(p, m),
C.kc = -I.DotVV(m, v),
C.s = I.CrossVV(_, f) + I.CrossVV(f, d) + I.CrossVV(d, _)
}
}
)),
Pn(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);
if (this.UpdatePairsAndTriads(0, this.m_count, e),
!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]
, a = s.indexA
, o = s.indexB;
if (t.ContainsParticle(a) && t.ContainsParticle(o)) {
var l = e[a - i].list
, h = e[o - i].list;
if (l !== h) {
if (l.count < h.count) {
var c = l;
l = h,
h = c
}
n.MergeParticleLists(l, h)
}
}
}
}
,
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(), a = 0; a < s; a++) {
var o = i[a];
o !== r && this.m_flagsBuffer.data[o.index] & t.b2ParticleFlag.b2_zombieParticle && n.MergeParticleListAndNode(r, o)
}
}
,
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 Sn;
s.groupFlags = e.GetGroupFlags(),
s.userData = e.GetUserData();
for (var a = 0; a < r; a++) {
var o = i[a];
if (o.count && o !== n)
for (var l = this.CreateParticleGroup(s), h = o; h; h = h.next) {
var c = h.index
, u = this.CloneParticle(c, l);
this.m_flagsBuffer.data[c] |= t.b2ParticleFlag.b2_zombieParticle,
h.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
, a = r.indexB;
t.ContainsParticle(s) && (r.indexA = e[s - i].index),
t.ContainsParticle(a) && (r.indexB = e[a - i].index)
}
for (n = 0; n < this.m_triadBuffer.count; n++) {
var o = this.m_triadBuffer.data[n]
, l = (s = o.indexA,
a = o.indexB,
o.indexC);
t.ContainsParticle(s) && (o.indexA = e[s - i].index),
t.ContainsParticle(a) && (o.indexB = e[a - i].index),
t.ContainsParticle(l) && (o.indexC = e[l - i].index)
}
}
,
n.prototype.ComputeDepth = function() {
for (var e = [], n = 0, r = 0; r < this.m_contactBuffer.count; r++) {
var s = (v = this.m_contactBuffer.data[r]).indexA
, a = v.indexB
, o = this.m_groupBuffer[s]
, l = this.m_groupBuffer[a];
o && o === l && o.m_groupFlags & t.b2ParticleGroupFlag.b2_particleGroupNeedsUpdateDepth && (e[n++] = v)
}
for (var h = [], c = 0, u = this.m_groupList; u; u = u.GetNext())
if (u.m_groupFlags & t.b2ParticleGroupFlag.b2_particleGroupNeedsUpdateDepth) {
h[c++] = 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 = (v = e[r]).indexA,
a = v.indexB;
var f = v.weight;
this.m_accumulationBuffer[s] += f,
this.m_accumulationBuffer[a] += f
}
for (_ = 0; _ < c; _++)
for (var d = (u = h[_]).m_firstIndex; d < u.m_lastIndex; d++)
f = this.m_accumulationBuffer[d],
this.m_depthBuffer[d] = f < .8 ? 0 : i;
for (var p = T(this.m_count) >> 0, m = 0; m < p; m++) {
var y = !1;
for (r = 0; r < n; r++) {
s = (v = e[r]).indexA,
a = v.indexB;
var v, g = 1 - v.weight, A = this.m_depthBuffer[s], x = this.m_depthBuffer[a], b = x + g, C = A + g;
A > b && (this.m_depthBuffer[s] = b,
y = !0),
x > C && (this.m_depthBuffer[a] = C,
y = !0)
}
if (!y)
break
}
for (_ = 0; _ < c; _++)
for (var S = (u = h[_]).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 = On(this.m_proxyBuffer.data, 0, r, e, n.Proxy.CompareProxyTag)
, a = Ln(this.m_proxyBuffer.data, 0, r, i, n.Proxy.CompareTagProxy);
return new n.InsideBoundsEnumerator(this,e,i,s,a)
}
,
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) {
if (!this.m_flagsBuffer.data)
throw new Error;
if (!this.m_positionBuffer.data)
throw new Error;
var i = n.AddContact_s_d
, r = this.m_positionBuffer.data
, s = I.SubVV(r[e], r[t], i)
, a = I.DotVV(s, s);
if (a < this.m_squaredDiameter) {
var o = b(a);
isFinite(o) || (o = 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 * o * this.m_inverseDiameter,
I.MulSV(o, s, l.normal)
}
}
,
n.prototype.FindContacts_Reference = function() {
var t = this.m_proxyBuffer.count;
this.m_contactBuffer.count = 0;
for (var e = 0, i = 0; e < t; e++) {
for (var r = n.computeRelativeTag(this.m_proxyBuffer.data[e].tag, 1, 0), s = e + 1; s < t && !(r < this.m_proxyBuffer.data[s].tag); s++)
this.AddContact(this.m_proxyBuffer.data[e].index, this.m_proxyBuffer.data[s].index, this.m_contactBuffer);
for (var a = n.computeRelativeTag(this.m_proxyBuffer.data[e].tag, -1, 1); i < t && !(a <= this.m_proxyBuffer.data[i].tag); i++)
;
var o = n.computeRelativeTag(this.m_proxyBuffer.data[e].tag, 1, 1);
for (s = i; s < t && !(o < this.m_proxyBuffer.data[s].tag); s++)
this.AddContact(this.m_proxyBuffer.data[e].index, this.m_proxyBuffer.data[s].index, this.m_contactBuffer)
}
}
,
n.prototype.FindContacts = function(t) {
this.FindContacts_Reference(t)
}
,
n.prototype.UpdateProxies_Reference = function() {
if (!this.m_positionBuffer.data)
throw new Error;
for (var t = this.m_positionBuffer.data, e = this.m_inverseDiameter, i = 0; i < this.m_proxyBuffer.count; ++i) {
var r = this.m_proxyBuffer.data[i]
, s = t[r.index];
r.tag = n.computeTag(e * s.x, e * s.y)
}
}
,
n.prototype.UpdateProxies = function(t) {
this.UpdateProxies_Reference(t)
}
,
n.prototype.SortProxies = function() {
In(this.m_proxyBuffer.data, 0, this.m_proxyBuffer.count, n.Proxy.CompareProxyProxy)
}
,
n.prototype.FilterContacts = function() {
var e = this.GetParticleContactFilter();
if (null !== e) {
var i = this;
this.m_contactBuffer.RemoveIf((function(n) {
return 0 != (n.flags & t.b2ParticleFlag.b2_particleContactFilterParticle) && !e.ShouldCollideParticleParticle(i, n.indexA, n.indexB)
}
))
}
}
,
n.prototype.NotifyContactListenerPreContact = function(t) {
if (null !== this.GetParticleContactListener())
throw t.Initialize(this.m_contactBuffer, this.m_flagsBuffer),
new Error
}
,
n.prototype.NotifyContactListenerPostContact = function() {
var t = this.GetParticleContactListener();
if (null !== t) {
for (var e = 0; e < this.m_contactBuffer.count; ++e) {
var i = this.m_contactBuffer.data[e];
t.BeginContactParticleParticle(this, i)
}
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())
throw t.Initialize(this.m_bodyContactBuffer, this.m_flagsBuffer),
new Error
}
,
n.prototype.NotifyBodyContactListenerPostContact = function() {
var t = this.GetFixtureContactListener();
if (null !== t) {
for (var e = 0; e < this.m_bodyContactBuffer.count; e++) {
var i = this.m_bodyContactBuffer.data[e];
t.BeginContactFixtureParticle(this, i)
}
throw new Error
}
}
,
n.prototype.UpdateBodyContacts = function() {
var t = n.UpdateBodyContacts_s_aabb
, e = new n.FixtureParticleSet;
if (this.NotifyBodyContactListenerPreContact(e),
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 a = new n.UpdateBodyContactsCallback(this,this.GetFixtureContactFilter());
this.m_world.QueryAABB(a, 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(),
!this.m_paused))
for (this.m_iterationIndex = 0; this.m_iterationIndex < e.particleIterations; this.m_iterationIndex++) {
++this.m_timestamp;
var r = i.Copy(e);
if (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(),
!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
, a = e;
a.lowerBound.x = +i,
a.lowerBound.y = +i,
a.upperBound.x = -i,
a.upperBound.y = -i;
for (var o = 0; o < this.m_count; o++) {
var l = s[o]
, h = r[o]
, c = h.x + t.dt * l.x
, u = h.y + t.dt * l.y;
a.lowerBound.x = y(a.lowerBound.x, y(h.x, c)),
a.lowerBound.y = y(a.lowerBound.y, y(h.y, u)),
a.upperBound.x = v(a.upperBound.x, v(h.x, c)),
a.upperBound.y = v(a.upperBound.y, v(h.y, u))
}
var _ = new n.SolveCollisionCallback(this,t);
this.m_world.QueryAABB(_, a)
}
,
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 = I.DotVV(r, r);
s > i && r.SelfMul(T(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 = I.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
, a = n.SolveBarrier_s_pba
, o = n.SolveBarrier_s_vba
, l = n.SolveBarrier_s_vc
, h = n.SolveBarrier_s_pca
, c = 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 p = this.m_positionBuffer.data, m = this.m_velocityBuffer.data, y = 0; y < this.m_count; y++)
0 != (this.m_flagsBuffer.data[y] & n.k_barrierWallFlags) && m[y].SetZero();
for (var v = 2.5 * e.dt, g = this.GetParticleMass(), A = 0; A < this.m_pairBuffer.count; A++) {
var x = this.m_pairBuffer.data[A];
if (x.flags & t.b2ParticleFlag.b2_barrierParticle) {
var b = x.indexA
, C = x.indexB
, S = p[b]
, w = p[C]
, E = i;
I.MinV(S, w, E.lowerBound),
I.MaxV(S, w, E.upperBound);
for (var M = this.m_groupBuffer[b], D = this.m_groupBuffer[C], B = this.GetLinearVelocity(M, b, S, r), P = this.GetLinearVelocity(D, C, w, s), R = I.SubVV(w, S, a), O = I.SubVV(P, B, o), L = this.GetInsideBoundsEnumerator(E), F = void 0; (F = L.GetNext()) >= 0; ) {
var V = p[F]
, N = this.m_groupBuffer[F];
if (M !== N && D !== N) {
var k = this.GetLinearVelocity(N, F, V, l)
, G = I.SubVV(V, S, h)
, U = I.SubVV(k, B, c)
, z = I.CrossVV(O, U)
, H = I.CrossVV(R, U) - I.CrossVV(G, O)
, W = I.CrossVV(R, G)
, j = void 0
, X = void 0
, Y = u
, q = _;
if (0 === z) {
if (0 === H)
continue;
if (!((X = -W / H) >= 0 && X < v))
continue;
if (I.AddVMulSV(R, X, O, Y),
I.AddVMulSV(G, X, U, q),
!((j = I.DotVV(Y, q) / I.DotVV(Y, Y)) >= 0 && j <= 1))
continue
} else {
var J = H * H - 4 * W * z;
if (J < 0)
continue;
var Z = T(J)
, K = (-H - Z) / (2 * z)
, Q = (-H + Z) / (2 * z);
if (K > Q) {
var $ = K;
K = Q,
Q = $
}
if (X = K,
I.AddVMulSV(R, X, O, Y),
I.AddVMulSV(G, X, U, q),
j = I.DotVV(Y, q) / I.DotVV(Y, Y),
!(X >= 0 && X < v && j >= 0 && j <= 1)) {
if (!((X = Q) >= 0 && X < v))
continue;
if (I.AddVMulSV(R, X, O, Y),
I.AddVMulSV(G, X, U, q),
!((j = I.DotVV(Y, q) / I.DotVV(Y, Y)) >= 0 && j <= 1))
continue
}
}
var tt = f;
tt.x = B.x + j * O.x - k.x,
tt.y = B.y + j * O.y - k.y;
var et = I.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 += I.CrossVV(I.SubVV(V, N.GetCenter(), I.s_t0), et) / nt)
} else
m[F].SelfAdd(tt);
this.ParticleApplyForce(F, 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, a = 0; a < this.m_def.staticPressureIterations; a++) {
for (var o = 0; o < this.m_count; o++)
this.m_accumulationBuffer[o] = 0;
for (var l = 0; l < this.m_contactBuffer.count; l++) {
var h = this.m_contactBuffer.data[l];
if (h.flags & t.b2ParticleFlag.b2_staticPressureParticle) {
var c = h.indexA
, u = h.indexB
, _ = h.weight;
this.m_accumulationBuffer[c] += _ * this.m_staticPressureBuffer[u],
this.m_accumulationBuffer[u] += _ * this.m_staticPressureBuffer[c]
}
}
for (o = 0; o < this.m_count; o++)
if (_ = this.m_weightBuffer[o],
this.m_flagsBuffer.data[o] & t.b2ParticleFlag.b2_staticPressureParticle) {
var f = (this.m_accumulationBuffer[o] + n * (_ - 1)) / (_ + s);
this.m_staticPressureBuffer[o] = g(f, 0, r)
} else
this.m_staticPressureBuffer[o] = 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, a = this.GetCriticalPressure(e), o = this.m_def.pressureStrength * a, l = .25 * a, h = 0; h < this.m_count; h++) {
var c = this.m_weightBuffer[h]
, u = o * v(0, c - 1);
this.m_accumulationBuffer[h] = y(u, l)
}
if (this.m_allParticleFlags & n.k_noPressureFlags)
for (h = 0; h < this.m_count; h++)
this.m_flagsBuffer.data[h] & n.k_noPressureFlags && (this.m_accumulationBuffer[h] = 0);
if (this.m_allParticleFlags & t.b2ParticleFlag.b2_staticPressureParticle)
for (h = 0; h < this.m_count; h++)
this.m_flagsBuffer.data[h] & t.b2ParticleFlag.b2_staticPressureParticle && (this.m_accumulationBuffer[h] += this.m_staticPressureBuffer[h]);
for (var _ = e.dt / (this.m_def.density * this.m_particleDiameter), f = this.GetParticleInvMass(), d = 0; d < this.m_bodyContactBuffer.count; d++) {
var p = (C = this.m_bodyContactBuffer.data[d]).index
, m = C.body
, g = (c = C.weight,
C.mass)
, A = C.normal
, x = r[p]
, b = (u = this.m_accumulationBuffer[p] + o * c,
I.MulSV(_ * c * g * u, A, i));
s[p].SelfMulSub(f, b),
m.ApplyLinearImpulse(b, x, !0)
}
for (d = 0; d < this.m_contactBuffer.count; d++) {
var C;
p = (C = this.m_contactBuffer.data[d]).indexA,
m = C.indexB,
c = C.weight,
A = C.normal,
u = this.m_accumulationBuffer[p] + this.m_accumulationBuffer[m],
b = I.MulSV(_ * c * u, A, i),
s[p].SelfSub(b),
s[m].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, a = this.m_def.dampingStrength, o = 1 / this.GetCriticalVelocity(t), l = this.GetParticleInvMass(), h = 0; h < this.m_bodyContactBuffer.count; h++) {
var c = (x = this.m_bodyContactBuffer.data[h]).index
, u = x.body
, _ = x.weight
, f = x.mass
, d = x.normal
, p = r[c]
, m = I.SubVV(u.GetLinearVelocityFromWorldPoint(p, I.s_t0), s[c], e);
if ((b = I.DotVV(m, d)) < 0) {
var g = v(a * _, y(-o * b, .5))
, A = I.MulSV(g * f * b, d, i);
s[c].SelfMulAdd(l, A),
u.ApplyLinearImpulse(A.SelfNeg(), p, !0)
}
}
for (h = 0; h < this.m_contactBuffer.count; h++) {
var x, b;
c = (x = this.m_contactBuffer.data[h]).indexA,
u = x.indexB,
_ = x.weight,
d = x.normal,
m = I.SubVV(s[u], s[c], e),
(b = I.DotVV(m, d)) < 0 && (g = v(a * _, y(-o * b, .5)),
A = I.MulSV(g * b, d, i),
s[c].SelfAdd(A),
s[u].SelfSub(A))
}
}
,
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]
, a = [0]
, o = [0]
, l = [0]
, h = [0]
, c = [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 ((T = this.m_groupBuffer[d]) && this.IsRigidGroup(T)) {
var p = b.body
, m = b.normal
, v = b.weight
, g = u[d]
, A = I.SubVV(p.GetLinearVelocityFromWorldPoint(g, t), T.GetLinearVelocityFromWorldPoint(g, e), r);
if ((C = I.DotVV(A, m)) < 0) {
this.InitDampingParameterWithRigidGroupOrParticle(s, a, o, !0, T, d, g, m),
this.InitDampingParameter(l, h, c, p.GetMass(), p.GetInertia() - p.GetMass() * p.GetLocalCenter().LengthSquared(), p.GetWorldCenter(), g, m);
var x = _ * y(v, 1) * this.ComputeDampingImpulse(s[0], a[0], o[0], l[0], h[0], c[0], C);
this.ApplyDamping(s[0], a[0], o[0], !0, T, d, x, m),
p.ApplyLinearImpulse(I.MulSV(-x, m, I.s_t0), g, !0)
}
}
}
for (f = 0; f < this.m_contactBuffer.count; f++) {
d = (b = this.m_contactBuffer.data[f]).indexA,
p = b.indexB,
m = b.normal,
v = b.weight;
var b, C, T = this.m_groupBuffer[d], S = this.m_groupBuffer[p], w = this.IsRigidGroup(T), E = this.IsRigidGroup(S);
T !== S && (w || E) && (g = I.MidVV(u[d], u[p], i),
A = I.SubVV(this.GetLinearVelocity(S, p, g, t), this.GetLinearVelocity(T, d, g, e), r),
(C = I.DotVV(A, m)) < 0 && (this.InitDampingParameterWithRigidGroupOrParticle(s, a, o, w, T, d, g, m),
this.InitDampingParameterWithRigidGroupOrParticle(l, h, c, E, S, p, g, m),
x = _ * v * this.ComputeDampingImpulse(s[0], a[0], o[0], l[0], h[0], c[0], C),
this.ApplyDamping(s[0], a[0], o[0], w, T, d, x, m),
this.ApplyDamping(l[0], h[0], c[0], E, S, p, -x, m)))
}
}
,
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(), a = 0; a < this.m_bodyContactBuffer.count; a++) {
var o = this.m_bodyContactBuffer.data[a]
, l = o.index;
if (this.m_flagsBuffer.data[l] & n.k_extraDampingFlags) {
var h = o.body
, c = o.mass
, u = o.normal
, _ = r[l]
, f = I.SubVV(h.GetLinearVelocityFromWorldPoint(_, I.s_t0), i[l], t)
, d = I.DotVV(f, u);
if (d < 0) {
var p = I.MulSV(.5 * c * d, u, e);
i[l].SelfMulAdd(s, p),
h.ApplyLinearImpulse(p.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
, a = n.SolveRigid_s_velocityTransform;
if (!this.m_positionBuffer.data)
throw new Error;
if (!this.m_velocityBuffer.data)
throw new Error;
for (var o = this.m_positionBuffer.data, l = this.m_velocityBuffer.data, h = this.m_groupList; h; h = h.GetNext())
if (h.m_groupFlags & t.b2ParticleGroupFlag.b2_rigidParticleGroup) {
h.UpdateStatistics();
var c = r;
c.SetAngle(e.dt * h.m_angularVelocity);
var u = I.AddVV(h.m_center, I.SubVV(I.MulSV(e.dt, h.m_linearVelocity, I.s_t0), F.MulRV(c, h.m_center, I.s_t1), I.s_t0), i)
, _ = s;
_.SetPositionRotation(u, c),
V.MulXX(_, h.m_transform, h.m_transform);
var f = a;
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 = h.m_firstIndex; d < h.m_lastIndex; d++)
V.MulXV(f, o[d], l[d])
}
}
,
n.prototype.SolveElastic = function(e) {
var i = n.SolveElastic_s_pa
, r = n.SolveElastic_s_pb
, s = n.SolveElastic_s_pc
, a = n.SolveElastic_s_r
, o = n.SolveElastic_s_t0;
if (!this.m_positionBuffer.data)
throw new Error;
if (!this.m_velocityBuffer.data)
throw new Error;
for (var l = this.m_positionBuffer.data, h = this.m_velocityBuffer.data, c = 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
, p = _.indexC
, m = _.pa
, y = _.pb
, v = _.pc
, g = i.Copy(l[f])
, A = r.Copy(l[d])
, x = s.Copy(l[p])
, C = h[f]
, T = h[d]
, S = h[p];
g.SelfMulAdd(e.dt, C),
A.SelfMulAdd(e.dt, T),
x.SelfMulAdd(e.dt, S);
var w = (g.x + A.x + x.x) / 3
, E = (g.y + A.y + x.y) / 3;
g.x -= w,
g.y -= E,
A.x -= w,
A.y -= E,
x.x -= w,
x.y -= E;
var M = a;
M.s = I.CrossVV(m, g) + I.CrossVV(y, A) + I.CrossVV(v, x),
M.c = I.DotVV(m, g) + I.DotVV(y, A) + I.DotVV(v, x);
var D = b(M.s * M.s + M.c * M.c);
isFinite(D) || (D = 198177537e11),
M.s *= D,
M.c *= D;
var B = c * _.strength;
F.MulRV(M, m, o),
I.SubVV(o, g, o),
I.MulSV(B, o, o),
C.SelfAdd(o),
F.MulRV(M, y, o),
I.SubVV(o, A, o),
I.MulSV(B, o, o),
T.SelfAdd(o),
F.MulRV(M, v, o),
I.SubVV(o, x, o),
I.MulSV(B, o, o),
S.SelfAdd(o)
}
}
}
,
n.prototype.SolveSpring = function(e) {
var i = n.SolveSpring_s_pa
, r = n.SolveSpring_s_pb
, s = n.SolveSpring_s_d
, a = n.SolveSpring_s_f;
if (!this.m_positionBuffer.data)
throw new Error;
if (!this.m_velocityBuffer.data)
throw new Error;
for (var o = this.m_positionBuffer.data, l = this.m_velocityBuffer.data, h = e.inv_dt * this.m_def.springStrength, c = 0; c < this.m_pairBuffer.count; c++) {
var u = this.m_pairBuffer.data[c];
if (u.flags & t.b2ParticleFlag.b2_springParticle) {
var _ = u.indexA
, f = u.indexB
, d = i.Copy(o[_])
, p = r.Copy(o[f])
, m = l[_]
, y = l[f];
d.SelfMulAdd(e.dt, m),
p.SelfMulAdd(e.dt, y);
var v = I.SubVV(p, d, s)
, g = u.distance
, A = v.Length()
, x = h * u.strength
, b = I.MulSV(x * (g - A) / A, v, a);
m.SelfSub(b),
y.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 a = this.m_velocityBuffer.data, o = 0; o < this.m_count; o++)
this.m_accumulation2Buffer[o] = new I,
this.m_accumulation2Buffer[o].SetZero();
for (var l = 0; l < this.m_contactBuffer.count; l++)
if ((g = this.m_contactBuffer.data[l]).flags & t.b2ParticleFlag.b2_tensileParticle) {
var h = g.indexA
, c = g.indexB
, u = g.weight
, _ = g.normal
, f = I.MulSV((1 - u) * u, _, i);
this.m_accumulation2Buffer[h].SelfSub(f),
this.m_accumulation2Buffer[c].SelfAdd(f)
}
var d = this.GetCriticalVelocity(e)
, p = this.m_def.surfaceTensionPressureStrength * d
, m = this.m_def.surfaceTensionNormalStrength * d
, v = .5 * d;
for (l = 0; l < this.m_contactBuffer.count; l++) {
var g;
if ((g = this.m_contactBuffer.data[l]).flags & t.b2ParticleFlag.b2_tensileParticle) {
h = g.indexA,
c = g.indexB,
u = g.weight,
_ = g.normal;
var A = this.m_weightBuffer[h] + this.m_weightBuffer[c]
, x = I.SubVV(this.m_accumulation2Buffer[c], this.m_accumulation2Buffer[h], r)
, b = y(p * (A - 2) + m * I.DotVV(x, _), v) * u
, C = I.MulSV(b, _, s);
a[h].SelfSub(C),
a[c].SelfAdd(C)
}
}
}
,
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, a = this.m_def.viscousStrength, o = this.GetParticleInvMass(), l = 0; l < this.m_bodyContactBuffer.count; l++) {
var h = (m = this.m_bodyContactBuffer.data[l]).index;
if (this.m_flagsBuffer.data[h] & t.b2ParticleFlag.b2_viscousParticle) {
var c = m.body
, u = m.weight
, _ = m.mass
, f = r[h]
, d = I.SubVV(c.GetLinearVelocityFromWorldPoint(f, I.s_t0), s[h], e)
, p = I.MulSV(a * _ * u, d, i);
s[h].SelfMulAdd(o, p),
c.ApplyLinearImpulse(p.SelfNeg(), f, !0)
}
}
for (l = 0; l < this.m_contactBuffer.count; l++) {
var m;
(m = this.m_contactBuffer.data[l]).flags & t.b2ParticleFlag.b2_viscousParticle && (h = m.indexA,
c = m.indexB,
u = m.weight,
d = I.SubVV(s[c], s[h], e),
p = I.MulSV(a * u, d, i),
s[h].SelfAdd(p),
s[c].SelfSub(p))
}
}
,
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), a = 0; a < this.m_contactBuffer.count; a++) {
var o = this.m_contactBuffer.data[a];
if (o.flags & t.b2ParticleFlag.b2_repulsiveParticle) {
var l = o.indexA
, h = o.indexB;
if (this.m_groupBuffer[l] !== this.m_groupBuffer[h]) {
var c = o.weight
, u = o.normal
, _ = I.MulSV(s * c, u, i);
r[l].SelfSub(_),
r[h].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, a = this.m_def.powderStrength * this.GetCriticalVelocity(e), o = this.GetParticleInvMass(), l = 0; l < this.m_bodyContactBuffer.count; l++) {
var h = (p = this.m_bodyContactBuffer.data[l]).index;
if (this.m_flagsBuffer.data[h] & t.b2ParticleFlag.b2_powderParticle && (m = p.weight) > .25) {
var c = p.body
, u = p.mass
, _ = r[h]
, f = p.normal
, d = I.MulSV(a * u * (m - .25), f, i);
s[h].SelfMulSub(o, d),
c.ApplyLinearImpulse(d, _, !0)
}
}
for (l = 0; l < this.m_contactBuffer.count; l++) {
var p, m;
(p = this.m_contactBuffer.data[l]).flags & t.b2ParticleFlag.b2_powderParticle && (m = p.weight) > .25 && (h = p.indexA,
c = p.indexB,
f = p.normal,
d = I.MulSV(a * (m - .25), f, i),
s[h].SelfSub(d),
s[c].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 a = this.m_contactBuffer.data[s]
, o = a.indexA
, l = a.indexB;
if (this.m_groupBuffer[o] !== this.m_groupBuffer[l]) {
var h = a.weight
, c = a.normal
, u = this.m_depthBuffer[o] + this.m_depthBuffer[l]
, _ = I.MulSV(r * u * h, c, e);
i[o].SelfSub(_),
i[l].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 a = this.m_colorBuffer.data[r]
, o = this.m_colorBuffer.data[s];
k.MixColors(a, o, 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 a = this.m_world.m_destructionListener;
s & t.b2ParticleFlag.b2_destructionListenerParticle && a && a.SayGoodbyeParticle(this, n),
this.m_handleIndexBuffer.data && (o = this.m_handleIndexBuffer.data[n]) && (o.SetIndex(u),
this.m_handleIndexBuffer.data[n] = null),
i[n] = u
} else {
var o;
i[n] = e,
n !== e && (this.m_handleIndexBuffer.data && ((o = this.m_handleIndexBuffer.data[n]) && o.SetIndex(e),
this.m_handleIndexBuffer.data[e] = o),
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 l = 0; l < this.m_proxyBuffer.count; l++) {
var h = this.m_proxyBuffer.data[l];
h.index = i[h.index]
}
for (this.m_proxyBuffer.RemoveIf((function(t) {
return t.index < 0
}
)),
l = 0; l < this.m_contactBuffer.count; l++)
(c = this.m_contactBuffer.data[l]).indexA = i[c.indexA],
c.indexB = i[c.indexB];
for (this.m_contactBuffer.RemoveIf((function(t) {
return t.indexA < 0 || t.indexB < 0
}
)),
l = 0; l < this.m_bodyContactBuffer.count; l++) {
var c;
(c = this.m_bodyContactBuffer.data[l]).index = i[c.index]
}
for (this.m_bodyContactBuffer.RemoveIf((function(t) {
return t.index < 0
}
)),
l = 0; l < this.m_pairBuffer.count; l++) {
var _ = this.m_pairBuffer.data[l];
_.indexA = i[_.indexA],
_.indexB = i[_.indexB]
}
for (this.m_pairBuffer.RemoveIf((function(t) {
return t.indexA < 0 || t.indexB < 0
}
)),
l = 0; l < this.m_triadBuffer.count; l++) {
var f = this.m_triadBuffer.data[l];
f.indexA = i[f.indexA],
f.indexB = i[f.indexB],
f.indexC = i[f.indexC]
}
if (this.m_triadBuffer.RemoveIf((function(t) {
return t.indexA < 0 || t.indexB < 0 || t.indexC < 0
}
)),
this.m_indexByExpirationTimeBuffer.data)
for (var d = 0, p = 0; p < this.m_count; p++) {
var m = i[this.m_indexByExpirationTimeBuffer.data[p]];
m !== u && (this.m_indexByExpirationTimeBuffer.data[d++] = m)
}
for (var g = this.m_groupList; g; g = g.GetNext()) {
var A = e
, x = 0
, b = !1;
for (n = g.m_firstIndex; n < g.m_lastIndex; n++) {
var C = i[n];
C >= 0 ? (A = y(A, C),
x = v(x, C + 1)) : b = !0
}
A < x ? (g.m_firstIndex = A,
g.m_lastIndex = x,
b && g.m_groupFlags & t.b2ParticleGroupFlag.b2_solidParticleGroup && this.SetGroupFlags(g, g.m_groupFlags | t.b2ParticleGroupFlag.b2_particleGroupNeedsUpdateDepth)) : (g.m_firstIndex = 0,
g.m_lastIndex = 0,
g.m_groupFlags & t.b2ParticleGroupFlag.b2_particleGroupCanBeEmpty || this.SetGroupFlags(g, g.m_groupFlags | t.b2ParticleGroupFlag.b2_particleGroupWillBeDestroyed))
}
for (this.m_count = e,
this.m_allParticleFlags = r,
this.m_needsUpdateAllParticleFlags = !1,
g = this.m_groupList; g; ) {
var T = g.GetNext();
g.m_groupFlags & t.b2ParticleGroupFlag.b2_particleGroupWillBeDestroyed && this.DestroyParticleGroup(g),
g = T
}
}
,
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();
this.m_expirationTimeBufferRequiresSorting && (In(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 a = n[s]
, o = i[a];
if (e < o || o <= 0)
break;
this.DestroyParticle(a)
}
}
,
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;
if (Fn(this.m_flagsBuffer.data, t, e, i),
this.m_lastBodyContactStepBuffer.data && Fn(this.m_lastBodyContactStepBuffer.data, t, e, i),
this.m_bodyContactCountBuffer.data && Fn(this.m_bodyContactCountBuffer.data, t, e, i),
this.m_consecutiveContactStepsBuffer.data && Fn(this.m_consecutiveContactStepsBuffer.data, t, e, i),
Fn(this.m_positionBuffer.data, t, e, i),
Fn(this.m_velocityBuffer.data, t, e, i),
Fn(this.m_groupBuffer, t, e, i),
this.m_hasForce && Fn(this.m_forceBuffer, t, e, i),
this.m_staticPressureBuffer && Fn(this.m_staticPressureBuffer, t, e, i),
this.m_depthBuffer && Fn(this.m_depthBuffer, t, e, i),
this.m_colorBuffer.data && Fn(this.m_colorBuffer.data, t, e, i),
this.m_userDataBuffer.data && Fn(this.m_userDataBuffer.data, t, e, i),
this.m_handleIndexBuffer.data) {
Fn(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) {
Fn(this.m_expirationTimeBuffer.data, t, e, i);
var s = this.GetParticleCount();
if (!this.m_indexByExpirationTimeBuffer.data)
throw new Error;
var a = this.m_indexByExpirationTimeBuffer.data;
for (n = 0; n < s; ++n)
a[n] = f(a[n])
}
for (var o = 0; o < this.m_proxyBuffer.count; o++) {
var l = this.m_proxyBuffer.data[o];
l.index = f(l.index)
}
for (o = 0; o < this.m_contactBuffer.count; o++)
(h = this.m_contactBuffer.data[o]).indexA = f(h.indexA),
h.indexB = f(h.indexB);
for (o = 0; o < this.m_bodyContactBuffer.count; o++) {
var h;
(h = this.m_bodyContactBuffer.data[o]).index = f(h.index)
}
for (o = 0; o < this.m_pairBuffer.count; o++) {
var c = this.m_pairBuffer.data[o];
c.indexA = f(c.indexA),
c.indexB = f(c.indexB)
}
for (o = 0; o < this.m_triadBuffer.count; o++) {
var u = this.m_triadBuffer.data[o];
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),
~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() {
In(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
, a = 0;
this.m_bodyContactBuffer.count = Rn(this.m_bodyContactBuffer.data, (function(n) {
if (n.index !== s && (a = 0,
s = n.index),
a++ > 3)
return !0;
var o = t.Copy(n.normal);
if (o.SelfMul(r.m_particleDiameter * (1 - n.weight)),
!r.m_positionBuffer.data)
throw new Error;
var h = I.AddVV(r.m_positionBuffer.data[n.index], o, e);
if (!n.fixture.TestPoint(h)) {
for (var c = n.fixture.GetShape().GetChildCount(), u = 0; u < c; u++) {
var _ = i;
if (n.fixture.ComputeDistance(h, _, u) < l)
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],
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, a, o) {
t[0] = n > 0 ? 1 / n : 0,
e[0] = r > 0 ? 1 / r : 0,
i[0] = I.CrossVV(I.SubVV(a, s, I.s_t0), o)
}
,
n.prototype.InitDampingParameterWithRigidGroupOrParticle = function(e, i, n, r, s, a, o, l) {
if (s && r)
this.InitDampingParameter(e, i, n, s.GetMass(), s.GetInertia(), s.GetCenter(), o, l);
else {
if (!this.m_flagsBuffer.data)
throw new Error;
var h = this.m_flagsBuffer.data[a];
this.InitDampingParameter(e, i, n, h & t.b2ParticleFlag.b2_wallParticle ? 0 : this.GetParticleMass(), 0, o, o, l)
}
}
,
n.prototype.ComputeDampingImpulse = function(t, e, i, n, r, s, a) {
var o = t + e * i * i + n + r * s * s;
return o > 0 ? a / o : 0
}
,
n.prototype.ApplyDamping = function(t, e, i, n, r, s, a, o) {
if (r && n)
r.m_linearVelocity.SelfMulAdd(a * t, o),
r.m_angularVelocity += a * i * e;
else {
if (!this.m_velocityBuffer.data)
throw new Error;
this.m_velocityBuffer.data[s].SelfMulAdd(a * t, o)
}
}
,
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 V,
n.ComputeCollisionEnergy_s_v = new I,
n.QueryShapeAABB_s_aabb = new Tt,
n.QueryPointAABB_s_aabb = new Tt,
n.RayCast_s_aabb = new Tt,
n.RayCast_s_p = new I,
n.RayCast_s_v = new I,
n.RayCast_s_n = new I,
n.RayCast_s_point = new I,
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 ri,
n.CreateParticlesStrokeShapeForGroup_s_d = new I,
n.CreateParticlesStrokeShapeForGroup_s_p = new I,
n.CreateParticlesFillShapeForGroup_s_aabb = new Tt,
n.CreateParticlesFillShapeForGroup_s_p = new I,
n.UpdatePairsAndTriads_s_dab = new I,
n.UpdatePairsAndTriads_s_dbc = new I,
n.UpdatePairsAndTriads_s_dca = new I,
n.AddContact_s_d = new I,
n.UpdateBodyContacts_s_aabb = new Tt,
n.Solve_s_subStep = new cn,
n.SolveCollision_s_aabb = new Tt,
n.SolveGravity_s_gravity = new I,
n.SolveBarrier_s_aabb = new Tt,
n.SolveBarrier_s_va = new I,
n.SolveBarrier_s_vb = new I,
n.SolveBarrier_s_pba = new I,
n.SolveBarrier_s_vba = new I,
n.SolveBarrier_s_vc = new I,
n.SolveBarrier_s_pca = new I,
n.SolveBarrier_s_vca = new I,
n.SolveBarrier_s_qba = new I,
n.SolveBarrier_s_qca = new I,
n.SolveBarrier_s_dv = new I,
n.SolveBarrier_s_f = new I,
n.SolvePressure_s_f = new I,
n.SolveDamping_s_v = new I,
n.SolveDamping_s_f = new I,
n.SolveRigidDamping_s_t0 = new I,
n.SolveRigidDamping_s_t1 = new I,
n.SolveRigidDamping_s_p = new I,
n.SolveRigidDamping_s_v = new I,
n.SolveExtraDamping_s_v = new I,
n.SolveExtraDamping_s_f = new I,
n.SolveRigid_s_position = new I,
n.SolveRigid_s_rotation = new F,
n.SolveRigid_s_transform = new V,
n.SolveRigid_s_velocityTransform = new V,
n.SolveElastic_s_pa = new I,
n.SolveElastic_s_pb = new I,
n.SolveElastic_s_pc = new I,
n.SolveElastic_s_r = new F,
n.SolveElastic_s_t0 = new I,
n.SolveSpring_s_pa = new I,
n.SolveSpring_s_pb = new I,
n.SolveSpring_s_d = new I,
n.SolveSpring_s_f = new I,
n.SolveTensile_s_weightedNormal = new I,
n.SolveTensile_s_s = new I,
n.SolveTensile_s_f = new I,
n.SolveViscous_s_v = new I,
n.SolveViscous_s_f = new I,
n.SolveRepulsive_s_f = new I,
n.SolvePowder_s_f = new I,
n.SolveSolid_s_f = new I,
n.RemoveSpuriousBodyContacts_s_n = new I,
n.RemoveSpuriousBodyContacts_s_pos = new I,
n.RemoveSpuriousBodyContacts_s_normal = new I,
n
}
)(),
(function(e) {
e.UserOverridableBuffer = function() {
this.data = null,
this.userSuppliedCapacity = 0
}
;
var n = (function() {
function t() {
this.index = u,
this.tag = 0
}
return 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
}
,
t
}
)();
e.Proxy = n;
var r = (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
}
return 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
}
,
t
}
)();
e.InsideBoundsEnumerator = r;
e.ParticleListNode = function() {
this.next = null,
this.count = 0,
this.index = 0
}
;
var s = (function() {
function t() {}
return t.prototype.Allocate = function(t, e) {
return e
}
,
t.prototype.Clear = function() {}
,
t.prototype.GetCount = function() {
return 0
}
,
t.prototype.Invalidate = function() {}
,
t.prototype.GetValidBuffer = function() {
return []
}
,
t.prototype.GetBuffer = function() {
return []
}
,
t.prototype.SetCount = function() {}
,
t
}
)();
e.FixedSetAllocator = s;
e.FixtureParticle = function(t, e) {
this.second = u,
this.first = t,
this.second = e
}
;
var a = (function(t) {
function e() {
return null !== t && t.apply(this, arguments) || this
}
return ti(e, t),
e.prototype.Initialize = function() {}
,
e.prototype.Find = function() {
return u
}
,
e
}
)(e.FixedSetAllocator);
e.FixtureParticleSet = a;
e.ParticlePair = function(t, e) {
this.first = u,
this.second = u,
this.first = t,
this.second = e
}
;
var o = (function(t) {
function e() {
return null !== t && t.apply(this, arguments) || this
}
return ti(e, t),
e.prototype.Initialize = function() {}
,
e.prototype.Find = function() {
return u
}
,
e
}
)(e.FixedSetAllocator);
e.b2ParticlePairSet = o;
var h = (function() {
function t() {}
return t.prototype.IsNecessary = function() {
return !0
}
,
t.prototype.ShouldCreatePair = function() {
return !0
}
,
t.prototype.ShouldCreateTriad = function() {
return !0
}
,
t
}
)();
e.ConnectionFilter = h;
var c = (function(t) {
function e(e, i, n, r) {
var s = t.call(this) || this;
return 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,
s
}
return ti(e, t),
e.prototype.ReportFixture = function() {
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;
return 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++),
!0
}
,
e.prototype.Destroyed = function() {
return this.m_destroyed
}
,
e
}
)(an);
e.DestroyParticlesInShapeCallback = c;
var _ = (function(t) {
function e(e) {
var i = t.call(this) || this;
return i.m_threshold = 0,
i.m_threshold = e,
i
}
return ti(e, t),
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)
}
,
e
}
)(e.ConnectionFilter);
e.JoinParticleGroupsFilter = _;
var f = (function(e) {
function n(i, n) {
void 0 === n && (n = i.length);
var r = e.call(this, t.b2ShapeType.e_unknown, 0) || this;
return r.m_shapeCount = 0,
r.m_shapes = i,
r.m_shapeCount = n,
r
}
return ti(n, e),
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() {
return 0
}
,
n.prototype.RayCast = function() {
return !1
}
,
n.prototype.ComputeAABB = function(t, e) {
var n = new Tt;
t.lowerBound.x = +i,
t.lowerBound.y = +i,
t.upperBound.x = -i,
t.upperBound.y = -i;
for (var r = 0; r < this.m_shapeCount; r++)
for (var s = this.m_shapes[r].GetChildCount(), a = 0; a < s; a++) {
var o = n;
this.m_shapes[r].ComputeAABB(o, e, a),
t.Combine1(o)
}
}
,
n.prototype.ComputeMass = function() {}
,
n.prototype.SetupDistanceProxy = function() {}
,
n.prototype.ComputeSubmergedArea = function() {
return 0
}
,
n.prototype.Dump = function() {}
,
n
}
)(Qe);
e.CompositeShape = f;
var d = (function(e) {
function i(t) {
var i = e.call(this) || this;
return i.m_flagsBuffer = t,
i
}
return ti(i, e),
i.prototype.IsNecessary = function(e) {
if (!this.m_flagsBuffer.data)
throw new Error;
return 0 != (this.m_flagsBuffer.data[e] & t.b2ParticleFlag.b2_reactiveParticle)
}
,
i
}
)(e.ConnectionFilter);
e.ReactiveFilter = d;
var p = (function(i) {
function n(t, e) {
var n = i.call(this, t) || this;
return n.m_contactFilter = e,
n
}
return ti(n, i),
n.prototype.ShouldCollideFixtureParticle = function(e, i, n) {
return !(this.m_contactFilter && this.m_system.GetFlagsBuffer()[n] & t.b2ParticleFlag.b2_fixtureContactFilterParticle) || this.m_contactFilter.ShouldCollideFixtureParticle(e, this.m_system, n)
}
,
n.prototype.ReportFixtureAndParticle = function(i, n, r) {
var s = e.UpdateBodyContactsCallback.ReportFixtureAndParticle_s_n
, a = 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 o = this.m_system.m_positionBuffer.data[r]
, l = s
, h = i.ComputeDistance(o, l, n);
if (h < this.m_system.m_particleDiameter && this.ShouldCollideFixtureParticle(i, this.m_system, r)) {
var c = i.GetBody()
, u = c.GetWorldCenter()
, _ = c.GetMass()
, f = c.GetInertia() - _ * c.GetLocalCenter().LengthSquared()
, d = _ > 0 ? 1 / _ : 0
, p = f > 0 ? 1 / f : 0
, m = this.m_system.m_flagsBuffer.data[r] & t.b2ParticleFlag.b2_wallParticle ? 0 : this.m_system.GetParticleInvMass()
, y = I.SubVV(o, u, a)
, v = I.CrossVV(y, l)
, g = m + d + p * v * v
, A = this.m_system.m_bodyContactBuffer.data[this.m_system.m_bodyContactBuffer.Append()];
A.index = r,
A.body = c,
A.fixture = i,
A.weight = 1 - h * this.m_system.m_inverseDiameter,
A.normal.Copy(l.SelfNeg()),
A.mass = g > 0 ? 1 / g : 0,
this.m_system.DetectStuckParticle(r)
}
}
,
n.ReportFixtureAndParticle_s_n = new I,
n.ReportFixtureAndParticle_s_rp = new I,
n
}
)(kn);
e.UpdateBodyContactsCallback = p;
var m = (function(i) {
function n(t, e) {
var n = i.call(this, t) || this;
return n.m_step = e,
n
}
return ti(n, i),
n.prototype.ReportFixtureAndParticle = function(i, n, r) {
var s = e.SolveCollisionCallback.ReportFixtureAndParticle_s_p1
, a = e.SolveCollisionCallback.ReportFixtureAndParticle_s_output
, o = e.SolveCollisionCallback.ReportFixtureAndParticle_s_input
, h = e.SolveCollisionCallback.ReportFixtureAndParticle_s_p
, c = 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]
, p = a
, m = o;
if (0 === this.m_system.m_iterationIndex) {
var y = V.MulTXV(_.m_xf0, f, s);
i.GetShape().GetType() === t.b2ShapeType.e_circleShape && (y.SelfSub(_.GetLocalCenter()),
F.MulRV(_.m_xf0.q, y, y),
F.MulTRV(_.m_xf.q, y, y),
y.SelfAdd(_.GetLocalCenter())),
V.MulXV(_.m_xf, y, m.p1)
} else
m.p1.Copy(f);
if (I.AddVMulSV(f, this.m_step.dt, d, m.p2),
m.maxFraction = 1,
i.RayCast(p, m, n)) {
var v = p.normal
, g = h;
g.x = (1 - p.fraction) * m.p1.x + p.fraction * m.p2.x + l * v.x,
g.y = (1 - p.fraction) * m.p1.y + p.fraction * m.p2.y + l * v.y;
var A = c;
A.x = this.m_step.inv_dt * (g.x - f.x),
A.y = this.m_step.inv_dt * (g.y - f.y),
this.m_system.m_velocityBuffer.data[r].Copy(A);
var x = u;
x.x = this.m_step.inv_dt * this.m_system.GetParticleMass() * (d.x - A.x),
x.y = this.m_step.inv_dt * this.m_system.GetParticleMass() * (d.y - A.y),
this.m_system.ParticleApplyForce(r, x)
}
}
,
n.prototype.ReportParticle = function() {
return !1
}
,
n.ReportFixtureAndParticle_s_p1 = new I,
n.ReportFixtureAndParticle_s_output = new Ct,
n.ReportFixtureAndParticle_s_input = new bt,
n.ReportFixtureAndParticle_s_p = new I,
n.ReportFixtureAndParticle_s_v = new I,
n.ReportFixtureAndParticle_s_f = new I,
n
}
)(kn);
e.SolveCollisionCallback = m
}
)(t.b2ParticleSystem || (t.b2ParticleSystem = {}));
var jn = (function() {
function e(t) {
this.m_newFixture = !1,
this.m_locked = !1,
this.m_clearForces = !0,
this.m_contactManager = new ln,
this.m_bodyList = null,
this.m_jointList = null,
this.m_particleSystemList = null,
this.m_bodyCount = 0,
this.m_jointCount = 0,
this.m_gravity = new I,
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 hn,
this.m_island = new An,
this.s_stack = [],
this.m_controllerList = null,
this.m_controllerCount = 0,
this.m_gravity.Copy(t)
}
return 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) {
if (void 0 === t && (t = {}),
this.IsLocked())
throw new Error;
var e = new _i(t,this);
return 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,
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 a = s;
s = s.next,
this.m_contactManager.Destroy(a.contact)
}
t.m_contactList = null;
for (var o = t.m_fixtureList; o; ) {
var l = o;
o = o.m_next,
this.m_destructionListener && this.m_destructionListener.SayGoodbyeFixture(l),
l.DestroyProxies(),
l.Destroy(),
t.m_fixtureList = o,
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) {
switch (e.type) {
case t.b2JointType.e_distanceJoint:
return new vi(e);
case t.b2JointType.e_mouseJoint:
return new Mi(e);
case t.b2JointType.e_prismaticJoint:
return new Bi(e);
case t.b2JointType.e_revoluteJoint:
return new Oi(e);
case t.b2JointType.e_pulleyJoint:
return new Pi(e);
case t.b2JointType.e_gearJoint:
return new Ti(e);
case t.b2JointType.e_wheelJoint:
return new Gi(e);
case t.b2JointType.e_weldJoint:
return new Ni(e);
case t.b2JointType.e_frictionJoint:
return new bi(e);
case t.b2JointType.e_ropeJoint:
return new Fi(e);
case t.b2JointType.e_motorJoint:
return new wi(e);
case t.b2JointType.e_areaJoint:
return new Ai(e)
}
throw new Error
}
,
e._Joint_Destroy = function() {}
,
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;
if (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,
!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);
return i.m_prev = null,
i.m_next = this.m_particleSystemList,
this.m_particleSystemList && (this.m_particleSystemList.m_prev = i),
this.m_particleSystemList = i,
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) {
return null === this.m_particleSystemList ? 1 : bn(this.m_gravity.Length(), (function(t) {
for (var e = i, n = t.GetParticleSystemList(); null !== n; n = n.m_next)
e = y(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();
this.m_newFixture && (this.m_contactManager.FindNewContacts(),
this.m_newFixture = !1),
this.m_locked = !0;
var a = e.Step_s_step;
a.dt = t,
a.velocityIterations = i,
a.positionIterations = n,
a.particleIterations = r,
a.inv_dt = t > 0 ? 1 / t : 0,
a.dtRatio = this.m_inv_dt0 * t,
a.warmStarting = this.m_warmStarting;
var o = e.Step_s_timer.Reset();
if (this.m_contactManager.Collide(),
this.m_profile.collide = o.GetMilliseconds(),
this.m_stepComplete && a.dt > 0) {
for (var l = e.Step_s_timer.Reset(), h = this.m_particleSystemList; h; h = h.m_next)
h.Solve(a);
this.Solve(a),
this.m_profile.solve = l.GetMilliseconds()
}
if (this.m_continuousPhysics && a.dt > 0) {
var c = e.Step_s_timer.Reset();
this.SolveTOI(a),
this.m_profile.solveTOI = c.GetMilliseconds()
}
a.dt > 0 && (this.m_inv_dt0 = a.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 a = r.GetFixtureList(); a; a = a.m_next)
r.IsActive() ? r.GetType() === t.b2BodyType.b2_staticBody ? (n.SetRGB(.5, .9, .5),
this.DrawShape(a, n)) : r.GetType() === t.b2BodyType.b2_kinematicBody ? (n.SetRGB(.5, .5, .9),
this.DrawShape(a, n)) : r.IsAwake() ? (n.SetRGB(.9, .7, .7),
this.DrawShape(a, n)) : (n.SetRGB(.6, .6, .6),
this.DrawShape(a, n)) : (n.SetRGB(.5, .5, .3),
this.DrawShape(a, n));
this.m_debugDraw.PopTransform(s)
}
if (i & t.b2DrawFlags.e_particleBit)
for (var o = this.m_particleSystemList; o; o = o.m_next)
this.DrawParticleSystem(o);
if (i & t.b2DrawFlags.e_jointBit)
for (var l = this.m_jointList; l; l = l.m_next)
this.DrawJoint(l);
if (i & t.b2DrawFlags.e_aabbBit) {
n.SetRGB(.9, .3, .9);
var h = e.DrawDebugData_s_vs;
for (r = this.m_bodyList; r; r = r.m_next)
if (r.IsActive())
for (a = r.GetFixtureList(); a; a = a.m_next)
for (var c = 0; c < a.m_proxyCount; ++c) {
var u = a.m_proxies[c].treeNode.aabb;
h[0].Set(u.lowerBound.x, u.lowerBound.y),
h[1].Set(u.upperBound.x, u.lowerBound.y),
h[2].Set(u.upperBound.x, u.upperBound.y),
h[3].Set(u.lowerBound.x, u.upperBound.y),
this.m_debugDraw.DrawPolygon(h, 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) {
if (this.m_contactManager.m_broadPhase.Query(e, (function(e) {
var n = e.userData.fixture;
return t ? t.ReportFixture(n) : !i || i(n)
}
)),
t instanceof an)
for (var n = this.m_particleSystemList; n; n = n.m_next)
t.ShouldQueryParticleSystem(n) && n.QueryAABB(t, e)
}
,
e.prototype.QueryAllAABB = function(t, e) {
return void 0 === e && (e = []),
this.QueryAABB(null, t, (function(t) {
return e.push(t),
!0
}
)),
e
}
,
e.prototype.QueryPointAABB = function(t, e, i) {
if (this.m_contactManager.m_broadPhase.QueryPoint(e, (function(e) {
var n = e.userData.fixture;
return t ? t.ReportFixture(n) : !i || i(n)
}
)),
t instanceof an)
for (var n = this.m_particleSystemList; n; n = n.m_next)
t.ShouldQueryParticleSystem(n) && n.QueryPointAABB(t, e)
}
,
e.prototype.QueryAllPointAABB = function(t, e) {
return void 0 === e && (e = []),
this.QueryPointAABB(null, t, (function(t) {
return e.push(t),
!0
}
)),
e
}
,
e.prototype.QueryFixtureShape = function(t, i, n, r, s) {
var a = e.QueryFixtureShape_s_aabb;
if (i.ComputeAABB(a, r, n),
this.m_contactManager.m_broadPhase.Query(a, (function(e) {
var a = e.userData
, o = a.fixture;
if (Bt(i, n, o.GetShape(), a.childIndex, r, o.GetBody().GetTransform())) {
if (t)
return t.ReportFixture(o);
if (s)
return s(o)
}
return !0
}
)),
t instanceof an)
for (var o = this.m_particleSystemList; o; o = o.m_next)
t.ShouldQueryParticleSystem(o) && o.QueryAABB(t, a)
}
,
e.prototype.QueryAllFixtureShape = function(t, e, i, n) {
return void 0 === n && (n = []),
this.QueryFixtureShape(null, t, e, i, (function(t) {
return n.push(t),
!0
}
)),
n
}
,
e.prototype.QueryFixturePoint = function(t, e, i) {
if (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
}
)),
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) {
return void 0 === e && (e = []),
this.QueryFixturePoint(null, t, (function(t) {
return e.push(t),
!0
}
)),
e
}
,
e.prototype.RayCast = function(t, i, n, r) {
var s = e.RayCast_s_input;
if (s.maxFraction = 1,
s.p1.Copy(i),
s.p2.Copy(n),
this.m_contactManager.m_broadPhase.RayCast(s, (function(s, a) {
var o = a.userData
, l = o.fixture
, h = o.childIndex
, c = e.RayCast_s_output;
if (l.RayCast(c, s, h)) {
var u = c.fraction
, _ = e.RayCast_s_point;
if (_.Set((1 - u) * i.x + u * n.x, (1 - u) * i.y + u * n.y),
t)
return t.ReportFixture(l, _, c.normal, u);
if (r)
return r(l, _, c.normal, u)
}
return s.maxFraction
}
)),
t)
for (var a = this.m_particleSystemList; a; a = a.m_next)
t.ShouldQueryParticleSystem(a) && a.RayCast(t, i, n)
}
,
e.prototype.RayCastOne = function(t, e) {
var i = null
, n = 1;
return this.RayCast(null, t, e, (function(t, e, r, s) {
return s < n && (n = s,
i = t),
n
}
)),
i
}
,
e.prototype.RayCastAll = function(t, e, i) {
return void 0 === i && (i = []),
this.RayCast(null, t, e, (function(t) {
return i.push(t),
1
}
)),
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,
!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) {
if (void 0 === e && (e = !0),
!I.IsEqualToV(this.m_gravity, t) && (this.m_gravity.Copy(t),
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)
r.m_type !== t.b2JointType.e_gearJoint && (e("{\n"),
r.Dump(e),
e("}\n"));
for (r = this.m_jointList; r; r = r.m_next)
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
, a = r.m_xf
, o = s.p
, l = a.p
, h = i.GetAnchorA(e.DrawJoint_s_p1)
, c = 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(h, c, u);
break;
case t.b2JointType.e_pulleyJoint:
var _ = i
, f = _.GetGroundAnchorA()
, d = _.GetGroundAnchorB();
this.m_debugDraw.DrawSegment(f, h, u),
this.m_debugDraw.DrawSegment(d, c, u),
this.m_debugDraw.DrawSegment(f, d, u);
break;
case t.b2JointType.e_mouseJoint:
var p = e.DrawJoint_s_c;
p.Set(0, 1, 0),
this.m_debugDraw.DrawPoint(h, 4, p),
this.m_debugDraw.DrawPoint(c, 4, p),
p.Set(.8, .8, .8),
this.m_debugDraw.DrawSegment(h, c, p);
break;
default:
this.m_debugDraw.DrawSegment(o, h, u),
this.m_debugDraw.DrawSegment(h, c, u),
this.m_debugDraw.DrawSegment(l, c, 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
, a = s.m_p
, o = s.m_radius
, l = I.UNITX;
this.m_debugDraw.DrawSolidCircle(a, o, l, n);
break;
case t.b2ShapeType.e_edgeShape:
var h = r
, c = h.m_vertex1
, u = h.m_vertex2;
this.m_debugDraw.DrawSegment(c, u, n);
break;
case t.b2ShapeType.e_chainShape:
var _ = r
, f = _.m_count
, d = _.m_vertices
, p = e.DrawShape_s_ghostColor.SetRGBA(.75 * n.r, .75 * n.g, .75 * n.b, n.a);
if (c = d[0],
this.m_debugDraw.DrawPoint(c, 4, n),
_.m_hasPrevVertex) {
var m = _.m_prevVertex;
this.m_debugDraw.DrawSegment(m, c, p),
this.m_debugDraw.DrawCircle(m, .1, p)
}
for (var y = 1; y < f; ++y)
u = d[y],
this.m_debugDraw.DrawSegment(c, u, n),
this.m_debugDraw.DrawPoint(u, 4, n),
c = u;
if (_.m_hasNextVertex) {
var v = _.m_nextVertex;
this.m_debugDraw.DrawSegment(v, c, p),
this.m_debugDraw.DrawCircle(v, .1, p)
}
break;
case t.b2ShapeType.e_polygonShape:
var g = r
, A = g.m_count;
d = g.m_vertices,
this.m_debugDraw.DrawSolidPolygon(d, A, 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;
for (r.Initialize(this.m_bodyCount, this.m_contactManager.m_contactCount, this.m_jointCount, null, this.m_contactManager.m_contactListener),
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 a = this.m_jointList; a; a = a.m_next)
a.m_islandFlag = !1;
for (var o = this.s_stack, l = this.m_bodyList; l; l = l.m_next)
if (!l.m_islandFlag && l.IsAwake() && l.IsActive() && l.GetType() !== t.b2BodyType.b2_staticBody) {
r.Clear();
var h = 0;
for (o[h++] = l,
l.m_islandFlag = !0; h > 0; ) {
if (!(i = o[--h]))
throw new Error;
if (r.AddBody(i),
i.m_awakeFlag = !0,
i.GetType() !== t.b2BodyType.b2_staticBody) {
for (var c = i.m_contactList; c; c = c.next) {
var u = c.contact;
if (!u.m_islandFlag && u.IsEnabled() && u.IsTouching()) {
var _ = u.m_fixtureA.m_isSensor
, f = u.m_fixtureB.m_isSensor;
if (!_ && !f) {
if (r.AddContact(u),
u.m_islandFlag = !0,
!(p = c.other))
throw new Error;
p.m_islandFlag || (o[h++] = p,
p.m_islandFlag = !0)
}
}
}
for (var d = i.m_jointList; d; d = d.next) {
var p;
d.joint.m_islandFlag || (p = d.other).IsActive() && (r.AddJoint(d.joint),
d.joint.m_islandFlag = !0,
p.m_islandFlag || (o[h++] = p,
p.m_islandFlag = !0))
}
}
}
var m = new hn;
r.Solve(m, e, this.m_gravity, this.m_allowSleep),
this.m_profile.solveInit += m.solveInit,
this.m_profile.solveVelocity += m.solveVelocity,
this.m_profile.solvePosition += m.solvePosition;
for (var y = 0; y < r.m_bodyCount; ++y)
(i = r.m_bodies[y]).GetType() === t.b2BodyType.b2_staticBody && (i.m_islandFlag = !1)
}
for (y = 0; y < o.length && o[y]; ++y)
o[y] = null;
var v = 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 = v.GetMilliseconds()
}
,
e.prototype.SolveTOI = function(i) {
var r = this.m_island;
if (r.Initialize(64, 32, 0, null, this.m_contactManager.m_contactListener),
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 a = this.m_contactManager.m_contactList; a; a = a.m_next)
a.m_toiFlag = !1,
a.m_islandFlag = !1,
a.m_toiCount = 0,
a.m_toi = 1
}
for (; ; ) {
var o = null
, l = 1;
for (a = this.m_contactManager.m_contactList; a; a = a.m_next)
if (a.IsEnabled() && !(a.m_toiCount > 8)) {
var h = 1;
if (a.m_toiFlag)
h = a.m_toi;
else {
var c = a.GetFixtureA()
, u = a.GetFixtureB();
if (c.IsSensor() || u.IsSensor())
continue;
var _ = c.GetBody()
, f = u.GetBody()
, d = _.m_type
, p = f.m_type
, m = _.IsAwake() && d !== t.b2BodyType.b2_staticBody
, v = f.IsAwake() && p !== t.b2BodyType.b2_staticBody;
if (!m && !v)
continue;
var g = _.IsBullet() || d !== t.b2BodyType.b2_dynamicBody
, A = f.IsBullet() || p !== t.b2BodyType.b2_dynamicBody;
if (!g && !A)
continue;
var x = _.m_sweep.alpha0;
_.m_sweep.alpha0 < f.m_sweep.alpha0 ? (x = f.m_sweep.alpha0,
_.m_sweep.Advance(x)) : f.m_sweep.alpha0 < _.m_sweep.alpha0 && (x = _.m_sweep.alpha0,
f.m_sweep.Advance(x));
var b = a.GetChildIndexA()
, C = a.GetChildIndexB()
, T = e.SolveTOI_s_toi_input;
T.proxyA.SetShape(c.GetShape(), b),
T.proxyB.SetShape(u.GetShape(), C),
T.sweepA.Copy(_.m_sweep),
T.sweepB.Copy(f.m_sweep),
T.tMax = 1;
var S = e.SolveTOI_s_toi_output;
re(S, T);
var w = S.t;
h = S.state === t.b2TOIOutputState.e_touching ? y(x + (1 - x) * w, 1) : 1,
a.m_toi = h,
a.m_toiFlag = !0
}
h < l && (o = a,
l = h)
}
if (null === o || 1 - 10 * n < l) {
this.m_stepComplete = !0;
break
}
var E = o.GetFixtureA()
, M = o.GetFixtureB()
, D = E.GetBody()
, B = M.GetBody()
, I = e.SolveTOI_s_backup1.Copy(D.m_sweep)
, P = e.SolveTOI_s_backup2.Copy(B.m_sweep);
if (D.Advance(l),
B.Advance(l),
o.Update(this.m_contactManager.m_contactListener),
o.m_toiFlag = !1,
++o.m_toiCount,
o.IsEnabled() && o.IsTouching()) {
D.SetAwake(!0),
B.SetAwake(!0),
r.Clear(),
r.AddBody(D),
r.AddBody(B),
r.AddContact(o),
D.m_islandFlag = !0,
B.m_islandFlag = !0,
o.m_islandFlag = !0;
for (var R = 0; R < 2; ++R)
if ((U = 0 === R ? D : B).m_type === t.b2BodyType.b2_dynamicBody)
for (var O = U.m_contactList; O && r.m_bodyCount !== r.m_bodyCapacity && r.m_contactCount !== r.m_contactCapacity; O = O.next) {
var L = O.contact;
if (!L.m_islandFlag) {
var F = O.other;
if (F.m_type !== t.b2BodyType.b2_dynamicBody || U.IsBullet() || F.IsBullet()) {
var V = L.m_fixtureA.m_isSensor
, N = L.m_fixtureB.m_isSensor;
if (!V && !N) {
var k = e.SolveTOI_s_backup.Copy(F.m_sweep);
F.m_islandFlag || F.Advance(l),
L.Update(this.m_contactManager.m_contactListener),
L.IsEnabled() && L.IsTouching() ? (L.m_islandFlag = !0,
r.AddContact(L),
F.m_islandFlag || (F.m_islandFlag = !0,
F.m_type !== t.b2BodyType.b2_staticBody && F.SetAwake(!0),
r.AddBody(F))) : (F.m_sweep.Copy(k),
F.SynchronizeTransform())
}
}
}
}
var G = e.SolveTOI_s_subStep;
for (G.dt = (1 - l) * i.dt,
G.inv_dt = 1 / G.dt,
G.dtRatio = 1,
G.positionIterations = 20,
G.velocityIterations = i.velocityIterations,
G.particleIterations = i.particleIterations,
G.warmStarting = !1,
r.SolveTOI(G, D.m_islandIndex, B.m_islandIndex),
R = 0; R < r.m_bodyCount; ++R) {
var U;
if ((U = r.m_bodies[R]).m_islandFlag = !1,
U.m_type === t.b2BodyType.b2_dynamicBody)
for (U.SynchronizeFixtures(),
O = U.m_contactList; O; O = O.next)
O.contact.m_toiFlag = !1,
O.contact.m_islandFlag = !1
}
if (this.m_contactManager.FindNewContacts(),
this.m_subStepping) {
this.m_stepComplete = !1;
break
}
} else
o.SetEnabled(!1),
D.m_sweep.Copy(I),
B.m_sweep.Copy(P),
D.SynchronizeTransform(),
B.SynchronizeTransform()
}
}
,
e.prototype.AddController = function(t) {
return 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,
t
}
,
e.prototype.RemoveController = function(t) {
return 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,
t
}
,
e.Step_s_step = new cn,
e.Step_s_stepTimer = new U,
e.Step_s_timer = new U,
e.DrawDebugData_s_color = new k(0,0,0),
e.DrawDebugData_s_vs = I.MakeArray(4),
e.DrawDebugData_s_xf = new V,
e.QueryFixtureShape_s_aabb = new Tt,
e.RayCast_s_input = new bt,
e.RayCast_s_output = new Ct,
e.RayCast_s_point = new I,
e.DrawJoint_s_p1 = new I,
e.DrawJoint_s_p2 = new I,
e.DrawJoint_s_color = new k(.5,.8,.8),
e.DrawJoint_s_c = new k,
e.DrawShape_s_ghostColor = new k,
e.SolveTOI_s_subStep = new cn,
e.SolveTOI_s_backup = new N,
e.SolveTOI_s_backup1 = new N,
e.SolveTOI_s_backup2 = new N,
e.SolveTOI_s_toi_input = new jt,
e.SolveTOI_s_toi_output = new Yt,
e
}
)()
, Xn = function(t, e) {
this.prevBody = null,
this.nextBody = null,
this.prevController = null,
this.nextController = null,
this.controller = t,
this.body = e
}
, Yn = (function() {
function t() {
this.m_bodyList = null,
this.m_bodyCount = 0,
this.m_prev = null,
this.m_next = null
}
return 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 Xn(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
}
,
t
}
)()
, qn = (function(t) {
function e() {
var e = null !== t && t.apply(this, arguments) || this;
return e.normal = new I(0,1),
e.offset = 0,
e.density = 0,
e.velocity = new I(0,0),
e.linearDrag = 0,
e.angularDrag = 0,
e.useDensity = !1,
e.useWorldGravity = !0,
e.gravity = new I(0,0),
e
}
return ti(e, t),
e.prototype.Step = function() {
if (this.m_bodyList) {
this.useWorldGravity && this.gravity.Copy(this.m_bodyList.body.GetWorld().GetGravity());
for (var t = this.m_bodyList; t; t = t.nextBody) {
var e = t.body;
if (e.IsAwake()) {
for (var i = new I, r = new I, s = 0, a = 0, o = e.GetFixtureList(); o; o = o.m_next) {
var l = new I
, h = o.GetShape().ComputeSubmergedArea(this.normal, this.offset, e.GetTransform(), l);
s += h,
i.x += h * l.x,
i.y += h * l.y;
var c;
a += h * (c = this.useDensity ? o.GetDensity() : 1),
r.x += h * l.x * c,
r.y += h * l.y * c
}
if (i.x /= s,
i.y /= s,
r.x /= a,
r.y /= a,
!(s < n)) {
var u = this.gravity.Clone().SelfNeg();
u.SelfMul(this.density * s),
e.ApplyForce(u, r);
var _ = e.GetLinearVelocityFromWorldPoint(i, new I);
_.SelfSub(this.velocity),
_.SelfMul(-this.linearDrag * s),
e.ApplyForce(_, i),
e.ApplyTorque(-e.GetInertia() / e.GetMass() * s * e.GetAngularVelocity() * this.angularDrag)
}
}
}
}
}
,
e.prototype.Draw = function(t) {
var e = 100
, i = new I
, n = new I;
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 k(0,0,.8);
t.DrawSegment(i, n, r)
}
,
e
}
)(Yn)
, Jn = (function(t) {
function e() {
var e = null !== t && t.apply(this, arguments) || this;
return e.A = new I(0,0),
e
}
return ti(e, t),
e.prototype.Step = function(t) {
for (var i = I.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(I.AddVV(r.GetLinearVelocity(), i, I.s_t0))
}
}
,
e.prototype.Draw = function() {}
,
e.Step_s_dtA = new I,
e
}
)(Yn)
, Zn = (function(t) {
function e() {
var e = null !== t && t.apply(this, arguments) || this;
return e.F = new I(0,0),
e
}
return ti(e, t),
e.prototype.Step = function() {
for (var t = this.m_bodyList; t; t = t.nextBody) {
var e = t.body;
e.IsAwake() && e.ApplyForce(this.F, e.GetWorldCenter())
}
}
,
e.prototype.Draw = function() {}
,
e
}
)(Yn)
, Kn = (function(t) {
function e() {
var e = null !== t && t.apply(this, arguments) || this;
return e.G = 1,
e.invSqr = !0,
e
}
return ti(e, t),
e.prototype.Step = function() {
if (this.invSqr)
for (var t = this.m_bodyList; t; t = t.nextBody)
for (var i = (l = t.body).GetWorldCenter(), r = l.GetMass(), s = this.m_bodyList; s && s !== t; s = s.nextBody) {
var a = (h = s.body).GetWorldCenter()
, o = h.GetMass();
(_ = (c = a.x - i.x) * c + (u = a.y - i.y) * u) < n || ((f = e.Step_s_f.Set(c, u)).SelfMul(this.G / _ / T(_) * r * o),
l.IsAwake() && l.ApplyForce(f, i),
h.IsAwake() && h.ApplyForce(f.SelfMul(-1), a))
}
else
for (t = this.m_bodyList; t; t = t.nextBody) {
var l;
for (i = (l = t.body).GetWorldCenter(),
r = l.GetMass(),
s = this.m_bodyList; s && s !== t; s = s.nextBody) {
var h, c, u, _, f;
a = (h = s.body).GetWorldCenter(),
o = h.GetMass(),
(_ = (c = a.x - i.x) * c + (u = a.y - i.y) * u) < n || ((f = e.Step_s_f.Set(c, u)).SelfMul(this.G / _ * r * o),
l.IsAwake() && l.ApplyForce(f, i),
h.IsAwake() && h.ApplyForce(f.SelfMul(-1), a))
}
}
}
,
e.prototype.Draw = function() {}
,
e.Step_s_f = new I,
e
}
)(Yn)
, Qn = (function(t) {
function e() {
var e = null !== t && t.apply(this, arguments) || this;
return e.T = new O,
e.maxTimestep = 0,
e
}
return ti(e, t),
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 a = s.GetWorldVector(O.MulMV(this.T, s.GetLocalVector(s.GetLinearVelocity(), I.s_t0), I.s_t1), e.Step_s_damping);
s.SetLinearVelocity(I.AddVV(s.GetLinearVelocity(), I.MulSV(i, a, I.s_t0), I.s_t1))
}
}
}
}
,
e.prototype.Draw = function() {}
,
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 / v(t, e) : 0
}
,
e.Step_s_damping = new I,
e
}
)(Yn)
, $n = (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 I,
this.m_damping = 0,
this.m_k2 = 1,
this.m_k3 = .1
}
return 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 = I.MakeArray(this.m_count),
this.m_p0s = I.MakeArray(this.m_count),
this.m_vs = I.MakeArray(this.m_count),
this.m_ims = p(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;
for (this.m_Ls = p(n),
this.m_as = p(r),
e = 0; e < n; ++e) {
var s = this.m_ps[e]
, a = this.m_ps[e + 1];
this.m_Ls[e] = I.DistanceVV(s, a)
}
for (e = 0; e < r; ++e) {
s = this.m_ps[e],
a = this.m_ps[e + 1];
var o = this.m_ps[e + 2]
, l = I.SubVV(a, s, I.s_t0)
, h = I.SubVV(o, a, I.s_t1)
, c = I.CrossVV(l, h)
, u = I.DotVV(l, h);
this.m_as[e] = B(c, 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)
I.MulSV(r, I.SubVV(this.m_ps[n], this.m_p0s[n], I.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 = I.SubVV(r, n, t.s_d)
, a = s.Normalize()
, o = this.m_ims[i]
, l = this.m_ims[i + 1];
if (o + l !== 0) {
var h = o / (o + l)
, c = l / (o + l);
n.SelfMulSub(this.m_k2 * h * (this.m_Ls[i] - a), s),
r.SelfMulAdd(this.m_k2 * c * (this.m_Ls[i] - a), 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]
, a = this.m_ps[i + 2]
, o = this.m_ims[i]
, l = this.m_ims[i + 1]
, h = this.m_ims[i + 2]
, c = I.SubVV(r, n, t.s_d1)
, u = I.SubVV(a, r, t.s_d2)
, _ = c.LengthSquared()
, f = u.LengthSquared();
if (_ * f != 0) {
var d = I.CrossVV(c, u)
, p = I.DotVV(c, u)
, m = B(d, p)
, y = I.MulSV(-1 / _, c.SelfSkew(), t.s_Jd1)
, v = I.MulSV(1 / f, u.SelfSkew(), t.s_Jd2)
, g = I.NegV(y, t.s_J1)
, A = I.SubVV(y, v, t.s_J2)
, x = v
, b = o * I.DotVV(g, g) + l * I.DotVV(A, A) + h * I.DotVV(x, x);
if (0 !== b) {
b = 1 / b;
for (var C = m - this.m_as[i]; C > s; )
C = (m -= 2 * s) - this.m_as[i];
for (; C < -s; )
C = (m += 2 * s) - this.m_as[i];
var T = -this.m_k3 * b * C;
n.SelfMulAdd(o * T, g),
r.SelfMulAdd(l * T, A),
a.SelfMulAdd(h * T, x)
}
}
}
}
,
t.prototype.Draw = function(t) {
for (var e = new k(.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 I,
t.s_d1 = new I,
t.s_d2 = new I,
t.s_Jd1 = new I,
t.s_Jd2 = new I,
t.s_J1 = new I,
t.s_J2 = new I,
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 = a,
t.b2_maxPolygonVertices = o,
t.b2_aabbExtension = .1,
t.b2_aabbMultiplier = 2,
t.b2_linearSlop = l,
t.b2_angularSlop = h,
t.b2_polygonRadius = c,
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() {
return null
}
,
t.b2Free = function() {}
,
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 = p,
t.b2_pi_over_180 = .017453292519944444,
t.b2_180_over_pi = 57.29577951307855,
t.b2_two_pi = 6.28318530718,
t.b2Abs = m,
t.b2Min = y,
t.b2Max = v,
t.b2Clamp = g,
t.b2Swap = function(t, e) {
var i = t[0];
t[0] = e[0],
e[0] = i
}
,
t.b2IsValid = A,
t.b2Sq = x,
t.b2InvSqrt = b,
t.b2Sqrt = T,
t.b2Pow = S,
t.b2DegToRad = function(t) {
return .017453292519944444 * t
}
,
t.b2RadToDeg = function(t) {
return 57.29577951307855 * t
}
,
t.b2Cos = w,
t.b2Sin = E,
t.b2Acos = M,
t.b2Asin = D,
t.b2Atan2 = B,
t.b2NextPowerOfTwo = function(t) {
return t |= t >> 1 & 2147483647,
t |= t >> 2 & 1073741823,
t |= t >> 4 & 268435455,
1 + ((t |= t >> 8 & 16777215) | 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 = I,
t.b2Vec2_zero = P,
t.b2Vec3 = R,
t.b2Mat22 = O,
t.b2Mat33 = L,
t.b2Rot = F,
t.b2Transform = V,
t.b2Sweep = N,
t.b2Color = k,
t.b2Draw = G,
t.b2Timer = U,
t.b2Counter = z,
t.b2GrowableStack = H,
t.b2BlockAllocator = function() {}
,
t.b2StackAllocator = function() {}
,
t.b2ContactFeature = pt,
t.b2ContactID = mt,
t.b2ManifoldPoint = yt,
t.b2Manifold = gt,
t.b2WorldManifold = At,
t.b2GetPointStates = function(e, i, n, r) {
var s;
for (s = 0; s < n.pointCount; ++s) {
var o = n.points[s].id.key;
e[s] = t.b2PointState.b2_removeState;
for (var l = 0, h = r.pointCount; l < h; ++l)
if (r.points[l].id.key === o) {
e[s] = t.b2PointState.b2_persistState;
break
}
}
for (; s < a; ++s)
e[s] = t.b2PointState.b2_nullState;
for (s = 0; s < r.pointCount; ++s)
for (o = r.points[s].id.key,
i[s] = t.b2PointState.b2_addState,
l = 0,
h = n.pointCount; l < h; ++l)
if (n.points[l].id.key === o) {
i[s] = t.b2PointState.b2_persistState;
break
}
for (; s < a; ++s)
i[s] = t.b2PointState.b2_nullState
}
,
t.b2ClipVertex = xt,
t.b2RayCastInput = bt,
t.b2RayCastOutput = Ct,
t.b2AABB = Tt,
t.b2TestOverlapAABB = St,
t.b2ClipSegmentToLine = wt,
t.b2TestOverlapShape = Bt,
t.b2DistanceProxy = W,
t.b2SimplexCache = j,
t.b2DistanceInput = X,
t.b2DistanceOutput = Y,
t.b2ShapeCastInput = function() {
this.proxyA = new W,
this.proxyB = new W,
this.transformA = new V,
this.transformB = new V,
this.translationB = new I
}
,
t.b2ShapeCastOutput = function() {
this.point = new I,
this.normal = new I,
this.lambda = 0,
this.iterations = 0
}
,
t.b2_gjk_reset = function() {
t.b2_gjkCalls = 0,
t.b2_gjkIters = 0,
t.b2_gjkMaxIters = 0
}
,
t.b2SimplexVertex = q,
t.b2Simplex = J,
t.b2Distance = rt,
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 = v(i.m_radius, c) + v(n.m_radius, c)
, s = e.transformA
, a = e.transformB
, o = e.translationB
, h = at.Set(0, 0)
, u = 0
, _ = ot;
_.m_count = 0;
for (var f = _.m_vertices, d = i.GetSupport(F.MulTRV(s.q, I.NegV(o, I.s_t1), I.s_t0)), p = V.MulXV(s, i.GetVertex(d), lt), y = n.GetSupport(F.MulTRV(a.q, o, I.s_t0)), g = V.MulXV(a, n.GetVertex(y), ht), A = I.SubVV(p, g, ct), x = v(c, r - c), b = .5 * l, C = 0; C < 20 && m(A.Length() - x) > b; ) {
t.iterations += 1,
d = i.GetSupport(F.MulTRV(s.q, I.NegV(A, I.s_t1), I.s_t0)),
p = V.MulXV(s, i.GetVertex(d), lt),
y = n.GetSupport(F.MulTRV(a.q, A, I.s_t0)),
g = V.MulXV(a, n.GetVertex(y), ht);
var T = I.SubVV(p, g, ut);
A.Normalize();
var S = I.DotVV(A, T)
, w = I.DotVV(A, o);
if (S - x > u * w) {
if (w <= 0)
return !1;
if ((u = (S - x) / w) > 1)
return !1;
h.Copy(A).SelfNeg(),
_.m_count = 0
}
var E = f[_.m_count];
switch (E.indexA = y,
E.wA.Copy(g).SelfMulAdd(u, o),
E.indexB = d,
E.wB.Copy(p),
E.w.Copy(E.wB).SelfSub(E.wA),
E.a = 1,
_.m_count += 1,
_.m_count) {
case 1:
break;
case 2:
_.Solve2();
break;
case 3:
_.Solve3()
}
if (3 === _.m_count)
return !1;
_.GetClosestPoint(A),
++C
}
var M = _t
, D = ft;
return _.GetWitnessPoints(M, D),
A.LengthSquared() > 0 && (h.Copy(A).SelfNeg(),
h.Normalize()),
t.normal.Copy(h),
t.lambda = u,
t.iterations = C,
!0
}
,
t.b2Pair = Ot,
t.b2BroadPhase = Lt,
t.b2PairLessThan = Ft,
t.b2TreeNode = Pt,
t.b2DynamicTree = Rt,
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 = jt,
t.b2TOIOutput = Yt,
t.b2SeparationFunction = qt,
t.b2TimeOfImpact = re,
t.b2CollideCircles = oe,
t.b2CollidePolygonAndCircle = ue,
t.b2CollidePolygons = Le,
t.b2CollideEdgeAndCircle = We,
t.b2CollideEdgeAndPolygon = Je,
t.b2MassData = Ke,
t.b2Shape = Qe,
t.b2CircleShape = ii,
t.b2PolygonShape = ni,
t.b2EdgeShape = ri,
t.b2ChainShape = si,
t.b2Filter = ai,
t.b2FixtureDef = oi,
t.b2FixtureProxy = li,
t.b2Fixture = hi,
t.b2BodyDef = function() {
this.type = t.b2BodyType.b2_staticBody,
this.position = new I(0,0),
this.angle = 0,
this.linearVelocity = new I(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
}
,
t.b2Body = _i,
t.b2World = jn,
t.b2DestructionListener = en,
t.b2ContactFilter = nn,
t.b2ContactImpulse = rn,
t.b2ContactListener = sn,
t.b2QueryCallback = an,
t.b2RayCastCallback = on,
t.b2Island = An,
t.b2Profile = hn,
t.b2TimeStep = cn,
t.b2Position = un,
t.b2Velocity = _n,
t.b2SolverData = fn,
t.b2ContactManager = ln,
t.b2MixFriction = Ui,
t.b2MixRestitution = zi,
t.b2ContactEdge = Wi,
t.b2Contact = ji,
t.b2ContactRegister = $i,
t.b2ContactFactory = tn,
t.g_blockSolve = !1,
t.b2VelocityConstraintPoint = dn,
t.b2ContactVelocityConstraint = pn,
t.b2ContactPositionConstraint = mn,
t.b2ContactSolverDef = yn,
t.b2PositionSolverManifold = vn,
t.b2ContactSolver = gn,
t.b2CircleContact = Xi,
t.b2PolygonContact = Yi,
t.b2PolygonAndCircleContact = qi,
t.b2EdgeAndCircleContact = Ji,
t.b2EdgeAndPolygonContact = Zi,
t.b2ChainAndCircleContact = Ki,
t.b2ChainAndPolygonContact = Qi,
t.b2Jacobian = fi,
t.b2JointEdge = di,
t.b2JointDef = pi,
t.b2Joint = mi,
t.b2AreaJointDef = gi,
t.b2AreaJoint = Ai,
t.b2DistanceJointDef = yi,
t.b2DistanceJoint = vi,
t.b2FrictionJointDef = xi,
t.b2FrictionJoint = bi,
t.b2GearJointDef = Ci,
t.b2GearJoint = Ti,
t.b2MotorJointDef = Si,
t.b2MotorJoint = wi,
t.b2MouseJointDef = Ei,
t.b2MouseJoint = Mi,
t.b2PrismaticJointDef = Di,
t.b2PrismaticJoint = Bi,
t.b2_minPulleyLength = 2,
t.b2PulleyJointDef = Ii,
t.b2PulleyJoint = Pi,
t.b2RevoluteJointDef = Ri,
t.b2RevoluteJoint = Oi,
t.b2RopeJointDef = Li,
t.b2RopeJoint = Fi,
t.b2WeldJointDef = Vi,
t.b2WeldJoint = Ni,
t.b2WheelJointDef = ki,
t.b2WheelJoint = Gi,
t.b2ControllerEdge = Xn,
t.b2Controller = Yn,
t.b2BuoyancyController = qn,
t.b2ConstantAccelController = Jn,
t.b2ConstantForceController = Zn,
t.b2GravityController = Kn,
t.b2TensorDampingController = Qn,
t.b2ParticleDef = xn,
t.b2CalculateParticleIterations = bn,
t.b2ParticleHandle = Tn,
t.b2ParticleGroupDef = Sn,
t.b2ParticleGroup = wn,
t.b2GrowableBuffer = Nn,
t.b2FixtureParticleQueryCallback = kn,
t.b2ParticleContact = Gn,
t.b2ParticleBodyContact = Un,
t.b2ParticlePair = zn,
t.b2ParticleTriad = Hn,
t.b2ParticleSystemDef = Wn,
t.b2RopeDef = function() {
this.vertices = [],
this.count = 0,
this.masses = [],
this.gravity = new I(0,0),
this.damping = .1,
this.k2 = .9,
this.k3 = .1
}
,
t.b2Rope = $n,
Object.defineProperty(t, "__esModule", {
value: !0
})
}
,
"object" == typeof i && void 0 !== e ? n(i) : "function" == typeof define && define.amd ? define(["exports"], n) : n((void 0).box2d = {})
}
), {}],
378: [(function(t, e) {
"use strict";
var i = "undefined" == typeof window ? global : window;
i.cc = i.cc || {},
cc.internal = cc.internal || {},
t("./predefine"),
t("./polyfill/string"),
t("./polyfill/misc"),
t("./polyfill/array"),
t("./polyfill/object"),
t("./polyfill/array-buffer"),
t("./polyfill/number"),
t("./polyfill/typescript"),
t("./cocos2d/core/predefine"),
t("./cocos2d"),
t("./extends"),
e.exports = i.cc
}
), {
"./cocos2d": 295,
"./cocos2d/core/predefine": 218,
"./extends": 353,
"./package": void 0,
"./polyfill/array": 380,
"./polyfill/array-buffer": 379,
"./polyfill/misc": 381,
"./polyfill/number": 382,
"./polyfill/object": 383,
"./polyfill/string": 384,
"./polyfill/typescript": void 0,
"./predefine": 385
}],
379: [(function() {
"use strict";
if (!ArrayBuffer.isView) {
var t = Object.getPrototypeOf(Int8Array);
ArrayBuffer.isView = "function" == typeof t ? function(e) {
return e instanceof t
}
: function(t) {
if ("object" != typeof t)
return !1;
var e = t.constructor;
return e === Float64Array || e === Float32Array || e === Uint8Array || e === Uint32Array || e === Int8Array
}
}
}
), {}],
380: [(function() {
"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)
}
)
}
), {}],
381: [(function() {
"use strict";
if (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(t) {
return "number" == typeof t && isFinite(t) && Math.floor(t) === t
}
),
!console.time) {
var t = window.performance || Date
, e = Object.create(null);
console.time = function(i) {
e[i] = t.now()
}
,
console.timeEnd = function(i) {
var n = e[i]
, r = t.now() - n;
console.log(i + ": " + r + "ms")
}
}
}
), {}],
382: [(function() {
"use strict";
Number.parseFloat = Number.parseFloat || parseFloat,
Number.parseInt = Number.parseInt || parseInt
}
), {}],
383: [(function() {
"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
}
)
}
), {}],
384: [(function() {
"use strict";
String.prototype.startsWith || (String.prototype.startsWith = function(t, e) {
return e = e || 0,
this.lastIndexOf(t, e) === e
}
),
String.prototype.endsWith || (String.prototype.endsWith = function(t, e) {
(void 0 === e || e > this.length) && (e = this.length),
e -= t.length;
var i = this.indexOf(t, e);
return -1 !== i && i === e
}
),
String.prototype.trimLeft || (String.prototype.trimLeft = function() {
return this.replace(/^\s+/, "")
}
)
}
), {}],
385: [(function() {
"use strict";
var t = "undefined" == typeof window ? global : window;
function e(e, i) {
void 0 === t[e] && Object.defineProperty(t, e, {
get: function() {
var t;
return "CC_WECHATGAMESUB" === e ? t = "cc.sys.platform === cc.sys.WECHAT_GAME_SUB" : "CC_WECHATGAME" === e ? t = "cc.sys.platform === cc.sys.WECHAT_GAME" : "CC_QQPLAY" === e && (t = "cc.sys.platform === cc.sys.QQ_PLAY"),
cc.warnID(1400, e, t),
i
}
})
}
function i(e) {
return "object" == typeof t[e]
}
(function(e, i) {
void 0 === t[e] && (t[e] = i)
}
)("CC_BUILD", !1),
t.CC_BUILD = !0,
t.CC_DEV = !1,
t.CC_DEBUG = !1,
t.CC_JSB = !1,
t.CC_NATIVERENDERER = !1,
t.CC_SUPPORT_JIT = !0,
t.CC_PHYSICS_BUILTIN = !1,
t.CC_PHYSICS_CANNON = !1,
t.CC_EDITOR = !1,
t.CC_PREVIEW = !1,
t.CC_TEST = !1,
t.CC_RUNTIME = !1,
t.CC_JSB = !1;
var n = !(!i("wx") || !wx.getSharedCanvas)
, r = !(!i("wx") || !wx.getSystemInfoSync && !wx.getSharedCanvas)
, s = i("bk");
e("CC_WECHATGAMESUB", n),
e("CC_WECHATGAME", r),
e("CC_QQPLAY", s),
t.CocosEngine = cc.ENGINE_VERSION = "2.4.5"
}
), {}]
}, {}, [378]);