@neutrinoparticles/js-v1.0 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"neutrinoparticles.js-v1.0.umd.js","sources":["../src/main.js"],"sourcesContent":["\"use strict\"\n\nexport function Context() {\n\tvar ctx = this;\n\n\tthis.equalv3_ = function(a, b) {\n\t\treturn a[0] == b[0] && a[1] == b[1] && a[2] == b[2];\n\t}\n\n\tthis.equalq_ = function(a, b) {\n\t\treturn a[0] == b[0] && a[1] == b[1] && a[2] == b[2] && a[3] == b[3];\n\t}\n\n\tthis.a = function (r, a, b) {\n\t\tr[0] = a[0] + b[0];\n\t\tr[1] = a[1] + b[1];\n\t}\n\n\tthis.b = function (a, b) {\n\t\treturn [a[0] + b[0], a[1] + b[1]];\n\t}\n\n\tthis.y = function (r, a, s) {\n\t r[0] = a[0] + s;\n\t r[1] = a[1] + s;\n\t}\n\n\tthis.z = function (a, s) {\n\t return [a[0] + s, a[1] + s];\n\t}\n\n\tthis.c = function (r, a, b) {\n\t\tr[0] = a[0] + b[0];\n\t\tr[1] = a[1] + b[1];\n\t\tr[2] = a[2] + b[2];\n\t}\n\n\tthis.d = function (a, b) {\n\t\treturn [a[0] + b[0], a[1] + b[1], a[2] + b[2]];\n\t}\n\n\tthis.C = function (r, a, s) {\n\t r[0] = a[0] + s;\n\t r[1] = a[1] + s;\n\t r[2] = a[2] + s;\n\t}\n\n\tthis.D = function (a, s) {\n\t return [a[0] + s, a[1] + s, a[2] + s];\n\t}\n\n\tthis.addq = function (r, a, b) {\n\t\tr[0] = a[0] + b[0];\n\t\tr[1] = a[1] + b[1];\n\t\tr[2] = a[2] + b[2];\n\t\tr[3] = a[3] + b[3];\n\t}\n\n\tthis.addq_ = function (a, b) {\n\t\treturn [a[0] + b[0], a[1] + b[1], a[2] + b[2], a[3] + b[3]];\n\t}\n\n\tthis.e = function (r, a, b) {\n\t\tr[0] = a[0] - b[0];\n\t\tr[1] = a[1] - b[1];\n\t}\n\n\tthis.f = function (a, b) {\n\t\treturn [a[0] - b[0], a[1] - b[1]];\n\t}\n\n\tthis.A = function (r, a, s) {\n\t r[0] = a[0] - s;\n\t r[1] = a[1] - s;\n\t}\n\n\tthis.B = function (a, s) {\n\t return [a[0] - s, a[1] - s];\n\t}\n\n\tthis.nf = function (r, s, a) {\n\t r[0] = s - a[0];\n\t r[1] = s - a[1];\n\t}\n\n\tthis.of = function (s, a) {\n\t return [s - a[0], s - a[1]];\n\t}\n\n\tthis.g = function (r, a, b) {\n\t\tr[0] = a[0] - b[0];\n\t\tr[1] = a[1] - b[1];\n\t\tr[2] = a[2] - b[2];\n\t}\n\n\tthis.h = function (a, b) {\n\t\treturn [a[0] - b[0], a[1] - b[1], a[2] - b[2]];\n\t}\n\n\tthis.E = function (r, a, s) {\n\t r[0] = a[0] - s;\n\t r[1] = a[1] - s;\n\t r[2] = a[2] - s;\n\t}\n\n\tthis.F = function (a, s) {\n\t return [a[0] - s, a[1] - s, a[2] - s];\n\t}\n\n\tthis.rf = function (r, s, a) {\n\t r[0] = s - a[0];\n\t r[1] = s - a[1];\n\t r[2] = s - a[2];\n\t}\n\n\tthis.sf = function (s, a) {\n\t return [s - a[0], s - a[1], s - a[2]];\n\t}\n\n\tthis.i = function (r, a, b) {\n\t\tr[0] = a[0] * b[0];\n\t\tr[1] = a[1] * b[1];\n\t}\n\n\tthis.j = function (a, b) {\n\t\treturn [a[0] * b[0], a[1] * b[1]];\n\t}\n\n\tthis.k = function (r, a, b) {\n\t\tr[0] = a[0] * b[0];\n\t\tr[1] = a[1] * b[1];\n\t\tr[2] = a[2] * b[2];\n\t}\n\n\tthis.l = function (a, b) {\n\t\treturn [a[0] * b[0], a[1] * b[1], a[2] * b[2]];\n\t}\n\n\tthis.m = function (r, a, b) {\n\t\tr[0] = a[0] / b[0];\n\t\tr[1] = a[1] / b[1];\n\t}\n\n\tthis.n = function (a, b) {\n\t\treturn [a[0] / b[0], a[1] / b[1]];\n\t}\n\n\tthis.o = function (r, a, b) {\n\t\tr[0] = a[0] / b[0];\n\t\tr[1] = a[1] / b[1];\n\t\tr[2] = a[2] / b[2];\n\t}\n\n\tthis.p = function (a, b) {\n\t\treturn [a[0] / b[0], a[1] / b[1], a[2] / b[2]];\n\t}\n\n\tthis.H = function(a, b) {\n\t\treturn a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n\t}\n\n\tthis.dotq_ = function(a, b) {\n\t\treturn a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];\n\t}\n\n\tthis.q = function (r, a, s) {\n\t\tr[0] = a[0] * s;\n\t\tr[1] = a[1] * s;\n\t}\n\n\tthis.r = function (a, s) {\n\t\treturn [a[0] * s, a[1] * s];\n\t}\n\n\tthis.s = function (r, a, s) {\n\t\tr[0] = a[0] / s;\n\t\tr[1] = a[1] / s;\n\t}\n\n\tthis.t = function (a, s) {\n\t\treturn [a[0] / s, a[1] / s];\n\t}\n\n\tthis.u = function (r, a, s) {\n\t\tr[0] = a[0] * s;\n\t\tr[1] = a[1] * s;\n\t\tr[2] = a[2] * s;\n\t}\n\n\tthis.v = function (a, s) {\n\t\treturn [a[0] * s, a[1] * s, a[2] * s];\n\t}\n\n\tthis.w = function (r, a, s) {\n\t\tr[0] = a[0] / s;\n\t\tr[1] = a[1] / s;\n\t\tr[2] = a[2] / s;\n\t}\n\n\tthis.x = function (a, s) {\n\t\treturn [a[0] / s, a[1] / s, a[2] / s];\n\t}\n\n\tthis.y = function (r, a, s) {\n\t\tr[0] = a[0] + s;\n\t\tr[1] = a[1] + s;\n\t}\n\n\tthis.z = function (a, s) {\n\t\treturn [a[0] + s, a[1] + s];\n\t}\n\n\tthis.A = function (r, a, s) {\n\t\tr[0] = a[0] - s;\n\t\tr[1] = a[1] - s;\n\t}\n\n\tthis.B = function (a, s) {\n\t\treturn [a[0] - s, a[1] - s];\n\t}\n\n\tthis.G = function (a, b) {\n\t\treturn a[0] * b[0] + a[1] * b[1];\n\t}\n\n\tthis.H = function (a, b) {\n\t\treturn a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n\t}\n\n\tthis.I = function (r, a, b) {\n\t\tvar ax = a[0], ay = a[1], az = a[2];\n\t\tvar bx = b[0], by = b[1], bz = b[2];\n\n\t\tr[0] = ay * bz - az * by;\n\t\tr[1] = az * bx - ax * bz;\n\t\tr[2] = ax * by - ay * bx;\n\t}\n\n\tthis.J = function (a, b) {\n\t\tvar ax = a[0], ay = a[1], az = a[2];\n\t\tvar bx = b[0], by = b[1], bz = b[2];\n\n\t\treturn [ay * bz - az * by,\n\t\t\taz * bx - ax * bz,\n\t\t\tax * by - ay * bx];\n\t}\n\n\tthis.K = function (a) {\n\t\treturn Math.sqrt(a[0] * a[0] + a[1] * a[1]);\n\t}\n\n\tthis.L = function (a) {\n\t\treturn a[0] * a[0] + a[1] * a[1];\n\t}\n\n\tthis.M = function (r, a) {\n\t\tctx.q(r, a, 1.0 / ctx.K(a));\n\t}\n\n\tthis.N = function (a) {\n\t\treturn ctx.r(a, 1.0 / ctx.K(a));\n\t}\n\n\tthis.O = function (a) {\n\t\treturn Math.sqrt(a[0] * a[0] + a[1] * a[1] + a[2] * a[2]);\n\t}\n\n\tthis.P = function (a) {\n\t\treturn a[0] * a[0] + a[1] * a[1] + a[2] * a[2];\n\t}\n\n\tthis.Q = function (r, a) {\n\t\tctx.u(r, a, 1.0 / ctx.O(a));\n\t}\n\n\tthis.R = function (a) {\n\t\treturn ctx.v(a, 1.0 / ctx.O(a));\n\t}\n\n\tthis.S = function (r, a) {\n\t\tr[0] = a[0];\n\t\tr[1] = a[1];\n\t}\n\n\tthis.T = function (r, a) {\n\t\tr[0] = a[0];\n\t\tr[1] = a[1];\n\t\tr[2] = a[2];\n\t}\n\n\tthis.U = function (r, a) {\n\t\tr[0] = a[0];\n\t\tr[1] = a[1];\n\t\tr[2] = a[2];\n\t\tr[3] = a[3];\n\t}\n\n\tthis.V = function (r, x, y) {\n\t\tr[0] = x;\n\t\tr[1] = y;\n\t}\n\n\tthis.W = function (r, x, y, z) {\n\t\tr[0] = x;\n\t\tr[1] = y;\n\t\tr[2] = z;\n\t}\n\n\tthis.X = function (a, b, i) {\n\t\treturn a + (b - a) * i;\n\t}\n\n\tthis.Y = function (r, a, b, i) {\n\t\tr[0] = a[0] + (b[0] - a[0]) * i;\n\t\tr[1] = a[1] + (b[1] - a[1]) * i;\n\t}\n\n\tthis.Z = function (a, b, i) {\n\t\treturn [a[0] + (b[0] - a[0]) * i,\n\t\t\ta[1] + (b[1] - a[1]) * i];\n\t}\n\n\tthis.ab = function (r, a, b, i) {\n\t\tr[0] = a[0] + (b[0] - a[0]) * i;\n\t\tr[1] = a[1] + (b[1] - a[1]) * i;\n\t\tr[2] = a[2] + (b[2] - a[2]) * i;\n\t}\n\n\tthis.bb = function (a, b, i) {\n\t\treturn [a[0] + (b[0] - a[0]) * i,\n\t\t\ta[1] + (b[1] - a[1]) * i,\n\t\t\ta[2] + (b[2] - a[2]) * i];\n\t}\n\n\tthis.slerpq = function(r, x, y, a) {\n\t\tvar cosTheta = ctx.dotq_(x, y);\n\n\t\tvar z = [];\n\n\t\tif (cosTheta < 0) {\n\t\t\tctx.negq(z, y);\n\t\t\tcosTheta = -cosTheta;\n\t\t}\n\t\telse {\n\t\t\tctx.U(z, y);\n\t\t}\n\n\t\tif ((1.0 - cosTheta) < Number.EPSILON) {\n\t\t\tr[0] = ctx.X(x[0], y[0], a);\n\t\t\tr[1] = ctx.X(x[1], y[1], a);\n\t\t\tr[2] = ctx.X(x[2], y[2], a);\n\t\t\tr[3] = ctx.X(x[3], y[3], a);\n\t\t}\n\t\telse {\n\t\t\tvar Md = ctx.acos_(cosTheta);\n\n\t\t\tctx.mulqscalar(r, ctx.addq_(ctx.mulqscalar_(x, ctx.sin_((1.0 - a) * Md)), ctx.mulqscalar_(z, ctx.sin_(a * Md))),\n\t\t\t\t1.0 / ctx.sin_(Md));\n\t\t}\n\t}\n\n\tthis.slerpq_ = function(x, y, a) {\n\t\tvar r = [];\n\t\tslerpq(r, x, y, a);\n\t\treturn r;\n\t}\n\n\t//trigonometry\n\n\tthis.acos_ = function(a) {\n\t\treturn Math.acos(a);\n\t}\n\n\tthis.sin_ = function(a) {\n\t\treturn Math.sin(a);\n\t}\n\n\tthis.cos_ = function(a) {\n\t\treturn Math.cos(a);\n\t}\n\n\t// random\n\n\tthis.taus88 = function(seed)\n\t{\n\t\tif (!seed)\n\t\t\tseed = 0;\n\n\t\tvar value0, value1, value2;\n\n\t\tthis.seed = function(s0) {\n\t\t\ts0 &= 0xFFFFFFFF;\n\n\t\t\tvalue0 = s0 < 2 ? s0 + 2 : s0;\n\t\t\tvalue1 = s0 < 8 ? s0 + 8 : s0;\n\t\t\tvalue2 = s0 < 16 ? s0 + 16 : s0;\n\t\t}\n\n\t\tthis.rand = function() {\n\t\t\tvar b = (((value0 << 13) ^ value0) & 0xFFFFFFFF) >>> 19;\n\t\t\tvalue0 = (((value0 & 0xFFFFFFFE) << 12) ^ b) >>> 0;\n\n\t\t\tb = (((value1 << 2) ^ value1) & 0xFFFFFFFF) >>> 25;\n\t\t\tvalue1 = (((value1 & 0xFFFFFFF8) << 4) ^ b) >>> 0;\n\n\t\t\tb = (((value2 << 3) ^ value2) & 0xFFFFFFFF) >>> 11;\n\t\t\tvalue2 = (((value2 & 0xFFFFFFF0) << 17) ^ b) >>> 0;\n\n\t\t\tvar engine = ((value0 ^ value1) ^ value2) >>> 0;\n\t\t\treturn engine / 4294967296.0;\n\t\t}\n\n\t\tthis.seed(seed);\n\t}\n\n\tthis.cb = function (r, radius) {\n\t\tthis.randv2gen(r, radius, function () { return Math.random(); });\n\t}\n\n\tthis.randv2gen = function (r, radius, gen) {\n\t\tvar Md = gen() * Math.PI * 2.0;\n\t\tr[0] = radius * ctx.cos_(Md);\n\t\tr[1] = radius * ctx.sin_(Md);\n\t}\n\n\tthis.db = function (r, radius) {\n\t\tthis.randv3gen(r, radius, function () { return Math.random(); });\n\t}\n\n\tthis.randv3gen = function (r, radius, gen) {\n\t\tvar theta = gen() * Math.PI * 2.0;\n\t\tvar z = -1.0 + gen() * 2.0;\n\t\tvar sqrtInvZ2 = radius * Math.sqrt(1.0 - z * z);\n\t\tr[0] = sqrtInvZ2 * ctx.cos_(theta);\n\t\tr[1] = sqrtInvZ2 * ctx.sin_(theta);\n\t\tr[2] = radius * z;\n\t}\n\n\tthis.yb = function(r, x, y, Nd, gen) {\n\t\tvar dispx = x + gen() * Nd[0];\n\t\tvar dispy = y + gen() * Nd[1];\n\t\tctx.V(r, dispx, dispy);\n\t}\n\n\tthis.eb = function (r, a) {\n\t\tctx.V(-a[0], -a[1]);\n\t}\n\n\tthis.fb = function (a) {\n\t\treturn [-a[0], -a[1]];\n\t}\n\n\tthis.gb = function (r, a) {\n\t\tctx.W(-a[0], -a[1], -a[2]);\n\t}\n\n\tthis.hb = function (a) {\n\t\treturn [-a[0], -a[1], -a[2]];\n\t}\n\n\tthis.negq = function (r, a) {\n\t\tr[0] = -a[0];\n\t\tr[1] = -a[1];\n\t\tr[2] = -a[2];\n\t\tr[3] = -a[3];\n\t}\n\n\tthis.negq_ = function(a) {\n\t\treturn [-a[0], -a[1], -a[2], -a[3]];\n\t}\n\n\tthis.ib = function (degrees) {\n\t\treturn degrees / 180.0 * Math.PI;\n\t}\n\n\tthis.jb = function (radians) {\n\t\treturn radians / Math.PI * 180.0;\n\t}\n\n\tthis.Ae = function(value) {\n\t\treturn value < 0 ? -1 : 1;\n\t}\n\n\tthis.ob = function (x, y, z, q) {\n\t\tvar x2 = 2.0 * q[0] * q[0];\n\t\tvar y2 = 2.0 * q[1] * q[1];\n\t\tvar z2 = 2.0 * q[2] * q[2];\n\t\tvar xy = 2.0 * q[0] * q[1];\n\t\tvar xz = 2.0 * q[0] * q[2];\n\t\tvar yz = 2.0 * q[1] * q[2];\n\t\tvar wz = 2.0 * q[3] * q[2];\n\t\tvar wy = 2.0 * q[3] * q[1];\n\t\tvar wx = 2.0 * q[3] * q[0];\n\n\t\tx[0] = 1.0 - y2 - z2;\n\t\tx[1] = xy + wz;\n\t\tx[2] = xz - wy;\n\n\t\ty[0] = xy - wz;\n\t\ty[1] = 1.0 - x2 - z2;\n\t\ty[2] = yz + wx;\n\n\t\tz[0] = xz + wy;\n\t\tz[1] = yz - wx;\n\t\tz[2] = 1.0 - x2 - y2;\n\t}\n\n\tthis.pb = function (q, x, y, z) {\n\t\tvar tr = x[0] + y[1] + z[2]\n\n\t\tif (tr > 0) {\n\t\t\tvar S = Math.sqrt(tr+1.0) * 2;\n\t\t\tq[3] = 0.25 * S;\n\t\t\tq[0] = (y[2] - z[1]) / S;\n\t\t\tq[1] = (z[0] - x[2]) / S;\n\t\t\tq[2] = (x[1] - y[0]) / S;\n\t\t} else if ((x[0] > y[1])&(x[0] > z[2])) {\n\t\t\tvar S = Math.sqrt(1.0 + x[0] - y[1] - z[2]) * 2;\n\t\t\tq[3] = (y[2] - z[1]) / S;\n\t\t\tq[0] = 0.25 * S;\n\t\t\tq[1] = (x[1] + y[0]) / S;\n\t\t\tq[2] = (z[0] + x[2]) / S;\n\t\t} else if (y[1] > z[2]) {\n\t\t\tvar S = Math.sqrt(1.0 + y[1] - x[0] - z[2]) * 2;\n\t\t\tq[3] = (z[0] - x[2]) / S;\n\t\t\tq[0] = (x[1] + y[0]) / S;\n\t\t\tq[1] = 0.25 * S;\n\t\t\tq[2] = (y[2] + z[1]) / S;\n\t\t} else {\n\t\t\tvar S = Math.sqrt(1.0 + z[2] - x[0] - y[1]) * 2;\n\t\t\tq[3] = (x[1] - y[0]) / S;\n\t\t\tq[0] = (z[0] + x[2]) / S;\n\t\t\tq[1] = (y[2] + z[1]) / S;\n\t\t\tq[2] = 0.25 * S;\n\t\t}\n\t}\n\n\tthis./**/axes2quat = this.pb;\n\n\tthis.qb = function (q, x, a) {\n\t\tvar ha = ctx.ib(a) * 0.5, s = Math.sin(ha);\n\t\tq[0] = x[0] * s;\n\t\tq[1] = x[1] * s;\n\t\tq[2] = x[2] * s;\n\t\tq[3] = Math.cos(ha);\n\t}\n\n\tthis./**/axisangle2quat = this.qb;\n\n\tthis.axisangle2quat_ = function (x, a) {\n\t\tvar ha = ctx.ib(a) * 0.5, s = Math.sin(ha);\n\t\treturn [x[0] * s, x[1] * s, x[2] * s, ctx.cos_(ha)];\n\t}\n\n\tthis./**/axisangle2quat_ = this.axisangle2quat_;\n\n\tthis.rb = function (r, v, q) {\n\t\tvar x = v[0];\n\t\tvar y = v[1];\n\t\tvar z = v[2];\n\n\t\tvar qx = q[0];\n\t\tvar qy = q[1];\n\t\tvar qz = q[2];\n\t\tvar qw = q[3];\n\n\t\tvar ix = qw * x + qy * z - qz * y;\n\t\tvar iy = qw * y + qz * x - qx * z;\n\t\tvar iz = qw * z + qx * y - qy * x;\n\t\tvar iw = -qx * x - qy * y - qz * z;\n\n\t\tr[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy;\n\t\tr[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz;\n\t\tr[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx;\n\t}\n\n\tthis.sb = function (r, a, b) {\n\t\tvar qax = a[0], qay = a[1], qaz = a[2], qaw = a[3];\n\t\tvar qbx = b[0], qby = b[1], qbz = b[2], qbw = b[3];\n\n\t\tr[0] = qax * qbw + qaw * qbx + qay * qbz - qaz * qby;\n\t\tr[1] = qay * qbw + qaw * qby + qaz * qbx - qax * qbz;\n\t\tr[2] = qaz * qbw + qaw * qbz + qax * qby - qay * qbx;\n\t\tr[3] = qaw * qbw - qax * qbx - qay * qby - qaz * qbz;\n\t}\n\n\tthis.mulqscalar = function (r, a, s) {\n\t\tr[0] = a[0] * s;\n\t\tr[1] = a[1] * s;\n\t\tr[2] = a[2] * s;\n\t\tr[3] = a[3] * s;\n\t}\n\n\tthis.mulqscalar_ = function (a, s) {\n\t\treturn [a[0] * s, a[1] * s, a[2] * s, a[3] * s];\n\t}\n\n\tthis.tb = function (r, Hf, degree, scale, v) {\n\t\tvar rad = ctx.ib(degree);\n\t\tvar cos = Math.cos(rad) * scale;\n\t\tvar sin = Math.sin(rad) * scale;\n\t\tr[0] = Hf[0] + cos * v[0] - sin * v[1];\n\t\tr[1] = Hf[1] + sin * v[0] + cos * v[1];\n\t}\n\n\tthis.ub = function (r, Hf, degree, scale, v) {\n\t\tvar rad = ctx.ib(degree);\n\t\tvar cos = Math.cos(rad) / scale;\n\t\tvar sin = Math.sin(rad) / scale;\n\n\t\tr[0] = cos * v[0] + sin * v[1] - Hf[0] * cos - Hf[1] * sin;\n\t\tr[1] = cos * v[1] - sin * v[0] + Hf[0] * sin - Hf[1] * cos;\n\t}\n\n\tthis.vb = function (val) {\n\t\tif (val < 0)\n\t\t\treturn Math.floor(ctx.yd - 1 + val % ctx.yd);\n\t\telse\n\t\t\treturn Math.floor(val % ctx.yd);\n\t}\n\n\tfunction colorCompToHex_(c) {\n\t\treturn c < 16 ? \"0\" + c.toString(16) : c.toString(16);\n\t}\n\n\tthis.ff = function(rgb) {\n\t\treturn \"#\"\n\t\t\t+ colorCompToHex_(Math.floor(rgb[0] * 255))\n\t\t\t+ colorCompToHex_(Math.floor(rgb[1] * 255))\n\t\t\t+ colorCompToHex_(Math.floor(rgb[2] * 255));\n\t}\n\n\tthis.tf = function(vf, xf, yf, a, b, zf) {\n\t\tlet ca = ctx.f(a, vf);\n\t\tlet cb = ctx.f(b, vf);\n\n\t\tlet wf = ctx.r(xf, yf);\n\n\t\tif ((ca[0] < -wf[0] && cb[0] < -wf[0])\n\t\t\t|| (ca[0] > wf[0] && cb[0] > wf[0])\n\t\t\t|| (ca[1] < -wf[1] && cb[1] < -wf[1])\n\t\t\t|| (ca[1] > wf[1] && cb[1] > wf[1]))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tif (ca[0] <= wf[0] && ca[0] >= -wf[0] && ca[1] <= wf[1] && ca[1] >= -wf[1])\n\t\t\treturn true;\n\n\t\tif (zf < 0.000001)\n\t\t\treturn false;\n\n\t\tif (cb[0] <= wf[0] && cb[0] >= -wf[0] && cb[1] <= wf[1] && cb[1] >= -wf[1])\n\t\t\treturn true;\n\n\t\tlet Af = ctx.f(b, a); ctx.s(Af, Af, zf);\n\t\tlet Bf = [-Af[1], Af[0]];\n\t\tlet Cf = Math.abs(ctx.G(Bf, cb));\n\n\t\tif (Math.abs(ctx.G(Bf, wf)) >= Cf) {\n\t\t\tlet Df = [-xf[1], xf[0]];\n\t\t\tif (ctx.G(Df, ca) * ctx.G(Df, cb) <= 0.0) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t} else if (Math.abs(ctx.G(Bf, [wf[0], -wf[1]])) >= Cf) {\n\t\t\tlet Df = [xf[1], xf[0]];\n\t\t\tif (ctx.G(Df, ca) * ctx.G(Df, cb) <= 0.0) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tthis.uf = function(vf, xf, yf, a, b, zf, Ef) {\n\t\tlet ca = ctx.f(a, vf);\n\t\tlet cb = ctx.f(b, vf);\n\n\t\tlet wf = ctx.r(xf, yf);\n\n\t\tif (zf < 0.000001)\n\t\t\treturn false;\n\n\t\tif ((ca[0] < -wf[0] && cb[0] < -wf[0])\n\t\t\t|| (ca[0] > wf[0] && cb[0] > wf[0])\n\t\t\t|| (ca[1] < -wf[1] && cb[1] < -wf[1])\n\t\t\t|| (ca[1] > wf[1] && cb[1] > wf[1]))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tlet Af = ctx.f(b, a); ctx.s(Af, Af, zf);\n\t\tlet Bf = [-Af[1], Af[0]];\n\t\tlet Cf = Math.abs(ctx.G(Bf, cb));\n\n\t\tif (Ef) {\n\t\t\tif (Math.abs(ctx.G(Bf, wf)) >= Cf) {\n\t\t\t\tlet Df = [-xf[1], xf[0]];\n\t\t\t\tif (ctx.G(Df, ca) * ctx.G(Df, cb) <= 0.0) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (Math.abs(ctx.G(Bf, [wf[0], -wf[1]])) >= Cf) {\n\t\t\t\tlet Df = [xf[1], xf[0]];\n\t\t\t\tif (ctx.G(Df, ca) * ctx.G(Df, cb) <= 0.0) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tthis.wb = function (r, x, y, z) {\n\t\tvar rgbDisp = 3 * (y * ctx.yd + x);\n\t\tvar view = ctx.zd[z];\n\n\t\tr[0] = view.getUint8(rgbDisp);\n\t\tr[1] = view.getUint8(rgbDisp + 1);\n\t\tr[2] = view.getUint8(rgbDisp + 2);\n\t}\n\n\tthis.xb = function (r, Hf) {\n\t\tif (ctx.zd == null) {\n\t\t\tctx.W(r, 128, 128, 128);\n\t\t\treturn;\n\t\t}\n\n\t\tvar scaledPosX = Hf[0] * ctx.yd;\n\t\tvar scaledPosY = Hf[1] * ctx.yd;\n\t\tvar scaledPosZ = Hf[2] * ctx.yd;\n\n\t\tvar floorX = Math.floor(scaledPosX);\n\t\tvar floorY = Math.floor(scaledPosY);\n\t\tvar floorZ = Math.floor(scaledPosZ);\n\n\t\tvar fracX = scaledPosX - floorX;\n\t\tvar fracY = scaledPosY - floorY;\n\t\tvar fracZ = scaledPosZ - floorZ;\n\n\t\tvar noiseX = ctx.vb(floorX);\n\t\tvar noiseX1 = ctx.vb(floorX + 1);\n\t\tvar noiseY = ctx.vb(floorY);\n\t\tvar noiseY1 = ctx.vb(floorY + 1);\n\t\tvar noiseZ = ctx.vb(floorZ);\n\t\tvar noiseZ1 = ctx.vb(floorZ + 1);\n\n\t\tvar value000 = [], value001 = [], value010 = [], value011 = [],\n\t\t\tvalue100 = [], value101 = [], value110 = [], value111 = [];\n\n\t\tctx.wb(value000, noiseX, noiseY, noiseZ);\n\t\tctx.wb(value001, noiseX, noiseY, noiseZ1);\n\t\tctx.wb(value010, noiseX, noiseY1, noiseZ);\n\t\tctx.wb(value011, noiseX, noiseY1, noiseZ1);\n\t\tctx.wb(value100, noiseX1, noiseY, noiseZ);\n\t\tctx.wb(value101, noiseX1, noiseY, noiseZ1);\n\t\tctx.wb(value110, noiseX1, noiseY1, noiseZ);\n\t\tctx.wb(value111, noiseX1, noiseY1, noiseZ1);\n\n\t\tvar value00 = [], value01 = [], value10 = [], value11 = [];\n\t\tctx.ab(value00, value000, value001, fracZ);\n\t\tctx.ab(value01, value010, value011, fracZ);\n\t\tctx.ab(value10, value100, value101, fracZ);\n\t\tctx.ab(value11, value110, value111, fracZ);\n\n\t\tvar value0 = [], value1 = [];\n\t\tctx.ab(value0, value00, value01, fracY);\n\t\tctx.ab(value1, value10, value11, fracY);\n\n\t\tctx.ab(r, value0, value1, fracX);\n\t}\n\n\tthis.ImageDesc = function(image, x, y, width, height) {\n\t\tthis.image = image;\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\n\tthis.RenderCall = function (startIndex, numIndices, renderStyleIndex) {\n\t this.startIndex = startIndex;\n\t this.numIndices = numIndices;\n\t this.renderStyleIndex = renderStyleIndex;\n\t}\n\n\tthis.SubRect = function (x, y, width, height) {\n\t this.x = x;\n\t this.y = y;\n\t this.width = width;\n\t this.height = height;\n\t}\n\n\tthis.Camera2D = function () {\n\t}\n\n\tthis.Camera2D.prototype.tb = function (Hf, Nd) {\n\t return true;\n\t}\n\n\tthis.Camera3D = function (/**/screenSize, /**/horizAngle) {\n\t this.Qd = ctx.r(/**/screenSize, 0.5);\n\t this.z = -(/**/screenSize[0] * 0.5) / Math.tan(ctx.ib(/**/horizAngle * 0.5));\n\t}\n\n\tthis.Camera3D.prototype./**/transform = function (/**/pos, /**/size) {\n\t if (/**/pos[2] < this.z)\n\t return false;\n\n\t var scale = -this.z / (/**/pos[2] - this.z);\n\t ctx.a(/**/pos, ctx.r(ctx.f(/**/pos, this.Qd), scale), this.Qd);\n\t ctx.q(/**/size, /**/size, scale);\n\n\t return true;\n\t}\n\n\tthis.zd = null;\n\tthis.yd = 0;\n\n\tthis.initializeNoise = function(path, onloadcallback, onfailcallback) {\n\n\t\t// Backward compatibility: if noise already initialized just callback success.\n\t\tif (this.zd != null) {\n\t\t\tif (onloadcallback) onloadcallback();\n\t\t\treturn;\n\t\t}\n\n\t\tif (path == null || path === undefined) path = this.defaultPath || \"\";\n\t\tif (!path) {\n\t\t\tif (onfailcallback) onfailcallback(new Error(\"Noise path not specified\"));\n\t\t\treturn;\n\t\t}\n\n\t\tvar url = path + \"neutrinoparticles.noise.bin\";\n\t\tvar request = new XMLHttpRequest();\n\t\trequest.open(\"GET\", url, true);\n\t\trequest.responseType = \"arraybuffer\";\n\t\trequest.ctx = this;\n\n\t\tconst fail = (err) => { if (onfailcallback) try { onfailcallback(err instanceof Error ? err : new Error(String(err))); } catch(_){} };\n\t\tconst succeed = () => { if (onloadcallback) try { onloadcallback(); } catch(_){} };\n\n\t\trequest.onerror = function(){ fail(new Error(\"Network error while loading noise file\")); };\n\t\trequest.onabort = function(){ fail(new Error(\"Request aborted while loading noise file\")); };\n\n\t\trequest.onload = function () {\n\t\t\ttry {\n\t\t\t\tif (!((request.status >= 200 && request.status < 300) || request.status === 304)) {\n\t\t\t\t\tfail(new Error(\"HTTP status \" + request.status));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar buffer = request.response;\n\t\t\t\tif (!(buffer instanceof ArrayBuffer) || buffer.byteLength < 4) {\n\t\t\t\t\tfail(new Error(\"Noise file header too small\"));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar headerView = new DataView(buffer, 0, 4);\n\t\t\t\tvar planeSize = headerView.getUint32(0, true); // Original format meaning retained\n\t\t\t\tif (!Number.isFinite(planeSize) || planeSize <= 0) {\n\t\t\t\t\tfail(new Error(\"Invalid planeSize value\"));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Historical format assumption: planeSize doubles as: sideSizePx & planeCount\n\t\t\t\t// Each plane: sideSizePx * sideSizePx pixels, RGB (3 bytes per pixel)\n\t\t\t\tvar sideSizePx = planeSize;\n\t\t\t\tvar planeCount = planeSize;\n\t\t\t\tvar bytesPerPlane = 3 * sideSizePx * sideSizePx;\n\t\t\t\tvar expectedBytes = 4 + planeCount * bytesPerPlane;\n\t\t\t\tif (buffer.byteLength < expectedBytes) {\n\t\t\t\t\tfail(new Error(\"Truncated noise file: have \" + buffer.byteLength + \" bytes, expected >= \" + expectedBytes));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar ctx = request.ctx;\n\t\t\t\tctx.zd = new Array(planeCount);\n\t\t\t\tctx.yd = sideSizePx; // side length in pixels\n\n\t\t\t\tfor (var i = 0; i < planeCount; ++i) {\n\t\t\t\t\tvar offset = 4 + i * bytesPerPlane;\n\t\t\t\t\tctx.zd[i] = new DataView(buffer, offset, bytesPerPlane); // Explicit length for safety\n\t\t\t\t}\n\n\t\t\t\tsucceed();\n\t\t\t} catch (e) {\n\t\t\t\tfail(e);\n\t\t\t}\n\t\t};\n\n\t\ttry { request.send(); } catch (e) { fail(e); }\n\t}\n\n\tthis.NoiseGenerator = function () {\n\n\t\tvar catmullRom_ = function (p0, p1, p2, p3, t) {\n\t\t\treturn 0.5 * ((2.0 * p1) + (-p0 + p2) * t + (2.0 * p0 - 5.0 * p1 + 4.0 * p2 - p3) * t * t +\n\t\t\t(-p0 + 3.0 * p1 - 3.0 * p2 + p3) * (t * t * t));\n\t\t}\n\n\t\tvar catmullRomv3_ = function (p0, p1, p2, p3, t) {\n\t\t\treturn [\n\t\t\t\tcatmullRom_(p0[0], p1[0], p2[0], p3[0], t),\n\t\t\t\tcatmullRom_(p0[1], p1[1], p2[1], p3[1], t),\n\t\t\t\tcatmullRom_(p0[2], p1[2], p2[2], p3[2], t)\n\t\t\t\t];\n\t\t}\n\n\t\tvar clamp_ = function (a, from, to) {\n\t\t\treturn (a < from) ? from : ((a > to) ? to : a);\n\t\t}\n\n\t\tvar imageSize = 64;\n\t\tvar image = [];\n\t\tvar tempBuffer = [];\n\t\tvar tausGenerator = new ctx.taus88(120); // 120 - hardcoded starting seed\n\t\tvar rand = function () { return tausGenerator.rand(); };\n\t\tvar amp = 0.7; // hardcoded amplitude of perlin zd\n\t\tvar fadeDegree = 1.2; // hardcoded fade degree of each octave\n\t\tvar prevStep = imageSize;\n\n\t\tvar step, Nd, octSize, octSize2, octMaskSize, octPixels, octZ, octY; // mix step variables\n\n\t\tvar numMixStepIterations = 0;\n\t\tvar mixStepIteration = 0;\n\n\t\tfor (var i = prevStep >>> 1; i > 0; i >>>= 1) {\n\t\t\tvar _octSize = Math.floor(imageSize / i);\n\t\t\tnumMixStepIterations += _octSize * _octSize;\n\t\t}\n\n\t\tvar States = {\n\t\t\tINITIAL_FILL: 0,\n\t\t\tMIX_STEP_INIT: 1,\n\t\t\tMIX_STEP_PROCESS: 2,\n\t\t\tSCALING: 3,\n\t\t\tDATA_VIEWS: 4,\n\t\t\tFINISHED: 5\n\t\t};\n\n\t\tvar Progress = {\n\t\t\tINIT: 0.01,\n\t\t\tMIX: 0.9,\n\t\t\tSCALING: 0.95,\n\t\t\tDATA_VIEWS: 1.0\n\t\t}\n\n\t\tvar state = States.INITIAL_FILL;\n\n\t\tthis.progress = 0.0;\n\n\t\tvar initialFill = function () {\n\t\t\tfor (var z = 0; z < imageSize; ++z) {\n\t\t\t\tvar imageZ = image[z] = [];\n\n\t\t\t\tfor (var y = 0; y < imageSize; ++y) {\n\t\t\t\t\tvar imageZY = imageZ[y] = [];\n\n\t\t\t\t\tfor (var x = 0; x < imageSize; ++x) {\n\t\t\t\t\t\tvar imageZYX = imageZY[x] = [0.0, 0.0, 0.0];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tstate = States.MIX_STEP_INIT;\n\t\t\tthis.progress = Progress.INIT;\n\t\t}\n\n\t\tvar mixStepInit = function () {\n\n\t\t\tstep = prevStep >>> 1;\n\t\t\tNd = imageSize;\n\t\t\toctSize = Math.floor(Nd / step);\n\t\t\toctSize2 = octSize * octSize;\n\t\t\toctMaskSize = Math.max(octSize - 1, 1);\n\t\t\toctPixels = octSize * octSize * octSize;\n\t\t\toctZ = 0;\n\t\t\toctY = 0;\n\n\t\t\tfor (var i = 0; i < octPixels; ++i) {\n\t\t\t\ttempBuffer[i] = [];\n\t\t\t\t// order is inverted to satisfy c++ obsolete order\n\t\t\t\ttempBuffer[i][2] = rand() * 2.0 - 1.0;\n\t\t\t\ttempBuffer[i][1] = rand() * 2.0 - 1.0;\n\t\t\t\ttempBuffer[i][0] = rand() * 2.0 - 1.0;\n\t\t\t}\n\n\t\t\tstate = States.MIX_STEP_PROCESS;\n\t\t}\n\n\t\tvar mixStepProcess = function() {\n\t\t\tfor (var octX = 0; octX < octSize; ++octX) {\n\t\t\t\tvar octZ0 = ((octZ - 1) >>> 0) & octMaskSize;\n\t\t\t\tvar octZ1 = ((octZ) >>> 0) & octMaskSize;\n\t\t\t\tvar octZ2 = ((octZ + 1) >>> 0) & octMaskSize;\n\t\t\t\tvar octZ3 = ((octZ + 2) >>> 0) & octMaskSize;\n\n\t\t\t\tvar octY0 = ((octY - 1) >>> 0) & octMaskSize;\n\t\t\t\tvar octY1 = ((octY) >>> 0) & octMaskSize;\n\t\t\t\tvar octY2 = ((octY + 1) >>> 0) & octMaskSize;\n\t\t\t\tvar octY3 = ((octY + 2) >>> 0) & octMaskSize;\n\n\t\t\t\tvar octX0 = ((octX - 1) >>> 0) & octMaskSize;\n\t\t\t\tvar octX1 = ((octX) >>> 0) & octMaskSize;\n\t\t\t\tvar octX2 = ((octX + 1) >>> 0) & octMaskSize;\n\t\t\t\tvar octX3 = ((octX + 2) >>> 0) & octMaskSize;\n\n\t\t\t\tvar values = //zyx\n\t\t\t\t[\n\t\t\t\t\t[\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\ttempBuffer[octZ0 * octSize2 + octY0 * octSize + octX0],\n\t\t\t\t\t\t\ttempBuffer[octZ0 * octSize2 + octY0 * octSize + octX1],\n\t\t\t\t\t\t\ttempBuffer[octZ0 * octSize2 + octY0 * octSize + octX2],\n\t\t\t\t\t\t\ttempBuffer[octZ0 * octSize2 + octY0 * octSize + octX3]\n\t\t\t\t\t\t],\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\ttempBuffer[octZ0 * octSize2 + octY1 * octSize + octX0],\n\t\t\t\t\t\t\ttempBuffer[octZ0 * octSize2 + octY1 * octSize + octX1],\n\t\t\t\t\t\t\ttempBuffer[octZ0 * octSize2 + octY1 * octSize + octX2],\n\t\t\t\t\t\t\ttempBuffer[octZ0 * octSize2 + octY1 * octSize + octX3]\n\t\t\t\t\t\t],\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\ttempBuffer[octZ0 * octSize2 + octY2 * octSize + octX0],\n\t\t\t\t\t\t\ttempBuffer[octZ0 * octSize2 + octY2 * octSize + octX1],\n\t\t\t\t\t\t\ttempBuffer[octZ0 * octSize2 + octY2 * octSize + octX2],\n\t\t\t\t\t\t\ttempBuffer[octZ0 * octSize2 + octY2 * octSize + octX3]\n\t\t\t\t\t\t],\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\ttempBuffer[octZ0 * octSize2 + octY3 * octSize + octX0],\n\t\t\t\t\t\t\ttempBuffer[octZ0 * octSize2 + octY3 * octSize + octX1],\n\t\t\t\t\t\t\ttempBuffer[octZ0 * octSize2 + octY3 * octSize + octX2],\n\t\t\t\t\t\t\ttempBuffer[octZ0 * octSize2 + octY3 * octSize + octX3]\n\t\t\t\t\t\t]\n\t\t\t\t\t],\n\n\t\t\t\t\t[\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\ttempBuffer[octZ1 * octSize2 + octY0 * octSize + octX0],\n\t\t\t\t\t\t\ttempBuffer[octZ1 * octSize2 + octY0 * octSize + octX1],\n\t\t\t\t\t\t\ttempBuffer[octZ1 * octSize2 + octY0 * octSize + octX2],\n\t\t\t\t\t\t\ttempBuffer[octZ1 * octSize2 + octY0 * octSize + octX3]\n\t\t\t\t\t\t],\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\ttempBuffer[octZ1 * octSize2 + octY1 * octSize + octX0],\n\t\t\t\t\t\t\ttempBuffer[octZ1 * octSize2 + octY1 * octSize + octX1],\n\t\t\t\t\t\t\ttempBuffer[octZ1 * octSize2 + octY1 * octSize + octX2],\n\t\t\t\t\t\t\ttempBuffer[octZ1 * octSize2 + octY1 * octSize + octX3]\n\t\t\t\t\t\t],\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\ttempBuffer[octZ1 * octSize2 + octY2 * octSize + octX0],\n\t\t\t\t\t\t\ttempBuffer[octZ1 * octSize2 + octY2 * octSize + octX1],\n\t\t\t\t\t\t\ttempBuffer[octZ1 * octSize2 + octY2 * octSize + octX2],\n\t\t\t\t\t\t\ttempBuffer[octZ1 * octSize2 + octY2 * octSize + octX3]\n\t\t\t\t\t\t],\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\ttempBuffer[octZ1 * octSize2 + octY3 * octSize + octX0],\n\t\t\t\t\t\t\ttempBuffer[octZ1 * octSize2 + octY3 * octSize + octX1],\n\t\t\t\t\t\t\ttempBuffer[octZ1 * octSize2 + octY3 * octSize + octX2],\n\t\t\t\t\t\t\ttempBuffer[octZ1 * octSize2 + octY3 * octSize + octX3]\n\t\t\t\t\t\t]\n\t\t\t\t\t],\n\n\t\t\t\t\t[\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\ttempBuffer[octZ2 * octSize2 + octY0 * octSize + octX0],\n\t\t\t\t\t\t\ttempBuffer[octZ2 * octSize2 + octY0 * octSize + octX1],\n\t\t\t\t\t\t\ttempBuffer[octZ2 * octSize2 + octY0 * octSize + octX2],\n\t\t\t\t\t\t\ttempBuffer[octZ2 * octSize2 + octY0 * octSize + octX3]\n\t\t\t\t\t\t],\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\ttempBuffer[octZ2 * octSize2 + octY1 * octSize + octX0],\n\t\t\t\t\t\t\ttempBuffer[octZ2 * octSize2 + octY1 * octSize + octX1],\n\t\t\t\t\t\t\ttempBuffer[octZ2 * octSize2 + octY1 * octSize + octX2],\n\t\t\t\t\t\t\ttempBuffer[octZ2 * octSize2 + octY1 * octSize + octX3]\n\t\t\t\t\t\t],\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\ttempBuffer[octZ2 * octSize2 + octY2 * octSize + octX0],\n\t\t\t\t\t\t\ttempBuffer[octZ2 * octSize2 + octY2 * octSize + octX1],\n\t\t\t\t\t\t\ttempBuffer[octZ2 * octSize2 + octY2 * octSize + octX2],\n\t\t\t\t\t\t\ttempBuffer[octZ2 * octSize2 + octY2 * octSize + octX3]\n\t\t\t\t\t\t],\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\ttempBuffer[octZ2 * octSize2 + octY3 * octSize + octX0],\n\t\t\t\t\t\t\ttempBuffer[octZ2 * octSize2 + octY3 * octSize + octX1],\n\t\t\t\t\t\t\ttempBuffer[octZ2 * octSize2 + octY3 * octSize + octX2],\n\t\t\t\t\t\t\ttempBuffer[octZ2 * octSize2 + octY3 * octSize + octX3]\n\t\t\t\t\t\t]\n\t\t\t\t\t],\n\n\t\t\t\t\t[\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\ttempBuffer[octZ3 * octSize2 + octY0 * octSize + octX0],\n\t\t\t\t\t\t\ttempBuffer[octZ3 * octSize2 + octY0 * octSize + octX1],\n\t\t\t\t\t\t\ttempBuffer[octZ3 * octSize2 + octY0 * octSize + octX2],\n\t\t\t\t\t\t\ttempBuffer[octZ3 * octSize2 + octY0 * octSize + octX3]\n\t\t\t\t\t\t],\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\ttempBuffer[octZ3 * octSize2 + octY1 * octSize + octX0],\n\t\t\t\t\t\t\ttempBuffer[octZ3 * octSize2 + octY1 * octSize + octX1],\n\t\t\t\t\t\t\ttempBuffer[octZ3 * octSize2 + octY1 * octSize + octX2],\n\t\t\t\t\t\t\ttempBuffer[octZ3 * octSize2 + octY1 * octSize + octX3]\n\t\t\t\t\t\t],\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\ttempBuffer[octZ3 * octSize2 + octY2 * octSize + octX0],\n\t\t\t\t\t\t\ttempBuffer[octZ3 * octSize2 + octY2 * octSize + octX1],\n\t\t\t\t\t\t\ttempBuffer[octZ3 * octSize2 + octY2 * octSize + octX2],\n\t\t\t\t\t\t\ttempBuffer[octZ3 * octSize2 + octY2 * octSize + octX3]\n\t\t\t\t\t\t],\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\ttempBuffer[octZ3 * octSize2 + octY3 * octSize + octX0],\n\t\t\t\t\t\t\ttempBuffer[octZ3 * octSize2 + octY3 * octSize + octX1],\n\t\t\t\t\t\t\ttempBuffer[octZ3 * octSize2 + octY3 * octSize + octX2],\n\t\t\t\t\t\t\ttempBuffer[octZ3 * octSize2 + octY3 * octSize + octX3]\n\t\t\t\t\t\t]\n\t\t\t\t\t]\n\t\t\t\t];\n\n\t\t\t\tfor (var inZ = 0; inZ < step; ++inZ) {\n\t\t\t\t\tvar interpZ = inZ / step;\n\t\t\t\t\tvar imageZ = octZ * step + inZ;\n\n\t\t\t\t\tvar valuesP = //yx\n\t\t\t\t\t[\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tcatmullRomv3_(values[0][0][0], values[1][0][0], values[2][0][0], values[3][0][0], interpZ),\n\t\t\t\t\t\t\tcatmullRomv3_(values[0][0][1], values[1][0][1], values[2][0][1], values[3][0][1], interpZ),\n\t\t\t\t\t\t\tcatmullRomv3_(values[0][0][2], values[1][0][2], values[2][0][2], values[3][0][2], interpZ),\n\t\t\t\t\t\t\tcatmullRomv3_(values[0][0][3], values[1][0][3], values[2][0][3], values[3][0][3], interpZ)\n\t\t\t\t\t\t],\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tcatmullRomv3_(values[0][1][0], values[1][1][0], values[2][1][0], values[3][1][0], interpZ),\n\t\t\t\t\t\t\tcatmullRomv3_(values[0][1][1], values[1][1][1], values[2][1][1], values[3][1][1], interpZ),\n\t\t\t\t\t\t\tcatmullRomv3_(values[0][1][2], values[1][1][2], values[2][1][2], values[3][1][2], interpZ),\n\t\t\t\t\t\t\tcatmullRomv3_(values[0][1][3], values[1][1][3], values[2][1][3], values[3][1][3], interpZ)\n\t\t\t\t\t\t],\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tcatmullRomv3_(values[0][2][0], values[1][2][0], values[2][2][0], values[3][2][0], interpZ),\n\t\t\t\t\t\t\tcatmullRomv3_(values[0][2][1], values[1][2][1], values[2][2][1], values[3][2][1], interpZ),\n\t\t\t\t\t\t\tcatmullRomv3_(values[0][2][2], values[1][2][2], values[2][2][2], values[3][2][2], interpZ),\n\t\t\t\t\t\t\tcatmullRomv3_(values[0][2][3], values[1][2][3], values[2][2][3], values[3][2][3], interpZ)\n\t\t\t\t\t\t],\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tcatmullRomv3_(values[0][2][0], values[1][3][0], values[2][3][0], values[3][3][0], interpZ),\n\t\t\t\t\t\t\tcatmullRomv3_(values[0][2][1], values[1][3][1], values[2][3][1], values[3][3][1], interpZ),\n\t\t\t\t\t\t\tcatmullRomv3_(values[0][2][2], values[1][3][2], values[2][3][2], values[3][3][2], interpZ),\n\t\t\t\t\t\t\tcatmullRomv3_(values[0][2][3], values[1][3][3], values[2][3][3], values[3][3][3], interpZ)\n\t\t\t\t\t\t]\n\t\t\t\t\t];\n\n\t\t\t\t\tfor (var inY = 0; inY < step; ++inY) {\n\t\t\t\t\t\tvar interpY = inY / step;\n\t\t\t\t\t\tvar imageY = octY * step + inY;\n\n\t\t\t\t\t\tvar value0 = catmullRomv3_(valuesP[0][0], valuesP[1][0], valuesP[2][0],\n\t\t\t\t\t\t\tvaluesP[3][0], interpY);\n\t\t\t\t\t\tvar value1 = catmullRomv3_(valuesP[0][1], valuesP[1][1], valuesP[2][1],\n\t\t\t\t\t\t\tvaluesP[3][1], interpY);\n\t\t\t\t\t\tvar value2 = catmullRomv3_(valuesP[0][2], valuesP[1][2], valuesP[2][2],\n\t\t\t\t\t\t\tvaluesP[3][2], interpY);\n\t\t\t\t\t\tvar value3 = catmullRomv3_(valuesP[0][3], valuesP[1][3], valuesP[2][3],\n\t\t\t\t\t\t\tvaluesP[3][3], interpY);\n\n\t\t\t\t\t\tfor (var inX = 0; inX < step; ++inX) {\n\t\t\t\t\t\t\tvar interpX = inX / step;\n\t\t\t\t\t\t\tvar imageX = octX * step + inX;\n\n\t\t\t\t\t\t\tvar octResult = catmullRomv3_(value0, value1, value2, value3, interpX);\n\t\t\t\t\t\t\tvar result = ctx.d(ctx.v(octResult, amp), image[imageZ][imageY][imageX]);\n\t\t\t\t\t\t\tvar clampedResult = [\n\t\t\t\t\t\t\t\tclamp_(result[0], -1.0, 1.0),\n\t\t\t\t\t\t\t\tclamp_(result[1], -1.0, 1.0),\n\t\t\t\t\t\t\t\tclamp_(result[2], -1.0, 1.0)\n\t\t\t\t\t\t\t];\n\n\t\t\t\t\t\t\timage[imageZ][imageY][imageX] = clampedResult;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tmixStepIteration++;\n\t\t\tthis.progress = Progress.INIT + (Progress.MIX - Progress.INIT) * (mixStepIteration / numMixStepIterations);\n\n\t\t\toctY++;\n\t\t\tif (octY >= octSize) {\n\t\t\t\toctY = 0;\n\t\t\t\toctZ++;\n\t\t\t\tif (octZ >= octSize) {\n\t\t\t\t\toctZ = 0;\n\n\t\t\t\t\tprevStep = step;\n\t\t\t\t\tamp = Math.pow(amp, fadeDegree);\n\n\t\t\t\t\tif (prevStep <= 1) {\n\t\t\t\t\t\tstate = States.SCALING;\n\t\t\t\t\t\tthis.progress = Progress.MIX;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstate = States.MIX_STEP_INIT;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// hardcoded scaling of the image to make it more symethric\n\t\tvar scaling = function() {\n\t\t\tvar low = [-1.0, -1.0, -1.0];\n\t\t\tvar high = [0.5, 0.7, 1.0];\n\n\t\t\tfor (var z = 0; z < imageSize; ++z) {\n\t\t\t\tvar imageZ = image[z];\n\n\t\t\t\tfor (var y = 0; y < imageSize; ++y) {\n\t\t\t\t\tvar imageZY = imageZ[y];\n\n\t\t\t\t\tfor (var x = 0; x < imageSize; ++x) {\n\t\t\t\t\t\tvar imageZYX = imageZY[x];\n\t\t\t\t\t\timageZYX[0] = ctx.X(low[0], high[0], imageZYX[0] * 0.5 + 0.5);\n\t\t\t\t\t\timageZYX[1] = ctx.X(low[1], high[1], imageZYX[1] * 0.5 + 0.5);\n\t\t\t\t\t\timageZYX[2] = ctx.X(low[2], high[2], imageZYX[2] * 0.5 + 0.5);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tstate = States.DATA_VIEWS;\n\t\t\tthis.progress = Progress.SCALING;\n\t\t}\n\n\t\t// filling zd DataViews\n\t\tvar dataViews = function() {\n\t\t\tctx.yd = imageSize;\n\t\t\tctx.zd = [];\n\n\t\t\tfor (var z = 0; z < imageSize; ++z) {\n\t\t\t\tvar imageZ = image[z];\n\n\t\t\t\tvar plane = new ArrayBuffer(imageSize * imageSize * 3);\n\t\t\t\tvar view = new DataView(plane);\n\n\t\t\t\tfor (var y = 0; y < imageSize; ++y) {\n\t\t\t\t\tvar imageZY = imageZ[y];\n\n\t\t\t\t\tfor (var x = 0; x < imageSize; ++x) {\n\t\t\t\t\t\tvar imageZYX = imageZY[x];\n\n\t\t\t\t\t\tvar rgbOffset = (y * imageSize + x) * 3;\n\t\t\t\t\t\tview.setUint8(rgbOffset + 0,\n\t\t\t\t\t\t\tMath.floor(clamp_(256.0 * (imageZYX[0] * 0.5 + 0.5) - 0.5, 0.0, 255.0)));\n\t\t\t\t\t\tview.setUint8(rgbOffset + 1,\n\t\t\t\t\t\t\tMath.floor(clamp_(256.0 * (imageZYX[1] * 0.5 + 0.5) - 0.5, 0.0, 255.0)));\n\t\t\t\t\t\tview.setUint8(rgbOffset + 2,\n\t\t\t\t\t\t\tMath.floor(clamp_(256.0 * (imageZYX[2] * 0.5 + 0.5) - 0.5, 0.0, 255.0)));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tctx.zd[z] = view;\n\t\t\t}\n\n\t\t\tstate = States.FINISHED;\n\t\t\tthis.progress = Progress.DATA_VIEWS;\n\t\t}\n\n\t\tthis.step = function() {\n\t\t\tswitch (state) {\n\t\t\t\tcase States.INITIAL_FILL: initialFill.call(this); break;\n\t\t\t\tcase States.MIX_STEP_INIT: mixStepInit.call(this); break;\n\t\t\t\tcase States.MIX_STEP_PROCESS: mixStepProcess.call(this); break;\n\t\t\t\tcase States.SCALING: scaling.call(this); break;\n\t\t\t\tcase States.DATA_VIEWS: dataViews.call(this); break;\n\t\t\t}\n\n\t\t\treturn state == States.FINISHED;\n\t\t}\n\t}\n\n\t// Lazy-create offscreen canvas only if DOM available (allows Node.js tests)\n\tif (typeof document !== 'undefined' && document.createElement) {\n\t\tthis.cf = document.createElement('canvas');\n\t\tthis.cf.width = 0;\n\t\tthis.cf.height = 0;\n\t\tthis.bf = this.cf.getContext('2d');\n\t} else {\n\t\tthis.cf = { width:0, height:0 };\n\t\tthis.bf = null;\n\t}\n\n\tthis.af = function(minWidth, minHeight) {\n\t\tif (this.cf.width < minWidth || this.cf.height < minHeight) {\n\t\t\tthis.cf.width = minWidth;\n\t\t\tthis.cf.height = minHeight;\n\t\t\tthis.bf = this.cf.getContext('2d');\n\t\t}\n\t}\n\n\tthis.effects = [];\n\n\tthis.loadEffect = function(effectFilePath, onSuccessFunc, onFailFunc) {\n\n\t\tif (this.effects[effectFilePath] != undefined) {\n\n\t\t\tvar effectModel = this.effects[effectFilePath];\n\n\t\t\tif (effectModel instanceof Array) {\n\t\t\t\teffectModel[effectModel.length] = [onSuccessFunc, onFailFunc];\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tonSuccessFunc(effectModel);\n\t\t\treturn;\n\t\t}\n\n\t\tthis.effects[effectFilePath] = [[onSuccessFunc, onFailFunc]];\n\n\t\tvar request = new XMLHttpRequest();\n\t\trequest.open(\"GET\", effectFilePath, true);\n\t\trequest.responseType = \"text\";\n\t\trequest.ctx = this;\n\t\trequest.onreadystatechange = function () {\n\t\t\tif (request.readyState == 4) {\n\t\t\t\tvar callbacks = this.ctx.effects[effectFilePath];\n\n\t\t\t\tif ((request.status >= 200 && request.status < 300) || request.status == 304) {\n\n\t\t\t\t\tvar evalText = \"(function(ctx) {\\n\" +\n\t\t\t\t\t\trequest.responseText +\n\t\t\t\t\t\t\"\\nreturn new NeutrinoEffect(ctx);\\n})(this.ctx);\";\n\t\t\t\t\tvar effectModel = eval(evalText);\n\t\t\t\t\tthis.ctx.effects[effectFilePath] = effectModel;\n\n\t\t\t\t\tcallbacks.forEach(function(callback) {\n\t\t\t\t\t\tcallback[0](effectModel);\n\t\t\t\t\t});\n\n\t\t\t\t} else {\n\t\t\t\t\tcallbacks.forEach(function(callback) {\n\t\t\t\t\t\tcallback[1]();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\trequest.send();\n\t}\n\n\tthis.removeEffect = function(effectFilePath) {\n\t\tdelete this.effects[effectFilePath];\n\t}\n}\n"],"names":["Context","ctx","equalv3_","a","b","equalq_","r","y","s","z","c","d","C","D","addq","addq_","e","f","A","B","nf","of","g","h","E","F","rf","sf","i","j","k","l","m","n","o","p","H","dotq_","q","t","u","v","w","x","G","I","ax","ay","az","bx","by","bz","J","K","Math","sqrt","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","ab","bb","slerpq","cosTheta","negq","Number","EPSILON","Md","acos_","mulqscalar","mulqscalar_","sin_","slerpq_","acos","sin","cos_","cos","taus88","seed","value0","value1","value2","s0","rand","engine","cb","radius","randv2gen","random","gen","PI","db","randv3gen","theta","sqrtInvZ2","yb","Nd","dispx","dispy","eb","fb","gb","hb","negq_","ib","degrees","jb","radians","Ae","value","ob","x2","y2","z2","xy","xz","yz","wz","wy","wx","pb","tr","axes2quat","qb","ha","axisangle2quat","axisangle2quat_","rb","qx","qy","qz","qw","ix","iy","iz","iw","sb","qax","qay","qaz","qaw","qbx","qby","qbz","qbw","tb","Hf","degree","scale","rad","ub","vb","val","floor","yd","colorCompToHex_","toString","ff","rgb","tf","vf","xf","yf","zf","ca","wf","Af","Bf","Cf","abs","Df","uf","Ef","wb","rgbDisp","view","zd","getUint8","xb","scaledPosX","scaledPosY","scaledPosZ","floorX","floorY","floorZ","fracX","fracY","fracZ","noiseX","noiseX1","noiseY","noiseY1","noiseZ","noiseZ1","value000","value001","value010","value011","value100","value101","value110","value111","value00","value01","value10","value11","ImageDesc","image","width","height","RenderCall","startIndex","numIndices","renderStyleIndex","SubRect","Camera2D","prototype","Camera3D","screenSize","horizAngle","Qd","tan","transform","pos","size","initializeNoise","path","onloadcallback","onfailcallback","undefined","defaultPath","Error","url","request","XMLHttpRequest","open","responseType","fail","err","String","_","succeed","onerror","onabort","onload","status","buffer","response","ArrayBuffer","byteLength","headerView","DataView","planeSize","getUint32","isFinite","sideSizePx","planeCount","bytesPerPlane","expectedBytes","Array","offset","send","NoiseGenerator","catmullRom_","p0","p1","p2","p3","catmullRomv3_","clamp_","from","to","imageSize","tempBuffer","tausGenerator","amp","fadeDegree","prevStep","step","octSize","octSize2","octMaskSize","octPixels","octZ","octY","numMixStepIterations","mixStepIteration","_octSize","States","INITIAL_FILL","MIX_STEP_INIT","MIX_STEP_PROCESS","SCALING","DATA_VIEWS","FINISHED","Progress","INIT","MIX","state","progress","initialFill","imageZ","imageZY","imageZYX","mixStepInit","max","mixStepProcess","octX","octZ0","octZ1","octZ2","octZ3","octY0","octY1","octY2","octY3","octX0","octX1","octX2","octX3","values","inZ","interpZ","valuesP","inY","interpY","imageY","value3","inX","interpX","imageX","octResult","result","clampedResult","pow","scaling","low","high","dataViews","plane","rgbOffset","setUint8","call","document","createElement","cf","bf","getContext","af","minWidth","minHeight","effects","loadEffect","effectFilePath","onSuccessFunc","onFailFunc","effectModel","length","onreadystatechange","readyState","callbacks","evalText","responseText","eval","forEach","callback","removeEffect"],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "@neutrinoparticles/js-v1.0",
3
+ "version": "1.0.0",
4
+ "description": "Javascript runtimes for neutrinoparticles",
5
+ "main": "dist/neutrinoparticles.js-v1.0.umd.js",
6
+ "keywords": [
7
+ "neutrinoparticles",
8
+ "particles"
9
+ ],
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "git+https://gitlab.com/neutrinoparticles/neutrinoparticles.js.git"
13
+ },
14
+ "author": "Yurii Miroshnyk",
15
+ "license": "ISC",
16
+ "bugs": {
17
+ "url": "https://gitlab.com/neutrinoparticles/neutrinoparticles.js/issues"
18
+ },
19
+ "homepage": "https://gitlab.com/neutrinoparticles/neutrinoparticles.js",
20
+ "devDependencies": {
21
+ "@babel/cli": "^7.6.4",
22
+ "@babel/core": "^7.6.3",
23
+ "@babel/node": "^7.6.3",
24
+ "@babel/polyfill": "^7.6.0",
25
+ "@babel/preset-env": "^7.6.3",
26
+ "@babel/register": "^7.6.2",
27
+ "chai": "^4.4.1",
28
+ "mocha": "^10.4.0",
29
+ "rimraf": "^3.0.0",
30
+ "rollup": "^1.23.1",
31
+ "rollup-plugin-babel": "^4.3.3",
32
+ "rollup-plugin-commonjs": "^10.1.0",
33
+ "rollup-plugin-node-resolve": "^5.2.0"
34
+ },
35
+ "scripts": {
36
+ "clean": "./node_modules/.bin/rimraf ./dist",
37
+ "build": "rollup -c -m",
38
+ "cleanbuild": "npm run clean && npm run build",
39
+ "dev": "npm run build -- -w",
40
+ "pretest": "npm run build",
41
+ "test": "npm run just-test",
42
+ "just-test": "mocha --require @babel/register \"test/**/*.test.js\"",
43
+ "predocs": "",
44
+ "docs": "",
45
+ "publish:patch": "npm whoami && npm run cleanbuild && VERSION=$(npm version patch) && grep -q $VERSION CHANGES.md && npm publish",
46
+ "publish:minor": "npm whoami && npm run cleanbuild && VERSION=$(npm version minor) && grep -q $VERSION CHANGES.md && npm publish",
47
+ "publish:major": "npm whoami && npm run cleanbuild && VERSION=$(npm version major) && grep -q $VERSION CHANGES.md && npm publish",
48
+ "postpublish": "git push && git push --tags"
49
+ },
50
+ "babel": {
51
+ "presets": [
52
+ "@babel/preset-env"
53
+ ],
54
+ "retainLines": true
55
+ },
56
+ "files": [
57
+ "bin",
58
+ "dist",
59
+ "CHANGELOG.md"
60
+ ]
61
+ }