kt-blog-web/public/live2d/wordpress-moc/live2d.min.js

8908 lines
230 KiB
JavaScript

(function() {
var j = true;
function aa() {
if (j) {
return
}
this._$MT = null;
this._$5S = null;
this._$NP = 0;
aa._$42++;
this._$5S = new y(this)
}
aa._$0s = 1;
aa._$4s = 2;
aa._$42 = 0;
aa._$62 = function(aQ, aU) {
try {
if (aU instanceof ArrayBuffer) {
aU = new DataView(aU)
}
if (!(aU instanceof DataView)) {
throw new J("_$SS#loadModel(b) / b _$x be DataView or ArrayBuffer");
}
var aS = new K(aU);
var aM = aS._$ST();
var aK = aS._$ST();
var aJ = aS._$ST();
var aN;
if (aM == 109 && aK == 111 && aJ == 99) {
aN = aS._$ST()
} else {
throw new J("_$gi _$C _$li , _$Q0 _$P0.");
}
aS._$gr(aN);
if (aN > ay._$T7) {
aQ._$NP |= aa._$4s;
var aR = ay._$T7;
var aI = "_$gi _$C _$li , _$n0 _$_ version _$li ( SDK : " + aR + " < _$f0 : " + aN + " )@_$SS#loadModel()\n";
throw new J(aI);
}
var aL = aS._$nP();
if (aN >= ay._$s7) {
var aH = aS._$9T();
var aT = aS._$9T();
if (aH != -30584 || aT != -30584) {
aQ._$NP |= aa._$0s;
throw new J("_$gi _$C _$li , _$0 _$6 _$Ui.");
}
}
aQ._$KS(aL);
var aP = aQ.getModelContext();
aP.setDrawParam(aQ.getDrawParam());
aP.init()
} catch (aO) {
q._$Rb(aO)
}
};
aa.prototype._$KS = function(aH) {
this._$MT = aH
};
aa.prototype.getModelImpl = function() {
if (this._$MT == null) {
this._$MT = new w();
this._$MT._$zP()
}
return this._$MT
};
aa.prototype.getCanvasWidth = function() {
if (this._$MT == null) {
return 0
}
return this._$MT.getCanvasWidth()
};
aa.prototype.getCanvasHeight = function() {
if (this._$MT == null) {
return 0
}
return this._$MT.getCanvasHeight()
};
aa.prototype.getParamFloat = function(aH) {
if (typeof aH != "number") {
aH = this._$5S.getParamIndex(z.getID(aH))
}
return this._$5S.getParamFloat(aH)
};
aa.prototype.setParamFloat = function(aH, aJ, aI) {
if (typeof aH != "number") {
aH = this._$5S.getParamIndex(z.getID(aH))
}
if (arguments.length < 3) {
aI = 1
}
this._$5S.setParamFloat(aH, this._$5S.getParamFloat(aH) * (1 - aI) + aJ * aI)
};
aa.prototype.addToParamFloat = function(aH, aJ, aI) {
if (typeof aH != "number") {
aH = this._$5S.getParamIndex(z.getID(aH))
}
if (arguments.length < 3) {
aI = 1
}
this._$5S.setParamFloat(aH, this._$5S.getParamFloat(aH) + aJ * aI)
};
aa.prototype.multParamFloat = function(aH, aJ, aI) {
if (typeof aH != "number") {
aH = this._$5S.getParamIndex(z.getID(aH))
}
if (arguments.length < 3) {
aI = 1
}
this._$5S.setParamFloat(aH, this._$5S.getParamFloat(aH) * (1 + (aJ - 1) * aI))
};
aa.prototype.getParamIndex = function(aH) {
return this._$5S.getParamIndex(z.getID(aH))
};
aa.prototype.loadParam = function() {
this._$5S.loadParam()
};
aa.prototype.saveParam = function() {
this._$5S.saveParam()
};
aa.prototype.init = function() {
this._$5S.init()
};
aa.prototype.update = function() {
this._$5S.update()
};
aa.prototype._$Rs = function() {
q._$li("_$60 _$PT _$Rs()");
return -1
};
aa.prototype._$Ds = function(aH) {
q._$li("_$60 _$PT _$SS#_$Ds() \n")
};
aa.prototype._$K2 = function() {};
aa.prototype.draw = function() {};
aa.prototype.getModelContext = function() {
return this._$5S
};
aa.prototype._$s2 = function() {
return this._$NP
};
aa.prototype._$P7 = function(aK, aR, aH, a0) {
var aU = -1;
var aY = 0;
var aM = this;
var aJ = 0.5;
var aI = 0.15;
var aX = true;
if (aH == 0) {
for (var aV = 0; aV < aK.length; aV++) {
var aP = aK[aV];
var aO = aR[aV];
var aS = (aM.getParamFloat(aP) != 0);
aM.setPartsOpacity(aO, (aS ? 1 : 0))
}
return
} else {
if (aK.length == 1) {
var aP = aK[0];
var aT = (aM.getParamFloat(aP) != 0);
var aO = aR[0];
var aQ = aM.getPartsOpacity(aO);
var aW = aH / a0;
if (aT) {
aQ += aW;
if (aQ > 1) {
aQ = 1
}
} else {
aQ -= aW;
if (aQ < 0) {
aQ = 0
}
}
aM.setPartsOpacity(aO, aQ)
} else {
for (var aV = 0; aV < aK.length; aV++) {
var aP = aK[aV];
var aS = (aM.getParamFloat(aP) != 0);
if (aS) {
if (aU >= 0) {
break
}
aU = aV;
var aO = aR[aV];
aY = aM.getPartsOpacity(aO);
aY += aH / a0;
if (aY > 1) {
aY = 1
}
}
}
if (aU < 0) {
console.log("No _$wi _$q0/ _$U default[%s]", aK[0]);
aU = 0;
aY = 1;
aM.loadParam();
aM.setParamFloat(aK[aU], aY);
aM.saveParam()
}
for (var aV = 0; aV < aK.length; aV++) {
var aO = aR[aV];
if (aU == aV) {
aM.setPartsOpacity(aO, aY)
} else {
var aL = aM.getPartsOpacity(aO);
var aZ;
if (aY < aJ) {
aZ = aY * (aJ - 1) / aJ + 1
} else {
aZ = (1 - aY) * aJ / (1 - aJ)
}
if (aX) {
var aN = (1 - aZ) * (1 - aY);
if (aN > aI) {
aZ = 1 - aI / (1 - aY)
}
}
if (aL > aZ) {
aL = aZ
}
aM.setPartsOpacity(aO, aL)
}
}
}
}
};
aa.prototype.setPartsOpacity = function(aI, aH) {
if (typeof aI != "number") {
aI = this._$5S.getPartsDataIndex(i.getID(aI))
}
this._$5S.setPartsOpacity(aI, aH)
};
aa.prototype.getPartsDataIndex = function(aH) {
if (!(aH instanceof i)) {
aH = i.getID(aH)
}
return this._$5S.getPartsDataIndex(aH)
};
aa.prototype.getPartsOpacity = function(aH) {
if (typeof aH != "number") {
aH = this._$5S.getPartsDataIndex(i.getID(aH))
}
if (aH < 0) {
return 0
}
return this._$5S.getPartsOpacity(aH)
};
aa.prototype.getDrawParam = function() {};
aa.prototype.getDrawDataIndex = function(aH) {
return this._$5S.getDrawDataIndex(Z.getID(aH))
};
aa.prototype.getDrawData = function(aH) {
return this._$5S.getDrawData(aH)
};
aa.prototype.getTransformedPoints = function(aH) {
var aI = this._$5S._$C2(aH);
if (aI instanceof ag) {
return (aI).getTransformedPoints()
}
return null
};
aa.prototype.getIndexArray = function(aI) {
if (aI < 0 || aI >= this._$5S._$aS.length) {
return null
}
var aH = this._$5S._$aS[aI];
if (aH != null && aH.getType() == a._$wb) {
if (aH instanceof b) {
return aH.getIndexArray()
}
}
return null
};
function W(aJ) {
if (j) {
return
}
this.clipContextList = new Array();
this.glcontext = aJ.gl;
this.dp_webgl = aJ;
this.curFrameNo = 0;
this.firstError_clipInNotUpdate = true;
this.colorBuffer = 0;
this.isInitGLFBFunc = false;
this.tmpBoundsOnModel = new av();
if (Q.glContext.length > Q.frameBuffers.length) {
this.curFrameNo = this.getMaskRenderTexture()
} else {}
this.tmpModelToViewMatrix = new ac();
this.tmpMatrix2 = new ac();
this.tmpMatrixForMask = new ac();
this.tmpMatrixForDraw = new ac();
this.CHANNEL_COLORS = new Array();
var aI = new o();
aI = new o();
aI.r = 0;
aI.g = 0;
aI.b = 0;
aI.a = 1;
this.CHANNEL_COLORS.push(aI);
aI = new o();
aI.r = 1;
aI.g = 0;
aI.b = 0;
aI.a = 0;
this.CHANNEL_COLORS.push(aI);
aI = new o();
aI.r = 0;
aI.g = 1;
aI.b = 0;
aI.a = 0;
this.CHANNEL_COLORS.push(aI);
aI = new o();
aI.r = 0;
aI.g = 0;
aI.b = 1;
aI.a = 0;
this.CHANNEL_COLORS.push(aI);
for (var aH = 0; aH < this.CHANNEL_COLORS.length; aH++) {
this.dp_webgl.setChannelFlagAsColor(aH, this.CHANNEL_COLORS[aH])
}
}
W.CHANNEL_COUNT = 4;
W.RENDER_TEXTURE_USE_MIPMAP = false;
W.NOT_USED_FRAME = -100;
W.prototype._$L7 = function() {
if (this.tmpModelToViewMatrix) {
this.tmpModelToViewMatrix = null
}
if (this.tmpMatrix2) {
this.tmpMatrix2 = null
}
if (this.tmpMatrixForMask) {
this.tmpMatrixForMask = null
}
if (this.tmpMatrixForDraw) {
this.tmpMatrixForDraw = null
}
if (this.tmpBoundsOnModel) {
this.tmpBoundsOnModel = null
}
if (this.CHANNEL_COLORS) {
for (var aH = this.CHANNEL_COLORS.length - 1; aH >= 0; --aH) {
this.CHANNEL_COLORS.splice(aH, 1)
}
this.CHANNEL_COLORS = []
}
this.releaseShader()
};
W.prototype.releaseShader = function() {
var aI = Q.frameBuffers.length;
for (var aH = 0; aH < aI; aH++) {
this.gl.deleteFramebuffer(Q.frameBuffers[aH].framebuffer)
}
Q.frameBuffers = [];
Q.glContext = []
};
W.prototype.init = function(aO, aN, aL) {
for (var aM = 0; aM < aN.length; aM++) {
var aH = aN[aM].getClipIDList();
if (aH == null) {
continue
}
var aJ = this.findSameClip(aH);
if (aJ == null) {
aJ = new U(this, aO, aH);
this.clipContextList.push(aJ)
}
var aI = aN[aM].getDrawDataID();
var aK = aO.getDrawDataIndex(aI);
aJ.addClippedDrawData(aI, aK);
var aP = aL[aM];
aP.clipBufPre_clipContext = aJ
}
};
W.prototype.getMaskRenderTexture = function() {
var aH = null;
aH = this.dp_webgl.createFramebuffer();
Q.frameBuffers[this.dp_webgl.glno] = aH;
return this.dp_webgl.glno
};
W.prototype.setupClip = function(a1, aQ) {
var aK = 0;
for (var aO = 0; aO < this.clipContextList.length; aO++) {
var aP = this.clipContextList[aO];
this.calcClippedDrawTotalBounds(a1, aP);
if (aP.isUsing) {
aK++
}
}
if (aK > 0) {
var aM = aQ.gl.getParameter(aQ.gl.FRAMEBUFFER_BINDING);
var aW = new Array(4);
aW[0] = 0;
aW[1] = 0;
aW[2] = aQ.gl.canvas.width;
aW[3] = aQ.gl.canvas.height;
aQ.gl.viewport(0, 0, Q.clippingMaskBufferSize, Q.clippingMaskBufferSize);
this.setupLayoutBounds(aK);
aQ.gl.bindFramebuffer(aQ.gl.FRAMEBUFFER, Q.frameBuffers[this.curFrameNo].framebuffer);
aQ.gl.clearColor(0, 0, 0, 0);
aQ.gl.clear(aQ.gl.COLOR_BUFFER_BIT);
for (var aO = 0; aO < this.clipContextList.length; aO++) {
var aP = this.clipContextList[aO];
var aT = aP.allClippedDrawRect;
var aN = aP.layoutChannelNo;
var aV = aP.layoutBounds;
var aJ = 0.05;
this.tmpBoundsOnModel._$jL(aT);
this.tmpBoundsOnModel.expand(aT.width * aJ, aT.height * aJ);
var aZ = aV.width / this.tmpBoundsOnModel.width;
var aY = aV.height / this.tmpBoundsOnModel.height;
this.tmpMatrix2.identity();
this.tmpMatrix2.translate(-1, -1, 0);
this.tmpMatrix2.scale(2, 2, 1);
this.tmpMatrix2.translate(aV.x, aV.y, 0);
this.tmpMatrix2.scale(aZ, aY, 1);
this.tmpMatrix2.translate(-this.tmpBoundsOnModel.x, -this.tmpBoundsOnModel.y, 0);
this.tmpMatrixForMask.setMatrix(this.tmpMatrix2.m);
this.tmpMatrix2.identity();
this.tmpMatrix2.translate(aV.x, aV.y, 0);
this.tmpMatrix2.scale(aZ, aY, 1);
this.tmpMatrix2.translate(-this.tmpBoundsOnModel.x, -this.tmpBoundsOnModel.y, 0);
this.tmpMatrixForDraw.setMatrix(this.tmpMatrix2.m);
var aH = this.tmpMatrixForMask.getArray();
for (var aX = 0; aX < 16; aX++) {
aP.matrixForMask[aX] = aH[aX]
}
var a0 = this.tmpMatrixForDraw.getArray();
for (var aX = 0; aX < 16; aX++) {
aP.matrixForDraw[aX] = a0[aX]
}
var aS = aP.clippingMaskDrawIndexList.length;
for (var aU = 0; aU < aS; aU++) {
var aR = aP.clippingMaskDrawIndexList[aU];
var aI = a1.getDrawData(aR);
var aL = a1._$C2(aR);
aQ.setClipBufPre_clipContextForMask(aP);
aI.draw(aQ, a1, aL)
}
}
aQ.gl.bindFramebuffer(aQ.gl.FRAMEBUFFER, aM);
aQ.setClipBufPre_clipContextForMask(null);
aQ.gl.viewport(aW[0], aW[1], aW[2], aW[3])
}
};
W.prototype.getColorBuffer = function() {
return this.colorBuffer
};
W.prototype.findSameClip = function(aK) {
for (var aN = 0; aN < this.clipContextList.length; aN++) {
var aO = this.clipContextList[aN];
var aH = aO.clipIDList.length;
if (aH != aK.length) {
continue
}
var aI = 0;
for (var aM = 0; aM < aH; aM++) {
var aL = aO.clipIDList[aM];
for (var aJ = 0; aJ < aH; aJ++) {
if (aK[aJ] == aL) {
aI++;
break
}
}
}
if (aI == aH) {
return aO
}
}
return null
};
W.prototype.calcClippedDrawTotalBounds = function(a6, aV) {
var aU = a6._$Ri.getModelImpl().getCanvasWidth();
var a5 = a6._$Ri.getModelImpl().getCanvasHeight();
var aJ = aU > a5 ? aU : a5;
var aT = aJ;
var aR = aJ;
var aS = 0;
var aP = 0;
var aL = aV.clippedDrawContextList.length;
for (var aM = 0; aM < aL; aM++) {
var aW = aV.clippedDrawContextList[aM];
var aN = aW.drawDataIndex;
var aK = a6._$C2(aN);
if (aK._$yo()) {
var aX = aK.getTransformedPoints();
var a4 = aX.length;
var aI = [];
var aH = [];
var aO = 0;
for (var a3 = aw._$i2; a3 < a4; a3 += aw._$No) {
aI[aO] = aX[a3];
aH[aO] = aX[a3 + 1];
aO++
}
var a2 = Math.min.apply(null, aI);
var a1 = Math.min.apply(null, aH);
var a0 = Math.max.apply(null, aI);
var aZ = Math.max.apply(null, aH);
if (a2 < aT) {
aT = a2
}
if (a1 < aR) {
aR = a1
}
if (a0 > aS) {
aS = a0
}
if (aZ > aP) {
aP = aZ
}
}
}
if (aT == aJ) {
aV.allClippedDrawRect.x = 0;
aV.allClippedDrawRect.y = 0;
aV.allClippedDrawRect.width = 0;
aV.allClippedDrawRect.height = 0;
aV.isUsing = false
} else {
var aQ = aS - aT;
var aY = aP - aR;
aV.allClippedDrawRect.x = aT;
aV.allClippedDrawRect.y = aR;
aV.allClippedDrawRect.width = aQ;
aV.allClippedDrawRect.height = aY;
aV.isUsing = true
}
};
W.prototype.setupLayoutBounds = function(aQ) {
var aI = aQ / W.CHANNEL_COUNT;
var aP = aQ % W.CHANNEL_COUNT;
aI = ~~aI;
aP = ~~aP;
var aH = 0;
for (var aJ = 0; aJ < W.CHANNEL_COUNT; aJ++) {
var aM = aI + (aJ < aP ? 1 : 0);
if (aM == 0) {} else {
if (aM == 1) {
var aL = this.clipContextList[aH++];
aL.layoutChannelNo = aJ;
aL.layoutBounds.x = 0;
aL.layoutBounds.y = 0;
aL.layoutBounds.width = 1;
aL.layoutBounds.height = 1
} else {
if (aM == 2) {
for (var aO = 0; aO < aM; aO++) {
var aN = aO % 2;
var aK = 0;
aN = ~~aN;
var aL = this.clipContextList[aH++];
aL.layoutChannelNo = aJ;
aL.layoutBounds.x = aN * 0.5;
aL.layoutBounds.y = 0;
aL.layoutBounds.width = 0.5;
aL.layoutBounds.height = 1
}
} else {
if (aM <= 4) {
for (var aO = 0; aO < aM; aO++) {
var aN = aO % 2;
var aK = aO / 2;
aN = ~~aN;
aK = ~~aK;
var aL = this.clipContextList[aH++];
aL.layoutChannelNo = aJ;
aL.layoutBounds.x = aN * 0.5;
aL.layoutBounds.y = aK * 0.5;
aL.layoutBounds.width = 0.5;
aL.layoutBounds.height = 0.5
}
} else {
if (aM <= 9) {
for (var aO = 0; aO < aM; aO++) {
var aN = aO % 3;
var aK = aO / 3;
aN = ~~aN;
aK = ~~aK;
var aL = this.clipContextList[aH++];
aL.layoutChannelNo = aJ;
aL.layoutBounds.x = aN / 3;
aL.layoutBounds.y = aK / 3;
aL.layoutBounds.width = 1 / 3;
aL.layoutBounds.height = 1 / 3
}
} else {
q._$li("_$6 _$0P mask count : %d", aM)
}
}
}
}
}
}
};
function U(aH, aK, aI) {
this.clipIDList = new Array();
this.clipIDList = aI;
this.clippingMaskDrawIndexList = new Array();
for (var aJ = 0; aJ < aI.length; aJ++) {
this.clippingMaskDrawIndexList.push(aK.getDrawDataIndex(aI[aJ]))
}
this.clippedDrawContextList = new Array();
this.isUsing = true;
this.layoutChannelNo = 0;
this.layoutBounds = new av();
this.allClippedDrawRect = new av();
this.matrixForMask = new Float32Array(16);
this.matrixForDraw = new Float32Array(16);
this.owner = aH
}
U.prototype.addClippedDrawData = function(aJ, aI) {
var aH = new R(aJ, aI);
this.clippedDrawContextList.push(aH)
};
function R(aI, aH) {
this._$gP = aI;
this.drawDataIndex = aH
}
function I() {
if (j) {
return
}
this.color = null
}
function ah() {
if (j) {
return
}
this._$dP = null;
this._$eo = null;
this._$V0 = null;
this._$dP = 1000;
this._$eo = 1000;
this._$V0 = 1;
this._$a0()
}
ah._$JT = function(aP, aN, aO) {
var aQ = aP / aN;
var a1 = aO / aN;
var aU = a1;
var aZ = 1 / 3;
var aR = 2 / 3;
var a0 = 1 - (1 - a1) * (1 - a1);
var a2 = 1 - (1 - aU) * (1 - aU);
var aM = 0;
var aL = ((1 - a1) * aZ) * a0 + (aU * aR + (1 - aU) * aZ) * (1 - a0);
var aK = (aU + (1 - aU) * aR) * a2 + (a1 * aZ + (1 - a1) * aR) * (1 - a2);
var aJ = 1;
var aY = aJ - 3 * aK + 3 * aL - aM;
var aX = 3 * aK - 6 * aL + 3 * aM;
var aW = 3 * aL - 3 * aM;
var aV = aM;
if (aQ <= 0) {
return 0
} else {
if (aQ >= 1) {
return 1
}
}
var aS = aQ;
var aI = aS * aS;
var aH = aS * aI;
var aT = aY * aH + aX * aI + aW * aS + aV;
return aT
};
ah.prototype._$a0 = function() {};
ah.prototype.setFadeIn = function(aH) {
this._$dP = aH
};
ah.prototype.setFadeOut = function(aH) {
this._$eo = aH
};
ah.prototype._$pT = function(aH) {
this._$V0 = aH
};
ah.prototype.getFadeOut = function() {
return this._$eo
};
ah.prototype._$4T = function() {
return this._$eo
};
ah.prototype._$mT = function() {
return this._$V0
};
ah.prototype.getDurationMSec = function() {
return -1
};
ah.prototype.getLoopDurationMSec = function() {
return -1
};
ah.prototype.updateParam = function(aJ, aN) {
if (!aN._$AT || aN._$9L) {
return
}
var aL = P.getUserTimeMSec();
if (aN._$z2 < 0) {
aN._$z2 = aL;
aN._$bs = aL;
var aM = this.getDurationMSec();
if (aN._$Do < 0) {
aN._$Do = (aM <= 0) ? -1 : aN._$z2 + aM
}
}
var aI = this._$V0;
var aH = (this._$dP == 0) ? 1 : A._$r2(((aL - aN._$bs) / (this._$dP)));
var aK = (this._$eo == 0 || aN._$Do < 0) ? 1 : A._$r2(((aN._$Do - aL) / (this._$eo)));
aI = aI * aH * aK;
if (!((0 <= aI && aI <= 1))) {
console.log("### assert!! ### ")
}
this.updateParamExe(aJ, aL, aI, aN);
if (aN._$Do > 0 && aN._$Do < aL) {
aN._$9L = true
}
};
ah.prototype.updateParamExe = function(aH, aI, aJ, aK) {};
function q() {}
q._$8s = 0;
q._$fT = new Object();
q.start = function(aI) {
var aH = q._$fT[aI];
if (aH == null) {
aH = new af();
aH._$r = aI;
q._$fT[aI] = aH
}
aH._$0S = P.getSystemTimeMSec()
};
q.dump = function(aJ) {
var aH = q._$fT[aJ];
if (aH != null) {
var aI = P.getSystemTimeMSec();
var aK = aI - aH._$0S;
console.log(aJ + " : " + aK + "ms");
return aK
} else {
return -1
}
};
q.end = function(aJ) {
var aH = q._$fT[aJ];
if (aH != null) {
var aI = P.getSystemTimeMSec();
return aI - aH._$0S
} else {
return -1
}
};
q._$li = function(aI, aH) {
console.log("_$li : " + aI + "\n", aH)
};
q._$Ji = function(aI, aH) {
console.log(aI, aH)
};
q._$dL = function(aI, aH) {
console.log(aI, aH);
console.log("\n")
};
q._$KL = function(aJ, aI) {
for (var aH = 0; aH < aI; aH++) {
if (aH % 16 == 0 && aH > 0) {
console.log("\n")
} else {
if (aH % 8 == 0 && aH > 0) {
console.log(" ")
}
}
console.log("%02X ", (aJ[aH] & 255))
}
console.log("\n")
};
q._$nr = function(aL, aI, aK) {
console.log("%s\n", aL);
var aH = aI.length;
for (var aJ = 0; aJ < aH; ++aJ) {
console.log("%5d", aI[aJ]);
console.log("%s\n", aK);
console.log(",")
}
console.log("\n")
};
q._$Rb = function(aH) {
console.log("dump exception : " + aH);
console.log("stack :: " + aH.stack)
};
function af() {
this._$r = null;
this._$0S = null
}
function F() {
if (j) {
return
}
this.x = null;
this.y = null;
this.width = null;
this.height = null
}
F.prototype._$8P = function() {
return 0.5 * (this.x + this.x + this.width)
};
F.prototype._$6P = function() {
return 0.5 * (this.y + this.y + this.height)
};
F.prototype._$EL = function() {
return this.x + this.width
};
F.prototype._$5T = function() {
return this.y + this.height
};
F.prototype._$jL = function(aI, aK, aJ, aH) {
this.x = aI;
this.y = aK;
this.width = aJ;
this.height = aH
};
F.prototype._$jL = function(aH) {
this.x = aH.x;
this.y = aH.y;
this.width = aH.width;
this.height = aH.height
};
function i(aH) {
if (j) {
return
}
ak.prototype.constructor.call(this, aH)
}
i.prototype = new ak();
i._$tP = new Object();
i._$27 = function() {
i._$tP.clear()
};
i.getID = function(aH) {
var aI = i._$tP[aH];
if (aI == null) {
aI = new i(aH);
i._$tP[aH] = aI
}
return aI
};
i.prototype._$3s = function() {
return new i()
};
function S() {}
function z(aH) {
if (j) {
return
}
ak.prototype.constructor.call(this, aH)
}
z.prototype = new ak();
z._$tP = new Object();
z._$27 = function() {
z._$tP.clear()
};
z.getID = function(aH) {
var aI = z._$tP[aH];
if (aI == null) {
aI = new z(aH);
z._$tP[aH] = aI
}
return aI
};
z.prototype._$3s = function() {
return new z()
};
function w() {
if (j) {
return
}
this._$vo = null;
this._$F2 = null;
this._$ao = 400;
this._$1S = 400;
w._$42++
}
w._$42 = 0;
w.prototype._$zP = function() {
if (this._$vo == null) {
this._$vo = new an()
}
if (this._$F2 == null) {
this._$F2 = new Array()
}
};
w.prototype.getCanvasWidth = function() {
return this._$ao
};
w.prototype.getCanvasHeight = function() {
return this._$1S
};
w.prototype._$F0 = function(aH) {
this._$vo = aH._$nP();
this._$F2 = aH._$nP();
this._$ao = aH._$6L();
this._$1S = aH._$6L()
};
w.prototype._$6S = function(aH) {
this._$F2.push(aH)
};
w.prototype._$Xr = function() {
return this._$F2
};
w.prototype._$E2 = function() {
return this._$vo
};
function u() {
if (j) {
return
}
this.p1 = new N();
this.p2 = new N();
this._$Fo = 0;
this._$Db = 0;
this._$L2 = 0;
this._$M2 = 0;
this._$ks = 0;
this._$9b = 0;
this._$iP = 0;
this._$iT = 0;
this._$lL = new Array();
this._$qP = new Array();
this.setup(0.3, 0.5, 0.1)
}
u.prototype.setup = function(aJ, aI, aH) {
this._$ks = this._$Yb();
this.p2._$xT();
if (arguments.length == 3) {
this._$Fo = aJ;
this._$L2 = aI;
this.p1._$p = aH;
this.p2._$p = aH;
this.p2.y = aJ;
this.setup()
}
};
u.prototype.getPhysicsPoint1 = function() {
return this.p1
};
u.prototype.getPhysicsPoint2 = function() {
return this.p2
};
u.prototype._$qr = function() {
return this._$Db
};
u.prototype._$pr = function(aH) {
this._$Db = aH
};
u.prototype._$5r = function() {
return this._$M2
};
u.prototype._$Cs = function() {
return this._$9b
};
u.prototype._$Yb = function() {
return (-180 * (Math.atan2(this.p1.x - this.p2.x, -(this.p1.y - this.p2.y))) / Math.PI)
};
u.prototype.addSrcParam = function(aJ, aH, aL, aI) {
var aK = new h(aJ, aH, aL, aI);
this._$lL.push(aK)
};
u.prototype.addTargetParam = function(aJ, aH, aK, aI) {
var aL = new aF(aJ, aH, aK, aI);
this._$qP.push(aL)
};
u.prototype.update = function(aI, aL) {
if (this._$iP == 0) {
this._$iP = this._$iT = aL;
this._$Fo = (Math.sqrt((this.p1.x - this.p2.x) * (this.p1.x - this.p2.x) + (this.p1.y - this.p2.y) * (this.p1.y - this.p2.y)));
return
}
var aK = (aL - this._$iT) / 1000;
if (aK != 0) {
for (var aJ = this._$lL.length - 1; aJ >= 0; --aJ) {
var aM = this._$lL[aJ];
aM._$oP(aI, this)
}
this._$oo(aI, aK);
this._$M2 = this._$Yb();
this._$9b = (this._$M2 - this._$ks) / aK;
this._$ks = this._$M2
}
for (var aJ = this._$qP.length - 1; aJ >= 0; --aJ) {
var aH = this._$qP[aJ];
aH._$YS(aI, this)
}
this._$iT = aL
};
u.prototype._$oo = function(aN, aI) {
if (aI < 0.033) {
aI = 0.033
}
var aU = 1 / aI;
this.p1.vx = (this.p1.x - this.p1._$s0) * aU;
this.p1.vy = (this.p1.y - this.p1._$70) * aU;
this.p1.ax = (this.p1.vx - this.p1._$7L) * aU;
this.p1.ay = (this.p1.vy - this.p1._$HL) * aU;
this.p1.fx = this.p1.ax * this.p1._$p;
this.p1.fy = this.p1.ay * this.p1._$p;
this.p1._$xT();
var aM = -(Math.atan2((this.p1.y - this.p2.y), this.p1.x - this.p2.x));
var aL;
var aV;
var aR = Math.cos(aM);
var aH = Math.sin(aM);
var aW = 9.8 * this.p2._$p;
var aQ = (this._$Db * aC._$bS);
var aP = (aW * Math.cos(aM - aQ));
aL = (aP * aH);
aV = (aP * aR);
var aK = (-this.p1.fx * aH * aH);
var aT = (-this.p1.fy * aH * aR);
var aJ = ((-this.p2.vx * this._$L2));
var aS = ((-this.p2.vy * this._$L2));
this.p2.fx = ((aL + aK + aJ));
this.p2.fy = ((aV + aT + aS));
this.p2.ax = this.p2.fx / this.p2._$p;
this.p2.ay = this.p2.fy / this.p2._$p;
this.p2.vx += this.p2.ax * aI;
this.p2.vy += this.p2.ay * aI;
this.p2.x += this.p2.vx * aI;
this.p2.y += this.p2.vy * aI;
var aO = (Math.sqrt((this.p1.x - this.p2.x) * (this.p1.x - this.p2.x) + (this.p1.y - this.p2.y) * (this.p1.y - this.p2.y)));
this.p2.x = this.p1.x + this._$Fo * (this.p2.x - this.p1.x) / aO;
this.p2.y = this.p1.y + this._$Fo * (this.p2.y - this.p1.y) / aO;
this.p2.vx = (this.p2.x - this.p2._$s0) * aU;
this.p2.vy = (this.p2.y - this.p2._$70) * aU;
this.p2._$xT()
};
function N() {
this._$p = 1;
this.x = 0;
this.y = 0;
this.vx = 0;
this.vy = 0;
this.ax = 0;
this.ay = 0;
this.fx = 0;
this.fy = 0;
this._$s0 = 0;
this._$70 = 0;
this._$7L = 0;
this._$HL = 0
}
N.prototype._$xT = function() {
this._$s0 = this.x;
this._$70 = this.y;
this._$7L = this.vx;
this._$HL = this.vy
};
function at(aJ, aI, aH) {
this._$wL = null;
this.scale = null;
this._$V0 = null;
this._$wL = aJ;
this.scale = aI;
this._$V0 = aH
}
at.prototype._$oP = function(aI, aH) {};
function h(aJ, aK, aI, aH) {
at.prototype.constructor.call(this, aK, aI, aH);
this._$tL = null;
this._$tL = aJ
}
h.prototype = new at();
h.prototype._$oP = function(aJ, aH) {
var aK = this.scale * aJ.getParamFloat(this._$wL);
var aL = aH.getPhysicsPoint1();
switch (this._$tL) {
default:
case u.Src.SRC_TO_X:
aL.x = aL.x + (aK - aL.x) * this._$V0;
break;
case u.Src.SRC_TO_Y:
aL.y = aL.y + (aK - aL.y) * this._$V0;
break;
case u.Src.SRC_TO_G_ANGLE:
var aI = aH._$qr();
aI = aI + (aK - aI) * this._$V0;
aH._$pr(aI);
break
}
};
function d(aJ, aI, aH) {
this._$wL = null;
this.scale = null;
this._$V0 = null;
this._$wL = aJ;
this.scale = aI;
this._$V0 = aH
}
d.prototype._$YS = function(aI, aH) {};
function aF(aI, aK, aJ, aH) {
d.prototype.constructor.call(this, aK, aJ, aH);
this._$YP = null;
this._$YP = aI
}
aF.prototype = new d();
aF.prototype._$YS = function(aI, aH) {
switch (this._$YP) {
default:
case u.Target.TARGET_FROM_ANGLE:
aI.setParamFloat(this._$wL, this.scale * aH._$5r(), this._$V0);
break;
case u.Target.TARGET_FROM_ANGLE_V:
aI.setParamFloat(this._$wL, this.scale * aH._$Cs(), this._$V0);
break
}
};
u.Src = function() {};
u.Src.SRC_TO_X = "SRC_TO_X";
u.Src.SRC_TO_Y = "SRC_TO_Y";
u.Src.SRC_TO_G_ANGLE = "SRC_TO_G_ANGLE";
u.Target = function() {};
u.Target.TARGET_FROM_ANGLE = "TARGET_FROM_ANGLE";
u.Target.TARGET_FROM_ANGLE_V = "TARGET_FROM_ANGLE_V";
function X() {
if (j) {
return
}
this._$fL = 0;
this._$gL = 0;
this._$B0 = 1;
this._$z0 = 1;
this._$qT = 0;
this.reflectX = false;
this.reflectY = false
}
X.prototype.init = function(aH) {
this._$fL = aH._$fL;
this._$gL = aH._$gL;
this._$B0 = aH._$B0;
this._$z0 = aH._$z0;
this._$qT = aH._$qT;
this.reflectX = aH.reflectX;
this.reflectY = aH.reflectY
};
X.prototype._$F0 = function(aH) {
this._$fL = aH._$_T();
this._$gL = aH._$_T();
this._$B0 = aH._$_T();
this._$z0 = aH._$_T();
this._$qT = aH._$_T();
if (aH.getFormatVersion() >= ay.LIVE2D_FORMAT_VERSION_V2_10_SDK2) {
this.reflectX = aH._$po();
this.reflectY = aH._$po()
}
};
X.prototype._$e = function() {};
var ad = function() {};
ad._$ni = function(aL, aJ, aR, aQ, aK, aI, aH, aS, aN) {
var aM = (aH * aI - aS * aK);
if (aM == 0) {
return null
} else {
var aO = ((aL - aR) * aI - (aJ - aQ) * aK) / aM;
var aP;
if (aK != 0) {
aP = (aL - aR - aO * aH) / aK
} else {
aP = (aJ - aQ - aO * aS) / aI
}
if (isNaN(aP)) {
aP = (aL - aR - aO * aH) / aK;
if (isNaN(aP)) {
aP = (aJ - aQ - aO * aS) / aI
}
if (isNaN(aP)) {
console.log("a is NaN @UtVector#_$ni() ");
console.log("v1x : " + aK);
console.log("v1x != 0 ? " + (aK != 0))
}
}
if (aN == null) {
return new Array(aP, aO)
} else {
aN[0] = aP;
aN[1] = aO;
return aN
}
}
};
function av() {
if (j) {
return
}
this.x = null;
this.y = null;
this.width = null;
this.height = null
}
av.prototype._$8P = function() {
return this.x + 0.5 * this.width
};
av.prototype._$6P = function() {
return this.y + 0.5 * this.height
};
av.prototype._$EL = function() {
return this.x + this.width
};
av.prototype._$5T = function() {
return this.y + this.height
};
av.prototype._$jL = function(aI, aK, aJ, aH) {
this.x = aI;
this.y = aK;
this.width = aJ;
this.height = aH
};
av.prototype._$jL = function(aH) {
this.x = aH.x;
this.y = aH.y;
this.width = aH.width;
this.height = aH.height
};
av.prototype.contains = function(aH, aI) {
return this.x <= this.x && this.y <= this.y && (this.x <= this.x + this.width) && (this.y <= this.y + this.height)
};
av.prototype.expand = function(aH, aI) {
this.x -= aH;
this.y -= aI;
this.width += aH * 2;
this.height += aI * 2
};
function aG() {}
aG._$Z2 = function(bb, bo, bp, a2) {
var a1 = bo._$Q2(bb, bp);
var a3 = bb._$vs();
var ba = bb._$Tr();
bo._$zr(a3, ba, a1);
if (a1 <= 0) {
return a2[a3[0]]
} else {
if (a1 == 1) {
var bj = a2[a3[0]];
var bi = a2[a3[1]];
var a9 = ba[0];
return (bj + (bi - bj) * a9) | 0
} else {
if (a1 == 2) {
var bj = a2[a3[0]];
var bi = a2[a3[1]];
var a0 = a2[a3[2]];
var aZ = a2[a3[3]];
var a9 = ba[0];
var a8 = ba[1];
var br = (bj + (bi - bj) * a9) | 0;
var bq = (a0 + (aZ - a0) * a9) | 0;
return (br + (bq - br) * a8) | 0
} else {
if (a1 == 3) {
var aP = a2[a3[0]];
var aO = a2[a3[1]];
var bn = a2[a3[2]];
var bm = a2[a3[3]];
var aK = a2[a3[4]];
var aJ = a2[a3[5]];
var bg = a2[a3[6]];
var bf = a2[a3[7]];
var a9 = ba[0];
var a8 = ba[1];
var a6 = ba[2];
var bj = (aP + (aO - aP) * a9) | 0;
var bi = (bn + (bm - bn) * a9) | 0;
var a0 = (aK + (aJ - aK) * a9) | 0;
var aZ = (bg + (bf - bg) * a9) | 0;
var br = (bj + (bi - bj) * a8) | 0;
var bq = (a0 + (aZ - a0) * a8) | 0;
return (br + (bq - br) * a6) | 0
} else {
if (a1 == 4) {
var aT = a2[a3[0]];
var aS = a2[a3[1]];
var bu = a2[a3[2]];
var bt = a2[a3[3]];
var aN = a2[a3[4]];
var aM = a2[a3[5]];
var bl = a2[a3[6]];
var bk = a2[a3[7]];
var be = a2[a3[8]];
var bc = a2[a3[9]];
var aX = a2[a3[10]];
var aW = a2[a3[11]];
var a7 = a2[a3[12]];
var a5 = a2[a3[13]];
var aR = a2[a3[14]];
var aQ = a2[a3[15]];
var a9 = ba[0];
var a8 = ba[1];
var a6 = ba[2];
var a4 = ba[3];
var aP = (aT + (aS - aT) * a9) | 0;
var aO = (bu + (bt - bu) * a9) | 0;
var bn = (aN + (aM - aN) * a9) | 0;
var bm = (bl + (bk - bl) * a9) | 0;
var aK = (be + (bc - be) * a9) | 0;
var aJ = (aX + (aW - aX) * a9) | 0;
var bg = (a7 + (a5 - a7) * a9) | 0;
var bf = (aR + (aQ - aR) * a9) | 0;
var bj = (aP + (aO - aP) * a8) | 0;
var bi = (bn + (bm - bn) * a8) | 0;
var a0 = (aK + (aJ - aK) * a8) | 0;
var aZ = (bg + (bf - bg) * a8) | 0;
var br = (bj + (bi - bj) * a6) | 0;
var bq = (a0 + (aZ - a0) * a6) | 0;
return (br + (bq - br) * a4) | 0
} else {
var aV = 1 << a1;
var aY = new Float32Array(aV);
for (var bh = 0; bh < aV; bh++) {
var aI = bh;
var aH = 1;
for (var aL = 0; aL < a1; aL++) {
aH *= (aI % 2 == 0) ? (1 - ba[aL]) : ba[aL];
aI /= 2
}
aY[bh] = aH
}
var bs = new Float32Array(aV);
for (var aU = 0; aU < aV; aU++) {
bs[aU] = a2[a3[aU]]
}
var bd = 0;
for (var aU = 0; aU < aV; aU++) {
bd += aY[aU] * bs[aU]
}
return (bd + 0.5) | 0
}
}
}
}
}
};
aG._$br = function(ba, bo, bp, bg) {
var a1 = bo._$Q2(ba, bp);
var a2 = ba._$vs();
var a9 = ba._$Tr();
bo._$zr(a2, a9, a1);
if (a1 <= 0) {
return bg[a2[0]]
} else {
if (a1 == 1) {
var bj = bg[a2[0]];
var bi = bg[a2[1]];
var a8 = a9[0];
return bj + (bi - bj) * a8
} else {
if (a1 == 2) {
var bj = bg[a2[0]];
var bi = bg[a2[1]];
var a0 = bg[a2[2]];
var aZ = bg[a2[3]];
var a8 = a9[0];
var a7 = a9[1];
return (1 - a7) * (bj + (bi - bj) * a8) + a7 * (a0 + (aZ - a0) * a8)
} else {
if (a1 == 3) {
var aP = bg[a2[0]];
var aO = bg[a2[1]];
var bn = bg[a2[2]];
var bm = bg[a2[3]];
var aK = bg[a2[4]];
var aJ = bg[a2[5]];
var bf = bg[a2[6]];
var be = bg[a2[7]];
var a8 = a9[0];
var a7 = a9[1];
var a5 = a9[2];
return (1 - a5) * ((1 - a7) * (aP + (aO - aP) * a8) + a7 * (bn + (bm - bn) * a8)) + a5 * ((1 - a7) * (aK + (aJ - aK) * a8) + a7 * (bf + (be - bf) * a8))
} else {
if (a1 == 4) {
var aT = bg[a2[0]];
var aS = bg[a2[1]];
var bs = bg[a2[2]];
var br = bg[a2[3]];
var aN = bg[a2[4]];
var aM = bg[a2[5]];
var bl = bg[a2[6]];
var bk = bg[a2[7]];
var bd = bg[a2[8]];
var bb = bg[a2[9]];
var aX = bg[a2[10]];
var aW = bg[a2[11]];
var a6 = bg[a2[12]];
var a4 = bg[a2[13]];
var aR = bg[a2[14]];
var aQ = bg[a2[15]];
var a8 = a9[0];
var a7 = a9[1];
var a5 = a9[2];
var a3 = a9[3];
return (1 - a3) * ((1 - a5) * ((1 - a7) * (aT + (aS - aT) * a8) + a7 * (bs + (br - bs) * a8)) + a5 * ((1 - a7) * (aN + (aM - aN) * a8) + a7 * (bl + (bk - bl) * a8))) + a3 * ((1 - a5) * ((1 - a7) * (bd + (bb - bd) * a8) + a7 * (aX + (aW - aX) * a8)) + a5 * ((1 - a7) * (a6 + (a4 - a6) * a8) + a7 * (aR + (aQ - aR) * a8)))
} else {
var aV = 1 << a1;
var aY = new Float32Array(aV);
for (var bh = 0; bh < aV; bh++) {
var aI = bh;
var aH = 1;
for (var aL = 0; aL < a1; aL++) {
aH *= (aI % 2 == 0) ? (1 - a9[aL]) : a9[aL];
aI /= 2
}
aY[bh] = aH
}
var bq = new Float32Array(aV);
for (var aU = 0; aU < aV; aU++) {
bq[aU] = bg[a2[aU]]
}
var bc = 0;
for (var aU = 0; aU < aV; aU++) {
bc += aY[aU] * bq[aU]
}
return bc
}
}
}
}
}
};
aG._$Vr = function(bV, bW, a5, aI, bC, a3, bX, bH) {
var aN = bW._$Q2(bV, a5);
var bw = bV._$vs();
var a2 = bV._$Tr();
bW._$zr(bw, a2, aN);
var aJ = aI * 2;
var aQ = bX;
if (aN <= 0) {
var bI = bw[0];
var bq = bC[bI];
if (bH == 2 && bX == 0) {
P._$jT(bq, 0, a3, 0, aJ)
} else {
for (var bt = 0; bt < aJ;) {
a3[aQ] = bq[bt++];
a3[aQ + 1] = bq[bt++];
aQ += bH
}
}
} else {
if (aN == 1) {
var bq = bC[bw[0]];
var bp = bC[bw[1]];
var b3 = a2[0];
var bT = 1 - b3;
for (var bt = 0; bt < aJ;) {
a3[aQ] = bq[bt] * bT + bp[bt] * b3;
++bt;
a3[aQ + 1] = bq[bt] * bT + bp[bt] * b3;
++bt;
aQ += bH
}
} else {
if (aN == 2) {
var bq = bC[bw[0]];
var bp = bC[bw[1]];
var aZ = bC[bw[2]];
var aY = bC[bw[3]];
var b3 = a2[0];
var b1 = a2[1];
var bT = 1 - b3;
var bP = 1 - b1;
var b2 = bP * bT;
var b0 = bP * b3;
var bM = b1 * bT;
var bL = b1 * b3;
for (var bt = 0; bt < aJ;) {
a3[aQ] = b2 * bq[bt] + b0 * bp[bt] + bM * aZ[bt] + bL * aY[bt];
++bt;
a3[aQ + 1] = b2 * bq[bt] + b0 * bp[bt] + bM * aZ[bt] + bL * aY[bt];
++bt;
aQ += bH
}
} else {
if (aN == 3) {
var ba = bC[bw[0]];
var a9 = bC[bw[1]];
var aP = bC[bw[2]];
var aO = bC[bw[3]];
var a6 = bC[bw[4]];
var a4 = bC[bw[5]];
var aL = bC[bw[6]];
var aK = bC[bw[7]];
var b3 = a2[0];
var b1 = a2[1];
var bZ = a2[2];
var bT = 1 - b3;
var bP = 1 - b1;
var bN = 1 - bZ;
var b8 = bN * bP * bT;
var b7 = bN * bP * b3;
var bU = bN * b1 * bT;
var bS = bN * b1 * b3;
var b6 = bZ * bP * bT;
var b5 = bZ * bP * b3;
var bQ = bZ * b1 * bT;
var bO = bZ * b1 * b3;
for (var bt = 0; bt < aJ;) {
a3[aQ] = b8 * ba[bt] + b7 * a9[bt] + bU * aP[bt] + bS * aO[bt] + b6 * a6[bt] + b5 * a4[bt] + bQ * aL[bt] + bO * aK[bt];
++bt;
a3[aQ + 1] = b8 * ba[bt] + b7 * a9[bt] + bU * aP[bt] + bS * aO[bt] + b6 * a6[bt] + b5 * a4[bt] + bQ * aL[bt] + bO * aK[bt];
++bt;
aQ += bH
}
} else {
if (aN == 4) {
var bD = bC[bw[0]];
var bB = bC[bw[1]];
var bo = bC[bw[2]];
var bm = bC[bw[3]];
var by = bC[bw[4]];
var bx = bC[bw[5]];
var be = bC[bw[6]];
var bd = bC[bw[7]];
var bG = bC[bw[8]];
var bE = bC[bw[9]];
var bv = bC[bw[10]];
var bu = bC[bw[11]];
var bA = bC[bw[12]];
var bz = bC[bw[13]];
var bn = bC[bw[14]];
var bl = bC[bw[15]];
var b3 = a2[0];
var b1 = a2[1];
var bZ = a2[2];
var bY = a2[3];
var bT = 1 - b3;
var bP = 1 - b1;
var bN = 1 - bZ;
var bK = 1 - bY;
var bk = bK * bN * bP * bT;
var bi = bK * bN * bP * b3;
var aW = bK * bN * b1 * bT;
var aV = bK * bN * b1 * b3;
var bc = bK * bZ * bP * bT;
var bb = bK * bZ * bP * b3;
var aS = bK * bZ * b1 * bT;
var aR = bK * bZ * b1 * b3;
var bs = bY * bN * bP * bT;
var br = bY * bN * bP * b3;
var a1 = bY * bN * b1 * bT;
var a0 = bY * bN * b1 * b3;
var bh = bY * bZ * bP * bT;
var bf = bY * bZ * bP * b3;
var aU = bY * bZ * b1 * bT;
var aT = bY * bZ * b1 * b3;
for (var bt = 0; bt < aJ;) {
a3[aQ] = bk * bD[bt] + bi * bB[bt] + aW * bo[bt] + aV * bm[bt] + bc * by[bt] + bb * bx[bt] + aS * be[bt] + aR * bd[bt] + bs * bG[bt] + br * bE[bt] + a1 * bv[bt] + a0 * bu[bt] + bh * bA[bt] + bf * bz[bt] + aU * bn[bt] + aT * bl[bt];
++bt;
a3[aQ + 1] = bk * bD[bt] + bi * bB[bt] + aW * bo[bt] + aV * bm[bt] + bc * by[bt] + bb * bx[bt] + aS * be[bt] + aR * bd[bt] + bs * bG[bt] + br * bE[bt] + a1 * bv[bt] + a0 * bu[bt] + bh * bA[bt] + bf * bz[bt] + aU * bn[bt] + aT * bl[bt];
++bt;
aQ += bH
}
} else {
var b4 = 1 << aN;
var bJ = new Float32Array(b4);
for (var bj = 0; bj < b4; bj++) {
var aH = bj;
var aM = 1;
for (var bF = 0; bF < aN; bF++) {
aM *= (aH % 2 == 0) ? (1 - a2[bF]) : a2[bF];
aH /= 2
}
bJ[bj] = aM
}
var bg = new Float32Array(b4);
for (var aX = 0; aX < b4; aX++) {
bg[aX] = bC[bw[aX]]
}
for (var bt = 0; bt < aJ;) {
var a8 = 0,
a7 = 0;
var bR = bt + 1;
for (var aX = 0; aX < b4; aX++) {
a8 += bJ[aX] * bg[aX][bt];
a7 += bJ[aX] * bg[aX][bR]
}
bt += 2;
a3[aQ] = a8;
a3[aQ + 1] = a7;
aQ += bH
}
}
}
}
}
}
};
function e() {
if (j) {
return
}
this.x = null;
this.y = null
}
e.prototype._$HT = function(aH, aI) {
this.x = aH;
this.y = aI
};
e.prototype._$HT = function(aH) {
this.x = aH.x;
this.y = aH.y
};
function ae() {
if (j) {
return
}
this._$gP = null;
this._$dr = null;
this._$GS = null;
this._$qb = null;
this._$Lb = null;
this._$mS = null;
this.clipID = null;
this.clipIDList = new Array()
}
ae._$ur = -2;
ae._$ES = 500;
ae._$wb = 2;
ae._$8S = 3;
ae._$52 = ae._$ES;
ae._$R2 = ae._$ES;
ae._$or = function() {
return ae._$52
};
ae._$Pr = function() {
return ae._$R2
};
ae.prototype.convertClipIDForV2_11 = function(aI) {
var aH = [];
if (aI == null) {
return null
}
if (aI.length == 0) {
return null
}
if (!/,/.test(aI)) {
aH.push(aI.id);
return aH
}
aH = aI.id.split(",");
return aH
};
ae.prototype._$F0 = function(aH) {
this._$gP = aH._$nP();
this._$dr = aH._$nP();
this._$GS = aH._$nP();
this._$qb = aH._$6L();
this._$Lb = aH._$cS();
this._$mS = aH._$Tb();
if (aH.getFormatVersion() >= ay._$T7) {
this.clipID = aH._$nP();
this.clipIDList = this.convertClipIDForV2_11(this.clipID)
} else {
this.clipIDList = []
}
this._$MS(this._$Lb)
};
ae.prototype.getClipIDList = function() {
return this.clipIDList
};
ae.prototype.init = function(aH) {};
ae.prototype._$Nr = function(aH, aI) {
aI._$IS[0] = false;
aI._$Us = aG._$Z2(aH, this._$GS, aI._$IS, this._$Lb);
if (Q._$Zs) {} else {
if (aI._$IS[0]) {
return
}
}
aI._$7s = aG._$br(aH, this._$GS, aI._$IS, this._$mS)
};
ae.prototype._$2b = function(aH, aI) {};
ae.prototype.getDrawDataID = function() {
return this._$gP
};
ae.prototype._$j2 = function(aH) {
this._$gP = aH
};
ae.prototype.getOpacity = function(aH, aI) {
return aI._$7s
};
ae.prototype._$zS = function(aH, aI) {
return aI._$Us
};
ae.prototype._$MS = function(aJ) {
for (var aI = aJ.length - 1; aI >= 0; --aI) {
var aH = aJ[aI];
if (aH < ae._$52) {
ae._$52 = aH
} else {
if (aH > ae._$R2) {
ae._$R2 = aH
}
}
}
};
ae.prototype.getTargetBaseDataID = function() {
return this._$dr
};
ae.prototype._$gs = function(aH) {
this._$dr = aH
};
ae.prototype._$32 = function() {
return (this._$dr != null && (this._$dr != n._$2o()))
};
ae.prototype.preDraw = function(aJ, aH, aI) {};
ae.prototype.draw = function(aJ, aH, aI) {};
ae.prototype.getType = function() {};
ae.prototype._$B2 = function(aI, aH, aJ) {};
function ax() {
if (j) {
return
}
this._$Eb = ax._$ps;
this._$lT = 1;
this._$C0 = 1;
this._$tT = 1;
this._$WL = 1;
this.culling = false;
this.matrix4x4 = new Float32Array(16);
this.premultipliedAlpha = false;
this.anisotropy = 0;
this.clippingProcess = ax.CLIPPING_PROCESS_NONE;
this.clipBufPre_clipContextMask = null;
this.clipBufPre_clipContextDraw = null;
this.CHANNEL_COLORS = new Array()
}
ax._$ps = 32;
ax.CLIPPING_PROCESS_NONE = 0;
ax.CLIPPING_PROCESS_OVERWRITE_ALPHA = 1;
ax.CLIPPING_PROCESS_MULTIPLY_ALPHA = 2;
ax.CLIPPING_PROCESS_DRAW = 3;
ax.CLIPPING_PROCESS_CLEAR_ALPHA = 4;
ax.prototype.setChannelFlagAsColor = function(aH, aI) {
this.CHANNEL_COLORS[aH] = aI
};
ax.prototype.getChannelFlagAsColor = function(aH) {
return this.CHANNEL_COLORS[aH]
};
ax.prototype._$ZT = function() {};
ax.prototype._$Uo = function(aM, aK, aJ, aL, aN, aI, aH) {};
ax.prototype._$Rs = function() {
return -1
};
ax.prototype._$Ds = function(aH) {};
ax.prototype.setBaseColor = function(aK, aJ, aI, aH) {
if (aK < 0) {
aK = 0
} else {
if (aK > 1) {
aK = 1
}
}
if (aJ < 0) {
aJ = 0
} else {
if (aJ > 1) {
aJ = 1
}
}
if (aI < 0) {
aI = 0
} else {
if (aI > 1) {
aI = 1
}
}
if (aH < 0) {
aH = 0
} else {
if (aH > 1) {
aH = 1
}
}
this._$lT = aK;
this._$C0 = aJ;
this._$tT = aI;
this._$WL = aH
};
ax.prototype._$WP = function(aH) {
this.culling = aH
};
ax.prototype.setMatrix = function(aH) {
for (var aI = 0; aI < 16; aI++) {
this.matrix4x4[aI] = aH[aI]
}
};
ax.prototype._$IT = function() {
return this.matrix4x4
};
ax.prototype.setPremultipliedAlpha = function(aH) {
this.premultipliedAlpha = aH
};
ax.prototype.isPremultipliedAlpha = function() {
return this.premultipliedAlpha
};
ax.prototype.setAnisotropy = function(aH) {
this.anisotropy = aH
};
ax.prototype.getAnisotropy = function() {
return this.anisotropy
};
ax.prototype.getClippingProcess = function() {
return this.clippingProcess
};
ax.prototype.setClippingProcess = function(aH) {
this.clippingProcess = aH
};
ax.prototype.setClipBufPre_clipContextForMask = function(aH) {
this.clipBufPre_clipContextMask = aH
};
ax.prototype.getClipBufPre_clipContextMask = function() {
return this.clipBufPre_clipContextMask
};
ax.prototype.setClipBufPre_clipContextForDraw = function(aH) {
this.clipBufPre_clipContextDraw = aH
};
ax.prototype.getClipBufPre_clipContextDraw = function() {
return this.clipBufPre_clipContextDraw
};
function o() {
if (j) {
return
}
this.a = 1;
this.r = 1;
this.g = 1;
this.b = 1;
this.scale = 1;
this._$ho = 1;
this.blendMode = Q.L2D_COLOR_BLEND_MODE_MULT
}
function c() {
if (j) {
return
}
this._$kP = null;
this._$dr = null;
this._$Ai = true;
this._$mS = null
}
c._$ur = -2;
c._$c2 = 1;
c._$_b = 2;
c.prototype._$F0 = function(aH) {
this._$kP = aH._$nP();
this._$dr = aH._$nP()
};
c.prototype.readV2_opacity = function(aH) {
if (aH.getFormatVersion() >= ay.LIVE2D_FORMAT_VERSION_V2_10_SDK2) {
this._$mS = aH._$Tb()
}
};
c.prototype.init = function(aH) {};
c.prototype._$Nr = function(aI, aH) {};
c.prototype.interpolateOpacity = function(aJ, aK, aI, aH) {
if (this._$mS == null) {
aI.setInterpolatedOpacity(1)
} else {
aI.setInterpolatedOpacity(aG._$br(aJ, aK, aH, this._$mS))
}
};
c.prototype._$2b = function(aI, aH) {};
c.prototype._$nb = function(aL, aK, aM, aH, aI, aJ, aN) {};
c.prototype.getType = function() {};
c.prototype._$gs = function(aH) {
this._$dr = aH
};
c.prototype._$a2 = function(aH) {
this._$kP = aH
};
c.prototype.getTargetBaseDataID = function() {
return this._$dr
};
c.prototype.getBaseDataID = function() {
return this._$kP
};
c.prototype._$32 = function() {
return (this._$dr != null && (this._$dr != n._$2o()))
};
function P() {}
P._$W2 = 0;
P._$CS = P._$W2;
P._$Mo = function() {
return true
};
P._$XP = function(aI) {
try {
var aJ = getTimeMSec();
while (getTimeMSec() - aJ < aI) {}
} catch (aH) {
aH._$Rb()
}
};
P.getUserTimeMSec = function() {
return (P._$CS == P._$W2) ? P.getSystemTimeMSec() : P._$CS
};
P.setUserTimeMSec = function(aH) {
P._$CS = aH
};
P.updateUserTimeMSec = function() {
return (P._$CS = P.getSystemTimeMSec())
};
P.getTimeMSec = function() {
return new Date().getTime()
};
P.getSystemTimeMSec = function() {
return new Date().getTime()
};
P._$Q = function(aH) {};
P._$jT = function(aM, aJ, aI, aL, aH) {
for (var aK = 0; aK < aH; aK++) {
aI[aL + aK] = aM[aJ + aK]
}
};
function aA() {
if (j) {
return
}
this._$VP = 0;
this._$wL = null;
this._$GP = null;
this._$8o = aA._$ds;
this._$2r = -1;
this._$O2 = 0;
this._$ri = 0
}
aA._$ds = -2;
aA.prototype._$F0 = function(aH) {
this._$wL = aH._$nP();
this._$VP = aH._$6L();
this._$GP = aH._$nP()
};
aA.prototype.getParamIndex = function(aH) {
if (this._$2r != aH) {
this._$8o = aA._$ds
}
return this._$8o
};
aA.prototype._$Pb = function(aI, aH) {
this._$8o = aI;
this._$2r = aH
};
aA.prototype.getParamID = function() {
return this._$wL
};
aA.prototype._$yP = function(aH) {
this._$wL = aH
};
aA.prototype._$N2 = function() {
return this._$VP
};
aA.prototype._$d2 = function() {
return this._$GP
};
aA.prototype._$t2 = function(aI, aH) {
this._$VP = aI;
this._$GP = aH
};
aA.prototype._$Lr = function() {
return this._$O2
};
aA.prototype._$wr = function(aH) {
this._$O2 = aH
};
aA.prototype._$SL = function() {
return this._$ri
};
aA.prototype._$AL = function(aH) {
this._$ri = aH
};
function G() {}
G.startsWith = function(aJ, aL, aK) {
var aH = aL + aK.length;
if (aH >= aJ.length) {
return false
}
for (var aI = aL; aI < aH; aI++) {
if (G.getChar(aJ, aI) != aK.charAt(aI - aL)) {
return false
}
}
return true
};
G.getChar = function(aI, aH) {
return String.fromCharCode(aI.getUint8(aH))
};
G.createString = function(aM, aL, aJ) {
var aH = new ArrayBuffer(aJ * 2);
var aK = new Uint16Array(aH);
for (var aI = 0; aI < aJ; aI++) {
aK[aI] = aM.getUint8(aL + aI)
}
return String.fromCharCode.apply(null, aK)
};
G._$LS = function(aP, aM, aR, aK) {
if (aP instanceof ArrayBuffer) {
aP = new DataView(aP)
}
var aL = aR;
var aJ = false;
var aQ = false;
var aS = 0;
var aO = G.getChar(aP, aL);
if (aO == "-") {
aJ = true;
aL++
}
var aN = false;
for (; aL < aM; aL++) {
aO = G.getChar(aP, aL);
switch (aO) {
case "0":
aS = aS * 10;
break;
case "1":
aS = aS * 10 + 1;
break;
case "2":
aS = aS * 10 + 2;
break;
case "3":
aS = aS * 10 + 3;
break;
case "4":
aS = aS * 10 + 4;
break;
case "5":
aS = aS * 10 + 5;
break;
case "6":
aS = aS * 10 + 6;
break;
case "7":
aS = aS * 10 + 7;
break;
case "8":
aS = aS * 10 + 8;
break;
case "9":
aS = aS * 10 + 9;
break;
case ".":
aQ = true;
aL++;
aN = true;
break;
default:
aN = true;
break
}
if (aN) {
break
}
}
if (aQ) {
var aI = 0.1;
var aH = false;
for (; aL < aM; aL++) {
aO = G.getChar(aP, aL);
switch (aO) {
case "0":
break;
case "1":
aS += aI * 1;
break;
case "2":
aS += aI * 2;
break;
case "3":
aS += aI * 3;
break;
case "4":
aS += aI * 4;
break;
case "5":
aS += aI * 5;
break;
case "6":
aS += aI * 6;
break;
case "7":
aS += aI * 7;
break;
case "8":
aS += aI * 8;
break;
case "9":
aS += aI * 9;
break;
default:
aH = true;
break
}
aI *= 0.1;
if (aH) {
break
}
}
}
if (aJ) {
aS = -aS
}
aK[0] = aL;
return aS
};
function g() {
if (j) {
return
}
this._$Ob = null
}
g.prototype._$zP = function() {
this._$Ob = new Array()
};
g.prototype._$F0 = function(aH) {
this._$Ob = aH._$nP()
};
g.prototype._$Ur = function(aK) {
if (aK._$WS()) {
return true
}
var aH = aK._$v2();
for (var aJ = this._$Ob.length - 1; aJ >= 0; --aJ) {
var aI = this._$Ob[aJ].getParamIndex(aH);
if (aI == aA._$ds) {
aI = aK.getParamIndex(this._$Ob[aJ].getParamID())
}
if (aK._$Xb(aI)) {
return true
}
}
return false
};
g.prototype._$Q2 = function(aL, aV) {
var aX = this._$Ob.length;
var aJ = aL._$v2();
var aN = 0;
var aI;
var aQ;
for (var aK = 0; aK < aX; aK++) {
var aH = this._$Ob[aK];
aI = aH.getParamIndex(aJ);
if (aI == aA._$ds) {
aI = aL.getParamIndex(aH.getParamID());
aH._$Pb(aI, aJ)
}
if (aI < 0) {
throw new Exception("err 23242 : " + aH.getParamID());
}
var aU = aI < 0 ? 0 : aL.getParamFloat(aI);
aQ = aH._$N2();
var aM = aH._$d2();
var aP = -1;
var aT = 0;
var aS;
var aR;
if (aQ < 1) {} else {
if (aQ == 1) {
aS = aM[0];
if (aS - aw._$J < aU && aU < aS + aw._$J) {
aP = 0;
aT = 0
} else {
aP = 0;
aV[0] = true
}
} else {
aS = aM[0];
if (aU < aS - aw._$J) {
aP = 0;
aV[0] = true
} else {
if (aU < aS + aw._$J) {
aP = 0
} else {
var aW = false;
for (var aO = 1; aO < aQ; ++aO) {
aR = aM[aO];
if (aU < aR + aw._$J) {
if (aR - aw._$J < aU) {
aP = aO
} else {
aP = aO - 1;
aT = (aU - aS) / (aR - aS);
aN++
}
aW = true;
break
}
aS = aR
}
if (!aW) {
aP = aQ - 1;
aT = 0;
aV[0] = true
}
}
}
}
}
aH._$wr(aP);
aH._$AL(aT)
}
return aN
};
g.prototype._$zr = function(aN, aT, aP) {
var aR = 1 << aP;
if (aR + 1 > aw._$Qb) {
console.log("err 23245\n")
}
var aS = this._$Ob.length;
var aK = 1;
var aH = 1;
var aJ = 0;
for (var aQ = 0; aQ < aR; ++aQ) {
aN[aQ] = 0
}
for (var aL = 0; aL < aS; ++aL) {
var aI = this._$Ob[aL];
if (aI._$SL() == 0) {
var aO = aI._$Lr() * aK;
if (aO < 0 && Q._$3T) {
throw new Exception("err 23246");
}
for (var aQ = 0; aQ < aR; ++aQ) {
aN[aQ] += aO
}
} else {
var aO = aK * aI._$Lr();
var aM = aK * (aI._$Lr() + 1);
for (var aQ = 0; aQ < aR; ++aQ) {
aN[aQ] += ((aQ / aH | 0) % 2 == 0) ? aO : aM
}
aT[aJ++] = aI._$SL();
aH *= 2
}
aK *= aI._$N2()
}
aN[aR] = 65535;
aT[aJ] = -1
};
g.prototype._$h2 = function(aJ, aH, aK) {
var aM = new Float32Array(aH);
for (var aL = 0; aL < aH; ++aL) {
aM[aL] = aK[aL]
}
var aI = new aA();
aI._$yP(aJ);
aI._$t2(aH, aM);
this._$Ob.push(aI)
};
g.prototype._$J2 = function(aO) {
var aN = aO;
var aM = this._$Ob.length;
for (var aK = 0; aK < aM; ++aK) {
var aI = this._$Ob[aK];
var aH = aI._$N2();
var aJ = aN % aI._$N2();
var aL = aI._$d2()[aJ];
console.log("%s[%d]=%7.2f / ", aI.getParamID(), aJ, aL);
aN /= aH
}
console.log("\n")
};
g.prototype.getParamCount = function() {
return this._$Ob.length
};
g.prototype._$zs = function() {
return this._$Ob
};
function ac() {
this.m = new Float32Array(16);
this.identity()
}
ac.prototype.identity = function() {
for (var aH = 0; aH < 16; aH++) {
this.m[aH] = ((aH % 5) == 0) ? 1 : 0
}
};
ac.prototype.getArray = function() {
return this.m
};
ac.prototype.getCopyMatrix = function() {
return new Float32Array(this.m)
};
ac.prototype.setMatrix = function(aI) {
if (aI == null || aI.length != 16) {
return
}
for (var aH = 0; aH < 16; aH++) {
this.m[aH] = aI[aH]
}
};
ac.prototype.mult = function(aH, aJ, aI) {
if (aJ == null) {
return null
}
if (this == aJ) {
this.mult_safe(this.m, aH.m, aJ.m, aI)
} else {
this.mult_fast(this.m, aH.m, aJ.m, aI)
}
return aJ
};
ac.prototype.mult_safe = function(aI, aH, aM, aJ) {
if (aI == aM) {
var aL = new Array(16);
this.mult_fast(aI, aH, aL, aJ);
for (var aK = 15; aK >= 0; --aK) {
aM[aK] = aL[aK]
}
} else {
this.mult_fast(aI, aH, aM, aJ)
}
};
ac.prototype.mult_fast = function(aI, aH, aK, aJ) {
if (aJ) {
aK[0] = aI[0] * aH[0] + aI[4] * aH[1] + aI[8] * aH[2];
aK[4] = aI[0] * aH[4] + aI[4] * aH[5] + aI[8] * aH[6];
aK[8] = aI[0] * aH[8] + aI[4] * aH[9] + aI[8] * aH[10];
aK[12] = aI[0] * aH[12] + aI[4] * aH[13] + aI[8] * aH[14] + aI[12];
aK[1] = aI[1] * aH[0] + aI[5] * aH[1] + aI[9] * aH[2];
aK[5] = aI[1] * aH[4] + aI[5] * aH[5] + aI[9] * aH[6];
aK[9] = aI[1] * aH[8] + aI[5] * aH[9] + aI[9] * aH[10];
aK[13] = aI[1] * aH[12] + aI[5] * aH[13] + aI[9] * aH[14] + aI[13];
aK[2] = aI[2] * aH[0] + aI[6] * aH[1] + aI[10] * aH[2];
aK[6] = aI[2] * aH[4] + aI[6] * aH[5] + aI[10] * aH[6];
aK[10] = aI[2] * aH[8] + aI[6] * aH[9] + aI[10] * aH[10];
aK[14] = aI[2] * aH[12] + aI[6] * aH[13] + aI[10] * aH[14] + aI[14];
aK[3] = aK[7] = aK[11] = 0;
aK[15] = 1
} else {
aK[0] = aI[0] * aH[0] + aI[4] * aH[1] + aI[8] * aH[2] + aI[12] * aH[3];
aK[4] = aI[0] * aH[4] + aI[4] * aH[5] + aI[8] * aH[6] + aI[12] * aH[7];
aK[8] = aI[0] * aH[8] + aI[4] * aH[9] + aI[8] * aH[10] + aI[12] * aH[11];
aK[12] = aI[0] * aH[12] + aI[4] * aH[13] + aI[8] * aH[14] + aI[12] * aH[15];
aK[1] = aI[1] * aH[0] + aI[5] * aH[1] + aI[9] * aH[2] + aI[13] * aH[3];
aK[5] = aI[1] * aH[4] + aI[5] * aH[5] + aI[9] * aH[6] + aI[13] * aH[7];
aK[9] = aI[1] * aH[8] + aI[5] * aH[9] + aI[9] * aH[10] + aI[13] * aH[11];
aK[13] = aI[1] * aH[12] + aI[5] * aH[13] + aI[9] * aH[14] + aI[13] * aH[15];
aK[2] = aI[2] * aH[0] + aI[6] * aH[1] + aI[10] * aH[2] + aI[14] * aH[3];
aK[6] = aI[2] * aH[4] + aI[6] * aH[5] + aI[10] * aH[6] + aI[14] * aH[7];
aK[10] = aI[2] * aH[8] + aI[6] * aH[9] + aI[10] * aH[10] + aI[14] * aH[11];
aK[14] = aI[2] * aH[12] + aI[6] * aH[13] + aI[10] * aH[14] + aI[14] * aH[15];
aK[3] = aI[3] * aH[0] + aI[7] * aH[1] + aI[11] * aH[2] + aI[15] * aH[3];
aK[7] = aI[3] * aH[4] + aI[7] * aH[5] + aI[11] * aH[6] + aI[15] * aH[7];
aK[11] = aI[3] * aH[8] + aI[7] * aH[9] + aI[11] * aH[10] + aI[15] * aH[11];
aK[15] = aI[3] * aH[12] + aI[7] * aH[13] + aI[11] * aH[14] + aI[15] * aH[15]
}
};
ac.prototype.translate = function(aH, aJ, aI) {
this.m[12] = this.m[0] * aH + this.m[4] * aJ + this.m[8] * aI + this.m[12];
this.m[13] = this.m[1] * aH + this.m[5] * aJ + this.m[9] * aI + this.m[13];
this.m[14] = this.m[2] * aH + this.m[6] * aJ + this.m[10] * aI + this.m[14];
this.m[15] = this.m[3] * aH + this.m[7] * aJ + this.m[11] * aI + this.m[15]
};
ac.prototype.scale = function(aJ, aI, aH) {
this.m[0] *= aJ;
this.m[4] *= aI;
this.m[8] *= aH;
this.m[1] *= aJ;
this.m[5] *= aI;
this.m[9] *= aH;
this.m[2] *= aJ;
this.m[6] *= aI;
this.m[10] *= aH;
this.m[3] *= aJ;
this.m[7] *= aI;
this.m[11] *= aH
};
ac.prototype.rotateX = function(aH) {
var aK = aC.fcos(aH);
var aJ = aC._$9(aH);
var aI = this.m[4];
this.m[4] = aI * aK + this.m[8] * aJ;
this.m[8] = aI * -aJ + this.m[8] * aK;
aI = this.m[5];
this.m[5] = aI * aK + this.m[9] * aJ;
this.m[9] = aI * -aJ + this.m[9] * aK;
aI = this.m[6];
this.m[6] = aI * aK + this.m[10] * aJ;
this.m[10] = aI * -aJ + this.m[10] * aK;
aI = this.m[7];
this.m[7] = aI * aK + this.m[11] * aJ;
this.m[11] = aI * -aJ + this.m[11] * aK
};
ac.prototype.rotateY = function(aH) {
var aK = aC.fcos(aH);
var aJ = aC._$9(aH);
var aI = this.m[0];
this.m[0] = aI * aK + this.m[8] * -aJ;
this.m[8] = aI * aJ + this.m[8] * aK;
aI = this.m[1];
this.m[1] = aI * aK + this.m[9] * -aJ;
this.m[9] = aI * aJ + this.m[9] * aK;
aI = m[2];
this.m[2] = aI * aK + this.m[10] * -aJ;
this.m[10] = aI * aJ + this.m[10] * aK;
aI = m[3];
this.m[3] = aI * aK + this.m[11] * -aJ;
this.m[11] = aI * aJ + this.m[11] * aK
};
ac.prototype.rotateZ = function(aH) {
var aK = aC.fcos(aH);
var aJ = aC._$9(aH);
var aI = this.m[0];
this.m[0] = aI * aK + this.m[4] * aJ;
this.m[4] = aI * -aJ + this.m[4] * aK;
aI = this.m[1];
this.m[1] = aI * aK + this.m[5] * aJ;
this.m[5] = aI * -aJ + this.m[5] * aK;
aI = this.m[2];
this.m[2] = aI * aK + this.m[6] * aJ;
this.m[6] = aI * -aJ + this.m[6] * aK;
aI = this.m[3];
this.m[3] = aI * aK + this.m[7] * aJ;
this.m[7] = aI * -aJ + this.m[7] * aK
};
function Z(aH) {
if (j) {
return
}
ak.prototype.constructor.call(this, aH)
}
Z.prototype = new ak();
Z._$tP = new Object();
Z._$27 = function() {
Z._$tP.clear()
};
Z.getID = function(aH) {
var aI = Z._$tP[aH];
if (aI == null) {
aI = new Z(aH);
Z._$tP[aH] = aI
}
return aI
};
Z.prototype._$3s = function() {
return new Z()
};
function aD() {
if (j) {
return
}
this._$7 = 1;
this._$f = 0;
this._$H = 0;
this._$g = 1;
this._$k = 0;
this._$w = 0;
this._$hi = STATE_IDENTITY;
this._$Z = _$pS
}
aD._$kS = -1;
aD._$pS = 0;
aD._$hb = 1;
aD.STATE_IDENTITY = 0;
aD._$gb = 1;
aD._$fo = 2;
aD._$go = 4;
aD.prototype.transform = function(aK, aI, aH) {
var aT, aS, aR, aM, aL, aJ;
var aQ = 0;
var aN = 0;
switch (this._$hi) {
default:
return;
case (aD._$go | aD._$fo | aD._$gb):
aT = this._$7;
aS = this._$H;
aR = this._$k;
aM = this._$f;
aL = this._$g;
aJ = this._$w;
while (--aH >= 0) {
var aP = aK[aQ++];
var aO = aK[aQ++];
aI[aN++] = (aT * aP + aS * aO + aR);
aI[aN++] = (aM * aP + aL * aO + aJ)
}
return;
case (aD._$go | aD._$fo):
aT = this._$7;
aS = this._$H;
aM = this._$f;
aL = this._$g;
while (--aH >= 0) {
var aP = aK[aQ++];
var aO = aK[aQ++];
aI[aN++] = (aT * aP + aS * aO);
aI[aN++] = (aM * aP + aL * aO)
}
return;
case (aD._$go | aD._$gb):
aS = this._$H;
aR = this._$k;
aM = this._$f;
aJ = this._$w;
while (--aH >= 0) {
var aP = aK[aQ++];
aI[aN++] = (aS * aK[aQ++] + aR);
aI[aN++] = (aM * aP + aJ)
}
return;
case (aD._$go):
aS = this._$H;
aM = this._$f;
while (--aH >= 0) {
var aP = aK[aQ++];
aI[aN++] = (aS * aK[aQ++]);
aI[aN++] = (aM * aP)
}
return;
case (aD._$fo | aD._$gb):
aT = this._$7;
aR = this._$k;
aL = this._$g;
aJ = this._$w;
while (--aH >= 0) {
aI[aN++] = (aT * aK[aQ++] + aR);
aI[aN++] = (aL * aK[aQ++] + aJ)
}
return;
case (aD._$fo):
aT = this._$7;
aL = this._$g;
while (--aH >= 0) {
aI[aN++] = (aT * aK[aQ++]);
aI[aN++] = (aL * aK[aQ++])
}
return;
case (aD._$gb):
aR = this._$k;
aJ = this._$w;
while (--aH >= 0) {
aI[aN++] = (aK[aQ++] + aR);
aI[aN++] = (aK[aQ++] + aJ)
}
return;
case (aD.STATE_IDENTITY):
if (aK != aI || aQ != aN) {
P._$jT(aK, aQ, aI, aN, aH * 2)
}
return
}
};
aD.prototype.update = function() {
if (this._$H == 0 && this._$f == 0) {
if (this._$7 == 1 && this._$g == 1) {
if (this._$k == 0 && this._$w == 0) {
this._$hi = aD.STATE_IDENTITY;
this._$Z = aD._$pS
} else {
this._$hi = aD._$gb;
this._$Z = aD._$hb
}
} else {
if (this._$k == 0 && this._$w == 0) {
this._$hi = aD._$fo;
this._$Z = aD._$kS
} else {
this._$hi = (aD._$fo | aD._$gb);
this._$Z = aD._$kS
}
}
} else {
if (this._$7 == 0 && this._$g == 0) {
if (this._$k == 0 && this._$w == 0) {
this._$hi = aD._$go;
this._$Z = aD._$kS
} else {
this._$hi = (aD._$go | aD._$gb);
this._$Z = aD._$kS
}
} else {
if (this._$k == 0 && this._$w == 0) {
this._$hi = (aD._$go | aD._$fo);
this._$Z = aD._$kS
} else {
this._$hi = (aD._$go | aD._$fo | aD._$gb);
this._$Z = aD._$kS
}
}
}
};
aD.prototype._$RT = function(aK) {
this._$IT(aK);
var aJ = aK[0];
var aH = aK[2];
var aN = aK[1];
var aM = aK[3];
var aI = Math.sqrt(aJ * aJ + aN * aN);
var aL = aJ * aM - aH * aN;
if (aI == 0) {
if (Q._$so) {
console.log("affine._$RT() / rt==0")
}
} else {
aK[0] = aI;
aK[1] = aL / aI;
aK[2] = (aN * aM + aJ * aH) / aL;
aK[3] = Math.atan2(aN, aJ)
}
};
aD.prototype._$ho = function(aN, aM, aI, aH) {
var aL = new Float32Array(6);
var aK = new Float32Array(6);
aN._$RT(aL);
aM._$RT(aK);
var aJ = new Float32Array(6);
aJ[0] = aL[0] + (aK[0] - aL[0]) * aI;
aJ[1] = aL[1] + (aK[1] - aL[1]) * aI;
aJ[2] = aL[2] + (aK[2] - aL[2]) * aI;
aJ[3] = aL[3] + (aK[3] - aL[3]) * aI;
aJ[4] = aL[4] + (aK[4] - aL[4]) * aI;
aJ[5] = aL[5] + (aK[5] - aL[5]) * aI;
aH._$CT(aJ)
};
aD.prototype._$CT = function(aJ) {
var aI = Math.cos(aJ[3]);
var aH = Math.sin(aJ[3]);
this._$7 = aJ[0] * aI;
this._$f = aJ[0] * aH;
this._$H = aJ[1] * (aJ[2] * aI - aH);
this._$g = aJ[1] * (aJ[2] * aH + aI);
this._$k = aJ[4];
this._$w = aJ[5];
this.update()
};
aD.prototype._$IT = function(aH) {
aH[0] = this._$7;
aH[1] = this._$f;
aH[2] = this._$H;
aH[3] = this._$g;
aH[4] = this._$k;
aH[5] = this._$w
};
function Y() {
if (j) {
return
}
ah.prototype.constructor.call(this);
this.motions = new Array();
this._$7r = null;
this._$7r = Y._$Co++;
this._$D0 = 30;
this._$yT = 0;
this._$E = true;
this.loopFadeIn = true;
this._$AS = -1;
_$a0()
}
Y.prototype = new ah();
Y._$cs = "VISIBLE:";
Y._$ar = "LAYOUT:";
Y._$Co = 0;
Y._$D2 = [];
Y._$1T = 1;
Y.loadMotion = function(aR) {
var aM = new Y();
var aI = [0];
var aP = aR.length;
aM._$yT = 0;
for (var aJ = 0; aJ < aP; ++aJ) {
var aQ = (aR[aJ] & 255);
if (aQ == "\n" || aQ == "\r") {
continue
}
if (aQ == "#") {
for (; aJ < aP; ++aJ) {
if (aR[aJ] == "\n" || aR[aJ] == "\r") {
break
}
}
continue
}
if (aQ == "$") {
var aT = aJ;
var aK = -1;
for (; aJ < aP; ++aJ) {
aQ = (aR[aJ] & 255);
if (aQ == "\r" || aQ == "\n") {
break
}
if (aQ == "=") {
aK = aJ;
break
}
}
var aO = false;
if (aK >= 0) {
if (aK == aT + 4 && aR[aT + 1] == "f" && aR[aT + 2] == "p" && aR[aT + 3] == "s") {
aO = true
}
for (aJ = aK + 1; aJ < aP; ++aJ) {
aQ = (aR[aJ] & 255);
if (aQ == "\r" || aQ == "\n") {
break
}
if (aQ == "," || aQ == " " || aQ == "\t") {
continue
}
var aL = G._$LS(aR, aP, aJ, aI);
if (aI[0] > 0) {
if (aO && 5 < aL && aL < 121) {
aM._$D0 = aL
}
}
aJ = aI[0]
}
}
for (; aJ < aP; ++aJ) {
if (aR[aJ] == "\n" || aR[aJ] == "\r") {
break
}
}
continue
}
if (("a" <= aQ && aQ <= "z") || ("A" <= aQ && aQ <= "Z") || aQ == "_") {
var aT = aJ;
var aK = -1;
for (; aJ < aP; ++aJ) {
aQ = (aR[aJ] & 255);
if (aQ == "\r" || aQ == "\n") {
break
}
if (aQ == "=") {
aK = aJ;
break
}
}
if (aK >= 0) {
var aN = new t();
if (G.startsWith(aR, aT, Y._$cs)) {
aN._$RP = t._$hs;
aN._$4P = new String(aR, aT, aK - aT)
} else {
if (G.startsWith(aR, aT, Y._$ar)) {
aN._$4P = new String(aR, aT + 7, aK - aT - 7);
if (G.startsWith(aR, aT + 7, "ANCHOR_X")) {
aN._$RP = t._$xs
} else {
if (G.startsWith(aR, aT + 7, "ANCHOR_Y")) {
aN._$RP = t._$us
} else {
if (G.startsWith(aR, aT + 7, "SCALE_X")) {
aN._$RP = t._$qs
} else {
if (G.startsWith(aR, aT + 7, "SCALE_Y")) {
aN._$RP = t._$Ys
} else {
if (G.startsWith(aR, aT + 7, "X")) {
aN._$RP = t._$ws
} else {
if (G.startsWith(aR, aT + 7, "Y")) {
aN._$RP = t._$Ns
}
}
}
}
}
}
} else {
aN._$RP = t._$Fr;
aN._$4P = new String(aR, aT, aK - aT)
}
}
aM.motions.push(aN);
var aS = 0;
Y._$D2.clear();
for (aJ = aK + 1; aJ < aP; ++aJ) {
aQ = (aR[aJ] & 255);
if (aQ == "\r" || aQ == "\n") {
break
}
if (aQ == "," || aQ == " " || aQ == "\t") {
continue
}
var aL = G._$LS(aR, aP, aJ, aI);
if (aI[0] > 0) {
Y._$D2.push(aL);
aS++;
var aH = aI[0];
if (aH < aJ) {
console.log("_$n0 _$hi . @Live2DMotion loadMotion()\n");
break
}
aJ = aH
}
}
aN._$I0 = Y._$D2._$BL();
if (aS > aM._$yT) {
aM._$yT = aS
}
}
}
}
aM._$AS = ((1000 * aM._$yT) / aM._$D0) | 0;
return aM
};
Y.prototype.getDurationMSec = function() {
return this._$AS
};
Y.prototype.dump = function() {
for (var aJ = 0; aJ < this.motions.length; aJ++) {
var aH = this.motions[aJ];
console.log("_$wL[%s] [%d]. ", aH._$4P, aH._$I0.length);
for (var aI = 0; aI < aH._$I0.length && aI < 10; aI++) {
console.log("%5.2f ,", aH._$I0[aI])
}
console.log("\n")
}
};
Y.prototype.updateParamExe = function(aH, aL, aO, aX) {
var aM = aL - aX._$z2;
var aV = aM * this._$D0 / 1000;
var aJ = aV | 0;
var aP = aV - aJ;
for (var aU = 0; aU < this.motions.length; aU++) {
var aS = this.motions[aU];
var aK = aS._$I0.length;
var aQ = aS._$4P;
if (aS._$RP == t._$hs) {
var aT = aS._$I0[(aJ >= aK ? aK - 1 : aJ)];
aH.setParamFloat(aQ, aT)
} else {
if (t._$ws <= aS._$RP && aS._$RP <= t._$Ys) {} else {
var aR = aH.getParamFloat(aQ);
var aY = aS._$I0[(aJ >= aK ? aK - 1 : aJ)];
var aW = aS._$I0[(aJ + 1 >= aK ? aK - 1 : aJ + 1)];
var aI = aY + (aW - aY) * aP;
var aN = aR + (aI - aR) * aO;
aH.setParamFloat(aQ, aN)
}
}
}
if (aJ >= this._$yT) {
if (this._$E) {
aX._$z2 = aL;
if (this.loopFadeIn) {
aX._$bs = aL
}
} else {
aX._$9L = true
}
}
};
Y.prototype._$r0 = function() {
return this._$E
};
Y.prototype._$aL = function(aH) {
this._$E = aH
};
Y.prototype.isLoopFadeIn = function() {
return this.loopFadeIn
};
Y.prototype.setLoopFadeIn = function(aH) {
this.loopFadeIn = aH
};
function aE() {
this._$P = new Float32Array(100);
this.size = 0
}
aE.prototype.clear = function() {
this.size = 0
};
aE.prototype.add = function(aI) {
if (this._$P.length <= this.size) {
var aH = new Float32Array(this.size * 2);
P._$jT(this._$P, 0, aH, 0, this.size);
this._$P = aH
}
this._$P[this.size++] = aI
};
aE.prototype._$BL = function() {
var aH = new Float32Array(this.size);
P._$jT(this._$P, 0, aH, 0, this.size);
return aH
};
function t() {
this._$4P = null;
this._$I0 = null;
this._$RP = null
}
t._$Fr = 0;
t._$hs = 1;
t._$ws = 100;
t._$Ns = 101;
t._$xs = 102;
t._$us = 103;
t._$qs = 104;
t._$Ys = 105;
function aw() {}
aw._$Ms = 1;
aw._$Qs = 2;
aw._$i2 = 0;
aw._$No = 2;
aw._$do = aw._$Ms;
aw._$Ls = true;
aw._$1r = 5;
aw._$Qb = 65;
aw._$J = 0.0001;
aw._$FT = 0.001;
aw._$Ss = 3;
function ay() {}
ay._$o7 = 6;
ay._$S7 = 7;
ay._$s7 = 8;
ay._$77 = 9;
ay.LIVE2D_FORMAT_VERSION_V2_10_SDK2 = 10;
ay.LIVE2D_FORMAT_VERSION_V2_11_SDK2_1 = 11;
ay._$T7 = ay.LIVE2D_FORMAT_VERSION_V2_11_SDK2_1;
ay._$Is = -2004318072;
ay._$h0 = 0;
ay._$4L = 23;
ay._$7P = 33;
ay._$uT = function(aH) {
console.log("_$bo :: _$6 _$mo _$E0 : %d\n", aH)
};
ay._$9o = function(aH) {
if (aH < 40) {
ay._$uT(aH);
return null
} else {
if (aH < 50) {
ay._$uT(aH);
return null
} else {
if (aH < 60) {
ay._$uT(aH);
return null
} else {
if (aH < 100) {
switch (aH) {
case 65:
return new E();
case 66:
return new g();
case 67:
return new aA();
case 68:
return new ab();
case 69:
return new X();
case 70:
return new b();
default:
ay._$uT(aH);
return null
}
} else {
if (aH < 150) {
switch (aH) {
case 131:
return new f();
case 133:
return new s();
case 136:
return new w();
case 137:
return new an();
case 142:
return new aq()
}
}
}
}
}
}
ay._$uT(aH);
return null
};
function y(aH) {
if (j) {
return
}
this._$QT = true;
this._$co = -1;
this._$qo = 0;
this._$pb = new Array(y._$is);
this._$_2 = new Float32Array(y._$is);
this._$vr = new Float32Array(y._$is);
this._$Rr = new Float32Array(y._$is);
this._$Or = new Float32Array(y._$is);
this._$fs = new Float32Array(y._$is);
this._$Js = new Array(y._$is);
this._$3S = new Array();
this._$aS = new Array();
this._$Bo = null;
this._$F2 = new Array();
this._$db = new Array();
this._$8b = new Array();
this._$Hr = new Array();
this._$Ws = null;
this._$Vs = null;
this._$Er = null;
this._$Es = new Int16Array(aw._$Qb);
this._$ZP = new Float32Array(aw._$1r * 2);
this._$Ri = aH;
this._$b0 = y._$HP++;
this.clipManager = null;
this.dp_webgl = null
}
y._$HP = 0;
y._$_0 = true;
y._$V2 = -1;
y._$W0 = -1;
y._$jr = false;
y._$ZS = true;
y._$tr = (-1000000);
y._$lr = (1000000);
y._$is = 32;
y._$e = false;
y.prototype.getDrawDataIndex = function(aI) {
for (var aH = this._$aS.length - 1; aH >= 0; --aH) {
if (this._$aS[aH] != null && this._$aS[aH].getDrawDataID() == aI) {
return aH
}
}
return -1
};
y.prototype.getDrawData = function(aH) {
if (aH instanceof Z) {
if (this._$Bo == null) {
this._$Bo = new Object();
var aJ = this._$aS.length;
for (var aI = 0; aI < aJ; aI++) {
var aL = this._$aS[aI];
var aK = aL.getDrawDataID();
if (aK == null) {
continue
}
this._$Bo[aK] = aL
}
}
return this._$Bo[id]
} else {
if (aH < this._$aS.length) {
return this._$aS[aH]
} else {
return null
}
}
};
y.prototype.release = function() {
this._$3S.clear();
this._$aS.clear();
this._$F2.clear();
if (this._$Bo != null) {
this._$Bo.clear()
}
this._$db.clear();
this._$8b.clear();
this._$Hr.clear()
};
y.prototype.init = function() {
this._$co++;
if (this._$F2.length > 0) {
this.release()
}
var aO = this._$Ri.getModelImpl();
var aT = aO._$Xr();
var aS = aT.length;
var aH = new Array();
var a3 = new Array();
for (var aV = 0; aV < aS; ++aV) {
var a4 = aT[aV];
this._$F2.push(a4);
this._$Hr.push(a4.init(this));
var aK = a4.getBaseData();
var aR = aK.length;
for (var aU = 0; aU < aR; ++aU) {
aH.push(aK[aU])
}
for (var aU = 0; aU < aR; ++aU) {
var aM = aK[aU].init(this);
aM._$l2(aV);
a3.push(aM)
}
var a1 = a4.getDrawData();
var aP = a1.length;
for (var aU = 0; aU < aP; ++aU) {
var aZ = a1[aU];
var a0 = aZ.init(this);
a0._$IP = aV;
this._$aS.push(aZ);
this._$8b.push(a0)
}
}
var aY = aH.length;
var aN = n._$2o();
while (true) {
var aX = false;
for (var aV = 0; aV < aY; ++aV) {
var aL = aH[aV];
if (aL == null) {
continue
}
var a2 = aL.getTargetBaseDataID();
if (a2 == null || a2 == aN || this.getBaseDataIndex(a2) >= 0) {
this._$3S.push(aL);
this._$db.push(a3[aV]);
aH[aV] = null;
aX = true
}
}
if (!aX) {
break
}
}
var aI = aO._$E2();
if (aI != null) {
var aJ = aI._$1s();
if (aJ != null) {
var aW = aJ.length;
for (var aV = 0; aV < aW; ++aV) {
var aQ = aJ[aV];
if (aQ == null) {
continue
}
this._$02(aQ.getParamID(), aQ.getDefaultValue(), aQ.getMinValue(), aQ.getMaxValue())
}
}
}
this.clipManager = new W(this.dp_webgl);
this.clipManager.init(this, this._$aS, this._$8b);
this._$QT = true
};
y.prototype.update = function() {
if (y._$e) {
q.start("_$zL")
}
var aK = this._$_2.length;
for (var aW = 0; aW < aK; aW++) {
if (this._$_2[aW] != this._$vr[aW]) {
this._$Js[aW] = y._$ZS;
this._$vr[aW] = this._$_2[aW]
}
}
var aX = false;
var aQ = this._$3S.length;
var aN = this._$aS.length;
var aS = a._$or();
var aZ = a._$Pr();
var aU = aZ - aS + 1;
if (this._$Ws == null || this._$Ws.length < aU) {
this._$Ws = new Int16Array(aU);
this._$Vs = new Int16Array(aU)
}
for (var aW = 0; aW < aU; aW++) {
this._$Ws[aW] = y._$V2;
this._$Vs[aW] = y._$V2
}
if (this._$Er == null || this._$Er.length < aN) {
this._$Er = new Int16Array(aN)
}
for (var aW = 0; aW < aN; aW++) {
this._$Er[aW] = y._$W0
}
if (y._$e) {
q.dump("_$zL")
}
if (y._$e) {
q.start("_$UL")
}
var aL = null;
for (var aV = 0; aV < aQ; ++aV) {
var aJ = this._$3S[aV];
var aH = this._$db[aV];
try {
aJ._$Nr(this, aH);
aJ._$2b(this, aH)
} catch (aY) {
if (aL == null) {
aL = aY
}
}
}
if (aL != null) {
if (y._$_0) {
q._$Rb(aL)
}
}
if (y._$e) {
q.dump("_$UL")
}
if (y._$e) {
q.start("_$DL")
}
var aR = null;
for (var aO = 0; aO < aN; ++aO) {
var aM = this._$aS[aO];
var aI = this._$8b[aO];
try {
aM._$Nr(this, aI);
if (aI._$u2()) {
continue
}
aM._$2b(this, aI);
var aT = Math.floor(aM._$zS(this, aI) - aS);
var aP;
try {
aP = this._$Vs[aT]
} catch (aY) {
console.log("_$li :: %s / %s @@_$fS\n", aY.toString(), aM.getDrawDataID().toString());
aT = Math.floor(aM._$zS(this, aI) - aS);
continue
}
if (aP == y._$V2) {
this._$Ws[aT] = aO
} else {
this._$Er[aP] = aO
}
this._$Vs[aT] = aO
} catch (aY) {
if (aR == null) {
aR = aY;
Q._$sT(Q._$H7)
}
}
}
if (aR != null) {
if (y._$_0) {
q._$Rb(aR)
}
}
if (y._$e) {
q.dump("_$DL")
}
if (y._$e) {
q.start("_$eL")
}
for (var aW = this._$Js.length - 1; aW >= 0; aW--) {
this._$Js[aW] = y._$jr
}
this._$QT = false;
if (y._$e) {
q.dump("_$eL")
}
return aX
};
y.prototype.preDraw = function(aH) {
if (this.clipManager != null) {
aH._$ZT();
this.clipManager.setupClip(this, aH)
}
};
y.prototype.draw = function(aM) {
if (this._$Ws == null) {
q._$li("call _$Ri.update() before _$Ri.draw() ");
return
}
var aP = this._$Ws.length;
aM._$ZT();
for (var aK = 0; aK < aP; ++aK) {
var aN = this._$Ws[aK];
if (aN == y._$V2) {
continue
}
do {
var aH = this._$aS[aN];
var aI = this._$8b[aN];
if (aI._$yo()) {
var aJ = aI._$IP;
var aL = this._$Hr[aJ];
aI._$VS = aL.getPartsOpacity();
aH.draw(aM, this, aI)
}
var aO = this._$Er[aN];
if (aO <= aN || aO == y._$W0) {
break
}
aN = aO
} while (true)
}
};
y.prototype.getParamIndex = function(aH) {
for (var aI = this._$pb.length - 1; aI >= 0; --aI) {
if (this._$pb[aI] == aH) {
return aI
}
}
return this._$02(aH, 0, y._$tr, y._$lr)
};
y.prototype._$BS = function(aH) {
return this.getBaseDataIndex(aH)
};
y.prototype.getBaseDataIndex = function(aH) {
for (var aI = this._$3S.length - 1; aI >= 0; --aI) {
if (this._$3S[aI] != null && this._$3S[aI].getBaseDataID() == aH) {
return aI
}
}
return -1
};
y.prototype._$UT = function(aJ, aH) {
var aI = new Float32Array(aH);
P._$jT(aJ, 0, aI, 0, aJ.length);
return aI
};
y.prototype._$02 = function(aN, aM, aL, aH) {
if (this._$qo >= this._$pb.length) {
var aK = this._$pb.length;
var aJ = new Array(aK * 2);
P._$jT(this._$pb, 0, aJ, 0, aK);
this._$pb = aJ;
this._$_2 = this._$UT(this._$_2, aK * 2);
this._$vr = this._$UT(this._$vr, aK * 2);
this._$Rr = this._$UT(this._$Rr, aK * 2);
this._$Or = this._$UT(this._$Or, aK * 2);
var aI = new Array();
P._$jT(this._$Js, 0, aI, 0, aK);
this._$Js = aI
}
this._$pb[this._$qo] = aN;
this._$_2[this._$qo] = aM;
this._$vr[this._$qo] = aM;
this._$Rr[this._$qo] = aL;
this._$Or[this._$qo] = aH;
this._$Js[this._$qo] = y._$ZS;
return this._$qo++
};
y.prototype._$Zo = function(aI, aH) {
this._$3S[aI] = aH
};
y.prototype.setParamFloat = function(aH, aI) {
if (aI < this._$Rr[aH]) {
aI = this._$Rr[aH]
}
if (aI > this._$Or[aH]) {
aI = this._$Or[aH]
}
this._$_2[aH] = aI
};
y.prototype.loadParam = function() {
var aH = this._$_2.length;
if (aH > this._$fs.length) {
aH = this._$fs.length
}
P._$jT(this._$fs, 0, this._$_2, 0, aH)
};
y.prototype.saveParam = function() {
var aH = this._$_2.length;
if (aH > this._$fs.length) {
this._$fs = new Float32Array(aH)
}
P._$jT(this._$_2, 0, this._$fs, 0, aH)
};
y.prototype._$v2 = function() {
return this._$co
};
y.prototype._$WS = function() {
return this._$QT
};
y.prototype._$Xb = function(aH) {
return this._$Js[aH] == y._$ZS
};
y.prototype._$vs = function() {
return this._$Es
};
y.prototype._$Tr = function() {
return this._$ZP
};
y.prototype.getBaseData = function(aH) {
return this._$3S[aH]
};
y.prototype.getParamFloat = function(aH) {
return this._$_2[aH]
};
y.prototype.getParamMax = function(aH) {
return this._$Or[aH]
};
y.prototype.getParamMin = function(aH) {
return this._$Rr[aH]
};
y.prototype.setPartsOpacity = function(aJ, aH) {
var aI = this._$Hr[aJ];
aI.setPartsOpacity(aH)
};
y.prototype.getPartsOpacity = function(aI) {
var aH = this._$Hr[aI];
return aH.getPartsOpacity()
};
y.prototype.getPartsDataIndex = function(aI) {
for (var aH = this._$F2.length - 1; aH >= 0; --aH) {
if (this._$F2[aH] != null && this._$F2[aH]._$p2() == aI) {
return aH
}
}
return -1
};
y.prototype._$q2 = function(aH) {
return this._$db[aH]
};
y.prototype._$C2 = function(aH) {
return this._$8b[aH]
};
y.prototype._$Bb = function(aH) {
return this._$Hr[aH]
};
y.prototype._$5s = function(aO, aK) {
var aJ = this._$Ws.length;
var aN = aO;
for (var aL = 0; aL < aJ; ++aL) {
var aI = this._$Ws[aL];
if (aI == y._$V2) {
continue
}
do {
var aM = this._$8b[aI];
if (aM._$yo()) {
aM._$GT()._$B2(this, aM, aN);
aN += aK
}
var aH = this._$Er[aI];
if (aH <= aI || aH == y._$W0) {
break
}
aI = aH
} while (true)
}
};
y.prototype.setDrawParam = function(aH) {
this.dp_webgl = aH
};
y.prototype.getDrawParam = function() {
return this.dp_webgl
};
function ap() {}
ap._$0T = function(aH) {
return ap._$0T(new _$5(aH))
};
ap._$0T = function(aJ) {
if (!aJ.exists()) {
throw new _$ls(aJ._$3b());
}
var aH = aJ.length();
var aI = new Int8Array(aH);
var aM = new _$Xs(new _$kb(aJ), 8192);
var aK;
var aL = 0;
while ((aK = aM.read(aI, aL, aH - aL)) > 0) {
aL += aK
}
return aI
};
ap._$C = function(aJ) {
var aI = null;
var aL = null;
try {
aI = (aJ instanceof Array) ? aJ : new _$Xs(aJ, 8192);
aL = new _$js();
var aM = 1000;
var aK;
var aH = new Int8Array(aM);
while ((aK = aI.read(aH)) > 0) {
aL.write(aH, 0, aK)
}
return aL._$TS()
} finally {
if (aJ != null) {
aJ.close()
}
if (aL != null) {
aL.flush();
aL.close()
}
}
};
function ar() {
if (j) {
return
}
this._$12 = null;
this._$bb = null;
this._$_L = null;
this._$jo = null;
this._$iL = null;
this._$0L = null;
this._$Br = null;
this._$Dr = null;
this._$Cb = null;
this._$mr = null;
this._$_L = az.STATE_FIRST;
this._$Br = 4000;
this._$Dr = 100;
this._$Cb = 50;
this._$mr = 150;
this._$jo = true;
this._$iL = "PARAM_EYE_L_OPEN";
this._$0L = "PARAM_EYE_R_OPEN"
}
ar.prototype._$T2 = function() {
var aI = P.getUserTimeMSec();
var aH = Math._$10();
return (aI + aH * (2 * this._$Br - 1))
};
ar.prototype._$uo = function(aH) {
this._$Br = aH
};
ar.prototype._$QS = function(aI, aH, aJ) {
this._$Dr = aI;
this._$Cb = aH;
this._$mr = aJ
};
ar.prototype._$7T = function(aI) {
var aK = P.getUserTimeMSec();
var aH;
var aJ = 0;
switch (this._$_L) {
case STATE_CLOSING:
aJ = (aK - this._$bb) / this._$Dr;
if (aJ >= 1) {
aJ = 1;
this._$_L = az.STATE_CLOSED;
this._$bb = aK
}
aH = 1 - aJ;
break;
case STATE_CLOSED:
aJ = (aK - this._$bb) / this._$Cb;
if (aJ >= 1) {
this._$_L = az.STATE_OPENING;
this._$bb = aK
}
aH = 0;
break;
case STATE_OPENING:
aJ = (aK - this._$bb) / this._$mr;
if (aJ >= 1) {
aJ = 1;
this._$_L = az.STATE_INTERVAL;
this._$12 = this._$T2()
}
aH = aJ;
break;
case STATE_INTERVAL:
if (this._$12 < aK) {
this._$_L = az.STATE_CLOSING;
this._$bb = aK
}
aH = 1;
break;
case STATE_FIRST:
default:
this._$_L = az.STATE_INTERVAL;
this._$12 = this._$T2();
aH = 1;
break
}
if (!this._$jo) {
aH = -aH
}
aI.setParamFloat(this._$iL, aH);
aI.setParamFloat(this._$0L, aH)
};
var az = function() {};
az.STATE_FIRST = "STATE_FIRST";
az.STATE_INTERVAL = "STATE_INTERVAL";
az.STATE_CLOSING = "STATE_CLOSING";
az.STATE_CLOSED = "STATE_CLOSED";
az.STATE_OPENING = "STATE_OPENING";
function x() {
if (j) {
return
}
ax.prototype.constructor.call(this);
this._$sb = new Int32Array(x._$As);
this._$U2 = new Array();
this.transform = null;
this.gl = null;
if (x._$NT == null) {
x._$NT = x._$9r(256);
x._$vS = x._$9r(256);
x._$no = x._$vb(256)
}
}
x.prototype = new ax();
x._$As = 32;
x._$Gr = false;
x._$NT = null;
x._$vS = null;
x._$no = null;
x._$9r = function(aH) {
var aI = new Float32Array(aH);
return aI
};
x._$vb = function(aH) {
var aI = new Int16Array(aH);
return aI
};
x._$cr = function(aI, aH) {
if (aI == null || aI._$yL() < aH.length) {
aI = x._$9r(aH.length * 2);
aI.put(aH);
aI._$oT(0)
} else {
aI.clear();
aI.put(aH);
aI._$oT(0)
}
return aI
};
x._$mb = function(aI, aH) {
if (aI == null || aI._$yL() < aH.length) {
aI = x._$vb(aH.length * 2);
aI.put(aH);
aI._$oT(0)
} else {
aI.clear();
aI.put(aH);
aI._$oT(0)
}
return aI
};
x._$Hs = function() {
return x._$Gr
};
x._$as = function(aH) {
x._$Gr = aH
};
x.prototype.setGL = function(aH) {
this.gl = aH
};
x.prototype.setTransform = function(aH) {
this.transform = aH
};
x.prototype._$ZT = function() {};
x.prototype._$Uo = function(aO, aH, aP, aI, aQ, aM, aK, aJ) {
if (aM < 0.01) {
return
}
var aL = this._$U2[aO];
var aN = aM > 0.9 ? Q.EXPAND_W : 0;
this.gl.drawElements(aL, aP, aI, aQ, aM, aN, this.transform, aJ)
};
x.prototype._$Rs = function() {
throw new Error("_$Rs");
};
x.prototype._$Ds = function(aH) {
throw new Error("_$Ds");
};
x.prototype._$K2 = function() {
for (var aH = 0; aH < this._$sb.length; aH++) {
var aI = this._$sb[aH];
if (aI != 0) {
this.gl._$Sr(1, this._$sb, aH);
this._$sb[aH] = 0
}
}
};
x.prototype.setTexture = function(aI, aH) {
if (this._$sb.length < aI + 1) {
this._$nS(aI)
}
this._$sb[aI] = aH
};
x.prototype.setTexture = function(aH, aI) {
if (this._$sb.length < aH + 1) {
this._$nS(aH)
}
this._$U2[aH] = aI
};
x.prototype._$nS = function(aH) {
var aK = Math.max(this._$sb.length * 2, aH + 1 + 10);
var aI = new Int32Array(aK);
P._$jT(this._$sb, 0, aI, 0, this._$sb.length);
this._$sb = aI;
var aJ = new Array();
P._$jT(this._$U2, 0, aJ, 0, this._$U2.length);
this._$U2 = aJ
};
function ab() {
if (j) {
return
}
c.prototype.constructor.call(this);
this._$GS = null;
this._$Y0 = null
}
ab.prototype = new c();
ab._$Xo = new Float32Array(2);
ab._$io = new Float32Array(2);
ab._$0o = new Float32Array(2);
ab._$Lo = new Float32Array(2);
ab._$To = new Float32Array(2);
ab._$Po = new Float32Array(2);
ab._$gT = new Array();
ab.prototype._$zP = function() {
this._$GS = new g();
this._$GS._$zP();
this._$Y0 = new Array()
};
ab.prototype.getType = function() {
return c._$c2
};
ab.prototype._$F0 = function(aH) {
c.prototype._$F0.call(this, aH);
this._$GS = aH._$nP();
this._$Y0 = aH._$nP();
c.prototype.readV2_opacity.call(this, aH)
};
ab.prototype.init = function(aH) {
var aI = new al(this);
aI._$Yr = new X();
if (this._$32()) {
aI._$Wr = new X()
}
return aI
};
ab.prototype._$Nr = function(bf, bx) {
if (!((this == bx._$GT()))) {
console.log("### assert!! ### ")
}
var bm = bx;
if (!this._$GS._$Ur(bf)) {
return
}
var bw = ab._$gT;
bw[0] = false;
var a2 = this._$GS._$Q2(bf, bw);
bx._$Ib(bw[0]);
this.interpolateOpacity(bf, this._$GS, bx, bw);
var a3 = bf._$vs();
var ba = bf._$Tr();
this._$GS._$zr(a3, ba, a2);
if (a2 <= 0) {
var bn = this._$Y0[a3[0]];
bm._$Yr.init(bn)
} else {
if (a2 == 1) {
var bn = this._$Y0[a3[0]];
var bl = this._$Y0[a3[1]];
var a9 = ba[0];
bm._$Yr._$fL = bn._$fL + (bl._$fL - bn._$fL) * a9;
bm._$Yr._$gL = bn._$gL + (bl._$gL - bn._$gL) * a9;
bm._$Yr._$B0 = bn._$B0 + (bl._$B0 - bn._$B0) * a9;
bm._$Yr._$z0 = bn._$z0 + (bl._$z0 - bn._$z0) * a9;
bm._$Yr._$qT = bn._$qT + (bl._$qT - bn._$qT) * a9
} else {
if (a2 == 2) {
var bn = this._$Y0[a3[0]];
var bl = this._$Y0[a3[1]];
var a1 = this._$Y0[a3[2]];
var a0 = this._$Y0[a3[3]];
var a9 = ba[0];
var a8 = ba[1];
var bC = bn._$fL + (bl._$fL - bn._$fL) * a9;
var bB = a1._$fL + (a0._$fL - a1._$fL) * a9;
bm._$Yr._$fL = bC + (bB - bC) * a8;
bC = bn._$gL + (bl._$gL - bn._$gL) * a9;
bB = a1._$gL + (a0._$gL - a1._$gL) * a9;
bm._$Yr._$gL = bC + (bB - bC) * a8;
bC = bn._$B0 + (bl._$B0 - bn._$B0) * a9;
bB = a1._$B0 + (a0._$B0 - a1._$B0) * a9;
bm._$Yr._$B0 = bC + (bB - bC) * a8;
bC = bn._$z0 + (bl._$z0 - bn._$z0) * a9;
bB = a1._$z0 + (a0._$z0 - a1._$z0) * a9;
bm._$Yr._$z0 = bC + (bB - bC) * a8;
bC = bn._$qT + (bl._$qT - bn._$qT) * a9;
bB = a1._$qT + (a0._$qT - a1._$qT) * a9;
bm._$Yr._$qT = bC + (bB - bC) * a8
} else {
if (a2 == 3) {
var aP = this._$Y0[a3[0]];
var aO = this._$Y0[a3[1]];
var bu = this._$Y0[a3[2]];
var bs = this._$Y0[a3[3]];
var aK = this._$Y0[a3[4]];
var aJ = this._$Y0[a3[5]];
var bj = this._$Y0[a3[6]];
var bi = this._$Y0[a3[7]];
var a9 = ba[0];
var a8 = ba[1];
var a6 = ba[2];
var bC = aP._$fL + (aO._$fL - aP._$fL) * a9;
var bB = bu._$fL + (bs._$fL - bu._$fL) * a9;
var bz = aK._$fL + (aJ._$fL - aK._$fL) * a9;
var by = bj._$fL + (bi._$fL - bj._$fL) * a9;
bm._$Yr._$fL = (1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8);
bC = aP._$gL + (aO._$gL - aP._$gL) * a9;
bB = bu._$gL + (bs._$gL - bu._$gL) * a9;
bz = aK._$gL + (aJ._$gL - aK._$gL) * a9;
by = bj._$gL + (bi._$gL - bj._$gL) * a9;
bm._$Yr._$gL = (1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8);
bC = aP._$B0 + (aO._$B0 - aP._$B0) * a9;
bB = bu._$B0 + (bs._$B0 - bu._$B0) * a9;
bz = aK._$B0 + (aJ._$B0 - aK._$B0) * a9;
by = bj._$B0 + (bi._$B0 - bj._$B0) * a9;
bm._$Yr._$B0 = (1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8);
bC = aP._$z0 + (aO._$z0 - aP._$z0) * a9;
bB = bu._$z0 + (bs._$z0 - bu._$z0) * a9;
bz = aK._$z0 + (aJ._$z0 - aK._$z0) * a9;
by = bj._$z0 + (bi._$z0 - bj._$z0) * a9;
bm._$Yr._$z0 = (1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8);
bC = aP._$qT + (aO._$qT - aP._$qT) * a9;
bB = bu._$qT + (bs._$qT - bu._$qT) * a9;
bz = aK._$qT + (aJ._$qT - aK._$qT) * a9;
by = bj._$qT + (bi._$qT - bj._$qT) * a9;
bm._$Yr._$qT = (1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8)
} else {
if (a2 == 4) {
var aT = this._$Y0[a3[0]];
var aS = this._$Y0[a3[1]];
var bE = this._$Y0[a3[2]];
var bD = this._$Y0[a3[3]];
var aN = this._$Y0[a3[4]];
var aM = this._$Y0[a3[5]];
var bp = this._$Y0[a3[6]];
var bo = this._$Y0[a3[7]];
var bh = this._$Y0[a3[8]];
var bg = this._$Y0[a3[9]];
var aY = this._$Y0[a3[10]];
var aW = this._$Y0[a3[11]];
var a7 = this._$Y0[a3[12]];
var a5 = this._$Y0[a3[13]];
var aR = this._$Y0[a3[14]];
var aQ = this._$Y0[a3[15]];
var a9 = ba[0];
var a8 = ba[1];
var a6 = ba[2];
var a4 = ba[3];
var bC = aT._$fL + (aS._$fL - aT._$fL) * a9;
var bB = bE._$fL + (bD._$fL - bE._$fL) * a9;
var bz = aN._$fL + (aM._$fL - aN._$fL) * a9;
var by = bp._$fL + (bo._$fL - bp._$fL) * a9;
var bv = bh._$fL + (bg._$fL - bh._$fL) * a9;
var bt = aY._$fL + (aW._$fL - aY._$fL) * a9;
var br = a7._$fL + (a5._$fL - a7._$fL) * a9;
var bq = aR._$fL + (aQ._$fL - aR._$fL) * a9;
bm._$Yr._$fL = (1 - a4) * ((1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8)) + a4 * ((1 - a6) * (bv + (bt - bv) * a8) + a6 * (br + (bq - br) * a8));
bC = aT._$gL + (aS._$gL - aT._$gL) * a9;
bB = bE._$gL + (bD._$gL - bE._$gL) * a9;
bz = aN._$gL + (aM._$gL - aN._$gL) * a9;
by = bp._$gL + (bo._$gL - bp._$gL) * a9;
bv = bh._$gL + (bg._$gL - bh._$gL) * a9;
bt = aY._$gL + (aW._$gL - aY._$gL) * a9;
br = a7._$gL + (a5._$gL - a7._$gL) * a9;
bq = aR._$gL + (aQ._$gL - aR._$gL) * a9;
bm._$Yr._$gL = (1 - a4) * ((1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8)) + a4 * ((1 - a6) * (bv + (bt - bv) * a8) + a6 * (br + (bq - br) * a8));
bC = aT._$B0 + (aS._$B0 - aT._$B0) * a9;
bB = bE._$B0 + (bD._$B0 - bE._$B0) * a9;
bz = aN._$B0 + (aM._$B0 - aN._$B0) * a9;
by = bp._$B0 + (bo._$B0 - bp._$B0) * a9;
bv = bh._$B0 + (bg._$B0 - bh._$B0) * a9;
bt = aY._$B0 + (aW._$B0 - aY._$B0) * a9;
br = a7._$B0 + (a5._$B0 - a7._$B0) * a9;
bq = aR._$B0 + (aQ._$B0 - aR._$B0) * a9;
bm._$Yr._$B0 = (1 - a4) * ((1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8)) + a4 * ((1 - a6) * (bv + (bt - bv) * a8) + a6 * (br + (bq - br) * a8));
bC = aT._$z0 + (aS._$z0 - aT._$z0) * a9;
bB = bE._$z0 + (bD._$z0 - bE._$z0) * a9;
bz = aN._$z0 + (aM._$z0 - aN._$z0) * a9;
by = bp._$z0 + (bo._$z0 - bp._$z0) * a9;
bv = bh._$z0 + (bg._$z0 - bh._$z0) * a9;
bt = aY._$z0 + (aW._$z0 - aY._$z0) * a9;
br = a7._$z0 + (a5._$z0 - a7._$z0) * a9;
bq = aR._$z0 + (aQ._$z0 - aR._$z0) * a9;
bm._$Yr._$z0 = (1 - a4) * ((1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8)) + a4 * ((1 - a6) * (bv + (bt - bv) * a8) + a6 * (br + (bq - br) * a8));
bC = aT._$qT + (aS._$qT - aT._$qT) * a9;
bB = bE._$qT + (bD._$qT - bE._$qT) * a9;
bz = aN._$qT + (aM._$qT - aN._$qT) * a9;
by = bp._$qT + (bo._$qT - bp._$qT) * a9;
bv = bh._$qT + (bg._$qT - bh._$qT) * a9;
bt = aY._$qT + (aW._$qT - aY._$qT) * a9;
br = a7._$qT + (a5._$qT - a7._$qT) * a9;
bq = aR._$qT + (aQ._$qT - aR._$qT) * a9;
bm._$Yr._$qT = (1 - a4) * ((1 - a6) * (bC + (bB - bC) * a8) + a6 * (bz + (by - bz) * a8)) + a4 * ((1 - a6) * (bv + (bt - bv) * a8) + a6 * (br + (bq - br) * a8))
} else {
var aV = Math.pow(2, a2) | 0;
var aZ = new Float32Array(aV);
for (var bk = 0; bk < aV; bk++) {
var aI = bk;
var aH = 1;
for (var aL = 0; aL < a2; aL++) {
aH *= (aI % 2 == 0) ? (1 - ba[aL]) : ba[aL];
aI /= 2
}
aZ[bk] = aH
}
var bA = new Array();
for (var aU = 0; aU < aV; aU++) {
bA[aU] = this._$Y0[a3[aU]]
}
var be = 0,
bc = 0,
bd = 0,
bb = 0,
aX = 0;
for (var aU = 0; aU < aV; aU++) {
be += aZ[aU] * bA[aU]._$fL;
bc += aZ[aU] * bA[aU]._$gL;
bd += aZ[aU] * bA[aU]._$B0;
bb += aZ[aU] * bA[aU]._$z0;
aX += aZ[aU] * bA[aU]._$qT
}
bm._$Yr._$fL = be;
bm._$Yr._$gL = bc;
bm._$Yr._$B0 = bd;
bm._$Yr._$z0 = bb;
bm._$Yr._$qT = aX
}
}
}
}
}
var bn = this._$Y0[a3[0]];
bm._$Yr.reflectX = bn.reflectX;
bm._$Yr.reflectY = bn.reflectY
};
ab.prototype._$2b = function(aM, aH) {
if (!((this == aH._$GT()))) {
console.log("### assert!! ### ")
}
var aR = aH;
aR._$hS(true);
if (!this._$32()) {
aR.setTotalScale_notForClient(aR._$Yr._$B0);
aR.setTotalOpacity(aR.getInterpolatedOpacity())
} else {
var aT = this.getTargetBaseDataID();
if (aR._$8r == c._$ur) {
aR._$8r = aM.getBaseDataIndex(aT)
}
if (aR._$8r < 0) {
if (Q._$so) {
q._$li("_$L _$0P _$G :: %s", aT)
}
aR._$hS(false)
} else {
var aI = aM.getBaseData(aR._$8r);
if (aI != null) {
var aL = aM._$q2(aR._$8r);
var aS = ab._$Xo;
aS[0] = aR._$Yr._$fL;
aS[1] = aR._$Yr._$gL;
var aJ = ab._$io;
aJ[0] = 0;
aJ[1] = -0.1;
var aO = aL._$GT().getType();
if (aO == c._$c2) {
aJ[1] = -10
} else {
aJ[1] = -0.1
}
var aQ = ab._$0o;
this._$Jr(aM, aI, aL, aS, aJ, aQ);
var aP = aC._$92(aJ, aQ);
aI._$nb(aM, aL, aS, aS, 1, 0, 2);
aR._$Wr._$fL = aS[0];
aR._$Wr._$gL = aS[1];
aR._$Wr._$B0 = aR._$Yr._$B0;
aR._$Wr._$z0 = aR._$Yr._$z0;
aR._$Wr._$qT = aR._$Yr._$qT - aP * aC._$NS;
var aK = aL.getTotalScale();
aR.setTotalScale_notForClient(aK * aR._$Wr._$B0);
var aN = aL.getTotalOpacity();
aR.setTotalOpacity(aN * aR.getInterpolatedOpacity());
aR._$Wr.reflectX = aR._$Yr.reflectX;
aR._$Wr.reflectY = aR._$Yr.reflectY;
aR._$hS(aL._$yo())
} else {
aR._$hS(false)
}
}
}
};
ab.prototype._$nb = function(aJ, aR, aL, a4, aT, aO, a2) {
if (!((this == aR._$GT()))) {
console.log("### assert!! ### ")
}
var aH = aR;
var aU = aH._$Wr != null ? aH._$Wr : aH._$Yr;
var a0 = Math.sin(aC._$bS * aU._$qT);
var aP = Math.cos(aC._$bS * aU._$qT);
var a3 = aH.getTotalScale();
var aW = aU.reflectX ? -1 : 1;
var aV = aU.reflectY ? -1 : 1;
var aS = aP * a3 * aW;
var aQ = -a0 * a3 * aV;
var a1 = a0 * a3 * aW;
var aZ = aP * a3 * aV;
var aY = aU._$fL;
var aX = aU._$gL;
var aN, aM;
var aI = aT * a2;
for (var aK = aO; aK < aI; aK += a2) {
aN = aL[aK];
aM = aL[aK + 1];
a4[aK] = aS * aN + aQ * aM + aY;
a4[aK + 1] = a1 * aN + aZ * aM + aX
}
};
ab.prototype._$Jr = function(aP, aK, aI, aR, aQ, aH) {
if (!((aK == aI._$GT()))) {
console.log("### assert!! ### ")
}
var aO = ab._$Lo;
ab._$Lo[0] = aR[0];
ab._$Lo[1] = aR[1];
aK._$nb(aP, aI, aO, aO, 1, 0, 2);
var aL = ab._$To;
var aS = ab._$Po;
var aN = 10;
var aJ = 1;
for (var aM = 0; aM < aN; aM++) {
aS[0] = aR[0] + aJ * aQ[0];
aS[1] = aR[1] + aJ * aQ[1];
aK._$nb(aP, aI, aS, aL, 1, 0, 2);
aL[0] -= aO[0];
aL[1] -= aO[1];
if (aL[0] != 0 || aL[1] != 0) {
aH[0] = aL[0];
aH[1] = aL[1];
return
}
aS[0] = aR[0] - aJ * aQ[0];
aS[1] = aR[1] - aJ * aQ[1];
aK._$nb(aP, aI, aS, aL, 1, 0, 2);
aL[0] -= aO[0];
aL[1] -= aO[1];
if (aL[0] != 0 || aL[1] != 0) {
aL[0] = -aL[0];
aL[0] = -aL[0];
aH[0] = aL[0];
aH[1] = aL[1];
return
}
aJ *= 0.1
}
if (Q._$so) {
console.log("_$L0 to transform _$SP\n")
}
};
function al(aH) {
B.prototype.constructor.call(this, aH);
this._$8r = c._$ur;
this._$Yr = null;
this._$Wr = null
}
al.prototype = new B();
function a() {
if (j) {
return
}
ae.prototype.constructor.call(this);
this._$gP = null;
this._$dr = null;
this._$GS = null;
this._$qb = null;
this._$Lb = null;
this._$mS = null
}
a.prototype = new ae();
a._$ur = -2;
a._$ES = 500;
a._$wb = 2;
a._$8S = 3;
a._$os = 4;
a._$52 = a._$ES;
a._$R2 = a._$ES;
a._$Sb = function(aJ) {
for (var aI = aJ.length - 1; aI >= 0; --aI) {
var aH = aJ[aI];
if (aH < a._$52) {
a._$52 = aH
} else {
if (aH > a._$R2) {
a._$R2 = aH
}
}
}
};
a._$or = function() {
return a._$52
};
a._$Pr = function() {
return a._$R2
};
a.prototype._$F0 = function(aH) {
this._$gP = aH._$nP();
this._$dr = aH._$nP();
this._$GS = aH._$nP();
this._$qb = aH._$6L();
this._$Lb = aH._$cS();
this._$mS = aH._$Tb();
if (aH.getFormatVersion() >= ay._$T7) {
this.clipID = aH._$nP();
this.clipIDList = this.convertClipIDForV2_11(this.clipID)
} else {
this.clipIDList = null
}
a._$Sb(this._$Lb)
};
a.prototype.getClipIDList = function() {
return this.clipIDList
};
a.prototype._$Nr = function(aI, aH) {
aH._$IS[0] = false;
aH._$Us = aG._$Z2(aI, this._$GS, aH._$IS, this._$Lb);
if (Q._$Zs) {} else {
if (aH._$IS[0]) {
return
}
}
aH._$7s = aG._$br(aI, this._$GS, aH._$IS, this._$mS)
};
a.prototype._$2b = function(aH) {};
a.prototype.getDrawDataID = function() {
return this._$gP
};
a.prototype._$j2 = function(aH) {
this._$gP = aH
};
a.prototype.getOpacity = function(aH, aI) {
return aI._$7s
};
a.prototype._$zS = function(aH, aI) {
return aI._$Us
};
a.prototype.getTargetBaseDataID = function() {
return this._$dr
};
a.prototype._$gs = function(aH) {
this._$dr = aH
};
a.prototype._$32 = function() {
return (this._$dr != null && (this._$dr != n._$2o()))
};
a.prototype.getType = function() {};
function aq() {
if (j) {
return
}
this._$NL = null;
this._$3S = null;
this._$aS = null;
aq._$42++
}
aq._$42 = 0;
aq.prototype._$1b = function() {
return this._$3S
};
aq.prototype.getDrawDataList = function() {
return this._$aS
};
aq.prototype._$F0 = function(aH) {
this._$NL = aH._$nP();
this._$aS = aH._$nP();
this._$3S = aH._$nP()
};
aq.prototype._$kr = function(aH) {
aH._$Zo(this._$3S);
aH._$xo(this._$aS);
this._$3S = null;
this._$aS = null
};
function v() {
if (j) {
return
}
aa.prototype.constructor.call(this);
this._$zo = new x()
}
v.prototype = new aa();
v.loadModel = function(aI) {
var aH = new v();
aa._$62(aH, aI);
return aH
};
v.loadModel = function(aI) {
var aH = new v();
aa._$62(aH, aI);
return aH
};
v._$to = function() {
var aH = new v();
return aH
};
v._$er = function(aM) {
var aJ = new _$5("../_$_r/_$t0/_$Ri/_$_P._$d");
if (aJ.exists() == false) {
throw new _$ls("_$t0 _$_ _$6 _$Ui :: " + aJ._$PL());
}
var aH = ["../_$_r/_$t0/_$Ri/_$_P.512/_$CP._$1", "../_$_r/_$t0/_$Ri/_$_P.512/_$vP._$1", "../_$_r/_$t0/_$Ri/_$_P.512/_$EP._$1", "../_$_r/_$t0/_$Ri/_$_P.512/_$pP._$1"];
var aK = v.loadModel(aJ._$3b());
for (var aI = 0; aI < aH.length; aI++) {
var aL = new _$5(aH[aI]);
if (aL.exists() == false) {
throw new _$ls("_$t0 _$_ _$6 _$Ui :: " + aL._$PL());
}
aK.setTexture(aI, _$nL._$_o(aM, aL._$3b()))
}
return aK
};
v.prototype.setGL = function(aH) {
this._$zo.setGL(aH)
};
v.prototype.setTransform = function(aH) {
this._$zo.setTransform(aH)
};
v.prototype.draw = function() {
this._$5S.draw(this._$zo)
};
v.prototype._$K2 = function() {
this._$zo._$K2()
};
v.prototype.setTexture = function(aI, aH) {
if (this._$zo == null) {
q._$li("_$Yi for QT _$ki / _$XS() is _$6 _$ui!!")
}
this._$zo.setTexture(aI, aH)
};
v.prototype.setTexture = function(aI, aH) {
if (this._$zo == null) {
q._$li("_$Yi for QT _$ki / _$XS() is _$6 _$ui!!")
}
this._$zo.setTexture(aI, aH)
};
v.prototype._$Rs = function() {
return this._$zo._$Rs()
};
v.prototype._$Ds = function(aH) {
this._$zo._$Ds(aH)
};
v.prototype.getDrawParam = function() {
return this._$zo
};
function ao() {
if (j) {
return
}
ah.prototype.constructor.call(this);
this.motions = new Array();
this._$o2 = null;
this._$7r = ao._$Co++;
this._$D0 = 30;
this._$yT = 0;
this._$E = false;
this.loopFadeIn = true;
this._$rr = -1;
this._$eP = 0
}
ao.prototype = new ah();
ao._$cs = "VISIBLE:";
ao._$ar = "LAYOUT:";
ao.MTN_PREFIX_FADEIN = "FADEIN:";
ao.MTN_PREFIX_FADEOUT = "FADEOUT:";
ao._$Co = 0;
ao._$1T = 1;
ao.loadMotion = function(aJ) {
var aI = ap._$C(aJ);
var aH = ao.loadMotion(aI);
return aH
};
function p(aI, aH) {
return String.fromCharCode(aI.getUint8(aH))
}
ao.loadMotion = function(aT) {
if (aT instanceof ArrayBuffer) {
aT = new DataView(aT)
}
var aN = new ao();
var aI = [0];
var aQ = aT.byteLength;
aN._$yT = 0;
for (var aJ = 0; aJ < aQ; ++aJ) {
var aS = p(aT, aJ);
var aL = aS.charCodeAt(0);
if (aS == "\n" || aS == "\r") {
continue
}
if (aS == "#") {
for (; aJ < aQ; ++aJ) {
if (p(aT, aJ) == "\n" || p(aT, aJ) == "\r") {
break
}
}
continue
}
if (aS == "$") {
var aV = aJ;
var aK = -1;
for (; aJ < aQ; ++aJ) {
aS = p(aT, aJ);
if (aS == "\r" || aS == "\n") {
break
}
if (aS == "=") {
aK = aJ;
break
}
}
var aP = false;
if (aK >= 0) {
if (aK == aV + 4 && p(aT, aV + 1) == "f" && p(aT, aV + 2) == "p" && p(aT, aV + 3) == "s") {
aP = true
}
for (aJ = aK + 1; aJ < aQ; ++aJ) {
aS = p(aT, aJ);
if (aS == "\r" || aS == "\n") {
break
}
if (aS == "," || aS == " " || aS == "\t") {
continue
}
var aM = G._$LS(aT, aQ, aJ, aI);
if (aI[0] > 0) {
if (aP && 5 < aM && aM < 121) {
aN._$D0 = aM
}
}
aJ = aI[0]
}
}
for (; aJ < aQ; ++aJ) {
if (p(aT, aJ) == "\n" || p(aT, aJ) == "\r") {
break
}
}
continue
}
if ((97 <= aL && aL <= 122) || (65 <= aL && aL <= 90) || aS == "_") {
var aV = aJ;
var aK = -1;
for (; aJ < aQ; ++aJ) {
aS = p(aT, aJ);
if (aS == "\r" || aS == "\n") {
break
}
if (aS == "=") {
aK = aJ;
break
}
}
if (aK >= 0) {
var aO = new t();
if (G.startsWith(aT, aV, ao._$cs)) {
aO._$RP = t._$hs;
aO._$4P = G.createString(aT, aV, aK - aV)
} else {
if (G.startsWith(aT, aV, ao._$ar)) {
aO._$4P = G.createString(aT, aV + 7, aK - aV - 7);
if (G.startsWith(aT, aV + 7, "ANCHOR_X")) {
aO._$RP = t._$xs
} else {
if (G.startsWith(aT, aV + 7, "ANCHOR_Y")) {
aO._$RP = t._$us
} else {
if (G.startsWith(aT, aV + 7, "SCALE_X")) {
aO._$RP = t._$qs
} else {
if (G.startsWith(aT, aV + 7, "SCALE_Y")) {
aO._$RP = t._$Ys
} else {
if (G.startsWith(aT, aV + 7, "X")) {
aO._$RP = t._$ws
} else {
if (G.startsWith(aT, aV + 7, "Y")) {
aO._$RP = t._$Ns
}
}
}
}
}
}
} else {
aO._$RP = t._$Fr;
aO._$4P = G.createString(aT, aV, aK - aV)
}
}
aN.motions.push(aO);
var aU = 0;
var aR = [];
for (aJ = aK + 1; aJ < aQ; ++aJ) {
aS = p(aT, aJ);
if (aS == "\r" || aS == "\n") {
break
}
if (aS == "," || aS == " " || aS == "\t") {
continue
}
var aM = G._$LS(aT, aQ, aJ, aI);
if (aI[0] > 0) {
aR.push(aM);
aU++;
var aH = aI[0];
if (aH < aJ) {
console.log("_$n0 _$hi . @Live2DMotion loadMotion()\n");
break
}
aJ = aH - 1
}
}
aO._$I0 = new Float32Array(aR);
if (aU > aN._$yT) {
aN._$yT = aU
}
}
}
}
aN._$rr = ((1000 * aN._$yT) / aN._$D0) | 0;
return aN
};
ao.prototype.getDurationMSec = function() {
return this._$E ? -1 : this._$rr
};
ao.prototype.getLoopDurationMSec = function() {
return this._$rr
};
ao.prototype.dump = function() {
for (var aJ = 0; aJ < this.motions.length; aJ++) {
var aH = this.motions[aJ];
console.log("_$wL[%s] [%d]. ", aH._$4P, aH._$I0.length);
for (var aI = 0; aI < aH._$I0.length && aI < 10; aI++) {
console.log("%5.2f ,", aH._$I0[aI])
}
console.log("\n")
}
};
ao.prototype.updateParamExe = function(aJ, aN, aQ, a3) {
var aO = aN - a3._$z2;
var a0 = aO * this._$D0 / 1000;
var aK = a0 | 0;
var aR = a0 - aK;
for (var aZ = 0; aZ < this.motions.length; aZ++) {
var aV = this.motions[aZ];
var aL = aV._$I0.length;
var aT = aV._$4P;
if (aV._$RP == t._$hs) {
var aX = aV._$I0[(aK >= aL ? aL - 1 : aK)];
aJ.setParamFloat(aT, aX)
} else {
if (t._$ws <= aV._$RP && aV._$RP <= t._$Ys) {} else {
var aH = aJ.getParamIndex(aT);
var a4 = aJ.getModelContext();
var aY = a4.getParamMax(aH);
var aW = a4.getParamMin(aH);
var aM = 0.4;
var aS = aM * (aY - aW);
var aU = a4.getParamFloat(aH);
var a2 = aV._$I0[(aK >= aL ? aL - 1 : aK)];
var a1 = aV._$I0[(aK + 1 >= aL ? aL - 1 : aK + 1)];
var aI;
if ((a2 < a1 && a1 - a2 > aS) || (a2 > a1 && a2 - a1 > aS)) {
aI = a2
} else {
aI = a2 + (a1 - a2) * aR
}
var aP = aU + (aI - aU) * aQ;
aJ.setParamFloat(aT, aP)
}
}
}
if (aK >= this._$yT) {
if (this._$E) {
a3._$z2 = aN;
if (this.loopFadeIn) {
a3._$bs = aN
}
} else {
a3._$9L = true
}
}
this._$eP = aQ
};
ao.prototype._$r0 = function() {
return this._$E
};
ao.prototype._$aL = function(aH) {
this._$E = aH
};
ao.prototype._$S0 = function() {
return this._$D0
};
ao.prototype._$U0 = function(aH) {
this._$D0 = aH
};
ao.prototype.isLoopFadeIn = function() {
return this.loopFadeIn
};
ao.prototype.setLoopFadeIn = function(aH) {
this.loopFadeIn = aH
};
function aE() {
this._$P = new Float32Array(100);
this.size = 0
}
aE.prototype.clear = function() {
this.size = 0
};
aE.prototype.add = function(aI) {
if (this._$P.length <= this.size) {
var aH = new Float32Array(this.size * 2);
P._$jT(this._$P, 0, aH, 0, this.size);
this._$P = aH
}
this._$P[this.size++] = aI
};
aE.prototype._$BL = function() {
var aH = new Float32Array(this.size);
P._$jT(this._$P, 0, aH, 0, this.size);
return aH
};
function t() {
this._$4P = null;
this._$I0 = null;
this._$RP = null
}
t._$Fr = 0;
t._$hs = 1;
t._$ws = 100;
t._$Ns = 101;
t._$xs = 102;
t._$us = 103;
t._$qs = 104;
t._$Ys = 105;
function E() {
if (j) {
return
}
c.prototype.constructor.call(this);
this._$o = 0;
this._$A = 0;
this._$GS = null;
this._$Eo = null
}
E.prototype = new c();
E._$gT = new Array();
E.prototype._$zP = function() {
this._$GS = new g();
this._$GS._$zP()
};
E.prototype._$F0 = function(aH) {
c.prototype._$F0.call(this, aH);
this._$A = aH._$6L();
this._$o = aH._$6L();
this._$GS = aH._$nP();
this._$Eo = aH._$nP();
c.prototype.readV2_opacity.call(this, aH)
};
E.prototype.init = function(aH) {
var aI = new H(this);
var aJ = (this._$o + 1) * (this._$A + 1);
if (aI._$Cr != null) {
aI._$Cr = null
}
aI._$Cr = new Float32Array(aJ * 2);
if (aI._$hr != null) {
aI._$hr = null
}
if (this._$32()) {
aI._$hr = new Float32Array(aJ * 2)
} else {
aI._$hr = null
}
return aI
};
E.prototype._$Nr = function(aJ, aI) {
var aK = aI;
if (!this._$GS._$Ur(aJ)) {
return
}
var aL = this._$VT();
var aH = E._$gT;
aH[0] = false;
aG._$Vr(aJ, this._$GS, aH, aL, this._$Eo, aK._$Cr, 0, 2);
aI._$Ib(aH[0]);
this.interpolateOpacity(aJ, this._$GS, aI, aH)
};
E.prototype._$2b = function(aK, aJ) {
var aL = aJ;
aL._$hS(true);
if (!this._$32()) {
aL.setTotalOpacity(aL.getInterpolatedOpacity())
} else {
var aH = this.getTargetBaseDataID();
if (aL._$8r == c._$ur) {
aL._$8r = aK.getBaseDataIndex(aH)
}
if (aL._$8r < 0) {
if (Q._$so) {
q._$li("_$L _$0P _$G :: %s", aH)
}
aL._$hS(false)
} else {
var aN = aK.getBaseData(aL._$8r);
var aI = aK._$q2(aL._$8r);
if (aN != null && aI._$yo()) {
var aM = aI.getTotalScale();
aL.setTotalScale_notForClient(aM);
var aO = aI.getTotalOpacity();
aL.setTotalOpacity(aO * aL.getInterpolatedOpacity());
aN._$nb(aK, aI, aL._$Cr, aL._$hr, this._$VT(), 0, 2);
aL._$hS(true)
} else {
aL._$hS(false)
}
}
}
};
E.prototype._$nb = function(aL, aI, aH, aM, aO, aK, aJ) {
if (true) {
var aN = aI;
var aP = (aN._$hr != null) ? aN._$hr : aN._$Cr;
E.transformPoints_sdk2(aH, aM, aO, aK, aJ, aP, this._$o, this._$A)
} else {
this.transformPoints_sdk1(aL, aI, aH, aM, aO, aK, aJ)
}
};
E.transformPoints_sdk2 = function(a0, bc, a5, aP, aI, aR, aQ, aU) {
var aW = a5 * aI;
var aV;
var bn, bm;
var aT = 0;
var aS = 0;
var bl = 0;
var bk = 0;
var bf = 0;
var be = 0;
var aZ = false;
for (var ba = aP; ba < aW; ba += aI) {
var bd, a7, a4, aX;
a4 = a0[ba];
aX = a0[ba + 1];
bd = a4 * aQ;
a7 = aX * aU;
if (bd < 0 || a7 < 0 || aQ <= bd || aU <= a7) {
var a1 = aQ + 1;
if (!aZ) {
aZ = true;
aT = 0.25 * (aR[((0) + (0) * a1) * 2] + aR[((aQ) + (0) * a1) * 2] + aR[((0) + (aU) * a1) * 2] + aR[((aQ) + (aU) * a1) * 2]);
aS = 0.25 * (aR[((0) + (0) * a1) * 2 + 1] + aR[((aQ) + (0) * a1) * 2 + 1] + aR[((0) + (aU) * a1) * 2 + 1] + aR[((aQ) + (aU) * a1) * 2 + 1]);
var aM = aR[((aQ) + (aU) * a1) * 2] - aR[((0) + (0) * a1) * 2];
var aL = aR[((aQ) + (aU) * a1) * 2 + 1] - aR[((0) + (0) * a1) * 2 + 1];
var bh = aR[((aQ) + (0) * a1) * 2] - aR[((0) + (aU) * a1) * 2];
var bg = aR[((aQ) + (0) * a1) * 2 + 1] - aR[((0) + (aU) * a1) * 2 + 1];
bl = (aM + bh) * 0.5;
bk = (aL + bg) * 0.5;
bf = (aM - bh) * 0.5;
be = (aL - bg) * 0.5;
if (bl == 0 && bk == 0) {}
if (bf == 0 && be == 0) {}
aT -= 0.5 * (bl + bf);
aS -= 0.5 * (bk + be)
}
if ((-2 < a4 && a4 < 3) && (-2 < aX && aX < 3)) {
if (a4 <= 0) {
if (aX <= 0) {
var a3 = aR[((0) + (0) * a1) * 2];
var a2 = aR[((0) + (0) * a1) * 2 + 1];
var a8 = aT - 2 * bl;
var a6 = aS - 2 * bk;
var aK = aT - 2 * bf;
var aJ = aS - 2 * be;
var aO = aT - 2 * bl - 2 * bf;
var aN = aS - 2 * bk - 2 * be;
var bj = 0.5 * (a4 - (-2));
var bi = 0.5 * (aX - (-2));
if (bj + bi <= 1) {
bc[ba] = aO + (aK - aO) * bj + (a8 - aO) * bi;
bc[ba + 1] = aN + (aJ - aN) * bj + (a6 - aN) * bi
} else {
bc[ba] = a3 + (a8 - a3) * (1 - bj) + (aK - a3) * (1 - bi);
bc[ba + 1] = a2 + (a6 - a2) * (1 - bj) + (aJ - a2) * (1 - bi)
}
} else {
if (aX >= 1) {
var aK = aR[((0) + (aU) * a1) * 2];
var aJ = aR[((0) + (aU) * a1) * 2 + 1];
var aO = aT - 2 * bl + 1 * bf;
var aN = aS - 2 * bk + 1 * be;
var a3 = aT + 3 * bf;
var a2 = aS + 3 * be;
var a8 = aT - 2 * bl + 3 * bf;
var a6 = aS - 2 * bk + 3 * be;
var bj = 0.5 * (a4 - (-2));
var bi = 0.5 * (aX - (1));
if (bj + bi <= 1) {
bc[ba] = aO + (aK - aO) * bj + (a8 - aO) * bi;
bc[ba + 1] = aN + (aJ - aN) * bj + (a6 - aN) * bi
} else {
bc[ba] = a3 + (a8 - a3) * (1 - bj) + (aK - a3) * (1 - bi);
bc[ba + 1] = a2 + (a6 - a2) * (1 - bj) + (aJ - a2) * (1 - bi)
}
} else {
var aH = (a7 | 0);
if (aH == aU) {
aH = aU - 1
}
var bj = 0.5 * (a4 - (-2));
var bi = a7 - aH;
var bb = aH / aU;
var a9 = (aH + 1) / aU;
var aK = aR[((0) + (aH) * a1) * 2];
var aJ = aR[((0) + (aH) * a1) * 2 + 1];
var a3 = aR[((0) + (aH + 1) * a1) * 2];
var a2 = aR[((0) + (aH + 1) * a1) * 2 + 1];
var aO = aT - 2 * bl + bb * bf;
var aN = aS - 2 * bk + bb * be;
var a8 = aT - 2 * bl + a9 * bf;
var a6 = aS - 2 * bk + a9 * be;
if (bj + bi <= 1) {
bc[ba] = aO + (aK - aO) * bj + (a8 - aO) * bi;
bc[ba + 1] = aN + (aJ - aN) * bj + (a6 - aN) * bi
} else {
bc[ba] = a3 + (a8 - a3) * (1 - bj) + (aK - a3) * (1 - bi);
bc[ba + 1] = a2 + (a6 - a2) * (1 - bj) + (aJ - a2) * (1 - bi)
}
}
}
} else {
if (1 <= a4) {
if (aX <= 0) {
var a8 = aR[((aQ) + (0) * a1) * 2];
var a6 = aR[((aQ) + (0) * a1) * 2 + 1];
var a3 = aT + 3 * bl;
var a2 = aS + 3 * bk;
var aO = aT + 1 * bl - 2 * bf;
var aN = aS + 1 * bk - 2 * be;
var aK = aT + 3 * bl - 2 * bf;
var aJ = aS + 3 * bk - 2 * be;
var bj = 0.5 * (a4 - (1));
var bi = 0.5 * (aX - (-2));
if (bj + bi <= 1) {
bc[ba] = aO + (aK - aO) * bj + (a8 - aO) * bi;
bc[ba + 1] = aN + (aJ - aN) * bj + (a6 - aN) * bi
} else {
bc[ba] = a3 + (a8 - a3) * (1 - bj) + (aK - a3) * (1 - bi);
bc[ba + 1] = a2 + (a6 - a2) * (1 - bj) + (aJ - a2) * (1 - bi)
}
} else {
if (aX >= 1) {
var aO = aR[((aQ) + (aU) * a1) * 2];
var aN = aR[((aQ) + (aU) * a1) * 2 + 1];
var aK = aT + 3 * bl + 1 * bf;
var aJ = aS + 3 * bk + 1 * be;
var a8 = aT + 1 * bl + 3 * bf;
var a6 = aS + 1 * bk + 3 * be;
var a3 = aT + 3 * bl + 3 * bf;
var a2 = aS + 3 * bk + 3 * be;
var bj = 0.5 * (a4 - (1));
var bi = 0.5 * (aX - (1));
if (bj + bi <= 1) {
bc[ba] = aO + (aK - aO) * bj + (a8 - aO) * bi;
bc[ba + 1] = aN + (aJ - aN) * bj + (a6 - aN) * bi
} else {
bc[ba] = a3 + (a8 - a3) * (1 - bj) + (aK - a3) * (1 - bi);
bc[ba + 1] = a2 + (a6 - a2) * (1 - bj) + (aJ - a2) * (1 - bi)
}
} else {
var aH = (a7 | 0);
if (aH == aU) {
aH = aU - 1
}
var bj = 0.5 * (a4 - (1));
var bi = a7 - aH;
var bb = aH / aU;
var a9 = (aH + 1) / aU;
var aO = aR[((aQ) + (aH) * a1) * 2];
var aN = aR[((aQ) + (aH) * a1) * 2 + 1];
var a8 = aR[((aQ) + (aH + 1) * a1) * 2];
var a6 = aR[((aQ) + (aH + 1) * a1) * 2 + 1];
var aK = aT + 3 * bl + bb * bf;
var aJ = aS + 3 * bk + bb * be;
var a3 = aT + 3 * bl + a9 * bf;
var a2 = aS + 3 * bk + a9 * be;
if (bj + bi <= 1) {
bc[ba] = aO + (aK - aO) * bj + (a8 - aO) * bi;
bc[ba + 1] = aN + (aJ - aN) * bj + (a6 - aN) * bi
} else {
bc[ba] = a3 + (a8 - a3) * (1 - bj) + (aK - a3) * (1 - bi);
bc[ba + 1] = a2 + (a6 - a2) * (1 - bj) + (aJ - a2) * (1 - bi)
}
}
}
} else {
if (aX <= 0) {
var aY = (bd | 0);
if (aY == aQ) {
aY = aQ - 1
}
var bj = bd - aY;
var bi = 0.5 * (aX - (-2));
var bp = aY / aQ;
var bo = (aY + 1) / aQ;
var a8 = aR[((aY) + (0) * a1) * 2];
var a6 = aR[((aY) + (0) * a1) * 2 + 1];
var a3 = aR[((aY + 1) + (0) * a1) * 2];
var a2 = aR[((aY + 1) + (0) * a1) * 2 + 1];
var aO = aT + bp * bl - 2 * bf;
var aN = aS + bp * bk - 2 * be;
var aK = aT + bo * bl - 2 * bf;
var aJ = aS + bo * bk - 2 * be;
if (bj + bi <= 1) {
bc[ba] = aO + (aK - aO) * bj + (a8 - aO) * bi;
bc[ba + 1] = aN + (aJ - aN) * bj + (a6 - aN) * bi
} else {
bc[ba] = a3 + (a8 - a3) * (1 - bj) + (aK - a3) * (1 - bi);
bc[ba + 1] = a2 + (a6 - a2) * (1 - bj) + (aJ - a2) * (1 - bi)
}
} else {
if (aX >= 1) {
var aY = (bd | 0);
if (aY == aQ) {
aY = aQ - 1
}
var bj = bd - aY;
var bi = 0.5 * (aX - (1));
var bp = aY / aQ;
var bo = (aY + 1) / aQ;
var aO = aR[((aY) + (aU) * a1) * 2];
var aN = aR[((aY) + (aU) * a1) * 2 + 1];
var aK = aR[((aY + 1) + (aU) * a1) * 2];
var aJ = aR[((aY + 1) + (aU) * a1) * 2 + 1];
var a8 = aT + bp * bl + 3 * bf;
var a6 = aS + bp * bk + 3 * be;
var a3 = aT + bo * bl + 3 * bf;
var a2 = aS + bo * bk + 3 * be;
if (bj + bi <= 1) {
bc[ba] = aO + (aK - aO) * bj + (a8 - aO) * bi;
bc[ba + 1] = aN + (aJ - aN) * bj + (a6 - aN) * bi
} else {
bc[ba] = a3 + (a8 - a3) * (1 - bj) + (aK - a3) * (1 - bi);
bc[ba + 1] = a2 + (a6 - a2) * (1 - bj) + (aJ - a2) * (1 - bi)
}
} else {
System.err.printf("_$li calc : %.4f , %.4f @@BDBoxGrid\n", a4, aX)
}
}
}
}
} else {
bc[ba] = aT + a4 * bl + aX * bf;
bc[ba + 1] = aS + a4 * bk + aX * be
}
} else {
bn = bd - (bd | 0);
bm = a7 - (a7 | 0);
aV = 2 * ((bd | 0) + ((a7 | 0)) * (aQ + 1));
if (bn + bm < 1) {
bc[ba] = aR[aV] * (1 - bn - bm) + aR[aV + 2] * bn + aR[aV + 2 * (aQ + 1)] * bm;
bc[ba + 1] = aR[aV + 1] * (1 - bn - bm) + aR[aV + 3] * bn + aR[aV + 2 * (aQ + 1) + 1] * bm
} else {
bc[ba] = aR[aV + 2 * (aQ + 1) + 2] * (bn - 1 + bm) + aR[aV + 2 * (aQ + 1)] * (1 - bn) + aR[aV + 2] * (1 - bm);
bc[ba + 1] = aR[aV + 2 * (aQ + 1) + 3] * (bn - 1 + bm) + aR[aV + 2 * (aQ + 1) + 1] * (1 - bn) + aR[aV + 3] * (1 - bm)
}
}
}
};
E.prototype.transformPoints_sdk1 = function(aJ, aR, aL, a0, aU, aP, aZ) {
var aH = aR;
var aO, aN;
var aM = this._$o;
var aQ = this._$A;
var aI = aU * aZ;
var aS, aY;
var aV;
var aX, aW;
var aT = (aH._$hr != null) ? aH._$hr : aH._$Cr;
for (var aK = aP; aK < aI; aK += aZ) {
if (Q._$ts) {
aO = aL[aK];
aN = aL[aK + 1];
if (aO < 0) {
aO = 0
} else {
if (aO > 1) {
aO = 1
}
}
if (aN < 0) {
aN = 0
} else {
if (aN > 1) {
aN = 1
}
}
aO *= aM;
aN *= aQ;
aS = (aO | 0);
aY = (aN | 0);
if (aS > aM - 1) {
aS = aM - 1
}
if (aY > aQ - 1) {
aY = aQ - 1
}
aX = aO - aS;
aW = aN - aY;
aV = 2 * (aS + aY * (aM + 1))
} else {
aO = aL[aK] * aM;
aN = aL[aK + 1] * aQ;
aX = aO - (aO | 0);
aW = aN - (aN | 0);
aV = 2 * ((aO | 0) + (aN | 0) * (aM + 1))
}
if (aX + aW < 1) {
a0[aK] = aT[aV] * (1 - aX - aW) + aT[aV + 2] * aX + aT[aV + 2 * (aM + 1)] * aW;
a0[aK + 1] = aT[aV + 1] * (1 - aX - aW) + aT[aV + 3] * aX + aT[aV + 2 * (aM + 1) + 1] * aW
} else {
a0[aK] = aT[aV + 2 * (aM + 1) + 2] * (aX - 1 + aW) + aT[aV + 2 * (aM + 1)] * (1 - aX) + aT[aV + 2] * (1 - aW);
a0[aK + 1] = aT[aV + 2 * (aM + 1) + 3] * (aX - 1 + aW) + aT[aV + 2 * (aM + 1) + 1] * (1 - aX) + aT[aV + 3] * (1 - aW)
}
}
};
E.prototype._$VT = function() {
return (this._$o + 1) * (this._$A + 1)
};
E.prototype.getType = function() {
return c._$_b
};
function H(aH) {
B.prototype.constructor.call(this, aH);
this._$8r = c._$ur;
this._$Cr = null;
this._$hr = null
}
H.prototype = new B();
function s() {
if (j) {
return
}
this.visible = true;
this._$g0 = false;
this._$NL = null;
this._$3S = null;
this._$aS = null;
s._$42++
}
s._$42 = 0;
s.prototype._$zP = function() {
this._$3S = new Array();
this._$aS = new Array()
};
s.prototype._$F0 = function(aH) {
this._$g0 = aH._$8L();
this.visible = aH._$8L();
this._$NL = aH._$nP();
this._$3S = aH._$nP();
this._$aS = aH._$nP()
};
s.prototype.init = function(aI) {
var aH = new aj(this);
aH.setPartsOpacity(this.isVisible() ? 1 : 0);
return aH
};
s.prototype._$6o = function(aH) {
if (this._$3S == null) {
throw new Error("_$3S _$6 _$Wo@_$6o");
}
this._$3S.push(aH)
};
s.prototype._$3o = function(aH) {
if (this._$aS == null) {
throw new Error("_$aS _$6 _$Wo@_$3o");
}
this._$aS.push(aH)
};
s.prototype._$Zo = function(aH) {
this._$3S = aH
};
s.prototype._$xo = function(aH) {
this._$aS = aH
};
s.prototype.isVisible = function() {
return this.visible
};
s.prototype._$uL = function() {
return this._$g0
};
s.prototype._$KP = function(aH) {
this.visible = aH
};
s.prototype._$ET = function(aH) {
this._$g0 = aH
};
s.prototype.getBaseData = function() {
return this._$3S
};
s.prototype.getDrawData = function() {
return this._$aS
};
s.prototype._$p2 = function() {
return this._$NL
};
s.prototype._$ob = function(aH) {
this._$NL = aH
};
s.prototype.getPartsID = function() {
return this._$NL
};
s.prototype._$MP = function(aH) {
this._$NL = aH
};
function aj(aH) {
this._$VS = null;
this._$e0 = null;
this._$e0 = aH
}
aj.prototype = new S();
aj.prototype.getPartsOpacity = function() {
return this._$VS
};
aj.prototype.setPartsOpacity = function(aH) {
this._$VS = aH
};
function ak(aH) {
if (j) {
return
}
this.id = aH
}
ak._$L7 = function() {
z._$27();
n._$27();
Z._$27();
i._$27()
};
ak.prototype.toString = function() {
return this.id
};
function D() {}
D.prototype._$F0 = function(aH) {};
function an() {
if (j) {
return
}
this._$4S = null
}
an.prototype._$1s = function() {
return this._$4S
};
an.prototype._$zP = function() {
this._$4S = new Array()
};
an.prototype._$F0 = function(aH) {
this._$4S = aH._$nP()
};
an.prototype._$Ks = function(aH) {
this._$4S.push(aH)
};
function au(aH, aI) {
this.canvas = aH;
this.context = aI;
this.viewport = new Array(0, 0, aH.width, aH.height);
this._$6r = 1;
this._$xP = 0;
this._$3r = 1;
this._$uP = 0;
this._$Qo = -1;
this.cacheImages = {}
}
au.tr = new am();
au._$50 = new am();
au._$Ti = new Array(0, 0);
au._$Pi = new Array(0, 0);
au._$B = new Array(0, 0);
au.prototype._$lP = function(aI, aK, aJ, aH) {
this.viewport = new Array(aI, aK, aJ, aH)
};
au.prototype._$bL = function() {
this.context.save();
var aH = this.viewport;
if (aH != null) {
this.context.beginPath();
this.context._$Li(aH[0], aH[1], aH[2], aH[3]);
this.context.clip()
}
};
au.prototype._$ei = function() {
this.context.restore()
};
au.prototype.drawElements = function(bc, bm, aX, aJ, bA, aM, bl, bz) {
try {
if (bA != this._$Qo) {
this._$Qo = bA;
this.context.globalAlpha = bA
}
var a2 = bm.length;
var aP = bc.width;
var a5 = bc.height;
var bE = this.context;
var a7 = this._$xP;
var a6 = this._$uP;
var a1 = this._$6r;
var aZ = this._$3r;
var bD = au.tr;
var aI = au._$Ti;
var aH = au._$Pi;
var bu = au._$B;
for (var by = 0; by < a2; by += 3) {
bE.save();
var aW = bm[by];
var aV = bm[by + 1];
var aT = bm[by + 2];
var aL = a7 + a1 * aX[aW * 2];
var aK = a6 + aZ * aX[aW * 2 + 1];
var br = a7 + a1 * aX[aV * 2];
var bp = a6 + aZ * aX[aV * 2 + 1];
var bh = a7 + a1 * aX[aT * 2];
var bf = a6 + aZ * aX[aT * 2 + 1];
if (bl) {
bl._$PS(aL, aK, bu);
aL = bu[0];
aK = bu[1];
bl._$PS(br, bp, bu);
br = bu[0];
bp = bu[1];
bl._$PS(bh, bf, bu);
bh = bu[0];
bf = bu[1]
}
var aS = aP * aJ[aW * 2];
var aQ = a5 - a5 * aJ[aW * 2 + 1];
var bx = aP * aJ[aV * 2];
var bw = a5 - a5 * aJ[aV * 2 + 1];
var bk = aP * aJ[aT * 2];
var bj = a5 - a5 * aJ[aT * 2 + 1];
var a3 = Math.atan2(bw - aQ, bx - aS);
var a0 = Math.atan2(bp - aK, br - aL);
var aO = br - aL;
var aN = bp - aK;
var bi = Math.sqrt(aO * aO + aN * aN);
var aU = bx - aS;
var aR = bw - aQ;
var bt = Math.sqrt(aU * aU + aR * aR);
var bv = bi / bt;
ad._$ni(bk, bj, aS, aQ, (bx - aS), (bw - aQ), -(bw - aQ), (bx - aS), aI);
ad._$ni(bh, bf, aL, aK, (br - aL), (bp - aK), -(bp - aK), (br - aL), aH);
var aY = (aH[0] - aI[0]) / aI[1];
var bs = Math.min(aS, bx, bk);
var bg = Math.max(aS, bx, bk);
var bq = Math.min(aQ, bw, bj);
var be = Math.max(aQ, bw, bj);
var bo = Math.floor(bs);
var bb = Math.floor(bq);
var a4 = Math.ceil(bg);
var bC = Math.ceil(be);
bD.identity();
bD.translate(aL, aK);
bD.rotate(a0);
bD.scale(1, aH[1] / aI[1]);
bD.shear(aY, 0);
bD.scale(bv, bv);
bD.rotate(-a3);
bD.translate(-aS, -aQ);
bD.setContext(bE);
var a8 = true;
var a9 = 1.2;
if (!aM) {
aM = a8 ? a9 : 0
}
if (Q.IGNORE_EXPAND) {
aM = 0
}
if (Q.USE_CACHED_POLYGON_IMAGE) {
var bd = bz._$e0;
bd.gl_cacheImage = bd.gl_cacheImage || {};
if (!bd.gl_cacheImage[by]) {
var bn = au.createCanvas(a4 - bo, bC - bb);
Q.DEBUG_DATA.LDGL_CANVAS_MB = Q.DEBUG_DATA.LDGL_CANVAS_MB || 0;
Q.DEBUG_DATA.LDGL_CANVAS_MB += (a4 - bo) * (bC - bb) * 4;
var ba = bn.getContext("2d");
ba.translate(-bo, -bb);
au.clip(ba, bD, aM, bi, aS, aQ, bx, bw, bk, bj, aL, aK, br, bp, bh, bf);
ba.drawImage(bc, 0, 0);
bd.gl_cacheImage[by] = {
cacheCanvas: bn,
cacheContext: ba
}
}
bE.drawImage(bd.gl_cacheImage[by]["cacheCanvas"], bo, bb)
} else {
if (!Q.IGNORE_CLIP) {
au.clip(bE, bD, aM, bi, aS, aQ, bx, bw, bk, bj, aL, aK, br, bp, bh, bf)
}
if (Q.USE_ADJUST_TRANSLATION) {
bs = 0;
bg = aP;
bq = 0;
be = a5
}
bE.drawImage(bc, bs, bq, bg - bs, be - bq, bs, bq, bg - bs, be - bq)
}
bE.restore()
}
} catch (bB) {
q._$Rb(bB)
}
};
au.clip = function(aK, aJ, aV, aI, aM, aL, aU, aT, aQ, aP, aO, aN, aH, aW, aS, aR) {
if (aV > 0.02) {
au.expandClip(aK, aJ, aV, aI, aO, aN, aH, aW, aS, aR)
} else {
au.clipWithTransform(aK, null, aM, aL, aU, aT, aQ, aP)
}
};
au.expandClip = function(aV, bg, aK, a3, aJ, aI, be, ba, aZ, aX) {
var aP = be - aJ;
var aO = ba - aI;
var bi = aZ - aJ;
var bh = aX - aI;
var bj = aP * bh - aO * bi > 0 ? aK : -aK;
var aL = -aO;
var aH = aP;
var bc = aZ - be;
var a8 = aX - ba;
var a7 = -a8;
var a6 = bc;
var aQ = Math.sqrt(bc * bc + a8 * a8);
var bf = -bh;
var bb = bi;
var a2 = Math.sqrt(bi * bi + bh * bh);
var bd = aJ - bj * aL / a3;
var a9 = aI - bj * aH / a3;
var aY = be - bj * aL / a3;
var aW = ba - bj * aH / a3;
var a5 = be - bj * a7 / aQ;
var a4 = ba - bj * a6 / aQ;
var aS = aZ - bj * a7 / aQ;
var aR = aX - bj * a6 / aQ;
var aN = aJ + bj * bf / a2;
var aM = aI + bj * bb / a2;
var a1 = aZ + bj * bf / a2;
var a0 = aX + bj * bb / a2;
var aU = au._$50;
var aT = bg._$P2(aU);
if (aT == null) {
return false
}
au.clipWithTransform(aV, aU, bd, a9, aY, aW, a5, a4, aS, aR, a1, a0, aN, aM);
return true
};
au.clipWithTransform = function(aH, aI, aS, aN, aQ, aK, aP, aJ) {
if (arguments.length < (1 + 3 * 2)) {
q._$li("err : @LDGL.clip()");
return
}
if (!(arguments[1] instanceof am)) {
q._$li("err : a[0] is _$6 LDTransform @LDGL.clip()");
return
}
var aM = au._$B;
var aO = aI;
var aR = arguments;
aH.beginPath();
if (aO) {
aO._$PS(aR[2], aR[3], aM);
aH.moveTo(aM[0], aM[1]);
for (var aL = 4; aL < aR.length; aL += 2) {
aO._$PS(aR[aL], aR[aL + 1], aM);
aH.lineTo(aM[0], aM[1])
}
} else {
aH.moveTo(aR[2], aR[3]);
for (var aL = 4; aL < aR.length; aL += 2) {
aH.lineTo(aR[aL], aR[aL + 1])
}
}
aH.clip()
};
au.createCanvas = function(aH, aJ) {
var aI = document.createElement("canvas");
aI.setAttribute("width", aH);
aI.setAttribute("height", aJ);
if (!aI) {
q._$li("err : " + aI)
}
return aI
};
au.dumpValues = function() {
var aI = "";
for (var aH = 0; aH < arguments.length; aH++) {
aI += "[" + aH + "]= " + arguments[aH].toFixed(3) + " , "
}
console.log(aI)
};
function f() {
if (j) {
return
}
this._$TT = null;
this._$LT = null;
this._$FS = null;
this._$wL = null
}
f.prototype._$F0 = function(aH) {
this._$TT = aH._$_T();
this._$LT = aH._$_T();
this._$FS = aH._$_T();
this._$wL = aH._$nP()
};
f.prototype.getMinValue = function() {
return this._$TT
};
f.prototype.getMaxValue = function() {
return this._$LT
};
f.prototype.getDefaultValue = function() {
return this._$FS
};
f.prototype.getParamID = function() {
return this._$wL
};
function B(aH) {
if (j) {
return
}
this._$e0 = null;
this._$IP = null;
this._$JS = false;
this._$AT = true;
this._$e0 = aH;
this.totalScale = 1;
this._$7s = 1;
this.totalOpacity = 1
}
B.prototype._$yo = function() {
return this._$AT && !this._$JS
};
B.prototype._$hS = function(aH) {
this._$AT = aH
};
B.prototype._$GT = function() {
return this._$e0
};
B.prototype._$l2 = function(aH) {
this._$IP = aH
};
B.prototype.getPartsIndex = function() {
return this._$IP
};
B.prototype._$x2 = function() {
return this._$JS
};
B.prototype._$Ib = function(aH) {
this._$JS = aH
};
B.prototype.getTotalScale = function() {
return this.totalScale
};
B.prototype.setTotalScale_notForClient = function(aH) {
this.totalScale = aH
};
B.prototype.getInterpolatedOpacity = function() {
return this._$7s
};
B.prototype.setInterpolatedOpacity = function(aH) {
this._$7s = aH
};
B.prototype.getTotalOpacity = function(aH) {
return this.totalOpacity
};
B.prototype.setTotalOpacity = function(aH) {
this.totalOpacity = aH
};
function Q() {}
Q._$2s = "2.1.00_1";
Q._$Kr = 201001000;
Q._$sP = true;
Q._$so = true;
Q._$cb = false;
Q._$3T = true;
Q._$Ts = true;
Q._$fb = true;
Q._$ts = true;
Q.L2D_DEFORMER_EXTEND = true;
Q._$Wb = false;
Q._$yr = false;
Q._$Zs = false;
Q.L2D_NO_ERROR = 0;
Q._$i7 = 1000;
Q._$9s = 1001;
Q._$es = 1100;
Q._$r7 = 2000;
Q._$07 = 2001;
Q._$b7 = 2002;
Q._$H7 = 4000;
Q.L2D_COLOR_BLEND_MODE_MULT = 0;
Q.L2D_COLOR_BLEND_MODE_ADD = 1;
Q.L2D_COLOR_BLEND_MODE_INTERPOLATE = 2;
Q._$6b = true;
Q._$cT = 0;
Q.clippingMaskBufferSize = 256;
Q.glContext = new Array();
Q.frameBuffers = new Array();
Q.fTexture = new Array();
Q.IGNORE_CLIP = false;
Q.IGNORE_EXPAND = false;
Q.EXPAND_W = 2;
Q.USE_ADJUST_TRANSLATION = true;
Q.USE_CANVAS_TRANSFORM = true;
Q.USE_CACHED_POLYGON_IMAGE = false;
Q.DEBUG_DATA = {};
Q.PROFILE_IOS_SPEED = {
PROFILE_NAME: "iOS Speed",
USE_ADJUST_TRANSLATION: true,
USE_CACHED_POLYGON_IMAGE: true,
EXPAND_W: 4
};
Q.PROFILE_IOS_QUALITY = {
PROFILE_NAME: "iOS HiQ",
USE_ADJUST_TRANSLATION: true,
USE_CACHED_POLYGON_IMAGE: false,
EXPAND_W: 2
};
Q.PROFILE_IOS_DEFAULT = Q.PROFILE_IOS_QUALITY;
Q.PROFILE_ANDROID = {
PROFILE_NAME: "Android",
USE_ADJUST_TRANSLATION: false,
USE_CACHED_POLYGON_IMAGE: false,
EXPAND_W: 2
};
Q.PROFILE_DESKTOP = {
PROFILE_NAME: "Desktop",
USE_ADJUST_TRANSLATION: false,
USE_CACHED_POLYGON_IMAGE: false,
EXPAND_W: 2
};
Q.initProfile = function() {
if (r.isIOS()) {
Q.setupProfile(Q.PROFILE_IOS_DEFAULT)
} else {
if (r.isAndroid()) {
Q.setupProfile(Q.PROFILE_ANDROID)
} else {
Q.setupProfile(Q.PROFILE_DESKTOP)
}
}
};
Q.setupProfile = function(aI, aJ) {
if (typeof aI == "number") {
switch (aI) {
case 9901:
aI = Q.PROFILE_IOS_SPEED;
break;
case 9902:
aI = Q.PROFILE_IOS_QUALITY;
break;
case 9903:
aI = Q.PROFILE_IOS_DEFAULT;
break;
case 9904:
aI = Q.PROFILE_ANDROID;
break;
case 9905:
aI = Q.PROFILE_DESKTOP;
break;
default:
alert("profile _$6 _$Ui : " + aI);
break
}
}
if (arguments.length < 2) {
aJ = true
}
if (aJ) {
console.log("profile : " + aI.PROFILE_NAME)
}
for (var aH in aI) {
Q[aH] = aI[aH];
if (aJ) {
console.log(" [" + aH + "] = " + aI[aH])
}
}
};
Q.init = function() {
if (Q._$6b) {
console.log("Live2D %s", Q._$2s);
Q._$6b = false;
var aH = false;
aH = true;
Q.initProfile()
}
};
Q.getVersionStr = function() {
return Q._$2s
};
Q.getVersionNo = function() {
return Q._$Kr
};
Q._$sT = function(aH) {
Q._$cT = aH
};
Q.getError = function() {
var aH = Q._$cT;
Q._$cT = 0;
return aH
};
Q.dispose = function() {
Q.glContext = [];
Q.frameBuffers = [];
Q.fTexture = []
};
Q.setGL = function(aJ, aI) {
var aH = aI || 0;
Q.glContext[aH] = aJ
};
Q.getGL = function(aH) {
return Q.glContext[aH]
};
Q.setClippingMaskBufferSize = function(aH) {
Q.clippingMaskBufferSize = aH
};
Q.getClippingMaskBufferSize = function() {
return Q.clippingMaskBufferSize
};
Q.deleteBuffer = function(aI) {
var aH = Q.getGL(aI);
aH.deleteFramebuffer(Q.frameBuffers[aI].framebuffer);
delete Q.frameBuffers[aI];
delete Q.glContext[aI]
};
function A() {}
A._$r2 = function(aH) {
if (aH < 0) {
return 0
} else {
if (aH > 1) {
return 1
}
}
return (0.5 - 0.5 * Math.cos(aH * aC.PI_F))
};
function J(aH) {
if (j) {
return
}
this._$ib = aH
}
J._$fr = -1;
J.prototype.toString = function() {
return this._$ib
};
function b() {
if (j) {
return
}
a.prototype.constructor.call(this);
this._$LP = -1;
this._$d0 = 0;
this._$Yo = 0;
this._$JP = null;
this._$5P = null;
this._$BP = null;
this._$Eo = null;
this._$Qi = null;
this._$6s = b._$ms;
this.culling = true;
this.gl_cacheImage = null;
this.instanceNo = b._$42++
}
b.prototype = new a();
b._$42 = 0;
b._$Os = 30;
b._$ms = 0;
b._$ns = 1;
b._$_s = 2;
b._$gT = new Array();
b.prototype._$_S = function(aH) {
this._$LP = aH
};
b.prototype.getTextureNo = function() {
return this._$LP
};
b.prototype._$ZL = function() {
return this._$Qi
};
b.prototype._$H2 = function() {
return this._$JP
};
b.prototype.getNumPoints = function() {
return this._$d0
};
b.prototype.getType = function() {
return a._$wb
};
b.prototype._$B2 = function(aL, aH, aO) {
var aM = aH;
var aN = (aM._$hr != null) ? aM._$hr : aM._$Cr;
var aK = aw._$do;
switch (aK) {
default:
case aw._$Ms:
throw new Error("_$L _$ro ");
case aw._$Qs:
for (var aJ = this._$d0 - 1; aJ >= 0; --aJ) {
var aI = aJ * aw._$No;
aN[aI + 4] = aO
}
break
}
};
b.prototype._$zP = function() {
this._$GS = new g();
this._$GS._$zP()
};
b.prototype._$F0 = function(aK) {
a.prototype._$F0.call(this, aK);
this._$LP = aK._$6L();
this._$d0 = aK._$6L();
this._$Yo = aK._$6L();
var aH = aK._$nP();
this._$BP = new Int16Array(this._$Yo * 3);
for (var aJ = this._$Yo * 3 - 1; aJ >= 0; --aJ) {
this._$BP[aJ] = aH[aJ]
}
this._$Eo = aK._$nP();
this._$Qi = aK._$nP();
if (aK.getFormatVersion() >= ay._$s7) {
this._$JP = aK._$6L();
if (this._$JP != 0) {
if ((this._$JP & 1) != 0) {
var aI = aK._$6L();
if (this._$5P == null) {
this._$5P = new Object()
}
this._$5P._$Hb = parseInt(aI)
}
if ((this._$JP & b._$Os) != 0) {
this._$6s = (this._$JP & b._$Os) >> 1
} else {
this._$6s = b._$ms
}
if ((this._$JP & 32) != 0) {
this.culling = false
}
}
} else {
this._$JP = 0
}
};
b.prototype.init = function(aL) {
var aN = new ag(this);
var aI = this._$d0 * aw._$No;
var aH = this._$32();
if (aN._$Cr != null) {
aN._$Cr = null
}
aN._$Cr = new Float32Array(aI);
if (aN._$hr != null) {
aN._$hr = null
}
aN._$hr = aH ? new Float32Array(aI) : null;
var aM = aw._$do;
switch (aM) {
default:
case aw._$Ms:
if (aw._$Ls) {
for (var aJ = this._$d0 - 1; aJ >= 0; --aJ) {
var aO = aJ << 1;
this._$Qi[aO + 1] = 1 - this._$Qi[aO + 1]
}
}
break;
case aw._$Qs:
for (var aJ = this._$d0 - 1; aJ >= 0; --aJ) {
var aO = aJ << 1;
var aK = aJ * aw._$No;
var aQ = this._$Qi[aO];
var aP = this._$Qi[aO + 1];
aN._$Cr[aK] = aQ;
aN._$Cr[aK + 1] = aP;
aN._$Cr[aK + 4] = 0;
if (aH) {
aN._$hr[aK] = aQ;
aN._$hr[aK + 1] = aP;
aN._$hr[aK + 4] = 0
}
}
break
}
return aN
};
b.prototype._$Nr = function(aJ, aH) {
var aK = aH;
if (!((this == aK._$GT()))) {
console.log("### assert!! ### ")
}
if (!this._$GS._$Ur(aJ)) {
return
}
a.prototype._$Nr.call(this, aJ, aK);
if (aK._$IS[0]) {
return
}
var aI = b._$gT;
aI[0] = false;
aG._$Vr(aJ, this._$GS, aI, this._$d0, this._$Eo, aK._$Cr, aw._$i2, aw._$No)
};
b.prototype._$2b = function(aK, aI) {
try {
if (!((this == aI._$GT()))) {
console.log("### assert!! ### ")
}
var aL = false;
if (aI._$IS[0]) {
aL = true
}
var aM = aI;
if (!aL) {
a.prototype._$2b.call(this, aK);
if (this._$32()) {
var aH = this.getTargetBaseDataID();
if (aM._$8r == a._$ur) {
aM._$8r = aK.getBaseDataIndex(aH)
}
if (aM._$8r < 0) {
if (Q._$so) {
q._$li("_$L _$0P _$G :: %s", aH)
}
} else {
var aO = aK.getBaseData(aM._$8r);
var aJ = aK._$q2(aM._$8r);
if (aO != null && !aJ._$x2()) {
aO._$nb(aK, aJ, aM._$Cr, aM._$hr, this._$d0, aw._$i2, aw._$No);
aM._$AT = true
} else {
aM._$AT = false
}
aM.baseOpacity = aJ.getTotalOpacity()
}
}
}
} catch (aN) {
throw aN;
}
};
b.prototype.draw = function(aN, aK, aI) {
if (!((this == aI._$GT()))) {
console.log("### assert!! ### ")
}
if (aI._$IS[0]) {
return
}
var aL = aI;
var aJ = this._$LP;
if (aJ < 0) {
aJ = 1
}
var aH = this.getOpacity(aK, aL) * aI._$VS * aI.baseOpacity;
var aM = (aL._$hr != null) ? aL._$hr : aL._$Cr;
aN.setClipBufPre_clipContextForDraw(aI.clipBufPre_clipContext);
aN._$WP(this.culling);
aN._$Uo(aJ, 3 * this._$Yo, this._$BP, aM, this._$Qi, aH, this._$6s, aL)
};
b.prototype.dump = function() {
console.log(" _$yi( %d ) , _$d0( %d ) , _$Yo( %d ) \n", this._$LP, this._$d0, this._$Yo);
console.log(" _$Oi _$di = { ");
for (var aJ = 0; aJ < this._$BP.length; aJ++) {
console.log("%5d ,", this._$BP[aJ])
}
console.log("\n _$5i _$30");
for (var aJ = 0; aJ < this._$Eo.length; aJ++) {
console.log("\n _$30[%d] = ", aJ);
var aH = this._$Eo[aJ];
for (var aI = 0; aI < aH.length; aI++) {
console.log("%6.2f, ", aH[aI])
}
}
console.log("\n")
};
b.prototype._$72 = function(aH) {
if (this._$5P == null) {
return null
}
return this._$5P[aH]
};
b.prototype.getIndexArray = function() {
return this._$BP
};
function ag(aH) {
aB.prototype.constructor.call(this, aH);
this._$8r = a._$ur;
this._$Cr = null;
this._$hr = null
}
ag.prototype = new aB();
ag.prototype.getTransformedPoints = function() {
return (this._$hr != null) ? this._$hr : this._$Cr
};
function k() {
if (j) {
return
}
this.x = null;
this.y = null
}
k.prototype._$HT = function(aH) {
this.x = aH.x;
this.y = aH.y
};
k.prototype._$HT = function(aH, aI) {
this.x = aH;
this.y = aI
};
function l(aH) {
if (j) {
return
}
aa.prototype.constructor.call(this);
this.drawParamWebGL = new C(aH);
this.drawParamWebGL.setGL(Q.getGL(aH))
}
l.prototype = new aa();
l.loadModel = function(aI) {
var aH = new l();
aa._$62(aH, aI);
return aH
};
l.loadModel = function(aI, aK) {
var aJ = aK || 0;
var aH = new l(aJ);
aa._$62(aH, aI);
return aH
};
l._$to = function() {
var aH = new l();
return aH
};
l._$er = function(aM) {
var aJ = new _$5("../_$_r/_$t0/_$Ri/_$_P._$d");
if (aJ.exists() == false) {
throw new _$ls("_$t0 _$_ _$6 _$Ui :: " + aJ._$PL());
}
var aH = ["../_$_r/_$t0/_$Ri/_$_P.512/_$CP._$1", "../_$_r/_$t0/_$Ri/_$_P.512/_$vP._$1", "../_$_r/_$t0/_$Ri/_$_P.512/_$EP._$1", "../_$_r/_$t0/_$Ri/_$_P.512/_$pP._$1"];
var aK = l.loadModel(aJ._$3b());
for (var aI = 0; aI < aH.length; aI++) {
var aL = new _$5(aH[aI]);
if (aL.exists() == false) {
throw new _$ls("_$t0 _$_ _$6 _$Ui :: " + aL._$PL());
}
aK.setTexture(aI, _$nL._$_o(aM, aL._$3b()))
}
return aK
};
l.prototype.setGL = function(aH) {
Q.setGL(aH)
};
l.prototype.setTransform = function(aH) {
this.drawParamWebGL.setTransform(aH)
};
l.prototype.update = function() {
this._$5S.update();
this._$5S.preDraw(this.drawParamWebGL)
};
l.prototype.draw = function() {
this._$5S.draw(this.drawParamWebGL)
};
l.prototype._$K2 = function() {
this.drawParamWebGL._$K2()
};
l.prototype.setTexture = function(aI, aH) {
if (this.drawParamWebGL == null) {
q._$li("_$Yi for QT _$ki / _$XS() is _$6 _$ui!!")
}
this.drawParamWebGL.setTexture(aI, aH)
};
l.prototype.setTexture = function(aI, aH) {
if (this.drawParamWebGL == null) {
q._$li("_$Yi for QT _$ki / _$XS() is _$6 _$ui!!")
}
this.drawParamWebGL.setTexture(aI, aH)
};
l.prototype._$Rs = function() {
return this.drawParamWebGL._$Rs()
};
l.prototype._$Ds = function(aH) {
this.drawParamWebGL._$Ds(aH)
};
l.prototype.getDrawParam = function() {
return this.drawParamWebGL
};
l.prototype.setMatrix = function(aH) {
this.drawParamWebGL.setMatrix(aH)
};
l.prototype.setPremultipliedAlpha = function(aH) {
this.drawParamWebGL.setPremultipliedAlpha(aH)
};
l.prototype.isPremultipliedAlpha = function() {
return this.drawParamWebGL.isPremultipliedAlpha()
};
l.prototype.setAnisotropy = function(aH) {
this.drawParamWebGL.setAnisotropy(aH)
};
l.prototype.getAnisotropy = function() {
return this.drawParamWebGL.getAnisotropy()
};
function V() {
if (j) {
return
}
this.motions = null;
this._$eb = false;
this.motions = new Array()
}
V.prototype._$tb = function() {
return this.motions
};
V.prototype.startMotion = function(aJ, aI) {
var aM = null;
var aL = null;
var aH = this.motions.length;
for (var aK = 0; aK < aH; ++aK) {
aL = this.motions[aK];
if (aL == null) {
continue
}
aL._$qS(aL._$w0.getFadeOut());
if (this._$eb) {
q._$Ji("MotionQueueManager[size:%2d]->startMotion() / start _$K _$3 (m%d)\n", aH, aL._$sr)
}
}
if (aJ == null) {
return -1
}
aL = new M();
aL._$w0 = aJ;
this.motions.push(aL);
var aN = aL._$sr;
if (this._$eb) {
q._$Ji("MotionQueueManager[size:%2d]->startMotion() / new _$w0 (m%d)\n", aH, aN)
}
return aN
};
V.prototype.updateParam = function(aJ) {
try {
var aI = false;
for (var aK = 0; aK < this.motions.length; aK++) {
var aL = this.motions[aK];
if (aL == null) {
this.motions.splice(aK, 1);
aK--;
continue
}
var aH = aL._$w0;
if (aH == null) {
this.motions = this.motions.splice(aK, 1);
aK--;
continue
}
aH.updateParam(aJ, aL);
aI = true;
if (aL.isFinished()) {
if (this._$eb) {
q._$Ji("MotionQueueManager[size:%2d]->updateParam() / _$T0 _$w0 (m%d)\n", this.motions.length - 1, aL._$sr)
}
this.motions.splice(aK, 1);
aK--
} else {}
}
return aI
} catch (aM) {
q._$li(aM);
return true
}
};
V.prototype.isFinished = function(aK) {
if (arguments.length >= 1) {
for (var aI = 0; aI < this.motions.length; aI++) {
var aJ = this.motions[aI];
if (aJ == null) {
continue
}
if (aJ._$sr == aK && !aJ.isFinished()) {
return false
}
}
return true
} else {
for (var aI = 0; aI < this.motions.length; aI++) {
var aJ = this.motions[aI];
if (aJ == null) {
this.motions.splice(aI, 1);
aI--;
continue
}
var aH = aJ._$w0;
if (aH == null) {
this.motions.splice(aI, 1);
aI--;
continue
}
if (!aJ.isFinished()) {
return false
}
}
return true
}
};
V.prototype.stopAllMotions = function() {
for (var aI = 0; aI < this.motions.length; aI++) {
var aJ = this.motions[aI];
if (aJ == null) {
this.motions.splice(aI, 1);
aI--;
continue
}
var aH = aJ._$w0;
if (aH == null) {
this.motions.splice(aI, 1);
aI--;
continue
}
if (true) {
this.motions.splice(aI, 1);
aI--
}
}
};
V.prototype._$Zr = function(aH) {
this._$eb = aH
};
V.prototype._$e = function() {
console.log("-- _$R --\n");
for (var aH = 0; aH < this.motions.length; aH++) {
var aI = this.motions[aH];
var aJ = aI._$w0;
console.log("MotionQueueEnt[%d] :: %s\n", this.motions.length, aJ.toString())
}
};
function M() {
this._$w0 = null;
this._$AT = true;
this._$9L = false;
this._$z2 = -1;
this._$bs = -1;
this._$Do = -1;
this._$sr = null;
this._$sr = M._$Gs++
}
M._$Gs = 0;
M.prototype.isFinished = function() {
return this._$9L
};
M.prototype._$qS = function(aJ) {
var aI = P.getUserTimeMSec();
var aH = aI + aJ;
if (this._$Do < 0 || aH < this._$Do) {
this._$Do = aH
}
};
M.prototype._$Bs = function() {
return this._$sr
};
function am() {
this.m = new Array(1, 0, 0, 0, 1, 0, 0, 0, 1)
}
am.prototype.setContext = function(aI) {
var aH = this.m;
aI.transform(aH[0], aH[1], aH[3], aH[4], aH[6], aH[7])
};
am.prototype.toString = function() {
var aI = "LDTransform { ";
for (var aH = 0; aH < 9; aH++) {
aI += this.m[aH].toFixed(2) + " ,"
}
aI += " }";
return aI
};
am.prototype.identity = function() {
var aH = this.m;
aH[0] = aH[4] = aH[8] = 1;
aH[1] = aH[2] = aH[3] = aH[5] = aH[6] = aH[7] = 0
};
am.prototype._$PS = function(aI, aK, aJ) {
if (aJ == null) {
aJ = new Array(0, 0)
}
var aH = this.m;
aJ[0] = aH[0] * aI + aH[3] * aK + aH[6];
aJ[1] = aH[1] * aI + aH[4] * aK + aH[7];
return aJ
};
am.prototype._$P2 = function(aK) {
if (!aK) {
aK = new am()
}
var aI = this.m;
var aT = aI[0];
var aS = aI[1];
var aR = aI[2];
var aQ = aI[3];
var aP = aI[4];
var aO = aI[5];
var aN = aI[6];
var aM = aI[7];
var aL = aI[8];
var aJ = aT * aP * aL + aS * aO * aN + aR * aQ * aM - aT * aO * aM - aR * aP * aN - aS * aQ * aL;
if (aJ == 0) {
return null
} else {
var aH = 1 / aJ;
aK.m[0] = aH * (aP * aL - aM * aO);
aK.m[1] = aH * (aM * aR - aS * aL);
aK.m[2] = aH * (aS * aO - aP * aR);
aK.m[3] = aH * (aN * aO - aQ * aL);
aK.m[4] = aH * (aT * aL - aN * aR);
aK.m[5] = aH * (aQ * aR - aT * aO);
aK.m[6] = aH * (aQ * aM - aN * aP);
aK.m[7] = aH * (aN * aS - aT * aM);
aK.m[8] = aH * (aT * aP - aQ * aS);
return aK
}
};
am.prototype.transform = function(aI, aK, aJ) {
if (aJ == null) {
aJ = new Array(0, 0)
}
var aH = this.m;
aJ[0] = aH[0] * aI + aH[3] * aK + aH[6];
aJ[1] = aH[1] * aI + aH[4] * aK + aH[7];
return aJ
};
am.prototype.translate = function(aI, aJ) {
var aH = this.m;
aH[6] = aH[0] * aI + aH[3] * aJ + aH[6];
aH[7] = aH[1] * aI + aH[4] * aJ + aH[7];
aH[8] = aH[2] * aI + aH[5] * aJ + aH[8]
};
am.prototype.scale = function(aJ, aI) {
var aH = this.m;
aH[0] *= aJ;
aH[1] *= aJ;
aH[2] *= aJ;
aH[3] *= aI;
aH[4] *= aI;
aH[5] *= aI
};
am.prototype.shear = function(aM, aL) {
var aH = this.m;
var aK = aH[0] + aH[3] * aL;
var aJ = aH[1] + aH[4] * aL;
var aI = aH[2] + aH[5] * aL;
aH[3] = aH[0] * aM + aH[3];
aH[4] = aH[1] * aM + aH[4];
aH[5] = aH[2] * aM + aH[5];
aH[0] = aK;
aH[1] = aJ;
aH[2] = aI
};
am.prototype.rotate = function(aM) {
var aH = this.m;
var aN = Math.cos(aM);
var aL = Math.sin(aM);
var aK = aH[0] * aN + aH[3] * aL;
var aJ = aH[1] * aN + aH[4] * aL;
var aI = aH[2] * aN + aH[5] * aL;
aH[3] = -aH[0] * aL + aH[3] * aN;
aH[4] = -aH[1] * aL + aH[4] * aN;
aH[5] = -aH[2] * aL + aH[5] * aN;
aH[0] = aK;
aH[1] = aJ;
aH[2] = aI
};
am.prototype.concatenate = function(aL) {
var aO = this.m;
var aM = aL.m;
var aS = aO[0] * aM[0] + aO[3] * aM[1] + aO[6] * aM[2];
var aR = aO[1] * aM[0] + aO[4] * aM[1] + aO[7] * aM[2];
var aQ = aO[2] * aM[0] + aO[5] * aM[1] + aO[8] * aM[2];
var aP = aO[0] * aM[3] + aO[3] * aM[4] + aO[6] * aM[5];
var aN = aO[1] * aM[3] + aO[4] * aM[4] + aO[7] * aM[5];
var aK = aO[2] * aM[3] + aO[5] * aM[4] + aO[8] * aM[5];
var aJ = aO[0] * aM[6] + aO[3] * aM[7] + aO[6] * aM[8];
var aI = aO[1] * aM[6] + aO[4] * aM[7] + aO[7] * aM[8];
var aH = aO[2] * aM[6] + aO[5] * aM[7] + aO[8] * aM[8];
m[0] = aS;
m[1] = aR;
m[2] = aQ;
m[3] = aP;
m[4] = aN;
m[5] = aK;
m[6] = aJ;
m[7] = aI;
m[8] = aH
};
function n(aH) {
if (j) {
return
}
ak.prototype.constructor.call(this, aH)
}
n.prototype = new ak();
n._$eT = null;
n._$tP = new Object();
n._$2o = function() {
if (n._$eT == null) {
n._$eT = n.getID("DST_BASE")
}
return n._$eT
};
n._$27 = function() {
n._$tP.clear();
n._$eT = null
};
n.getID = function(aH) {
var aI = n._$tP[aH];
if (aI == null) {
aI = new n(aH);
n._$tP[aH] = aI
}
return aI
};
n.prototype._$3s = function() {
return new n()
};
function C(aH) {
if (j) {
return
}
ax.prototype.constructor.call(this);
this.textures = new Array();
this.transform = null;
this.gl = null;
this.glno = aH;
this.firstDraw = true;
this.anisotropyExt = null;
this.maxAnisotropy = 0;
this._$As = 32;
this._$Gr = false;
this._$NT = null;
this._$vS = null;
this._$no = null;
this.vertShader = null;
this.fragShader = null;
this.vertShaderOff = null;
this.fragShaderOff = null
}
C.prototype = new ax();
C._$9r = function(aH) {
var aI = new Float32Array(aH);
return aI
};
C._$vb = function(aH) {
var aI = new Int16Array(aH);
return aI
};
C._$cr = function(aI, aH) {
if (aI == null || aI._$yL() < aH.length) {
aI = C._$9r(aH.length * 2);
aI.put(aH);
aI._$oT(0)
} else {
aI.clear();
aI.put(aH);
aI._$oT(0)
}
return aI
};
C._$mb = function(aI, aH) {
if (aI == null || aI._$yL() < aH.length) {
aI = C._$vb(aH.length * 2);
aI.put(aH);
aI._$oT(0)
} else {
aI.clear();
aI.put(aH);
aI._$oT(0)
}
return aI
};
C._$Hs = function() {
return this._$Gr
};
C._$as = function(aH) {
this._$Gr = aH
};
C.prototype.getGL = function() {
return this.gl
};
C.prototype.setGL = function(aH) {
this.gl = aH
};
C.prototype.setTransform = function(aH) {
this.transform = aH
};
C.prototype._$ZT = function() {
var aH = this.gl;
if (this.firstDraw) {
this.initShader();
this.firstDraw = false;
this.anisotropyExt = aH.getExtension("EXT_texture_filter_anisotropic") || aH.getExtension("WEBKIT_EXT_texture_filter_anisotropic") || aH.getExtension("MOZ_EXT_texture_filter_anisotropic");
if (this.anisotropyExt) {
this.maxAnisotropy = aH.getParameter(this.anisotropyExt.MAX_TEXTURE_MAX_ANISOTROPY_EXT)
}
}
aH.disable(aH.SCISSOR_TEST);
aH.disable(aH.STENCIL_TEST);
aH.disable(aH.DEPTH_TEST);
aH.frontFace(aH.CW);
aH.enable(aH.BLEND);
aH.colorMask(1, 1, 1, 1);
aH.bindBuffer(aH.ARRAY_BUFFER, null);
aH.bindBuffer(aH.ELEMENT_ARRAY_BUFFER, null)
};
C.prototype._$Uo = function(aS, aT, aL, aU, aV, aN, aM, aO) {
if (aN < 0.01 && this.clipBufPre_clipContextMask == null) {
return
}
var aH = aN > 0.9 ? Q.EXPAND_W : 0;
var a0 = this.gl;
if (this.gl == null) {
throw new Error("gl is null");
}
var a1 = false;
var aQ = 1;
var aP = 1;
var a3 = 1;
var aZ = 1;
var aW = this._$C0 * aP * aN;
var a2 = this._$tT * a3 * aN;
var a5 = this._$WL * aZ * aN;
var a7 = this._$lT * aN;
if (this.clipBufPre_clipContextMask != null) {
a0.frontFace(a0.CCW);
a0.useProgram(this.shaderProgram);
this._$vS = T(a0, this._$vS, aU);
this._$no = L(a0, this._$no, aL);
a0.enableVertexAttribArray(this.a_position_Loc);
a0.vertexAttribPointer(this.a_position_Loc, 2, a0.FLOAT, false, 0, 0);
this._$NT = T(a0, this._$NT, aV);
a0.activeTexture(a0.TEXTURE1);
a0.bindTexture(a0.TEXTURE_2D, this.textures[aS]);
a0.uniform1i(this.s_texture0_Loc, 1);
a0.enableVertexAttribArray(this.a_texCoord_Loc);
a0.vertexAttribPointer(this.a_texCoord_Loc, 2, a0.FLOAT, false, 0, 0);
a0.uniformMatrix4fv(this.u_matrix_Loc, false, this.getClipBufPre_clipContextMask().matrixForMask);
var aY = this.getClipBufPre_clipContextMask().layoutChannelNo;
var a4 = this.getChannelFlagAsColor(aY);
a0.uniform4f(this.u_channelFlag, a4.r, a4.g, a4.b, a4.a);
var aI = this.getClipBufPre_clipContextMask().layoutBounds;
a0.uniform4f(this.u_baseColor_Loc, aI.x * 2 - 1, aI.y * 2 - 1, aI._$EL() * 2 - 1, aI._$5T() * 2 - 1);
a0.uniform1i(this.u_maskFlag_Loc, true)
} else {
a1 = this.getClipBufPre_clipContextDraw() != null;
if (a1) {
a0.useProgram(this.shaderProgramOff);
this._$vS = T(a0, this._$vS, aU);
this._$no = L(a0, this._$no, aL);
a0.enableVertexAttribArray(this.a_position_Loc_Off);
a0.vertexAttribPointer(this.a_position_Loc_Off, 2, a0.FLOAT, false, 0, 0);
this._$NT = T(a0, this._$NT, aV);
a0.activeTexture(a0.TEXTURE1);
a0.bindTexture(a0.TEXTURE_2D, this.textures[aS]);
a0.uniform1i(this.s_texture0_Loc_Off, 1);
a0.enableVertexAttribArray(this.a_texCoord_Loc_Off);
a0.vertexAttribPointer(this.a_texCoord_Loc_Off, 2, a0.FLOAT, false, 0, 0);
a0.uniformMatrix4fv(this.u_clipMatrix_Loc_Off, false, this.getClipBufPre_clipContextDraw().matrixForDraw);
a0.uniformMatrix4fv(this.u_matrix_Loc_Off, false, this.matrix4x4);
a0.activeTexture(a0.TEXTURE2);
a0.bindTexture(a0.TEXTURE_2D, Q.fTexture[this.glno]);
a0.uniform1i(this.s_texture1_Loc_Off, 2);
var aY = this.getClipBufPre_clipContextDraw().layoutChannelNo;
var a4 = this.getChannelFlagAsColor(aY);
a0.uniform4f(this.u_channelFlag_Loc_Off, a4.r, a4.g, a4.b, a4.a);
a0.uniform4f(this.u_baseColor_Loc_Off, aW, a2, a5, a7)
} else {
a0.useProgram(this.shaderProgram);
this._$vS = T(a0, this._$vS, aU);
this._$no = L(a0, this._$no, aL);
a0.enableVertexAttribArray(this.a_position_Loc);
a0.vertexAttribPointer(this.a_position_Loc, 2, a0.FLOAT, false, 0, 0);
this._$NT = T(a0, this._$NT, aV);
a0.activeTexture(a0.TEXTURE1);
a0.bindTexture(a0.TEXTURE_2D, this.textures[aS]);
a0.uniform1i(this.s_texture0_Loc, 1);
a0.enableVertexAttribArray(this.a_texCoord_Loc);
a0.vertexAttribPointer(this.a_texCoord_Loc, 2, a0.FLOAT, false, 0, 0);
a0.uniformMatrix4fv(this.u_matrix_Loc, false, this.matrix4x4);
a0.uniform4f(this.u_baseColor_Loc, aW, a2, a5, a7);
a0.uniform1i(this.u_maskFlag_Loc, false)
}
}
if (this.culling) {
this.gl.enable(a0.CULL_FACE)
} else {
this.gl.disable(a0.CULL_FACE)
}
this.gl.enable(a0.BLEND);
var a6;
var aX;
var aR;
var aK;
if (this.clipBufPre_clipContextMask != null) {
a6 = a0.ONE;
aX = a0.ONE_MINUS_SRC_ALPHA;
aR = a0.ONE;
aK = a0.ONE_MINUS_SRC_ALPHA
} else {
switch (aM) {
case b._$ms:
a6 = a0.ONE;
aX = a0.ONE_MINUS_SRC_ALPHA;
aR = a0.ONE;
aK = a0.ONE_MINUS_SRC_ALPHA;
break;
case b._$ns:
a6 = a0.ONE;
aX = a0.ONE;
aR = a0.ZERO;
aK = a0.ONE;
break;
case b._$_s:
a6 = a0.DST_COLOR;
aX = a0.ONE_MINUS_SRC_ALPHA;
aR = a0.ZERO;
aK = a0.ONE;
break
}
}
a0.blendEquationSeparate(a0.FUNC_ADD, a0.FUNC_ADD);
a0.blendFuncSeparate(a6, aX, aR, aK);
if (this.anisotropyExt) {
a0.texParameteri(a0.TEXTURE_2D, this.anisotropyExt.TEXTURE_MAX_ANISOTROPY_EXT, this.maxAnisotropy)
}
var aJ = aL.length;
a0.drawElements(a0.TRIANGLES, aJ, a0.UNSIGNED_SHORT, 0);
a0.bindTexture(a0.TEXTURE_2D, null)
};
function T(aJ, aH, aI) {
if (aH == null) {
aH = aJ.createBuffer()
}
aJ.bindBuffer(aJ.ARRAY_BUFFER, aH);
aJ.bufferData(aJ.ARRAY_BUFFER, aI, aJ.DYNAMIC_DRAW);
return aH
}
function L(aJ, aH, aI) {
if (aH == null) {
aH = aJ.createBuffer()
}
aJ.bindBuffer(aJ.ELEMENT_ARRAY_BUFFER, aH);
aJ.bufferData(aJ.ELEMENT_ARRAY_BUFFER, aI, aJ.DYNAMIC_DRAW);
return aH
}
C.prototype._$Rs = function() {
throw new Error("_$Rs");
};
C.prototype._$Ds = function(aH) {
throw new Error("_$Ds");
};
C.prototype._$K2 = function() {
for (var aH = 0; aH < this.textures.length; aH++) {
var aI = this.textures[aH];
if (aI != 0) {
this.gl._$K2(1, this.textures, aH);
this.textures[aH] = null
}
}
};
C.prototype.setTexture = function(aH, aI) {
this.textures[aH] = aI
};
C.prototype.initShader = function() {
var aH = this.gl;
this.loadShaders2();
this.a_position_Loc = aH.getAttribLocation(this.shaderProgram, "a_position");
this.a_texCoord_Loc = aH.getAttribLocation(this.shaderProgram, "a_texCoord");
this.u_matrix_Loc = aH.getUniformLocation(this.shaderProgram, "u_mvpMatrix");
this.s_texture0_Loc = aH.getUniformLocation(this.shaderProgram, "s_texture0");
this.u_channelFlag = aH.getUniformLocation(this.shaderProgram, "u_channelFlag");
this.u_baseColor_Loc = aH.getUniformLocation(this.shaderProgram, "u_baseColor");
this.u_maskFlag_Loc = aH.getUniformLocation(this.shaderProgram, "u_maskFlag");
this.a_position_Loc_Off = aH.getAttribLocation(this.shaderProgramOff, "a_position");
this.a_texCoord_Loc_Off = aH.getAttribLocation(this.shaderProgramOff, "a_texCoord");
this.u_matrix_Loc_Off = aH.getUniformLocation(this.shaderProgramOff, "u_mvpMatrix");
this.u_clipMatrix_Loc_Off = aH.getUniformLocation(this.shaderProgramOff, "u_ClipMatrix");
this.s_texture0_Loc_Off = aH.getUniformLocation(this.shaderProgramOff, "s_texture0");
this.s_texture1_Loc_Off = aH.getUniformLocation(this.shaderProgramOff, "s_texture1");
this.u_channelFlag_Loc_Off = aH.getUniformLocation(this.shaderProgramOff, "u_channelFlag");
this.u_baseColor_Loc_Off = aH.getUniformLocation(this.shaderProgramOff, "u_baseColor")
};
C.prototype.disposeShader = function() {
var aH = this.gl;
if (this.shaderProgram) {
aH.deleteProgram(this.shaderProgram);
this.shaderProgram = null
}
if (this.shaderProgramOff) {
aH.deleteProgram(this.shaderProgramOff);
this.shaderProgramOff = null
}
};
C.prototype.compileShader = function(aJ, aN) {
var aM = this.gl;
var aH;
var aL = aN;
var aK = aM.createShader(aJ);
if (aK == null) {
q._$Ji("_$L0 to create shader");
return null
}
aM.shaderSource(aK, aL);
aM.compileShader(aK);
var aH = aM.getShaderParameter(aK, aM.COMPILE_STATUS);
if (!aH) {
var aI = aM.getShaderInfoLog(aK);
q._$Ji("_$L0 to compile shader : " + aI);
aM.deleteShader(aK);
return null
}
return aK
};
C.prototype.loadShaders2 = function() {
var aN = this.gl;
this.shaderProgram = aN.createProgram();
if (!this.shaderProgram) {
return false
}
this.shaderProgramOff = aN.createProgram();
if (!this.shaderProgramOff) {
return false
}
var aK = "attribute vec4 a_position;attribute vec2 a_texCoord;varying vec2 v_texCoord;varying vec4 v_ClipPos;uniform mat4 u_mvpMatrix;void main(){ gl_Position = u_mvpMatrix * a_position; v_ClipPos = u_mvpMatrix * a_position; v_texCoord = a_texCoord;}";
var aM = "precision mediump float;varying vec2 v_texCoord;varying vec4 v_ClipPos;uniform sampler2D s_texture0;uniform vec4 u_channelFlag;uniform vec4 u_baseColor;uniform bool u_maskFlag;void main(){ vec4 smpColor; if(u_maskFlag){ float isInside = step(u_baseColor.x, v_ClipPos.x/v_ClipPos.w) * step(u_baseColor.y, v_ClipPos.y/v_ClipPos.w) * step(v_ClipPos.x/v_ClipPos.w, u_baseColor.z) * step(v_ClipPos.y/v_ClipPos.w, u_baseColor.w); smpColor = u_channelFlag * texture2D(s_texture0 , v_texCoord).a * isInside; }else{ smpColor = texture2D(s_texture0 , v_texCoord) * u_baseColor; } gl_FragColor = smpColor;}";
var aL = "attribute vec4 a_position;attribute vec2 a_texCoord;varying vec2 v_texCoord;varying vec4 v_ClipPos;uniform mat4 u_mvpMatrix;uniform mat4 u_ClipMatrix;void main(){ gl_Position = u_mvpMatrix * a_position; v_ClipPos = u_ClipMatrix * a_position; v_texCoord = a_texCoord ;}";
var aJ = "precision mediump float ;varying vec2 v_texCoord;varying vec4 v_ClipPos;uniform sampler2D s_texture0;uniform sampler2D s_texture1;uniform vec4 u_channelFlag;uniform vec4 u_baseColor ;void main(){ vec4 col_formask = texture2D(s_texture0, v_texCoord) * u_baseColor; vec4 clipMask = texture2D(s_texture1, v_ClipPos.xy / v_ClipPos.w) * u_channelFlag; float maskVal = clipMask.r + clipMask.g + clipMask.b + clipMask.a; col_formask = col_formask * maskVal; gl_FragColor = col_formask;}";
this.vertShader = this.compileShader(aN.VERTEX_SHADER, aK);
if (!this.vertShader) {
q._$Ji("Vertex shader compile _$li!");
return false
}
this.vertShaderOff = this.compileShader(aN.VERTEX_SHADER, aL);
if (!this.vertShaderOff) {
q._$Ji("OffVertex shader compile _$li!");
return false
}
this.fragShader = this.compileShader(aN.FRAGMENT_SHADER, aM);
if (!this.fragShader) {
q._$Ji("Fragment shader compile _$li!");
return false
}
this.fragShaderOff = this.compileShader(aN.FRAGMENT_SHADER, aJ);
if (!this.fragShaderOff) {
q._$Ji("OffFragment shader compile _$li!");
return false
}
aN.attachShader(this.shaderProgram, this.vertShader);
aN.attachShader(this.shaderProgram, this.fragShader);
aN.attachShader(this.shaderProgramOff, this.vertShaderOff);
aN.attachShader(this.shaderProgramOff, this.fragShaderOff);
aN.linkProgram(this.shaderProgram);
aN.linkProgram(this.shaderProgramOff);
var aH = aN.getProgramParameter(this.shaderProgram, aN.LINK_STATUS);
if (!aH) {
var aI = aN.getProgramInfoLog(this.shaderProgram);
q._$Ji("_$L0 to link program: " + aI);
if (this.vertShader) {
aN.deleteShader(this.vertShader);
this.vertShader = 0
}
if (this.fragShader) {
aN.deleteShader(this.fragShader);
this.fragShader = 0
}
if (this.shaderProgram) {
aN.deleteProgram(this.shaderProgram);
this.shaderProgram = 0
}
if (this.vertShaderOff) {
aN.deleteShader(this.vertShaderOff);
this.vertShaderOff = 0
}
if (this.fragShaderOff) {
aN.deleteShader(this.fragShaderOff);
this.fragShaderOff = 0
}
if (this.shaderProgramOff) {
aN.deleteProgram(this.shaderProgramOff);
this.shaderProgramOff = 0
}
return false
}
return true
};
C.prototype.createFramebuffer = function() {
var aL = this.gl;
var aK = Q.clippingMaskBufferSize;
var aJ = aL.createFramebuffer();
aL.bindFramebuffer(aL.FRAMEBUFFER, aJ);
var aH = aL.createRenderbuffer();
aL.bindRenderbuffer(aL.RENDERBUFFER, aH);
aL.renderbufferStorage(aL.RENDERBUFFER, aL.RGBA4, aK, aK);
aL.framebufferRenderbuffer(aL.FRAMEBUFFER, aL.COLOR_ATTACHMENT0, aL.RENDERBUFFER, aH);
var aI = aL.createTexture();
aL.bindTexture(aL.TEXTURE_2D, aI);
aL.texImage2D(aL.TEXTURE_2D, 0, aL.RGBA, aK, aK, 0, aL.RGBA, aL.UNSIGNED_BYTE, null);
aL.texParameteri(aL.TEXTURE_2D, aL.TEXTURE_MIN_FILTER, aL.LINEAR);
aL.texParameteri(aL.TEXTURE_2D, aL.TEXTURE_MAG_FILTER, aL.LINEAR);
aL.texParameteri(aL.TEXTURE_2D, aL.TEXTURE_WRAP_S, aL.CLAMP_TO_EDGE);
aL.texParameteri(aL.TEXTURE_2D, aL.TEXTURE_WRAP_T, aL.CLAMP_TO_EDGE);
aL.framebufferTexture2D(aL.FRAMEBUFFER, aL.COLOR_ATTACHMENT0, aL.TEXTURE_2D, aI, 0);
aL.bindTexture(aL.TEXTURE_2D, null);
aL.bindRenderbuffer(aL.RENDERBUFFER, null);
aL.bindFramebuffer(aL.FRAMEBUFFER, null);
Q.fTexture[this.glno] = aI;
return {
framebuffer: aJ,
renderbuffer: aH,
texture: Q.fTexture[this.glno]
}
};
function K(aH) {
if (j) {
return
}
this._$P = new Int8Array(8);
this._$R0 = new DataView(this._$P.buffer);
this._$3i = new Int8Array(1000);
this._$hL = 0;
this._$v0 = 0;
this._$S2 = 0;
this._$Ko = new Array();
this._$T = aH;
this._$F = 0
}
K.prototype._$fP = function() {
var aK = this._$ST();
var aJ, aI, aH;
if ((aK & 128) == 0) {
return aK & 255
} else {
if (((aJ = this._$ST()) & 128) == 0) {
return ((aK & 127) << 7) | (aJ & 127)
} else {
if (((aI = this._$ST()) & 128) == 0) {
return ((aK & 127) << 14) | ((aJ & 127) << 7) | (aI & 255)
} else {
if (((aH = this._$ST()) & 128) == 0) {
return ((aK & 127) << 21) | ((aJ & 127) << 14) | ((aI & 127) << 7) | (aH & 255)
} else {
throw new J("_$L _$0P _");
}
}
}
}
};
K.prototype.getFormatVersion = function() {
return this._$S2
};
K.prototype._$gr = function(aH) {
this._$S2 = aH
};
K.prototype._$3L = function() {
return this._$fP()
};
K.prototype._$mP = function() {
this._$zT();
this._$F += 8;
return this._$T.getFloat64(this._$F - 8)
};
K.prototype._$_T = function() {
this._$zT();
this._$F += 4;
return this._$T.getFloat32(this._$F - 4)
};
K.prototype._$6L = function() {
this._$zT();
this._$F += 4;
return this._$T.getInt32(this._$F - 4)
};
K.prototype._$ST = function() {
this._$zT();
return this._$T.getInt8(this._$F++)
};
K.prototype._$9T = function() {
this._$zT();
this._$F += 2;
return this._$T.getInt16(this._$F - 2)
};
K.prototype._$2T = function() {
this._$zT();
this._$F += 8;
throw new J("_$L _$q read long");
};
K.prototype._$po = function() {
this._$zT();
return this._$T.getInt8(this._$F++) != 0
};
var O = true;
K.prototype._$bT = function() {
this._$zT();
var aH = this._$3L();
var aK = null;
if (O) {
try {
var aM = new ArrayBuffer(aH * 2);
aK = new Uint16Array(aM);
for (var aJ = 0; aJ < aH; ++aJ) {
aK[aJ] = this._$T.getUint8(this._$F++)
}
return String.fromCharCode.apply(null, aK)
} catch (aL) {
O = false
}
}
try {
var aI = new Array();
if (aK == null) {
for (var aJ = 0; aJ < aH; ++aJ) {
aI[aJ] = this._$T.getUint8(this._$F++)
}
} else {
for (var aJ = 0; aJ < aH; ++aJ) {
aI[aJ] = aK[aJ]
}
}
return String.fromCharCode.apply(null, aI)
} catch (aL) {
console.log("read utf8 / _$rT _$L0 !! : " + aL)
}
};
K.prototype._$cS = function() {
this._$zT();
var aI = this._$3L();
var aH = new Int32Array(aI);
for (var aJ = 0; aJ < aI; aJ++) {
aH[aJ] = this._$T.getInt32(this._$F);
this._$F += 4
}
return aH
};
K.prototype._$Tb = function() {
this._$zT();
var aI = this._$3L();
var aH = new Float32Array(aI);
for (var aJ = 0; aJ < aI; aJ++) {
aH[aJ] = this._$T.getFloat32(this._$F);
this._$F += 4
}
return aH
};
K.prototype._$5b = function() {
this._$zT();
var aI = this._$3L();
var aH = new Float64Array(aI);
for (var aJ = 0; aJ < aI; aJ++) {
aH[aJ] = this._$T.getFloat64(this._$F);
this._$F += 8
}
return aH
};
K.prototype._$nP = function() {
return this._$Jb(-1)
};
K.prototype._$Jb = function(aJ) {
this._$zT();
if (aJ < 0) {
aJ = this._$3L()
}
if (aJ == ay._$7P) {
var aH = this._$6L();
if (0 <= aH && aH < this._$Ko.length) {
return this._$Ko[aH]
} else {
throw new J("_$sL _$4i @_$m0");
}
} else {
var aI = this._$4b(aJ);
this._$Ko.push(aI);
return aI
}
};
K.prototype._$4b = function(aN) {
if (aN == 0) {
return null
}
if (aN == 50) {
var aK = this._$bT();
var aI = Z.getID(aK);
return aI
} else {
if (aN == 51) {
var aK = this._$bT();
var aI = n.getID(aK);
return aI
} else {
if (aN == 134) {
var aK = this._$bT();
var aI = i.getID(aK);
return aI
} else {
if (aN == 60) {
var aK = this._$bT();
var aI = z.getID(aK);
return aI
}
}
}
}
if (aN >= 48) {
var aL = ay._$9o(aN);
if (aL != null) {
aL._$F0(this);
return aL
} else {
return null
}
}
switch (aN) {
case 1:
return this._$bT();
case 10:
var aM = this._$6L();
return new I(aM, true);
case 11:
return new av(this._$mP(), this._$mP(), this._$mP(), this._$mP());
case 12:
return new av(this._$_T(), this._$_T(), this._$_T(), this._$_T());
case 13:
return new e(this._$mP(), this._$mP());
case 14:
return new e(this._$_T(), this._$_T());
case 15:
var aH = this._$3L();
var aI = new Array(aH);
for (var aJ = 0; aJ < aH; aJ++) {
aI[aJ] = this._$nP()
}
return aI;
case 17:
var aI = new aD(this._$mP(), this._$mP(), this._$mP(), this._$mP(), this._$mP(), this._$mP());
return aI;
case 21:
return new F(this._$6L(), this._$6L(), this._$6L(), this._$6L());
case 22:
return new k(this._$6L(), this._$6L());
case 23:
throw new Error("_$L _$ro ");
case 16:
case 25:
return this._$cS();
case 26:
return this._$5b();
case 27:
return this._$Tb();
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
case 18:
case 19:
case 20:
case 24:
case 28:
throw new J("_$6 _$q : _$nP() of 2-9 ,18,19,20,24,28 : " + aN);
default:
throw new J("_$6 _$q : _$nP() NO _$i : " + aN);
}
};
K.prototype._$8L = function() {
if (this._$hL == 0) {
this._$v0 = this._$ST()
} else {
if (this._$hL == 8) {
this._$v0 = this._$ST();
this._$hL = 0
}
}
return ((this._$v0 >> (7 - this._$hL++)) & 1) == 1
};
K.prototype._$zT = function() {
if (this._$hL != 0) {
this._$hL = 0
}
};
function ai() {}
ai.prototype._$wP = function(aM, aI, aK) {
for (var aL = 0; aL < aK; aL++) {
for (var aH = 0; aH < aI; aH++) {
var aJ = 2 * (aH + aL * aI);
console.log("(% 7.3f , % 7.3f) , ", aM[aJ], aM[aJ + 1])
}
console.log("\n")
}
console.log("\n")
};
function aC() {}
aC._$2S = Math.PI / 180;
aC._$bS = (Math.PI / 180);
aC._$wS = 180 / Math.PI;
aC._$NS = (180 / Math.PI);
aC.PI_F = Math.PI;
aC._$kT = [0, 0.012368, 0.024734, 0.037097, 0.049454, 0.061803, 0.074143, 0.086471, 0.098786, 0.111087, 0.12337, 0.135634, 0.147877, 0.160098, 0.172295, 0.184465, 0.196606, 0.208718, 0.220798, 0.232844, 0.244854, 0.256827, 0.268761, 0.280654, 0.292503, 0.304308, 0.316066, 0.327776, 0.339436, 0.351044, 0.362598, 0.374097, 0.385538, 0.396921, 0.408243, 0.419502, 0.430697, 0.441826, 0.452888, 0.463881, 0.474802, 0.485651, 0.496425, 0.507124, 0.517745, 0.528287, 0.538748, 0.549126, 0.559421, 0.56963, 0.579752, 0.589785, 0.599728, 0.609579, 0.619337, 0.629, 0.638567, 0.648036, 0.657406, 0.666676, 0.675843, 0.684908, 0.693867, 0.70272, 0.711466, 0.720103, 0.72863, 0.737045, 0.745348, 0.753536, 0.76161, 0.769566, 0.777405, 0.785125, 0.792725, 0.800204, 0.807561, 0.814793, 0.821901, 0.828884, 0.835739, 0.842467, 0.849066, 0.855535, 0.861873, 0.868079, 0.874153, 0.880093, 0.885898, 0.891567, 0.897101, 0.902497, 0.907754, 0.912873, 0.917853, 0.922692, 0.92739, 0.931946, 0.936359, 0.940629, 0.944755, 0.948737, 0.952574, 0.956265, 0.959809, 0.963207, 0.966457, 0.96956, 0.972514, 0.97532, 0.977976, 0.980482, 0.982839, 0.985045, 0.987101, 0.989006, 0.990759, 0.992361, 0.993811, 0.995109, 0.996254, 0.997248, 0.998088, 0.998776, 0.999312, 0.999694, 0.999924, 1];
aC._$92 = function(aK, aI) {
var aH = Math.atan2(aK[1], aK[0]);
var aJ = Math.atan2(aI[1], aI[0]);
return aC._$tS(aH, aJ)
};
aC._$tS = function(aI, aH) {
var aJ = aI - aH;
while (aJ < -Math.PI) {
aJ += 2 * Math.PI
}
while (aJ > Math.PI) {
aJ -= 2 * Math.PI
}
return aJ
};
aC._$9 = function(aH) {
return Math.sin(aH)
};
aC.fcos = function(aH) {
return Math.cos(aH)
};
function aB(aH) {
if (j) {
return
}
this._$e0 = null;
this._$IP = null;
this._$Us = null;
this._$7s = null;
this._$IS = [false];
this._$VS = null;
this._$AT = true;
this.baseOpacity = 1;
this.clipBufPre_clipContext = null;
this._$e0 = aH
}
aB.prototype._$u2 = function() {
return this._$IS[0]
};
aB.prototype._$yo = function() {
return this._$AT && !this._$IS[0]
};
aB.prototype._$GT = function() {
return this._$e0
};
function r() {}
r._$W2 = 0;
r.SYSTEM_INFO = null;
r.USER_AGENT = navigator.userAgent;
r.isIPhone = function() {
if (!r.SYSTEM_INFO) {
r.setup()
}
return r.SYSTEM_INFO._isIPhone
};
r.isIOS = function() {
if (!r.SYSTEM_INFO) {
r.setup()
}
return r.SYSTEM_INFO._isIPhone || r.SYSTEM_INFO._isIPad
};
r.isAndroid = function() {
if (!r.SYSTEM_INFO) {
r.setup()
}
return r.SYSTEM_INFO._isAndroid
};
r.getOSVersion = function() {
if (!r.SYSTEM_INFO) {
r.setup()
}
return r.SYSTEM_INFO.version
};
r.getOS = function() {
if (!r.SYSTEM_INFO) {
r.setup()
}
if (r.SYSTEM_INFO._isIPhone || r.SYSTEM_INFO._isIPad) {
return "iOS"
}
if (r.SYSTEM_INFO._isAndroid) {
return "Android"
} else {
return "_$Q0 OS"
}
};
r.setup = function() {
var aK = r.USER_AGENT;
function aI(aO, aR) {
var aN = aO.substring(aR).split(/[ _,;\.]/);
var aQ = 0;
for (var aM = 0; aM <= 2; aM++) {
if (isNaN(aN[aM])) {
break
}
var aP = parseInt(aN[aM]);
if (aP < 0 || aP > 999) {
q._$li("err : " + aP + " @UtHtml5.setup()");
aQ = 0;
break
}
aQ += aP * Math.pow(1000, (2 - aM))
}
return aQ
}
var aL;
var aH;
var aJ = r.SYSTEM_INFO = {
userAgent: aK
};
if ((aL = aK.indexOf("iPhone OS ")) >= 0) {
aJ.os = "iPhone";
aJ._isIPhone = true;
aJ.version = aI(aK, aL + "iPhone OS ".length)
} else {
if ((aL = aK.indexOf("iPad")) >= 0) {
aL = aK.indexOf("CPU OS");
if (aL < 0) {
q._$li(" err : " + aK + " @UtHtml5.setup()");
return
}
aJ.os = "iPad";
aJ._isIPad = true;
aJ.version = aI(aK, aL + "CPU OS ".length)
} else {
if ((aL = aK.indexOf("Android")) >= 0) {
aJ.os = "Android";
aJ._isAndroid = true;
aJ.version = aI(aK, aL + "Android ".length)
} else {
aJ.os = "-";
aJ.version = -1
}
}
}
};
window.UtSystem = P;
window.UtDebug = q;
window.LDTransform = am;
window.LDGL = au;
window.Live2D = Q;
window.Live2DModelWebGL = l;
window.Live2DModelJS = v;
window.Live2DMotion = ao;
window.MotionQueueManager = V;
window.PhysicsHair = u;
window.AMotion = ah;
window.PartsDataID = i;
window.DrawDataID = Z;
window.BaseDataID = n;
window.ParamID = z;
Q.init();
var j = false
})();
function L2DBaseModel() {
this.live2DModel = null;
this.modelMatrix = null;
this.eyeBlink = null;
this.physics = null;
this.pose = null;
this.debugMode = false;
this.initialized = false;
this.updating = false;
this.alpha = 1;
this.accAlpha = 0;
this.lipSync = false;
this.lipSyncValue = 0;
this.accelX = 0;
this.accelY = 0;
this.accelZ = 0;
this.dragX = 0;
this.dragY = 0;
this.startTimeMSec = null;
this.mainMotionManager = new L2DMotionManager();
this.expressionManager = new L2DMotionManager();
this.motions = {};
this.expressions = {};
this.isTexLoaded = false
}
var texCounter = 0;
L2DBaseModel.prototype.getModelMatrix = function() {
return this.modelMatrix
}
L2DBaseModel.prototype.setAlpha = function(a) {
if (a > 0.999) a = 1;
if (a < 0.001) a = 0;
this.alpha = a
}
L2DBaseModel.prototype.getAlpha = function() {
return this.alpha
}
L2DBaseModel.prototype.isInitialized = function() {
return this.initialized
}
L2DBaseModel.prototype.setInitialized = function(v) {
this.initialized = v
}
L2DBaseModel.prototype.isUpdating = function() {
return this.updating
}
L2DBaseModel.prototype.setUpdating = function(v) {
this.updating = v
}
L2DBaseModel.prototype.getLive2DModel = function() {
return this.live2DModel
}
L2DBaseModel.prototype.setLipSync = function(v) {
this.lipSync = v
}
L2DBaseModel.prototype.setLipSyncValue = function(v) {
this.lipSyncValue = v
}
L2DBaseModel.prototype.setAccel = function(x, y, z) {
this.accelX = x;
this.accelY = y;
this.accelZ = z
}
L2DBaseModel.prototype.setDrag = function(x, y) {
this.dragX = x;
this.dragY = y
}
L2DBaseModel.prototype.getMainMotionManager = function() {
return this.mainMotionManager
}
L2DBaseModel.prototype.getExpressionManager = function() {
return this.expressionManager
}
L2DBaseModel.prototype.loadModelData = function(path, callback) {
var pm = Live2DFramework.getPlatformManager();
if (this.debugMode) pm.log("Load model : " + path);
var thisRef = this;
pm.loadLive2DModel(path, function(l2dModel) {
thisRef.live2DModel = l2dModel;
thisRef.live2DModel.saveParam();
var _err = Live2D.getError();
if (_err != 0) {
console.error("Error : Failed to loadModelData().");
return
}
thisRef.modelMatrix = new L2DModelMatrix(thisRef.live2DModel.getCanvasWidth(), thisRef.live2DModel.getCanvasHeight());
thisRef.modelMatrix.setWidth(2);
thisRef.modelMatrix.setCenterPosition(0, 0);
callback(thisRef.live2DModel)
})
}
L2DBaseModel.prototype.loadTexture = function(no, path, callback) {
texCounter++;
var pm = Live2DFramework.getPlatformManager();
if (this.debugMode) pm.log("Load Texture : " + path);
var thisRef = this;
pm.loadTexture(this.live2DModel, no, path, function() {
texCounter--;
if (texCounter == 0) thisRef.isTexLoaded = true;
if (typeof callback == "function") callback()
})
}
L2DBaseModel.prototype.loadMotion = function(name, path, callback) {
var pm = Live2DFramework.getPlatformManager();
if (this.debugMode) pm.log("Load Motion : " + path);
var motion = null;
var thisRef = this;
pm.loadBytes(path, function(buf) {
motion = Live2DMotion.loadMotion(buf);
if (name != null) {
thisRef.motions[name] = motion
}
callback(motion)
})
}
L2DBaseModel.prototype.loadExpression = function(name, path, callback) {
var pm = Live2DFramework.getPlatformManager();
if (this.debugMode) pm.log("Load Expression : " + path);
var thisRef = this;
pm.loadBytes(path, function(buf) {
if (name != null) {
thisRef.expressions[name] = L2DExpressionMotion.loadJson(buf)
}
if (typeof callback == "function") callback()
})
}
L2DBaseModel.prototype.loadPose = function(path, callback) {
var pm = Live2DFramework.getPlatformManager();
if (this.debugMode) pm.log("Load Pose : " + path);
var thisRef = this;
try {
pm.loadBytes(path, function(buf) {
thisRef.pose = L2DPose.load(buf);
if (typeof callback == "function") callback()
})
} catch (e) {
console.warn(e)
}
}
L2DBaseModel.prototype.loadPhysics = function(path) {
var pm = Live2DFramework.getPlatformManager();
if (this.debugMode) pm.log("Load Physics : " + path);
var thisRef = this;
try {
pm.loadBytes(path, function(buf) {
thisRef.physics = L2DPhysics.load(buf)
})
} catch (e) {
console.warn(e)
}
}
L2DBaseModel.prototype.hitTestSimple = function(drawID, testX, testY) {
var drawIndex = this.live2DModel.getDrawDataIndex(drawID);
if (drawIndex < 0) return false;
var points = this.live2DModel.getTransformedPoints(drawIndex);
var left = this.live2DModel.getCanvasWidth();
var right = 0;
var top = this.live2DModel.getCanvasHeight();
var bottom = 0;
for (var j = 0; j < points.length; j = j + 2) {
var x = points[j];
var y = points[j + 1];
if (x < left) left = x;
if (x > right) right = x;
if (y < top) top = y;
if (y > bottom) bottom = y
}
var tx = this.modelMatrix.invertTransformX(testX);
var ty = this.modelMatrix.invertTransformY(testY);
return (left <= tx && tx <= right && top <= ty && ty <= bottom)
}
function L2DExpressionMotion() {
AMotion.prototype.constructor.call(this);
this.paramList = new Array()
}
L2DExpressionMotion.prototype = new AMotion();
L2DExpressionMotion.EXPRESSION_DEFAULT = "DEFAULT";
L2DExpressionMotion.TYPE_SET = 0;
L2DExpressionMotion.TYPE_ADD = 1;
L2DExpressionMotion.TYPE_MULT = 2;
L2DExpressionMotion.loadJson = function(buf) {
var ret = new L2DExpressionMotion();
var pm = Live2DFramework.getPlatformManager();
var json = pm.jsonParseFromBytes(buf);
ret.setFadeIn(parseInt(json.fade_in) > 0 ? parseInt(json.fade_in) : 1000);
ret.setFadeOut(parseInt(json.fade_out) > 0 ? parseInt(json.fade_out) : 1000);
if (json.params == null) {
return ret
}
var params = json.params;
var paramNum = params.length;
ret.paramList = [];
for (var i = 0; i < paramNum; i++) {
var param = params[i];
var paramID = param.id.toString();
var value = parseFloat(param.val);
var calcTypeInt = L2DExpressionMotion.TYPE_ADD;
var calc = param.calc != null ? param.calc.toString() : "add";
if (calc === "add") {
calcTypeInt = L2DExpressionMotion.TYPE_ADD
} else if (calc === "mult") {
calcTypeInt = L2DExpressionMotion.TYPE_MULT
} else if (calc === "set") {
calcTypeInt = L2DExpressionMotion.TYPE_SET
} else {
calcTypeInt = L2DExpressionMotion.TYPE_ADD
}
if (calcTypeInt == L2DExpressionMotion.TYPE_ADD) {
var defaultValue = param.def == null ? 0 : parseFloat(param.def);
value = value - defaultValue
} else if (calcTypeInt == L2DExpressionMotion.TYPE_MULT) {
var defaultValue = param.def == null ? 1 : parseFloat(param.def);
if (defaultValue == 0) defaultValue = 1;
value = value / defaultValue
}
var item = new L2DExpressionParam();
item.id = paramID;
item.type = calcTypeInt;
item.value = value;
ret.paramList.push(item)
}
return ret
}
L2DExpressionMotion.prototype.updateParamExe = function(model, timeMSec, weight, motionQueueEnt) {
for (var i = this.paramList.length - 1; i >= 0; --i) {
var param = this.paramList[i];
if (param.type == L2DExpressionMotion.TYPE_ADD) {
model.addToParamFloat(param.id, param.value, weight)
} else if (param.type == L2DExpressionMotion.TYPE_MULT) {
model.multParamFloat(param.id, param.value, weight)
} else if (param.type == L2DExpressionMotion.TYPE_SET) {
model.setParamFloat(param.id, param.value, weight)
}
}
}
function L2DExpressionParam() {
this.id = "";
this.type = -1;
this.value = null
}
function L2DEyeBlink() {
this.nextBlinkTime = null;
this.stateStartTime = null;
this.blinkIntervalMsec = null;
this.eyeState = EYE_STATE.STATE_FIRST;
this.blinkIntervalMsec = 4000;
this.closingMotionMsec = 100;
this.closedMotionMsec = 50;
this.openingMotionMsec = 150;
this.closeIfZero = true;
this.eyeID_L = "PARAM_EYE_L_OPEN";
this.eyeID_R = "PARAM_EYE_R_OPEN"
}
L2DEyeBlink.prototype.calcNextBlink = function() {
var time = UtSystem.getUserTimeMSec();
var r = Math.random();
return (time + r * (2 * this.blinkIntervalMsec - 1))
}
L2DEyeBlink.prototype.setInterval = function(blinkIntervalMsec) {
this.blinkIntervalMsec = blinkIntervalMsec
}
L2DEyeBlink.prototype.setEyeMotion = function(closingMotionMsec, closedMotionMsec, openingMotionMsec) {
this.closingMotionMsec = closingMotionMsec;
this.closedMotionMsec = closedMotionMsec;
this.openingMotionMsec = openingMotionMsec
}
L2DEyeBlink.prototype.updateParam = function(model) {
var time = UtSystem.getUserTimeMSec();
var eyeParamValue;
var t = 0;
switch (this.eyeState) {
case EYE_STATE.STATE_CLOSING:
t = (time - this.stateStartTime) / this.closingMotionMsec;
if (t >= 1) {
t = 1;
this.eyeState = EYE_STATE.STATE_CLOSED;
this.stateStartTime = time
}
eyeParamValue = 1 - t;
break;
case EYE_STATE.STATE_CLOSED:
t = (time - this.stateStartTime) / this.closedMotionMsec;
if (t >= 1) {
this.eyeState = EYE_STATE.STATE_OPENING;
this.stateStartTime = time
}
eyeParamValue = 0;
break;
case EYE_STATE.STATE_OPENING:
t = (time - this.stateStartTime) / this.openingMotionMsec;
if (t >= 1) {
t = 1;
this.eyeState = EYE_STATE.STATE_INTERVAL;
this.nextBlinkTime = this.calcNextBlink()
}
eyeParamValue = t;
break;
case EYE_STATE.STATE_INTERVAL:
if (this.nextBlinkTime < time) {
this.eyeState = EYE_STATE.STATE_CLOSING;
this.stateStartTime = time
}
eyeParamValue = 1;
break;
case EYE_STATE.STATE_FIRST:
default:
this.eyeState = EYE_STATE.STATE_INTERVAL;
this.nextBlinkTime = this.calcNextBlink();
eyeParamValue = 1;
break
}
if (!this.closeIfZero) eyeParamValue = -eyeParamValue;
model.setParamFloat(this.eyeID_L, eyeParamValue);
model.setParamFloat(this.eyeID_R, eyeParamValue)
}
var EYE_STATE = function() {};
EYE_STATE.STATE_FIRST = "STATE_FIRST"
EYE_STATE.STATE_INTERVAL = "STATE_INTERVAL"
EYE_STATE.STATE_CLOSING = "STATE_CLOSING"
EYE_STATE.STATE_CLOSED = "STATE_CLOSED"
EYE_STATE.STATE_OPENING = "STATE_OPENING"
function L2DMatrix44() {
this.tr = new Float32Array(16);
this.identity()
}
L2DMatrix44.mul = function(a, b, dst) {
var c = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
var n = 4;
var i, j, k;
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
for (k = 0; k < n; k++) {
c[i + j * 4] += a[i + k * 4] * b[k + j * 4]
}
}
}
for (i = 0; i < 16; i++) {
dst[i] = c[i]
}
}
L2DMatrix44.prototype.identity = function() {
for (var i = 0; i < 16; i++) this.tr[i] = ((i % 5) == 0) ? 1 : 0
}
L2DMatrix44.prototype.getArray = function() {
return this.tr
}
L2DMatrix44.prototype.getCopyMatrix = function() {
return new Float32Array(this.tr)
}
L2DMatrix44.prototype.setMatrix = function(tr) {
if (this.tr == null || this.tr.length != this.tr.length) return;
for (var i = 0; i < 16; i++) this.tr[i] = tr[i]
}
L2DMatrix44.prototype.getScaleX = function() {
return this.tr[0]
}
L2DMatrix44.prototype.getScaleY = function() {
return this.tr[5]
}
L2DMatrix44.prototype.transformX = function(src) {
return this.tr[0] * src + this.tr[12]
}
L2DMatrix44.prototype.transformY = function(src) {
return this.tr[5] * src + this.tr[13]
}
L2DMatrix44.prototype.invertTransformX = function(src) {
return (src - this.tr[12]) / this.tr[0]
}
L2DMatrix44.prototype.invertTransformY = function(src) {
return (src - this.tr[13]) / this.tr[5]
}
L2DMatrix44.prototype.multTranslate = function(shiftX, shiftY) {
var tr1 = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, shiftX, shiftY, 0, 1];
L2DMatrix44.mul(tr1, this.tr, this.tr)
}
L2DMatrix44.prototype.translate = function(x, y) {
this.tr[12] = x;
this.tr[13] = y
}
L2DMatrix44.prototype.translateX = function(x) {
this.tr[12] = x
}
L2DMatrix44.prototype.translateY = function(y) {
this.tr[13] = y
}
L2DMatrix44.prototype.multScale = function(scaleX, scaleY) {
var tr1 = [scaleX, 0, 0, 0, 0, scaleY, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
L2DMatrix44.mul(tr1, this.tr, this.tr)
}
L2DMatrix44.prototype.scale = function(scaleX, scaleY) {
this.tr[0] = scaleX;
this.tr[5] = scaleY
}
function L2DModelMatrix(w, h) {
L2DMatrix44.prototype.constructor.call(this);
this.width = w;
this.height = h
}
L2DModelMatrix.prototype = new L2DMatrix44();
L2DModelMatrix.prototype.setPosition = function(x, y) {
this.translate(x, y)
}
L2DModelMatrix.prototype.setCenterPosition = function(x, y) {
var w = this.width * this.getScaleX();
var h = this.height * this.getScaleY();
this.translate(x - w / 2, y - h / 2)
}
L2DModelMatrix.prototype.top = function(y) {
this.setY(y)
}
L2DModelMatrix.prototype.bottom = function(y) {
var h = this.height * this.getScaleY();
this.translateY(y - h)
}
L2DModelMatrix.prototype.left = function(x) {
this.setX(x)
}
L2DModelMatrix.prototype.right = function(x) {
var w = this.width * this.getScaleX();
this.translateX(x - w)
}
L2DModelMatrix.prototype.centerX = function(x) {
var w = this.width * this.getScaleX();
this.translateX(x - w / 2)
}
L2DModelMatrix.prototype.centerY = function(y) {
var h = this.height * this.getScaleY();
this.translateY(y - h / 2)
}
L2DModelMatrix.prototype.setX = function(x) {
this.translateX(x)
}
L2DModelMatrix.prototype.setY = function(y) {
this.translateY(y)
}
L2DModelMatrix.prototype.setHeight = function(h) {
var scaleX = h / this.height;
var scaleY = -scaleX;
this.scale(scaleX, scaleY)
}
L2DModelMatrix.prototype.setWidth = function(w) {
var scaleX = w / this.width;
var scaleY = -scaleX;
this.scale(scaleX, scaleY)
}
function L2DMotionManager() {
MotionQueueManager.prototype.constructor.call(this);
this.currentPriority = null;
this.reservePriority = null;
this.super = MotionQueueManager.prototype
}
L2DMotionManager.prototype = new MotionQueueManager();
L2DMotionManager.prototype.getCurrentPriority = function() {
return this.currentPriority
}
L2DMotionManager.prototype.getReservePriority = function() {
return this.reservePriority
}
L2DMotionManager.prototype.reserveMotion = function(priority) {
if (this.reservePriority >= priority) {
return false
}
if (this.currentPriority >= priority) {
return false
}
this.reservePriority = priority;
return true
}
L2DMotionManager.prototype.setReservePriority = function(val) {
this.reservePriority = val
}
L2DMotionManager.prototype.updateParam = function(model) {
var updated = MotionQueueManager.prototype.updateParam.call(this, model);
if (this.isFinished()) {
this.currentPriority = 0
}
return updated
}
L2DMotionManager.prototype.startMotionPrio = function(motion, priority) {
if (priority == this.reservePriority) {
this.reservePriority = 0
}
this.currentPriority = priority;
return this.startMotion(motion, false)
}
function L2DPhysics() {
this.physicsList = new Array();
this.startTimeMSec = UtSystem.getUserTimeMSec()
}
L2DPhysics.load = function(buf) {
var ret = new L2DPhysics();
var pm = Live2DFramework.getPlatformManager();
var json = pm.jsonParseFromBytes(buf);
var params = json.physics_hair;
var paramNum = params.length;
for (var i = 0; i < paramNum; i++) {
var param = params[i];
var physics = new PhysicsHair();
var setup = param.setup;
var length = parseFloat(setup.length);
var resist = parseFloat(setup.regist);
var mass = parseFloat(setup.mass);
physics.setup(length, resist, mass);
var srcList = param.src;
var srcNum = srcList.length;
for (var j = 0; j < srcNum; j++) {
var src = srcList[j];
var id = src.id;
var type = PhysicsHair.Src.SRC_TO_X;
var typeStr = src.ptype;
if (typeStr === "x") {
type = PhysicsHair.Src.SRC_TO_X
} else if (typeStr === "y") {
type = PhysicsHair.Src.SRC_TO_Y
} else if (typeStr === "angle") {
type = PhysicsHair.Src.SRC_TO_G_ANGLE
} else {
UtDebug.error("live2d", "Invalid parameter:PhysicsHair.Src")
}
var scale = parseFloat(src.scale);
var weight = parseFloat(src.weight);
physics.addSrcParam(type, id, scale, weight)
}
var targetList = param.targets;
var targetNum = targetList.length;
for (var j = 0; j < targetNum; j++) {
var target = targetList[j];
var id = target.id;
var type = PhysicsHair.Target.TARGET_FROM_ANGLE;
var typeStr = target.ptype;
if (typeStr === "angle") {
type = PhysicsHair.Target.TARGET_FROM_ANGLE
} else if (typeStr === "angle_v") {
type = PhysicsHair.Target.TARGET_FROM_ANGLE_V
} else {
UtDebug.error("live2d", "Invalid parameter:PhysicsHair.Target")
}
var scale = parseFloat(target.scale);
var weight = parseFloat(target.weight);
physics.addTargetParam(type, id, scale, weight)
}
ret.physicsList.push(physics)
}
return ret
}
L2DPhysics.prototype.updateParam = function(model) {
var timeMSec = UtSystem.getUserTimeMSec() - this.startTimeMSec;
for (var i = 0; i < this.physicsList.length; i++) {
this.physicsList[i].update(model, timeMSec)
}
}
function L2DPose() {
this.lastTime = 0;
this.lastModel = null;
this.partsGroups = new Array()
}
L2DPose.load = function(buf) {
var ret = new L2DPose();
var pm = Live2DFramework.getPlatformManager();
var json = pm.jsonParseFromBytes(buf);
var poseListInfo = json.parts_visible;
var poseNum = poseListInfo.length;
for (var i_pose = 0; i_pose < poseNum; i_pose++) {
var poseInfo = poseListInfo[i_pose];
var idListInfo = poseInfo.group;
var idNum = idListInfo.length;
var partsGroup = new Array();
for (var i_group = 0; i_group < idNum; i_group++) {
var partsInfo = idListInfo[i_group];
var parts = new L2DPartsParam(partsInfo.id);
partsGroup[i_group] = parts;
if (partsInfo.link == null) continue;
var linkListInfo = partsInfo.link;
var linkNum = linkListInfo.length;
parts.link = new Array();
for (var i_link = 0; i_link < linkNum; i_link++) {
var linkParts = new L2DPartsParam(linkListInfo[i_link]);
parts.link.push(linkParts)
}
}
ret.partsGroups.push(partsGroup)
}
return ret
}
L2DPose.prototype.updateParam = function(model) {
if (model == null) return;
if (!(model == this.lastModel)) {
this.initParam(model)
}
this.lastModel = model;
var curTime = UtSystem.getUserTimeMSec();
var deltaTimeSec = ((this.lastTime == 0) ? 0 : (curTime - this.lastTime) / 1000.0);
this.lastTime = curTime;
if (deltaTimeSec < 0) deltaTimeSec = 0;
for (var i = 0; i < this.partsGroups.length; i++) {
this.normalizePartsOpacityGroup(model, this.partsGroups[i], deltaTimeSec);
this.copyOpacityOtherParts(model, this.partsGroups[i])
}
}
L2DPose.prototype.initParam = function(model) {
if (model == null) return;
for (var i = 0; i < this.partsGroups.length; i++) {
var partsGroup = this.partsGroups[i];
for (var j = 0; j < partsGroup.length; j++) {
partsGroup[j].initIndex(model);
var partsIndex = partsGroup[j].partsIndex;
var paramIndex = partsGroup[j].paramIndex;
if (partsIndex < 0) continue;
var v = (model.getParamFloat(paramIndex) != 0);
model.setPartsOpacity(partsIndex, (v ? 1.0 : 0.0));
model.setParamFloat(paramIndex, (v ? 1.0 : 0.0));
if (partsGroup[j].link == null) continue;
for (var k = 0; k < partsGroup[j].link.length; k++) {
partsGroup[j].link[k].initIndex(model)
}
}
}
}
L2DPose.prototype.normalizePartsOpacityGroup = function(model, partsGroup, deltaTimeSec) {
var visibleParts = -1;
var visibleOpacity = 1.0;
var CLEAR_TIME_SEC = 0.5;
var phi = 0.5;
var maxBackOpacity = 0.15;
for (var i = 0; i < partsGroup.length; i++) {
var partsIndex = partsGroup[i].partsIndex;
var paramIndex = partsGroup[i].paramIndex;
if (partsIndex < 0) continue;
if (model.getParamFloat(paramIndex) != 0) {
if (visibleParts >= 0) {
break
}
visibleParts = i;
visibleOpacity = model.getPartsOpacity(partsIndex);
visibleOpacity += deltaTimeSec / CLEAR_TIME_SEC;
if (visibleOpacity > 1) {
visibleOpacity = 1
}
}
}
if (visibleParts < 0) {
visibleParts = 0;
visibleOpacity = 1
}
for (var i = 0; i < partsGroup.length; i++) {
var partsIndex = partsGroup[i].partsIndex;
if (partsIndex < 0) continue;
if (visibleParts == i) {
model.setPartsOpacity(partsIndex, visibleOpacity)
} else {
var opacity = model.getPartsOpacity(partsIndex);
var a1;
if (visibleOpacity < phi) {
a1 = visibleOpacity * (phi - 1) / phi + 1
} else {
a1 = (1 - visibleOpacity) * phi / (1 - phi)
}
var backOp = (1 - a1) * (1 - visibleOpacity);
if (backOp > maxBackOpacity) {
a1 = 1 - maxBackOpacity / (1 - visibleOpacity)
}
if (opacity > a1) {
opacity = a1
}
model.setPartsOpacity(partsIndex, opacity)
}
}
}
L2DPose.prototype.copyOpacityOtherParts = function(model, partsGroup) {
for (var i_group = 0; i_group < partsGroup.length; i_group++) {
var partsParam = partsGroup[i_group];
if (partsParam.link == null) continue;
if (partsParam.partsIndex < 0) continue;
var opacity = model.getPartsOpacity(partsParam.partsIndex);
for (var i_link = 0; i_link < partsParam.link.length; i_link++) {
var linkParts = partsParam.link[i_link];
if (linkParts.partsIndex < 0) continue;
model.setPartsOpacity(linkParts.partsIndex, opacity)
}
}
}
function L2DPartsParam(id) {
this.paramIndex = -1;
this.partsIndex = -1;
this.link = null;
this.id = id
}
L2DPartsParam.prototype.initIndex = function(model) {
this.paramIndex = model.getParamIndex("VISIBLE:" + this.id);
this.partsIndex = model.getPartsDataIndex(PartsDataID.getID(this.id));
model.setParamFloat(this.paramIndex, 1)
}
function L2DTargetPoint() {
this.EPSILON = 0.01;
this.faceTargetX = 0;
this.faceTargetY = 0;
this.faceX = 0;
this.faceY = 0;
this.faceVX = 0;
this.faceVY = 0;
this.lastTimeSec = 0
}
L2DTargetPoint.FRAME_RATE = 30;
L2DTargetPoint.prototype.setPoint = function(x, y) {
this.faceTargetX = x;
this.faceTargetY = y
}
L2DTargetPoint.prototype.getX = function() {
return this.faceX
}
L2DTargetPoint.prototype.getY = function() {
return this.faceY
}
L2DTargetPoint.prototype.update = function() {
var TIME_TO_MAX_SPEED = 0.15;
var FACE_PARAM_MAX_V = 40.0 / 7.5;
var MAX_V = FACE_PARAM_MAX_V / L2DTargetPoint.FRAME_RATE;
if (this.lastTimeSec == 0) {
this.lastTimeSec = UtSystem.getUserTimeMSec();
return
}
var curTimeSec = UtSystem.getUserTimeMSec();
var deltaTimeWeight = (curTimeSec - this.lastTimeSec) * L2DTargetPoint.FRAME_RATE / 1000.0;
this.lastTimeSec = curTimeSec;
var FRAME_TO_MAX_SPEED = TIME_TO_MAX_SPEED * L2DTargetPoint.FRAME_RATE;
var MAX_A = deltaTimeWeight * MAX_V / FRAME_TO_MAX_SPEED;
var dx = (this.faceTargetX - this.faceX);
var dy = (this.faceTargetY - this.faceY);
if (Math.abs(dx) <= this.EPSILON && Math.abs(dy) <= this.EPSILON) return;
var d = Math.sqrt(dx * dx + dy * dy);
var vx = MAX_V * dx / d;
var vy = MAX_V * dy / d;
var ax = vx - this.faceVX;
var ay = vy - this.faceVY;
var a = Math.sqrt(ax * ax + ay * ay);
if (a < -MAX_A || a > MAX_A) {
ax *= MAX_A / a;
ay *= MAX_A / a;
a = MAX_A
}
this.faceVX += ax;
this.faceVY += ay; {
var max_v = 0.5 * (Math.sqrt(MAX_A * MAX_A + 16 * MAX_A * d - 8 * MAX_A * d) - MAX_A);
var cur_v = Math.sqrt(this.faceVX * this.faceVX + this.faceVY * this.faceVY);
if (cur_v > max_v) {
this.faceVX *= max_v / cur_v;
this.faceVY *= max_v / cur_v
}
}
this.faceX += this.faceVX;
this.faceY += this.faceVY
}
function L2DViewMatrix() {
L2DMatrix44.prototype.constructor.call(this);
this.screenLeft = null;
this.screenRight = null;
this.screenTop = null;
this.screenBottom = null;
this.maxLeft = null;
this.maxRight = null;
this.maxTop = null;
this.maxBottom = null;
this.max = Number.MAX_VALUE;
this.min = 0
}
L2DViewMatrix.prototype = new L2DMatrix44();
L2DViewMatrix.prototype.getMaxScale = function() {
return this.max
}
L2DViewMatrix.prototype.getMinScale = function() {
return this.min
}
L2DViewMatrix.prototype.setMaxScale = function(v) {
this.max = v
}
L2DViewMatrix.prototype.setMinScale = function(v) {
this.min = v
}
L2DViewMatrix.prototype.isMaxScale = function() {
return this.getScaleX() == this.max
}
L2DViewMatrix.prototype.isMinScale = function() {
return this.getScaleX() == this.min
}
L2DViewMatrix.prototype.adjustTranslate = function(shiftX, shiftY) {
if (this.tr[0] * this.maxLeft + (this.tr[12] + shiftX) > this.screenLeft) shiftX = this.screenLeft - this.tr[0] * this.maxLeft - this.tr[12];
if (this.tr[0] * this.maxRight + (this.tr[12] + shiftX) < this.screenRight) shiftX = this.screenRight - this.tr[0] * this.maxRight - this.tr[12];
if (this.tr[5] * this.maxTop + (this.tr[13] + shiftY) < this.screenTop) shiftY = this.screenTop - this.tr[5] * this.maxTop - this.tr[13];
if (this.tr[5] * this.maxBottom + (this.tr[13] + shiftY) > this.screenBottom) shiftY = this.screenBottom - this.tr[5] * this.maxBottom - this.tr[13];
var tr1 = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, shiftX, shiftY, 0, 1];
L2DMatrix44.mul(tr1, this.tr, this.tr)
}
L2DViewMatrix.prototype.adjustScale = function(cx, cy, scale) {
var targetScale = scale * this.tr[0];
if (targetScale < this.min) {
if (this.tr[0] > 0) scale = this.min / this.tr[0]
} else if (targetScale > this.max) {
if (this.tr[0] > 0) scale = this.max / this.tr[0]
}
var tr1 = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, cx, cy, 0, 1];
var tr2 = [scale, 0, 0, 0, 0, scale, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
var tr3 = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -cx, -cy, 0, 1];
L2DMatrix44.mul(tr3, this.tr, this.tr);
L2DMatrix44.mul(tr2, this.tr, this.tr);
L2DMatrix44.mul(tr1, this.tr, this.tr)
}
L2DViewMatrix.prototype.setScreenRect = function(left, right, bottom, top) {
this.screenLeft = left;
this.screenRight = right;
this.screenTop = top;
this.screenBottom = bottom
}
L2DViewMatrix.prototype.setMaxScreenRect = function(left, right, bottom, top) {
this.maxLeft = left;
this.maxRight = right;
this.maxTop = top;
this.maxBottom = bottom
}
L2DViewMatrix.prototype.getScreenLeft = function() {
return this.screenLeft
}
L2DViewMatrix.prototype.getScreenRight = function() {
return this.screenRight
}
L2DViewMatrix.prototype.getScreenBottom = function() {
return this.screenBottom
}
L2DViewMatrix.prototype.getScreenTop = function() {
return this.screenTop
}
L2DViewMatrix.prototype.getMaxLeft = function() {
return this.maxLeft
}
L2DViewMatrix.prototype.getMaxRight = function() {
return this.maxRight
}
L2DViewMatrix.prototype.getMaxBottom = function() {
return this.maxBottom
}
L2DViewMatrix.prototype.getMaxTop = function() {
return this.maxTop
}
function Live2DFramework() {}
Live2DFramework.platformManager = null;
Live2DFramework.getPlatformManager = function() {
return Live2DFramework.platformManager
}
Live2DFramework.setPlatformManager = function(platformManager) {
Live2DFramework.platformManager = platformManager
}
function MatrixStack() {}
MatrixStack.matrixStack = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
MatrixStack.depth = 0;
MatrixStack.currentMatrix = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
MatrixStack.tmp = new Array(16);
MatrixStack.reset = function() {
this.depth = 0
}
MatrixStack.loadIdentity = function() {
for (var i = 0; i < 16; i++) {
this.currentMatrix[i] = (i % 5 == 0) ? 1 : 0
}
}
MatrixStack.push = function() {
var offset = this.depth * 16;
var nextOffset = (this.depth + 1) * 16;
if (this.matrixStack.length < nextOffset + 16) {
this.matrixStack.length = nextOffset + 16
}
for (var i = 0; i < 16; i++) {
this.matrixStack[nextOffset + i] = this.currentMatrix[i]
}
this.depth++
}
MatrixStack.pop = function() {
this.depth--;
if (this.depth < 0) {
myError("Invalid matrix stack.");
this.depth = 0
}
var offset = this.depth * 16;
for (var i = 0; i < 16; i++) {
this.currentMatrix[i] = this.matrixStack[offset + i]
}
}
MatrixStack.getMatrix = function() {
return this.currentMatrix
}
MatrixStack.multMatrix = function(matNew) {
var i, j, k;
for (i = 0; i < 16; i++) {
this.tmp[i] = 0
}
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++) {
for (k = 0; k < 4; k++) {
this.tmp[i + j * 4] += this.currentMatrix[i + k * 4] * matNew[k + j * 4]
}
}
}
for (i = 0; i < 16; i++) {
this.currentMatrix[i] = this.tmp[i]
}
}
function ModelSettingJson() {
this.NAME = "name";
this.ID = "id";
this.MODEL = "model";
this.TEXTURES = "textures";
this.HIT_AREAS = "hit_areas";
this.PHYSICS = "physics";
this.POSE = "pose";
this.EXPRESSIONS = "expressions";
this.MOTION_GROUPS = "motions";
this.SOUND = "sound";
this.FADE_IN = "fade_in";
this.FADE_OUT = "fade_out";
this.LAYOUT = "layout";
this.INIT_PARAM = "init_param";
this.INIT_PARTS_VISIBLE = "init_parts_visible";
this.VALUE = "val";
this.FILE = "file";
this.json = {}
}
ModelSettingJson.prototype.loadModelSetting = function(path, callback) {
var thisRef = this;
var pm = Live2DFramework.getPlatformManager();
pm.loadBytes(path, function(buf) {
var str = String.fromCharCode.apply(null, new Uint8Array(buf));
thisRef.json = JSON.parse(str);
callback()
})
};
ModelSettingJson.prototype.getTextureFile = function(n) {
if (this.json[this.TEXTURES] == null || this.json[this.TEXTURES][n] == null) return null;
return this.json[this.TEXTURES][n]
}
ModelSettingJson.prototype.getModelFile = function() {
return this.json[this.MODEL]
};
ModelSettingJson.prototype.getTextureNum = function() {
if (this.json[this.TEXTURES] == null) return 0;
return this.json[this.TEXTURES].length
}
ModelSettingJson.prototype.getHitAreaNum = function() {
if (this.json[this.HIT_AREAS] == null) return 0;
return this.json[this.HIT_AREAS].length
}
ModelSettingJson.prototype.getHitAreaID = function(n) {
if (this.json[this.HIT_AREAS] == null || this.json[this.HIT_AREAS][n] == null) return null;
return this.json[this.HIT_AREAS][n][this.ID]
}
ModelSettingJson.prototype.getHitAreaName = function(n) {
if (this.json[this.HIT_AREAS] == null || this.json[this.HIT_AREAS][n] == null) return null;
return this.json[this.HIT_AREAS][n][this.NAME]
}
ModelSettingJson.prototype.getPhysicsFile = function() {
return this.json[this.PHYSICS]
}
ModelSettingJson.prototype.getPoseFile = function() {
return this.json[this.POSE]
}
ModelSettingJson.prototype.getExpressionNum = function() {
return (this.json[this.EXPRESSIONS] == null) ? 0 : this.json[this.EXPRESSIONS].length
}
ModelSettingJson.prototype.getExpressionFile = function(n) {
if (this.json[this.EXPRESSIONS] == null) return null;
return this.json[this.EXPRESSIONS][n][this.FILE]
}
ModelSettingJson.prototype.getExpressionName = function(n) {
if (this.json[this.EXPRESSIONS] == null) return null;
return this.json[this.EXPRESSIONS][n][this.NAME]
}
ModelSettingJson.prototype.getLayout = function() {
return this.json[this.LAYOUT]
}
ModelSettingJson.prototype.getInitParamNum = function() {
return (this.json[this.INIT_PARAM] == null) ? 0 : this.json[this.INIT_PARAM].length
}
ModelSettingJson.prototype.getMotionNum = function(name) {
if (this.json[this.MOTION_GROUPS] == null || this.json[this.MOTION_GROUPS][name] == null) return 0;
return this.json[this.MOTION_GROUPS][name].length
}
ModelSettingJson.prototype.getMotionFile = function(name, n) {
if (this.json[this.MOTION_GROUPS] == null || this.json[this.MOTION_GROUPS][name] == null || this.json[this.MOTION_GROUPS][name][n] == null) return null;
return this.json[this.MOTION_GROUPS][name][n][this.FILE]
}
ModelSettingJson.prototype.getMotionSound = function(name, n) {
if (this.json[this.MOTION_GROUPS] == null || this.json[this.MOTION_GROUPS][name] == null || this.json[this.MOTION_GROUPS][name][n] == null || this.json[this.MOTION_GROUPS][name][n][this.SOUND] == null) return null;
return this.json[this.MOTION_GROUPS][name][n][this.SOUND]
}
ModelSettingJson.prototype.getMotionFadeIn = function(name, n) {
if (this.json[this.MOTION_GROUPS] == null || this.json[this.MOTION_GROUPS][name] == null || this.json[this.MOTION_GROUPS][name][n] == null || this.json[this.MOTION_GROUPS][name][n][this.FADE_IN] == null) return 1000;
return this.json[this.MOTION_GROUPS][name][n][this.FADE_IN]
}
ModelSettingJson.prototype.getMotionFadeOut = function(name, n) {
if (this.json[this.MOTION_GROUPS] == null || this.json[this.MOTION_GROUPS][name] == null || this.json[this.MOTION_GROUPS][name][n] == null || this.json[this.MOTION_GROUPS][name][n][this.FADE_OUT] == null) return 1000;
return this.json[this.MOTION_GROUPS][name][n][this.FADE_OUT]
}
ModelSettingJson.prototype.getInitParamID = function(n) {
if (this.json[this.INIT_PARAM] == null || this.json[this.INIT_PARAM][n] == null) return null;
return this.json[this.INIT_PARAM][n][this.ID]
}
ModelSettingJson.prototype.getInitParamValue = function(n) {
if (this.json[this.INIT_PARAM] == null || this.json[this.INIT_PARAM][n] == null) return NaN;
return this.json[this.INIT_PARAM][n][this.VALUE]
}
ModelSettingJson.prototype.getInitPartsVisibleNum = function() {
return (this.json[this.INIT_PARTS_VISIBLE] == null) ? 0 : this.json[this.INIT_PARTS_VISIBLE].length
}
ModelSettingJson.prototype.getInitPartsVisibleID = function(n) {
if (this.json[this.INIT_PARTS_VISIBLE] == null || this.json[this.INIT_PARTS_VISIBLE][n] == null) return null;
return this.json[this.INIT_PARTS_VISIBLE][n][this.ID]
}
ModelSettingJson.prototype.getInitPartsVisibleValue = function(n) {
if (this.json[this.INIT_PARTS_VISIBLE] == null || this.json[this.INIT_PARTS_VISIBLE][n] == null) return NaN;
return this.json[this.INIT_PARTS_VISIBLE][n][this.VALUE]
}
function PlatformManager() {}
PlatformManager.prototype.loadBytes = function(path, callback) {
var request = new XMLHttpRequest();
request.open("GET", path, true);
request.responseType = "arraybuffer";
request.onload = function() {
switch (request.status) {
case 200:
callback(request.response);
break;
default:
console.error("Failed to load (" + request.status + ") : " + path);
break
}
}
request.send(null)
}
PlatformManager.prototype.loadString = function(path) {
this.loadBytes(path, function(buf) {
return buf
})
}
PlatformManager.prototype.loadLive2DModel = function(path, callback) {
var model = null;
this.loadBytes(path, function(buf) {
model = Live2DModelWebGL.loadModel(buf);
callback(model)
})
}
PlatformManager.prototype.loadTexture = function(model, no, path, callback) {
var loadedImage = new Image();
loadedImage.src = path;
var thisRef = this;
loadedImage.onload = function() {
var canvas = document.getElementById(LAppDefine.CANVAS_ID);
var gl = getWebGLContext(canvas, {
premultipliedAlpha: true
});
var texture = gl.createTexture();
if (!texture) {
console.error("Failed to generate gl texture name.");
return -1
}
if (model.isPremultipliedAlpha() == false) {
gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 1)
}
gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, 1);
gl.activeTexture(gl.TEXTURE0);
gl.bindTexture(gl.TEXTURE_2D, texture);
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, loadedImage);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR_MIPMAP_NEAREST);
gl.generateMipmap(gl.TEXTURE_2D);
model.setTexture(no, texture);
texture = null;
if (typeof callback == "function") callback()
};
loadedImage.onerror = function() {
console.error("Failed to load image : " + path)
}
}
PlatformManager.prototype.jsonParseFromBytes = function(buf) {
var jsonStr;
var bomCode = new Uint8Array(buf, 0, 3);
if (bomCode[0] == 239 && bomCode[1] == 187 && bomCode[2] == 191) {
jsonStr = String.fromCharCode.apply(null, new Uint8Array(buf, 3))
} else {
jsonStr = String.fromCharCode.apply(null, new Uint8Array(buf))
}
var jsonObj = JSON.parse(jsonStr);
return jsonObj
};
PlatformManager.prototype.log = function(txt) {
console.log(txt)
}
function LAppModel() {
L2DBaseModel.prototype.constructor.call(this);
this.modelHomeDir = "";
this.modelSetting = null;
this.tmpMatrix = [];
this.gl = null;
this.texPath = "";
this.modelPath = "";
this.countOfTexure = -1
}
LAppModel.prototype = new L2DBaseModel();
var motionModel;
LAppModel.prototype.load = function(gl, modelSettingPath, callback) {
this.setUpdating(true);
this.setInitialized(false);
this.gl = gl;
this.modelPath = modelSettingPath;
this.modelHomeDir = modelSettingPath.substring(0, modelSettingPath.lastIndexOf("/") + 1);
this.modelSetting = new ModelSettingJson();
var thisRef = this;
this.modelSetting.loadModelSetting(modelSettingPath, function() {
var path = thisRef.modelHomeDir + thisRef.modelSetting.getModelFile();
thisRef.loadModelData(path, function(model) {
for (var i = 0; i < thisRef.modelSetting.getTextureNum(); i++) {
var texPaths = thisRef.modelHomeDir + thisRef.modelSetting.getTextureFile(i);
thisRef.loadTexture(i, texPaths, function() {
if (thisRef.isTexLoaded) {
if (thisRef.modelSetting.getExpressionNum() > 0) {
thisRef.expressions = {};
for (var j = 0; j < thisRef.modelSetting.getExpressionNum(); j++) {
var expName = thisRef.modelSetting.getExpressionName(j);
var expFilePath = thisRef.modelHomeDir + thisRef.modelSetting.getExpressionFile(j);
thisRef.loadExpression(expName, expFilePath)
}
} else {
thisRef.expressionManager = null;
thisRef.expressions = {}
}
if (thisRef.eyeBlink == null) {
thisRef.eyeBlink = new L2DEyeBlink()
}
if (thisRef.modelSetting.getPhysicsFile() != null) {
thisRef.loadPhysics(thisRef.modelHomeDir + thisRef.modelSetting.getPhysicsFile())
} else {
thisRef.physics = null
}
if (thisRef.modelSetting.getPoseFile() != null) {
thisRef.loadPose(thisRef.modelHomeDir + thisRef.modelSetting.getPoseFile(), function() {
thisRef.pose.updateParam(thisRef.live2DModel)
})
} else {
thisRef.pose = null
}
if (thisRef.modelSetting.getLayout() != null) {
var layout = thisRef.modelSetting.getLayout();
if (layout["width"] != null) thisRef.modelMatrix.setWidth(layout["width"]);
if (layout["height"] != null) thisRef.modelMatrix.setHeight(layout["height"]);
if (layout["x"] != null) thisRef.modelMatrix.setX(layout["x"]);
if (layout["y"] != null) thisRef.modelMatrix.setY(layout["y"]);
if (layout["center_x"] != null) thisRef.modelMatrix.centerX(layout["center_x"]);
if (layout["center_y"] != null) thisRef.modelMatrix.centerY(layout["center_y"]);
if (layout["top"] != null) thisRef.modelMatrix.top(layout["top"]);
if (layout["bottom"] != null) thisRef.modelMatrix.bottom(layout["bottom"]);
if (layout["left"] != null) thisRef.modelMatrix.left(layout["left"]);
if (layout["right"] != null) thisRef.modelMatrix.right(layout["right"])
}
for (var j = 0; j < thisRef.modelSetting.getInitParamNum(); j++) {
thisRef.live2DModel.setParamFloat(thisRef.modelSetting.getInitParamID(j), thisRef.modelSetting.getInitParamValue(j))
}
for (var j = 0; j < thisRef.modelSetting.getInitPartsVisibleNum(); j++) {
thisRef.live2DModel.setPartsOpacity(thisRef.modelSetting.getInitPartsVisibleID(j), thisRef.modelSetting.getInitPartsVisibleValue(j))
}
thisRef.live2DModel.saveParam();
thisRef.preloadMotionGroup(LAppDefine.MOTION_GROUP_IDLE);
thisRef.mainMotionManager.stopAllMotions();
thisRef.setUpdating(false);
thisRef.setInitialized(true);
if (typeof callback == "function") callback()
}
})
if(LAppDefine.IS_START_TEXURE_CHANGE){
break;
}
}
})
});
motionModel = this
};
LAppModel.prototype.release = function(gl) {
var pm = Live2DFramework.getPlatformManager();
gl.deleteTexture(pm.texture)
}
LAppModel.prototype.changeModelTexure = function(gl) {
this.setUpdating(true);
this.setInitialized(false);
motionModel.countOfTexure++;
var no = motionModel.countOfTexure;
var modelSettingPath = motionModel.modelPath;
this.modelHomeDir = modelSettingPath.substring(0, modelSettingPath.lastIndexOf("/") + 1);
this.modelSetting = new ModelSettingJson();
var thisRef = this;
this.modelSetting.loadModelSetting(modelSettingPath, function() {
var path = thisRef.modelHomeDir + thisRef.modelSetting.getModelFile();
thisRef.loadModelData(path, function(model) {
if (thisRef.modelSetting.getTextureNum() == 1) {
return
}
if (LAppDefine.TEXURE_CHANGE_MODE == 'random') {
no = parseInt(Math.random() * (thisRef.modelSetting.getTextureNum() - 1))
}
if (no >= thisRef.modelSetting.getTextureNum()) {
motionModel.countOfTexure = 0;
no = 0
}
var texPaths = thisRef.modelHomeDir + thisRef.modelSetting.getTextureFile(no);
thisRef.loadTexture(0, texPaths, function() {
if (thisRef.isTexLoaded) {
if (thisRef.modelSetting.getExpressionNum() > 0) {
thisRef.expressions = {};
for (var j = 0; j < thisRef.modelSetting.getExpressionNum(); j++) {
var expName = thisRef.modelSetting.getExpressionName(j);
var expFilePath = thisRef.modelHomeDir + thisRef.modelSetting.getExpressionFile(j);
thisRef.loadExpression(expName, expFilePath)
}
} else {
thisRef.expressionManager = null;
thisRef.expressions = {}
}
if (thisRef.eyeBlink == null) {
thisRef.eyeBlink = new L2DEyeBlink()
}
if (thisRef.modelSetting.getPhysicsFile() != null) {
thisRef.loadPhysics(thisRef.modelHomeDir + thisRef.modelSetting.getPhysicsFile())
} else {
thisRef.physics = null
}
if (thisRef.modelSetting.getPoseFile() != null) {
thisRef.loadPose(thisRef.modelHomeDir + thisRef.modelSetting.getPoseFile(), function() {
thisRef.pose.updateParam(thisRef.live2DModel)
})
} else {
thisRef.pose = null
}
if (thisRef.modelSetting.getLayout() != null) {
var layout = thisRef.modelSetting.getLayout();
if (layout["width"] != null) thisRef.modelMatrix.setWidth(layout["width"]);
if (layout["height"] != null) thisRef.modelMatrix.setHeight(layout["height"]);
if (layout["x"] != null) thisRef.modelMatrix.setX(layout["x"]);
if (layout["y"] != null) thisRef.modelMatrix.setY(layout["y"]);
if (layout["center_x"] != null) thisRef.modelMatrix.centerX(layout["center_x"]);
if (layout["center_y"] != null) thisRef.modelMatrix.centerY(layout["center_y"]);
if (layout["top"] != null) thisRef.modelMatrix.top(layout["top"]);
if (layout["bottom"] != null) thisRef.modelMatrix.bottom(layout["bottom"]);
if (layout["left"] != null) thisRef.modelMatrix.left(layout["left"]);
if (layout["right"] != null) thisRef.modelMatrix.right(layout["right"])
}
for (var j = 0; j < thisRef.modelSetting.getInitParamNum(); j++) {
thisRef.live2DModel.setParamFloat(thisRef.modelSetting.getInitParamID(j), thisRef.modelSetting.getInitParamValue(j))
}
for (var j = 0; j < thisRef.modelSetting.getInitPartsVisibleNum(); j++) {
thisRef.live2DModel.setPartsOpacity(thisRef.modelSetting.getInitPartsVisibleID(j), thisRef.modelSetting.getInitPartsVisibleValue(j))
}
thisRef.live2DModel.saveParam();
thisRef.preloadMotionGroup(LAppDefine.MOTION_GROUP_IDLE);
thisRef.mainMotionManager.stopAllMotions();
thisRef.setUpdating(false);
thisRef.setInitialized(true);
if (typeof callback == "function") callback()
}
})
})
})
}
LAppModel.prototype.preloadMotionGroup = function(name) {
var thisRef = this;
for (var i = 0; i < this.modelSetting.getMotionNum(name); i++) {
var file = this.modelSetting.getMotionFile(name, i);
this.loadMotion(file, this.modelHomeDir + file, function(motion) {
motion.setFadeIn(thisRef.modelSetting.getMotionFadeIn(name, i));
motion.setFadeOut(thisRef.modelSetting.getMotionFadeOut(name, i))
})
}
}
LAppModel.prototype.update = function() {
if (this.live2DModel == null) {
if (LAppDefine.DEBUG_LOG) console.error("Failed to update.");
return
}
var timeMSec = UtSystem.getUserTimeMSec() - this.startTimeMSec;
var timeSec = timeMSec / 1000.0;
var t = timeSec * 2 * Math.PI;
if (this.mainMotionManager.isFinished()) {
this.startRandomMotion(LAppDefine.MOTION_GROUP_IDLE, LAppDefine.PRIORITY_IDLE)
}
this.live2DModel.loadParam();
var update = this.mainMotionManager.updateParam(this.live2DModel);
if (!update) {
if (this.eyeBlink != null) {
this.eyeBlink.updateParam(this.live2DModel)
}
}
this.live2DModel.saveParam();
if (this.expressionManager != null && this.expressions != null && !this.expressionManager.isFinished()) {
this.expressionManager.updateParam(this.live2DModel)
}
this.live2DModel.addToParamFloat("PARAM_ANGLE_X", this.dragX * 30, 1);
this.live2DModel.addToParamFloat("PARAM_ANGLE_Y", this.dragY * 30, 1);
this.live2DModel.addToParamFloat("PARAM_ANGLE_Z", (this.dragX * this.dragY) * -30, 1);
this.live2DModel.addToParamFloat("PARAM_BODY_ANGLE_X", this.dragX * 10, 1);
this.live2DModel.addToParamFloat("PARAM_EYE_BALL_X", this.dragX, 1);
this.live2DModel.addToParamFloat("PARAM_EYE_BALL_Y", this.dragY, 1);
this.live2DModel.addToParamFloat("PARAM_ANGLE_X", Number((15 * Math.sin(t / 6.5345))), 0.5);
this.live2DModel.addToParamFloat("PARAM_ANGLE_Y", Number((8 * Math.sin(t / 3.5345))), 0.5);
this.live2DModel.addToParamFloat("PARAM_ANGLE_Z", Number((10 * Math.sin(t / 5.5345))), 0.5);
this.live2DModel.addToParamFloat("PARAM_BODY_ANGLE_X", Number((4 * Math.sin(t / 15.5345))), 0.5);
this.live2DModel.setParamFloat("PARAM_BREATH", Number((0.5 + 0.5 * Math.sin(t / 3.2345))), 1);
if (this.physics != null) {
this.physics.updateParam(this.live2DModel)
}
if (this.lipSync == null) {
this.live2DModel.setParamFloat("PARAM_MOUTH_OPEN_Y", this.lipSyncValue)
}
if (this.pose != null) {
this.pose.updateParam(this.live2DModel)
}
this.live2DModel.update()
};
LAppModel.prototype.setRandomExpression = function() {
var tmp = [];
for (var name in this.expressions) {
tmp.push(name)
}
var no = parseInt(Math.random() * tmp.length);
this.setExpression(tmp[no])
}
LAppModel.prototype.startRandomMotion = function(name, priority) {
var max = this.modelSetting.getMotionNum(name);
var no = parseInt(Math.random() * max);
this.startMotion(name, no, priority)
}
LAppModel.prototype.startAppointMotion = function(name, priority, no) {
var max = motionModel.modelSetting.getMotionNum(name);
if (no != undefined && typeof(no) == 'number' && no <= max) {
motionModel.startMotion(name, no, priority)
} else {
no = parseInt(Math.random() * max);
motionModel.startMotion(name, no, priority)
}
}
LAppModel.prototype.startMotion = function(name, no, priority) {
var motionName = this.modelSetting.getMotionFile(name, no);
if (motionName == null || motionName == "") {
if (LAppDefine.DEBUG_LOG) console.error("Failed to motion.");
return
}
if (priority == LAppDefine.PRIORITY_FORCE) {
this.mainMotionManager.setReservePriority(priority)
} else if (!this.mainMotionManager.reserveMotion(priority)) {
if (LAppDefine.DEBUG_LOG) console.log("Motion is running.");
return
}
var thisRef = this;
var motion;
if (this.motions[name] == null) {
this.loadMotion(null, this.modelHomeDir + motionName, function(mtn) {
motion = mtn;
thisRef.setFadeInFadeOut(name, no, priority, motion)
})
} else {
motion = this.motions[name];
thisRef.setFadeInFadeOut(name, no, priority, motion)
}
}
LAppModel.prototype.setFadeInFadeOut = function(name, no, priority, motion) {
var motionName = this.modelSetting.getMotionFile(name, no);
motion.setFadeIn(this.modelSetting.getMotionFadeIn(name, no));
motion.setFadeOut(this.modelSetting.getMotionFadeOut(name, no));
if (LAppDefine.DEBUG_LOG) console.log("Start motion : " + motionName);
if (this.modelSetting.getMotionSound(name, no) == null) {
this.mainMotionManager.startMotionPrio(motion, priority)
} else {
if (!LAppDefine.IS_PLAY_AUDIO) return;
var soundName = this.modelSetting.getMotionSound(name, no);
var snd = document.getElementById(LAppDefine.AUDIO_ID);
snd.src = this.modelHomeDir + soundName;
if (LAppDefine.DEBUG_LOG) console.log("Start sound : " + soundName);
musicPlay(true);
this.mainMotionManager.startMotionPrio(motion, priority)
}
}
LAppModel.prototype.setExpression = function(name) {
if (name == undefined) return;
var motion = this.expressions[name];
if (LAppDefine.DEBUG_LOG) console.log("Expression : " + name);
this.expressionManager.startMotion(motion, false)
}
LAppModel.prototype.draw = function(gl) {
MatrixStack.push();
MatrixStack.multMatrix(this.modelMatrix.getArray());
this.tmpMatrix = MatrixStack.getMatrix();
this.live2DModel.setMatrix(this.tmpMatrix);
this.live2DModel.draw();
MatrixStack.pop()
};
LAppModel.prototype.hitTest = function(id, testX, testY) {
var len = this.modelSetting.getHitAreaNum();
for (var i = 0; i < len; i++) {
if (id == this.modelSetting.getHitAreaName(i)) {
var drawID = this.modelSetting.getHitAreaID(i);
return this.hitTestSimple(drawID, testX, testY)
}
}
return false
}
function LAppLive2DManager() {
this.models = [];
this.count = -1;
this.reloadFlg = false;
Live2D.init();
Live2DFramework.setPlatformManager(new PlatformManager)
}
LAppLive2DManager.prototype.createModel = function() {
var model = new LAppModel();
this.models.push(model);
return model
}
LAppLive2DManager.prototype.changeTexure = function(gl) {
if (this.reloadFlg) {
this.reloadFlg = false;
this.releaseModel(0, gl);
this.createModel();
this.models[0].changeModelTexure(gl)
}
}
LAppLive2DManager.prototype.changeModel = function(gl) {
if (this.reloadFlg) {
this.reloadFlg = false;
var no = parseInt(this.count % LAppDefine.MODELS.length);
var thisRef = this;
var releaseNo = no - 1;
if (no == 0) {
releaseNo = LAppDefine.MODELS.length - 1
}
if (LAppDefine.MODELS[releaseNo].length >= 2) {
this.releaseModel(1, gl)
}
this.releaseModel(0, gl);
if (LAppDefine.MODELS[no].length >= 2) {
this.releaseModel(0, gl);
this.createModel();
this.models[0].load(gl, LAppDefine.MODELS[no][0], function() {
thisRef.createModel();
thisRef.models[1].load(gl, LAppDefine.MODELS[no][1])
})
} else {
this.createModel();
this.models[0].load(gl, LAppDefine.MODELS[no][0])
}
}
};
LAppLive2DManager.prototype.getModel = function(no) {
if (no >= this.models.length) return null;
return this.models[no]
};
LAppLive2DManager.prototype.releaseModel = function(no, gl) {
if (this.models.length <= no) return;
this.models[no].release(gl);
delete this.models[no];
this.models.splice(no, 1)
};
LAppLive2DManager.prototype.numModels = function() {
return this.models.length
};
LAppLive2DManager.prototype.setDrag = function(x, y) {
for (var i = 0; i < this.models.length; i++) {
this.models[i].setDrag(x, y)
}
}
LAppLive2DManager.prototype.maxScaleEvent = function() {
if (LAppDefine.DEBUG_LOG) console.log("Max scale event.");
for (var i = 0; i < this.models.length; i++) {
this.models[i].startRandomMotion(LAppDefine.MOTION_GROUP_PINCH_IN, LAppDefine.PRIORITY_NORMAL)
}
}
LAppLive2DManager.prototype.minScaleEvent = function() {
if (LAppDefine.DEBUG_LOG) console.log("Min scale event.");
for (var i = 0; i < this.models.length; i++) {
this.models[i].startRandomMotion(LAppDefine.MOTION_GROUP_PINCH_OUT, LAppDefine.PRIORITY_NORMAL)
}
}
LAppLive2DManager.prototype.tapEvent = function(x, y) {
if (LAppDefine.DEBUG_LOG) console.log("tapEvent view x:" + x + " y:" + y);
for (var i = 0; i < this.models.length; i++) {
if (this.models[i].hitTest(LAppDefine.HIT_AREA_HEAD, x, y)) {
if (LAppDefine.DEBUG_LOG) console.log("Tap face.");
this.models[i].setRandomExpression()
} else if (this.models[i].hitTest(LAppDefine.HIT_AREA_BODY, x, y)) {
if (LAppDefine.DEBUG_LOG) console.log("Tap body." + " models[" + i + "]");
this.models[i].startRandomMotion(LAppDefine.MOTION_GROUP_TAP_BODY, LAppDefine.PRIORITY_NORMAL)
}
}
return true
};
var thisRef = this;
window.onerror = function(msg, url, line, col, error) {
var errmsg = "file:" + url + "<br>line:" + line + " " + msg;
l2dError(errmsg)
}
function InitLive2D() {
this.platform = window.navigator.platform.toLowerCase();
this.live2DMgr = new LAppLive2DManager();
this.isDrawStart = false;
this.gl = null;
this.canvas = null;
this.dragMgr = null;
this.viewMatrix = null;
this.projMatrix = null;
this.deviceToScreen = null;
this.drag = false;
this.oldLen = 0;
this.lastMouseX = 0;
this.lastMouseY = 0;
this.isModelShown = false;
initL2dCanvas(LAppDefine.CANVAS_ID);
init();
this.viewMatrix.adjustScale(0, 0, LAppDefine.SCALE)
}
function initL2dCanvas(canvasId) {
this.canvas = document.getElementById(canvasId);
if (this.canvas.addEventListener) {
if (LAppDefine.IS_SCROLL_SCALE) {
this.canvas.addEventListener("mousewheel", mouseEvent, false)
}
this.canvas.addEventListener("click", mouseEvent, false);
this.canvas.addEventListener("mousedown", mouseEvent, false);
this.canvas.addEventListener("mousemove", mouseEvent, false);
this.canvas.addEventListener("mouseup", mouseEvent, false);
this.canvas.addEventListener("mouseout", mouseEvent, false);
this.canvas.addEventListener("contextmenu", mouseEvent, false);
this.canvas.addEventListener("touchstart", touchEvent, false);
this.canvas.addEventListener("touchend", touchEvent, false);
this.canvas.addEventListener("touchmove", touchEvent, false)
}
if (LAppDefine.IS_BIND_BUTTON) {
btnChangeModel = document.getElementById(LAppDefine.BUTTON_ID);
btnChangeModel.addEventListener("click", function(e) {
changeModel()
})
}
if (LAppDefine.IS_START_TEXURE_CHANGE) {
btnChangeExure = document.getElementById(LAppDefine.TEXURE_BUTTON_ID);
btnChangeExure.addEventListener('click', function(e) {
chTexure()
})
}
}
function init() {
var width = this.canvas.width;
var height = this.canvas.height;
this.dragMgr = new L2DTargetPoint();
var ratio = height / width;
var left = LAppDefine.VIEW_LOGICAL_LEFT;
var right = LAppDefine.VIEW_LOGICAL_RIGHT;
var bottom = -ratio;
var top = ratio;
this.viewMatrix = new L2DViewMatrix();
this.viewMatrix.setScreenRect(left, right, bottom, top);
this.viewMatrix.setMaxScreenRect(LAppDefine.VIEW_LOGICAL_MAX_LEFT, LAppDefine.VIEW_LOGICAL_MAX_RIGHT, LAppDefine.VIEW_LOGICAL_MAX_BOTTOM, LAppDefine.VIEW_LOGICAL_MAX_TOP);
this.viewMatrix.setMaxScale(LAppDefine.VIEW_MAX_SCALE);
this.viewMatrix.setMinScale(LAppDefine.VIEW_MIN_SCALE);
this.projMatrix = new L2DMatrix44();
this.projMatrix.multScale(1, (width / height));
this.deviceToScreen = new L2DMatrix44();
this.deviceToScreen.multTranslate(-width / 2.0, -height / 2.0);
this.deviceToScreen.multScale(2 / width, -2 / width);
this.gl = getWebGLContext();
if (!this.gl) {
l2dError("Failed to create WebGL context.");
return
}
Live2D.setGL(this.gl);
this.gl.clearColor(0.0, 0.0, 0.0, 0.0);
changeModel();
startDraw()
}
function startDraw() {
if (!this.isDrawStart) {
this.isDrawStart = true;
(function tick() {
draw();
var requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame;
requestAnimationFrame(tick, this.canvas)
})()
}
}
function draw() {
MatrixStack.reset();
MatrixStack.loadIdentity();
this.dragMgr.update();
this.live2DMgr.setDrag(this.dragMgr.getX(), this.dragMgr.getY());
this.gl.clear(this.gl.COLOR_BUFFER_BIT);
MatrixStack.multMatrix(projMatrix.getArray());
MatrixStack.multMatrix(viewMatrix.getArray());
MatrixStack.push();
for (var i = 0; i < this.live2DMgr.numModels(); i++) {
var model = this.live2DMgr.getModel(i);
if (model == null) return;
if (model.initialized && !model.updating) {
model.update();
model.draw(this.gl);
if (!this.isModelShown && i == this.live2DMgr.numModels() - 1) {
this.isModelShown = !this.isModelShown;
if (!LAppDefine.IS_BIND_BUTTON || !LAppDefine.IS_BAN_BUTTON) return;
var btnChange = document.getElementById(LAppDefine.BUTTON_ID);
btnChange.removeAttribute("disabled");
btnChange.setAttribute("class", LAppDefine.NORMAL_BUTTON_CLASS)
}
}
}
MatrixStack.pop()
}
function chTexure() {
this.isModelShown = false;
this.live2DMgr.reloadFlg = true;
this.live2DMgr.changeTexure(this.gl)
}
function changeModel() {
var btnChange = document.getElementById(LAppDefine.BUTTON_ID);
if (LAppDefine.IS_BIND_BUTTON && LAppDefine.IS_BAN_BUTTON) {
btnChange.setAttribute("disabled", "disabled");
btnChange.setAttribute("class", LAppDefine.BAN_BUTTON_CLASS)
}
this.isModelShown = false;
this.live2DMgr.reloadFlg = true;
this.live2DMgr.count++;
this.live2DMgr.changeModel(this.gl)
}
function modelScaling(scale) {
var isMaxScale = thisRef.viewMatrix.isMaxScale();
var isMinScale = thisRef.viewMatrix.isMinScale();
thisRef.viewMatrix.adjustScale(0, 0, scale);
if (!isMaxScale) {
if (thisRef.viewMatrix.isMaxScale()) {
thisRef.live2DMgr.maxScaleEvent()
}
}
if (!isMinScale) {
if (thisRef.viewMatrix.isMinScale()) {
thisRef.live2DMgr.minScaleEvent()
}
}
}
function modelTurnHead(event) {
thisRef.drag = true;
var rect = event.target.getBoundingClientRect();
var sx = transformScreenX(event.clientX - rect.left);
var sy = transformScreenY(event.clientY - rect.top);
var vx = transformViewX(event.clientX - rect.left);
var vy = transformViewY(event.clientY - rect.top);
if (LAppDefine.DEBUG_MOUSE_LOG) l2dLog("onMouseDown device( x:" + event.clientX + " y:" + event.clientY + " ) view( x:" + vx + " y:" + vy + ")");
thisRef.lastMouseX = sx;
thisRef.lastMouseY = sy;
thisRef.dragMgr.setPoint(vx, vy);
thisRef.live2DMgr.tapEvent(vx, vy)
}
function followPointer(event) {
var rect = event.target.getBoundingClientRect();
var sx = transformScreenX(event.clientX - rect.left);
var sy = transformScreenY(event.clientY - rect.top);
var vx = transformViewX(event.clientX - rect.left);
var vy = transformViewY(event.clientY - rect.top);
if (LAppDefine.DEBUG_MOUSE_LOG) l2dLog("onMouseMove device( x:" + event.clientX + " y:" + event.clientY + " ) view( x:" + vx + " y:" + vy + ")");
if (thisRef.drag) {
thisRef.lastMouseX = sx;
thisRef.lastMouseY = sy;
thisRef.dragMgr.setPoint(vx, vy)
}
}
function lookFront() {
if (thisRef.drag) {
thisRef.drag = false
}
thisRef.dragMgr.setPoint(0, 0)
}
function mouseEvent(e) {
e.preventDefault();
if (e.type == "mousewheel") {
if (e.wheelDelta > 0) modelScaling(1.1);
else modelScaling(0.9)
} else if (e.type == "mousedown") { //按键被按下触发
if ("button" in e && e.button != 0){
return;
}
modelTurnHead(e)
} else if (e.type == "mousemove") {
modelTurnHead(e)
} else if (e.type == "mouseup") {
if ("button" in e && e.button != 0) return;
lookFront()
} else if (e.type == "mouseout") {
lookFront()
} else if (e.type == "contextmenu") {
if(!LAppDefine.IS_BIND_BUTTON){
return;
}
changeModel()
}
}
function touchEvent(e) {
e.preventDefault();
var touch = e.touches[0];
if (e.type == "touchstart") {
if (e.touches.length == 1) modelTurnHead(touch)
} else if (e.type == "touchmove") {
followPointer(touch);
if (e.touches.length == 2) {
var touch1 = e.touches[0];
var touch2 = e.touches[1];
var len = Math.pow(touch1.pageX - touch2.pageX, 2) + Math.pow(touch1.pageY - touch2.pageY, 2);
if (thisRef.oldLen - len < 0) modelScaling(1.025);
else modelScaling(0.975);
thisRef.oldLen = len
}
} else if (e.type == "touchend") {
lookFront()
}
}
function transformViewX(deviceX) {
var screenX = this.deviceToScreen.transformX(deviceX);
return viewMatrix.invertTransformX(screenX)
}
function transformViewY(deviceY) {
var screenY = this.deviceToScreen.transformY(deviceY);
return viewMatrix.invertTransformY(screenY)
}
function transformScreenX(deviceX) {
return this.deviceToScreen.transformX(deviceX)
}
function transformScreenY(deviceY) {
return this.deviceToScreen.transformY(deviceY)
}
function getWebGLContext() {
var NAMES = ["webgl", "experimental-webgl", "webkit-3d", "moz-webgl"];
for (var i = 0; i < NAMES.length; i++) {
try {
var ctx = this.canvas.getContext(NAMES[i], {
premultipliedAlpha: true
});
if (ctx) return ctx
} catch (e) {}
}
return null
};
function l2dLog(msg) {
if (!LAppDefine.DEBUG_LOG) return;
console.log(msg)
}
function l2dError(msg) {
if (!LAppDefine.DEBUG_LOG) return;
console.error(msg)
};
function autoPlayMusic() {
if(navigator.platform.indexOf('Win32') != -1
|| navigator.platform.indexOf('MacIntel') != -1){
return;
}
function musicInBrowserHandler() {
musicPlay(true);
document.body.removeEventListener('touchstart', musicInBrowserHandler)
}
document.body.addEventListener('touchstart', musicInBrowserHandler);
function musicInWeixinHandler() {
musicPlay(true);
document.addEventListener("WeixinJSBridgeReady", function() {
musicPlay(true)
}, false);
document.removeEventListener('DOMContentLoaded', musicInWeixinHandler)
}
document.addEventListener('DOMContentLoaded', musicInWeixinHandler)
}
function musicPlay(isPlay) {
var audio = document.getElementById(LAppDefine.AUDIO_ID);
audio.play();
}
autoPlayMusic();