Skip to content

Update NyARUtils.js #22

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 32 additions & 32 deletions src/NyARUtils.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,14 +42,14 @@ NyARMath = Klass(
*/
sqNorm_NyARDoublePoint2d : function(i_p1,i_p2 )
{
var x,y;
let x,y;
x=i_p2.x-i_p1.x;
y=i_p2.y-i_p1.y;
return x*x+y*y;
},
sqNorm_Number : function(i_p1x,i_p1y,i_p2x,i_p2y)
{
var x,y;
let x,y;
x=i_p2x-i_p1x;
y=i_p2y-i_p1y;
return x*x+y*y;
Expand All @@ -62,7 +62,7 @@ NyARMath = Klass(
*/
sqNorm_NyARDoublePoint3d : function(i_p1,i_p2)
{
var x, y, z;
let x, y, z;
x=i_p2.x-i_p1.x;
y=i_p2.y-i_p1.y;
z=i_p2.z-i_p1.z;
Expand All @@ -76,7 +76,7 @@ NyARMath = Klass(
*/
cubeRoot : function(i_in)
{
var res = Math.pow(Math.abs(i_in), 1.0 / 3.0);
let res = Math.pow(Math.abs(i_in), 1.0 / 3.0);
return (i_in >= 0) ? res : -res;
}
})
Expand All @@ -95,7 +95,7 @@ NyAREquationSolver = Klass(
},
solve2Equation_2b : function(i_b, i_c,o_result,i_result_st)
{
var t=i_b*i_b-4*i_c;
let t=i_b*i_b-4*i_c;
if(t<0){
//虚数根
return 0;
Expand Down Expand Up @@ -149,7 +149,7 @@ NyAREquationSolver = Klass(
*/
solve3Equation_3 : function(i_b,i_c,i_d,o_result)
{
var tmp,b, p, q;
let tmp,b, p, q;
b = i_b/(3);
p = b * b - i_c / 3;
q = (b * (i_c - 2 * b * b) - i_d) / 2;
Expand All @@ -161,15 +161,15 @@ NyAREquationSolver = Klass(
return 2;
} else if (tmp > 0) {
// 実根1,虚根2
var a3 = NyARMath.cubeRoot(q + ((q > 0) ? 1 : -1) * Math.sqrt(tmp));
var b3 = p / a3;
let a3 = NyARMath.cubeRoot(q + ((q > 0) ? 1 : -1) * Math.sqrt(tmp));
let b3 = p / a3;
o_result[0] = a3 + b3 - b;
// 虚根:-0.5*(a3+b3)-b,Math.abs(a3-b3)*Math.sqrt(3.0)/2
return 1;
} else {
// 実根3
tmp = 2 * Math.sqrt(p);
var t = Math.acos(q / (p * tmp / 2));
let t = Math.acos(q / (p * tmp / 2));
o_result[0] = tmp * Math.cos(t / 3) - b;
o_result[1] = tmp * Math.cos((t + 2 * Math.PI) / 3) - b;
o_result[2] = tmp * Math.cos((t + 4 * Math.PI) / 3) - b;
Expand All @@ -193,21 +193,21 @@ NyAREquationSolver = Klass(
solve4Equation : function(i_a, i_b, i_c, i_d,i_e,o_result)
{
NyAS3Utils.assert (i_a != 0);
var A3,A2,A1,A0,B3;
let A3,A2,A1,A0,B3;
A3=i_b/i_a;
A2=i_c/i_a;
A1=i_d/i_a;
A0=i_e/i_a;
B3=A3/4;
var p,q,r;
var B3_2=B3*B3;
let p,q,r;
let B3_2=B3*B3;
p=A2-6*B3_2;//A2-6*B3*B3;
q=A1+B3*(-2*A2+8*B3_2);//A1-2*A2*B3+8*B3*B3*B3;
r=A0+B3*(-A1+A2*B3)-3*B3_2*B3_2;//A0-A1*B3+A2*B3*B3-3*B3*B3*B3*B3;
if(q==0){
var result_0,result_1;
//複二次式
var res=this.solve2Equation_2b(p,r,o_result,0);
let res=this.solve2Equation_2b(p,r,o_result,0);
switch(res){
case 0:
//全て虚数解
Expand Down Expand Up @@ -236,7 +236,7 @@ NyAREquationSolver = Klass(
//解は、0,2,4の何れか。
result_0=o_result[0];
result_1=o_result[1];
var number_of_result=0;
let number_of_result=0;
if(result_0>0){
//NC
result_0=Math.sqrt(result_0);
Expand All @@ -260,14 +260,14 @@ NyAREquationSolver = Klass(
//それ以外
//最適化ポイント:
//u^3 + (2*p)*u^2 +((- 4*r)+(p^2))*u -q^2= 0
var u=this.solve3Equation_1((2*p),(- 4*r)+(p*p),-q*q);
let u=this.solve3Equation_1((2*p),(- 4*r)+(p*p),-q*q);
if(u<0){
//全て虚数解
return 0;
}
var ru=Math.sqrt(u);
let ru=Math.sqrt(u);
//2次方程式を解いてyを計算(最適化ポイント)
var result_1st,result_2nd;
let result_1st,result_2nd;
result_1st=this.solve2Equation_2b(-ru,(p+u)/2+ru*q/(2*u),o_result,0);
//配列使い回しのために、変数に退避
switch(result_1st){
Expand Down Expand Up @@ -312,7 +312,7 @@ NyAREquationSolver = Klass(
*/
solve3Equation_1 : function(i_b,i_c, i_d)
{
var tmp,b, p, q;
let tmp,b, p, q;
b = i_b/(3);
p = b * b - i_c / 3;
q = (b * (i_c - 2 * b * b) - i_d) / 2;
Expand All @@ -322,8 +322,8 @@ NyAREquationSolver = Klass(
return 2 * q - b;
} else if (tmp > 0) {
// 実根1,虚根2
var a3 = NyARMath.cubeRoot(q + ((q > 0) ? 1 : -1) * Math.sqrt(tmp));
var b3 = p / a3;
let a3 = NyARMath.cubeRoot(q + ((q > 0) ? 1 : -1) * Math.sqrt(tmp));
let b3 = p / a3;
return a3 + b3 - b;
} else {
// 実根3
Expand All @@ -350,17 +350,17 @@ NyARPerspectiveParamGenerator_O1 = Klass(
},
getParam : function(i_vertex,o_param)
{
var ltx = this._local_x;
var lty = this._local_y;
var rbx = ltx + this._width;
var rby = lty + this._height;
var det_1;
var a13, a14, a23, a24, a33, a34, a43, a44;
var b11, b12, b13, b14, b21, b22, b23, b24, b31, b32, b33, b34, b41, b42, b43, b44;
var t1, t2, t3, t4, t5, t6;
var v1, v2, v3, v4;
var kx0, kx1, kx2, kx3, kx4, kx5, kx6, kx7;
var ky0, ky1, ky2, ky3, ky4, ky5, ky6, ky7;
let ltx = this._local_x;
let lty = this._local_y;
let rbx = ltx + this._width;
let rby = lty + this._height;
let det_1;
let a13, a14, a23, a24, a33, a34, a43, a44;
let b11, b12, b13, b14, b21, b22, b23, b24, b31, b32, b33, b34, b41, b42, b43, b44;
let t1, t2, t3, t4, t5, t6;
let v1, v2, v3, v4;
let kx0, kx1, kx2, kx3, kx4, kx5, kx6, kx7;
let ky0, ky1, ky2, ky3, ky4, ky5, ky6, ky7;
{
v1 = i_vertex[0].x;
v2 = i_vertex[1].x;
Expand Down Expand Up @@ -506,7 +506,7 @@ NyARPerspectiveParamGenerator_O1 = Klass(
//return false;
}
det_1 = 1 / det_1;
var C, F;
let C, F;
o_param[2] = C = (-ky7 * det_1) * (kx4 - ky4) + (ky5 * det_1) * (kx6 - ky6); // C
o_param[5] = F = (-kx7 * det_1) * (kx4 - ky4) + (kx5 * det_1) * (kx6 - ky6); // F
o_param[6] = kx4 - C * kx5;
Expand Down