8909 lines
230 KiB
JavaScript
8909 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 = 0
|
|
}
|
|
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();
|